CN110366003A - 视频数据的抗抖动处理方法、装置、电子设备和存储介质 - Google Patents

视频数据的抗抖动处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110366003A
CN110366003A CN201910551307.3A CN201910551307A CN110366003A CN 110366003 A CN110366003 A CN 110366003A CN 201910551307 A CN201910551307 A CN 201910551307A CN 110366003 A CN110366003 A CN 110366003A
Authority
CN
China
Prior art keywords
key frame
frame
jitter
image group
network quality
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.)
Pending
Application number
CN201910551307.3A
Other languages
English (en)
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.)
Beijing Dami Technology Co Ltd
Original Assignee
Beijing Dami 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 Beijing Dami Technology Co Ltd filed Critical Beijing Dami Technology Co Ltd
Priority to CN201910551307.3A priority Critical patent/CN110366003A/zh
Publication of CN110366003A publication Critical patent/CN110366003A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing 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 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
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/442Monitoring 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/442Monitoring 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/44245Monitoring the upstream path of the transmission network, e.g. its availability, bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种视频数据的抗抖动处理方法、装置和存储介质,接收设备获取发送设备和接收设备之间的通信链路的网络质量参数;接收设备在多个抗抖动策略中确定与网络质量参数匹配的目标抗抖动策略;接收设备根据目标抗抖动策略对来自发送设备的视频数据包进行抗抖动处理;其中,视频数据包包括一个或多个图像组,每个图像组包括至少一个关键帧和至少两个非关键帧,本申请根据不同的网络质量使用不同的抗抖动策略,实现抗抖动的精细化控制,可以提高视频数据包的抗抖动能力,提高接收设备播放视频的流畅度。

Description

视频数据的抗抖动处理方法、装置、电子设备和存储介质
技术领域
本申请涉及视频处理领域,尤其涉及一种视频数据的抗抖动处理方法、装置、电子设备和存储介质。
背景技术
为了便于视频内容的存储和传输,通常需要减少视频内容的大小,即需要将视频的原始内容元素进行压缩,这种技术称为视频编码;与视频编码对应的,当需要对视频进行播放时,也需要对编码后的视频进行相应的解码,才能读取到画面并渲染显示。
为了便于解码,以及提高解码效率,编码器在对多张原始图像进行编码后,会生成多个图像组(group of pictures,GOP),编码器在播放时就可以读取多个GOP,以进行编码,而需要等待所有的编码数据都读取完毕,才能进行解码,也就是说GOP是视频图像编码器和解码器存取的单位。
一般的,GOP可以由一张I帧和多张B帧或P帧组成,I帧是内部编码帧,每个GOP的第一个帧,是一个完整的图像;P帧是前向预测帧,记录的是相对于I帧和相邻前一个P帧的变化,B帧是双向内插帧,与P帧的区别在于,它既可以参考I帧或相邻的前一个帧,也可以参考相邻的后一个帧,即P帧记录的是相对于相邻前后帧的变化。
发明内容
本申请实施例解决的技术问题是:在发送设备和接收设备之间的通信链路的网络质量不稳定时,在该通信链路上传输视频数据包的抖动较大,接收设备播放视频会发生不流畅的现象。
为解决上述技术问题,本申请提供了一种视频数据的抗抖动处理方法,包括:
接收设备获取发送设备和接收设备之间的通信链路的网络质量参数;接收设备在预存储或预配置的多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略;接收设备根据目标抗抖动策略对来自发送设备的视频数据包进行抗抖动处理,数据数据包包括一个或多个图像组,每个图像组包括至少一个关键帧和至少两个非关键帧。其中,接收设备可以周期性的获取网络质量参数,在当前周期内根据获取到的网络质量参数对来自发送设备的视频数据包进行抗抖动处理。
一种可能的设计中,接收设备在多个抗抖动策略中确定与网络质量参数匹配的目标抗抖动策略,包括:
在预存储或预配置的多个互不重合的数值区间中确定网络质量参数所在的数值区间;
确定与网络质量参数所在的数值区间关联的目标抗抖动策略。
在一种可能的设计中,在网络质量参数位于第一数值区间时,目标抗抖动策略包括:在网络质量参数位于第一数值区间时,判断所述图像组中的关键帧是否解码成功;若为否,丢弃所述图像组,以及指示所述发送设备视频数据包的发送码率;例如:通过降低图像组中的视频帧的分辨率来降低视频数据包的发送码率;和/或若为是,在图像组存在解码失败的非关键帧时,根据关键帧和图像组中解码成功的非关键帧对图像组中解码失败的非关键帧进行修复,以及指示发送设备降低视频数据包的发送码率。
在一种可能设计中,修复的方法包括:对图像组中奇数位或偶数位上解码失败的非关键帧进行修复。例如:图像组中包含10个视频帧:视频帧1为I帧,视频帧2~10为P帧,假设视频帧3~8解码失败时,只对视频帧3、视频帧5和视频帧7进行修复,或只对视频帧4、视频帧6和视频帧8进行修复。
在一种可能的设计中,在网络质量参数位于第二数值区间时,第二数值区间关联的目标抗抖动策略包括:
在网络质量参数位于第二数值区间时,判断所述图像组中的关键帧是否解码成功;若为否,对所述图像组进行缓冲处理,指示所述发送设备在预设时长内重传所述关键帧,以及指示发送设备降低视频数据包的发送码率;和/或若为是,在图像组中存在解码失败的非关键帧时,根据关键帧和图像组中解码成功的非关键帧对图像组中解码失败的非关键帧进行修复,例如:对图像组中所有解码失败的非关键帧进行修复。
在一种可能的设计中,确地与网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在网络质量参数位于第三数值区间时,判断图像组中的关键帧是否解码成功;若为否,对图像组进行缓存处理,以及指示发送设备在预设时长内重传关键帧;和/或若为是,在图像组中存在解码失败的非关键帧时,根据关键帧和图像组中解码成功的非关键帧对图像组中解码失败的非关键帧进行修复。
在一种可能的设计中,第三数值区间对应的网络质量优于第二数值区间对应的网络质量,第二数值区间对应的网络质量优于第一数值区间对应的网络质量,网络质量参数包括丢包率和往返时延中的一种或多种。丢包率表示发送设备向接收设备发送的多个数据包,接收设备未成功视频数据包的数量和该多个数据包之间的比例。往返时延表示发送设备向接收设备发送数据包的时刻和接收到来自接收设备的响应于该数据包的响应包的时刻之间的时长。
本申请又一方面提供了一种装置,可以实现上述第一方面或第二方面的视频数据的抗抖动处理方法。例如所述装置可以是芯片(如数字处理芯片DSP或应用处理器芯片等)或者服务器。可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
在一种可能的实现方式中,所述装置的结构中包括处理器、存储器;所述处理器被配置为支持所述装置执行上述视频数据的抗抖动处理方法中相应的功能。存储器用于与处理器耦合,其保存所述装置必要的程序(指令)和/或数据。可选的,所述装置还可以包括通信接口用于支持所述装置与其他网元之间的通信。
在另一种可能的实现方式中,所述装置可以包括执行上述方法中相应动作的单元模块。
在又一种可能的实现方式中,包括处理器和收发装置,所述处理器与所述收发装置耦合,所述处理器用于执行计算机程序或指令,以控制所述收发装置进行信息的接收和发送;当所述处理器执行所述计算机程序或指令时,所述处理器还用于实现上述方法。其中,所述收发装置可以为收发器、收发电路或输入输出接口。当所述装置为芯片时,所述收发装置为收发电路或输入输出接口。
当所述装置为芯片时,发送单元可以是输出单元,比如输出电路或者通信接口;接收单元可以是输入单元,比如输入电路或者通信接口。当所述装置为网络设备时,发送单元可以是发射器或发射机;接收单元可以是接收器或接收机。
本申请又一方面提供了一种装置,该装置包括:存储器和处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,执行各方面所述的方法。
本申请的又一方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
根据以上的实施例,获取发送设备和接收设备之间的通信链路的网络质量参数,在预存储或预配置的多个抗抖动策略中确定与该网络质量参数的目标抗抖动策略,以及根据该目标抗抖动策略对来自发送设备的数据数据包进行抗抖动策略,不同的网络质量使用不同的抗抖动策略,实现抗抖动的精细化控制,可以提高视频数据包的抗抖动能力,提高接收设备播放视频的流畅度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的网络架构图;
图2是本申请实施例提供的一种视频数据的抗抖动处理方法的流程示意图;
图3是本申请实施例提供的视频数据的抗抖动处理方法的另一流程示意图;
图4是本申请实施例提供的补帧的原理示意图;
图5是本申请实施例提供的补帧的原理示意图;
图6是本申请实施例提供的一种装置的结构示意图;
图7是本申请实施例提供的一种装置的另一结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
图1示出了可以应用于本申请的视频数据的抗抖动处理方法或视频数据的抗抖动处理装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备100、第一网络101、服务器102、第二网络103和终端设备104。第一网络104用于在终端设备101和服务器102之间提供通信链路的介质,第二网络103用于在终端设备104和服务器102之间提供通信链路的介质。第一网络101和第二网络103可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
其中,本申请中的发送设备和接收设备可以是系统架构中的任意两个设备,例如:发送设备为终端设备100,接收设备为服务器102;或发送设备为服务器102,接收设备为终端设备104;或发送设备为终端设备100,接收设备为终端设备104等,本申请不再进行穷举。
终端设备100通过第一网络101、服务器102、第二网络103和终端设备104之间进行通信,终端设备100向服务器102发送消息,服务器102将消息转发给终端设备104,终端设备104将消息发送给服务器102,服务器102将消息转发给终端设备100,由此实现终端设备100和终端设备104之间的通信,终端设备100和终端设备104之间交互的消息类型包括控制数据和业务数据。
其中,在本申请中,终端设备100为学生上课的终端,终端设备104为教师上课的终端;或终端设备100为教师上课的终端,终端设备104为学生上课的终端。例如:业务数据为视频数据,终端设备100通摄像头采集学生上课过程中的第一视频数据,终端设备通过摄像头104采集教师上课过程中的第二视频数据,终端设备100将第一视频数据发送给服务器102,服务器102将第一视频数据转发给终端设备104,终端设备104在界面上显示第一视频数据和第二视频数据;终端设备104将第二视频数据发送给服务器102,服务器102将第二视频数据转发给终端设备100,终端设备100显示第一视频数据和第二视频数据。
其中,本申请的上课方式可以是一对一或一对多,即一个教师对应一个学生或一个教师对应多个学生。相应的,在一对一的教学方式中,一个用于教师上课的终端和一个用于学生上课的终端之间进行通信;在一对多的教学方式中,一个用于教师上课的终端和多个用于学生上课的终端之间进行通信。
终端设备100和终端设备104上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、及时通信工具、邮箱客户端、社交平台软件等。
终端设备100和终端设备104可以是硬件,也可以是软件。当终端设备101~103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当终端设备100和终端设备104为软件时,可以是安装上上述所列举的电子设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
当终端设备100和终端设备104为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频数据;例如:显示设备可以是阴极射线管显示器(Cathode ray tubedisplay,简称CR)、发光二极管显示器(Light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(Liquid crystaldisplay,简称LCD)、等离子显示面板(Plasma display panel,简称PDP)等。用户可以利用终端设备100和终端设备104上的显示设备,来查看显示的文字、图片、视频等信息。
服务器102可以是提供各种服务的服务器,服务器102可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
应理解,图1中的终端设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的终端设备、网络和服务器。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图2,图2是本申请实施例提供的视频数据的抗抖动处理方法的流程示意图,在本申请实施例中,所述方法包括:
S201、获取发送设备和接收设备之间的通信链路的网络质量参数。
一般的,发送设备和接收设备之间的通信链路表示发送设备和接收设备之间用于传输数据的链路,该通信链路可能是发送设备和接收设备之间进行直连形成的链路,也可能是发送设备和接收设备之间通过中继设备通过形成的链路。通信链路可能是发送设备到接收设备之间的链路,也可以是接收设备到发送设备之间的链路,也可以是同时包括发送设备到接收设备之间的链路和接收设备到发送设备之间的链路。网络质量参数用于评价通信链路的网络质量的参数,网络质量参数包括但不限于:往返时延、丢包率、误码率中的一种或多种。
其中,测量通信链路的设备可以是发送设备,也可以是接收设备,在接收设备测量通信链路的网络质量参数时,可以由接收设备将测量的网络质量参数上报给发送设备。
S202、在多个抗抖动策略中确定与网络质量参数匹配的目标抗抖动策略。
一般的,接收设备预存储或预配置有多个抗抖动策略,抗抖动策略用于控制通信链路上传输的视频数据包的时延,使各个视频数据包的时延相等或大致相等,避免出现较大的波动。多个抗抖动策略各自对应不同的网络质量等级,不同的网络质量等级表示通信链路的网络质量的优劣程度。
例如:接收设备预存储或预配置有3个抗抖动策略,3个抗抖动策略各自对应的网络质量等级为恶劣、一般和正常3个网络质量等级,接收设备根据当前测量到的网络质量参数确定网络质量等级,然后根据确定的网络质量等级在3个抗抖动策略中确定目标抗抖动策略。
S203、根据目标抗抖动策略对来自发送设备的视频数据包进行抗抖动处理。
一般的,视频数据包中包括编码后的视频帧,视频数据包中包括一个或多个图像组,图像组中包含至少一个关键帧和至少两个非关键帧,关键帧可以是I帧,非关键帧可以是B帧或P帧。图像组中的视频帧的视频编码的方式包但不限于:音频视频交错格式(audiovideo interleaved,AVI)、实时媒体可比特率(realmedia variable bitrate,RMVB)、动态图像专家组-2(moving picture experts group,MPEG-2)、视频编码-1(Video Codec 1,VC-1)、H.264、MPEG-4、MPEG-2、WMA等,具体的编码原理可参照现有的编码协议的描述,此处不再赘述。
其中,I帧不需要考虑运动矢量;I帧所占数据的信息量比较大。P帧是前向预测编码帧,P帧表示的是与之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面;P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧某点的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧某点的预测值并与差值相加以得到P帧某点样值,从而可得到完整的P帧。B帧是双向预测内插编码帧;B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU负荷会比较大。B帧以前面的I或P帧和后面的P帧为参考帧,找出B帧某点的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中计算预测值并与差值求和,得到B帧某点样值,从而可得到完整的B帧。
实施本申请实施例,获取发送设备和接收设备之间的通信链路的网络质量参数,在预存储或预配置的多个抗抖动策略中确定与该网络质量参数的目标抗抖动策略,以及根据该目标抗抖动策略对来自发送设备的数据数据包进行抗抖动策略,不同的网络质量使用不同的抗抖动策略,实现抗抖动的精细化控制,可以提高视频数据包的抗抖动能力,提高接收设备播放视频的流畅度。
参见图3,为本申请实施例提供的一种视频数据的抗抖动处理方法的另一流程示意图,在本申请实施例中,所述方法包括:
S301、监测发送设备和接收设备之间的通信链路的网络质量参数。
一般的,发送设备和接收设备之间的通信链路表示发送设备和接收设备之间用户进行数据传输的链路,该通信链路可能是发送设备和接收设备之间进行直连形成的链路,也可能是发送设备和接收设备之间通过中继设备通过形成的链路。通信链路可能是发送设备到接收设备之间的链路,也可以是接收设备到发送设备之间的链路,也可以是同时包括发送设备到接收设备之间的通信链路和接收设备到发送设备之间的通信链路。网络质量参数用于评价通信链路的网络质量的参数,网络质量参数包括但不限于:往返时延、丢包率、误码率中的一种或多种。
其中,测量通信链路的设备可以是发送设备,也可以是接收设备,在接收设备测量通信链路的网络质量参数时,可以由接收设备将测量的网络质量参数上报给发送设备。
在一个实施例中,网络质量参数包括往返时延,监测通信链路的网络质量参数包括:发送设备向接收设备发送探测包;发送设备接收接收设备响应于探测包发送的响应包;发送设备根据发送探测包的时刻和接收响应包的时刻计算通信链路的往返时延。
一般的,探测包携带测试标识,测试标识用于区分不同的测试过程,测试标识可以是序号,例如:以1开始以1为步长进行递增编号。探测包包括包头和包体,包头中携带探测包的描述信息,例如:测试标识、校验信息、长度信息等,探测包的包体可以不携带任何数据,即为空的包体。
其中,发送设备还会记录发送探测包的时刻,该发送探测包的时刻记录到本地。
在一个实施例中,发送设备可以在预设时长的时间区间内发送多个探测包,各个探测包具有不同的测试标识,发送设备记录各个探测包的发送时刻。例如:发送设备根据预设的时间间隔发送多个探测包,分别记录各个探测包的发送时刻。
一般的,接收设备接收到探测包后,解析探测包的包头中携带的测试标识,响应于所述探测包生成一个响应包,响应包的包头中携带该测试标识。
例如:接收设备接收到的测试包的测试标识为0x01,接收设备生成一个响应包,该响应包的包头中也携带相同的测试标识0x01。
应理解,发送设备接收到多个探测包的情况下,需要分别为各个探测包返回一个响应包。
在一个实施例中,发送设备每发送一个探测包会启动定时器,在定时器超时后确定该探测包发送失败,定时器的定时时长可根据实际需求来设置,本申请不作限制。例如:定时时长为5ms,发送设备发送探测包时启动定时器,在定时器的定时时长到时,发送设备确定未检测到探测包对应的响应包。
其中,发送设备在发送探测包时会记录探测包的发送时刻,然后接收到响应包时记录该响应包的接收时刻,计算探测包的发送时刻和响应包的接收时刻之间的RTT。
在一个实施例中,通信链路的网络质量参数可以是丢包率,发送设备计算通信链路的丢包率的方法可以是:发送设备在预设的时间区间内向接收设备发送多个探测包,各个探测包携带不同的测试标识,然后发送设备在该时间区间内接收来自接收设备的响应包,统计响应包的数量,根据接收到的响应包的数量和发送的探测包的数量确定通信链路的丢包率。
例如:发送设备在t1时刻和t2时刻之间向接收设备发送100个探测包,各个探测包的测试标识从1到100进行编号,然后在t1时刻和t2时刻之间接收来自接收设备的响应包,统计接收到的响应包的数量,假设接收到80个响应包,确定通信链路的丢包率为(100-80)/100*100%=20%。
在一个实施例中,通信链路的网络质量参数可以是误码率,发送设备计算误码率的方法可以是:发送设备向接收设备发送测试码,测试码中包含的比特位的值、长度和比特位的位置是已知的,接收设备接收测试码,统计接收的测试码中发生错误的比特位,根据发生错误的比特位的数量和测试码的总长度确定误码率。
在一个实施例中,发送设备可以分多次测量通信链路的网络质量参数,然后将测量得到的多个网络质量参数进行平均得到最终的网络质量参数。
S302、在多个互不重合的数值区间中确定网络质量参数所在的数值区间。
其中,接收设备预存储或预配置有多个抗抖动策略,抗抖动策略用于控制通信链路上传输的视频数据包的时延,使各个视频数据包的时延相等或大致相等,避免出现较大的波动。多个抗抖动策略各自对应不同的网络质量等级,不同的网络质量等级表示通信链路的网络质量的优劣程度。
在一个实施例中,接收设备在多个互不重合的数值区间中确定网络质量参数所在的数值区间,然后根据网络质量所在的数值区间确定关联的目标抖动策略。
例如:接收设备预存储或预配置有3个抗抖动策略,3个抗抖动策略各自关联一个数值区间,3个数值区间分别为第一数值区间、第二数值区间和第三数值区间,第三数值区间对应的网络质量优于第二数值区间对应的网络质量,第二数值区间对应的网络质量优于第一数值区间对应的网络质量。接收设备根据测量到的网络质量参数,确定网络质量参数位于3个数值区间中的哪个数值区间,然后确定数值区间关联的目标抗抖动策略。
其中,接收设备可以周期性的测量通信链路的网络质量参数,然后根据当前周期内的网络质量参数确定目标抗抖动策略,根据目标抗抖动策略对当前周期内接收到的视频数据包进行抗抖动处理。
S303、在网络质量参数位于第一数值区间时,获取与第一数值区间关联的目标抗抖动策略。
其中,在网络质量参数位于第一数值区间时,判断视频数据包中每个图像组的关键帧是否解码成功。在图像组中的关键帧解码成功时,继续判断该图像中存在解码失败的非关键帧,根据关键帧和解码成功的非关键帧对解码失败的非关键帧进行修复,以及指示发送设备降低视频数据包的发送码率;若图像组中的关键帧解码失败,丢弃该图像组,以及指示发送设备降低视频数据包的发送码率。视频帧解码失败的原因可能是传输过程中发生丢失或不完整。
在一个实施例中,修复的方法可以是:确定图像组中距离解码失败的非关键帧最近的解码成功的非关键帧,根据该图像组中解码成功的关键帧和图像组中距离解码失败的非关键帧最近的解码成功的非关键帧进行运算得到视频帧,将该视频帧作为解码失败的非关键帧。进一步的,在网络质量参数位于第一数值区间时,通信链路的网络质量较为恶劣,在对图像组中解码失败的非关键帧进行修复时,可以只对图像组中部分解码失败的非关键帧进行修复。例如:只对图像组中奇数位上解码失败的非关键帧进行修复,或只对图像组中偶数位上解码失败的非关键帧进行修复。
在一个实施例中,降低视频数据包的发送码率的方法可以是:发送设备预存储或预配置有分辨率和数值区间之间的映射关系,发送设备获取通信链路的网络质量参数,根据网络质量参数所在的数值区间确定对应的分辨率,网络质量越差对应的分辨率越小,反之网络质量越好对应的分辨率越高。
例如:第一数值区间表示为:丢包率大于30%,往返时延大于1s,通信链路的丢包率和往返时延位于第一数值区间。发送设备当前使用的分辨率为1080P,视频数据包中的一个图像组包括10个视频帧,分别为:
I帧1、P帧2、P帧3、P帧4、P帧5、P帧6、P帧7、P帧8、P帧9和P帧10。接收设备对图像组中的视频帧进行解码,在I帧1解码成功的情况下,继续判断P帧2~P帧9是否解码成功,假设P帧2~P帧8解码失败,P帧9和P帧10解码成功,根据I帧1、P帧9和P帧10进行修复得到P帧2~P帧9,修复的方法可以是:根据解码成功的两个视频帧进行插值运算得到视频帧,同时发送设备指示接收设备将分辨率降低为720P。假设I帧1解码失败的情况下,丢弃图像组,指示发送设备将分辨率降低为720P。
S304、在网络质量参数位于第二数值区间时,获取与第二数值区间关联的目标抗抖动策略。
其中,第二数值区间对应的网络质量优于第一数值区间对应的网络质量,第二数值区间关联的目标抗抖动策略包括:判断图像组中的关键帧是否解码成功;若图像组中的关键帧解码失败,指示发送设备在预设时长内重传关键帧,若在预设时长内未接收到发送设备重传的关键帧,丢弃该图像组,同时接收设备会指示发送设备降低视频数据包的发送码率;若图像组中的关键帧解码成功,在图像组中存在解码失败的非关键帧时,根据关键帧和图像组中解码成功的非关键帧对解码失败的非关键帧进行修复,同时接收设备会指示发送设备降低视频数据包的发送码率。
在一个实施例中,本步骤中对图像组中的非关键帧进行修复时可以对图像组中所有解码失败的非关键帧进行修复。修复的方法可以是,将两个相邻的视频帧相同位置上的数值进行加权平均得到新的矩阵,该新的矩阵作为补帧得到的视频帧的视频数据。
举例来说,参见图4所示,视频帧40为I帧1,视频帧42为P帧3,视频帧41为待补帧:P帧2,接收设备将I帧1和P帧3中坐标相同的像素点的像素值进行加权平均得到P帧2在该坐标对应的像素点的像素值,I帧1的加权系数和P帧3的加权系数为大于0的整数,具体值可以根据需要进行设置。
在一个实施例中,I帧1和P帧3的加权系数相同。例如:I帧1中坐标为(100,100)的像素点的像素值为a,P帧3中坐标为(100,100)的像素点的像素值为b,那么P帧2中坐标为(100,100)的像素点的像素值为(a+b)/2。
在一个实施例中,图像组中的视频帧预先划分为多个像素区域,不同的像素区域具有不同的加权系数,多个像素区域的划分可以根据视频帧中人体的各个部分进行划分,例如:根据人体的头部、手臂、双腿和躯干划分为多个像素区域。
举例来说,参见图5所示,图像组中的视频帧划分为4个像素区域,视频帧50为I帧1,视频帧52为P帧2,视频帧51为待补帧:P帧2,I帧1中包括4个像素区域:像素区域500、像素区域501、像素区域502和像素区域503,P帧2中包括4个像素区域:像素区域520、像素区域521、像素区域522和像素区域523。对像素区域500中各个像素点的像素值和像素区域520中各个像素点的像素值进行加权平均得到P帧2中像素区域510的像素值,像素区域500的加权系数为0.6,像素区域520的加权系数为0.4;对像素区域501中各个像素点的像素值和显示区域521中各个像素点的像素值进行加权平均得到像素区域511的像素值,像素区域501的加权系数为0.5,像素区域521的加权系数为1.5;对像素区域502中各个像素点的像素值和像素区域522中各个像素点的像素值进行加权平均得到像素区域512的像素值,像素区域502的加权系数为0.8,像素区域522的加权系数为0.2;对像素区域503中各个像素点的像素值和像素区域523中各个像素点的像素值进行加权平均得到像素区域513的像素值,像素区域503的加权系数为0.4,像素区域523的加权系数为0.6。
又举例来说:第二数值区间为丢包率为10%~30%之间,且往返时延在500ms~1000ms之间,通信链路的丢包率和往返时延位于第二数值区间。发送设备当前使用的分辨率为1080P。视频数据包中的一个图像组包括10个视频帧,10个视频帧分别为:
I帧1、P帧2、P帧3、P帧4、P帧5、P帧6、P帧7、P帧8、P帧9和P帧10。接收设备对图像组中的I帧1进行解码,若I帧1解码失败,接收设备向发送设备发送用于重传I帧1的指示信息,接收设备同时启动定时器,定时器的定时时长为50ms,在定时时长内未接收到重传的I帧1时,接收设备丢弃该图像组;同时接收设备指示发送设备降低视频数据包的发送码率,降低发送码率的方法可以参照S305的描述,此处不再赘述。若I帧1解码成功,继续判断图像组中是否存在解码失败的非关键帧,假设P帧2~P帧8解码失败,P帧9和P帧10解码成功,根据I帧1、P帧9和P帧10进行修复得到P帧2~P帧9,修复的方法可以是:根据解码成功的两个视频帧进行插值运算得到视频帧,同时发送设备指示接收设备将分辨率降低为720P。假设I帧1解码失败的情况下,丢弃图像组,指示发送设备将分辨率降低为720P。
S305、在网络质量参数位于第三数值区间时,获取与第三数值区间关联的目标抗抖动策略。
其中,第三数值区间对应的网络质量优于第二数值区间对应的网络质量,第三数值区间关联的目标抗抖动策略包括:判断图像组中的关键帧是否解码成功;若图像组中的关键帧解码失败,对图像组进行缓冲处理,指示发送设备在预设时长内重传该关键帧,重传的方法可参照S305的描述,此处不再赘述;其中,视频数据包的发送码率保持不变。若图像组中的关键帧解码成功,继续判断图像组中是否存在解码失败的非关键帧,若为是,根据关键帧和图像组中解码成功的关键帧对图像组中解码失败的非关键帧进行修复,同时视频数据包的发送码率保持不变,进行修复时对图像组中所有解码失败的非关键帧进行修复。
例如:第三数值区间为丢包率为0%~10%之间,且往返时延小于500ms,通信链路的丢包率和往返时延位于第三数值区间。发送设备当前使用的分辨率为1080P。视频数据包中的一个图像组包括10个,10个视频帧分别为:
I帧1、P帧2、P帧3、P帧4、P帧5、P帧6、P帧7、P帧8、P帧9和P帧10。接收设备对图像组中的I帧1进行解码,若I帧1解码失败,接收设备向发送设备发送用于重传I帧1的指示信息,接收设备同时启动定时器,定时器的定时时长为50ms,在定时时长内未接收到重传的I帧1时,接收设备丢弃该图像组,视频数据包的分辨率保持为1080P不变。若I帧1解码成功,继续判断图像组中是否存在解码失败的非关键帧,假设P帧2~P帧8解码失败,P帧9和P帧10解码成功,根据I帧1、P帧9和P帧10进行修复得到P帧2~P帧9,修复的方法可以是:根据解码成功的两个视频帧进行插值运算得到视频帧,视频数据包的分辨率保持不变为1080P。
S306、发送设备向接收设备发送视频数据包。
在一个实施例中,视频数据包包括包头和包体,包头中携带校验信息,接收设备对校验信息进行校验,校验通过后对图像组进行根据S305~S306中任意一种目标抗抖动策略进行抗抖动处理。
S307、根据目标抗抖动策略对来自发送设备的视频数据包进行抗抖动处理。
其中,目标抗抖动策略参照S303~S305的描述,此处不再赘述。
实施本申请实施例,获取发送设备和接收设备之间的通信链路的网络质量参数,在预存储或预配置的多个抗抖动策略中确定与该网络质量参数的目标抗抖动策略,以及根据该目标抗抖动策略对来自发送设备的数据数据包进行抗抖动策略,不同的网络质量使用不同的抗抖动策略,实现抗抖动的精细化控制,可以提高视频数据包的抗抖动能力,提高接收设备播放视频的流畅度。
上述图2至图5详细阐述了视频数据的抗抖动处理方法。相应的本申请实施例的一种视频数据的抗抖动处理装置(简称装置)的结构示意图。
请参见图6,图6是本申请实施例提供的一种装置6的结构示意图,该装置6可以包括获取单元601、确定单元602和处理单元603。
获取单元601,用于获取发送设备和接收设备之间的通信链路的网络质量参数。
确定单元602,用于在多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略。
处理单元603,用于根据所述目标抗抖动策略从对来自所述发送设备的视频数据包进行抗抖动处理;其中,所述视频数据包包括一个或多个图像组,每个图像组包括至少一个关键帧和至少两个非关键帧。
在一个或多个实施例中,确定单元602在多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略,包括:
在多个互不重合的数值区间中确定所述网络质量参数所在的数值区间;
确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略。
在一个或多个实施例中,确定单元602确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数位于第一数值区间时,判断所述图像组中的关键帧是否解码成功;若为否,丢弃所述图像组,以及指示所述发送设备降低视频数据包的发送码率;和/或若为是,在所述图像组中存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,以及指示所述发送设备降低视频数据包的发送码率。
在一个或多个实施例中,确定单元602根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
对所述图像组中奇数位或偶数位上解码失败的非关键帧进行修复。
在一个或多个实施例中,确定单元602所述确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数位于第二数值区间时,判断所述图像组中的关键帧是否解码成功,若为否,对所述图像组进行缓冲处理,指示所述发送设备在预设时长内重传所述关键帧,以及指示所述发送设备降低视频数据包的发送码率;和/或若为是,在所述图像组中存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,以及指示所述发送设备降低传输视频数据包的码率。
在一个或多个实施例中,确定单元602确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数在第三数值区间时,判断所述图像组中的关键帧是否解码成功,若为否,对所述图像组进行缓冲处理,以及指示所述发送设备在预设时长内重传所述关键帧;和/或若为是,在所述图像组中的存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复。
在一个或多个实施例中,确定单元602根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
对所述图像组中所有解码失败的非关键帧进行修复。
在一个或多个实施例中,所述网络质量参数包括丢包率和往返时延中的一种或多种。
装置6可以是终端设备或服务器,所述装置6也可以为实现相关功能的现场可编程门阵列(field-programmable gate array,FPGA),专用集成芯片,系统芯片(system onchip,SoC),中央处理器(central processorunit,CPU),网络处理器(networkprocessor,NP),数字信号处理电路,微控制器(micro controller unit,MCU),还可以采用可编程控制器(programmable logic device,PLD)或其他集成芯片。
图7为本申请实施例提供的一种视频数据的抗抖动处理装置结构示意图,以下简称装置7,装置7可以集成于前述的发送设备或接收设备中,如图7所示,该装置包括:存储器702、处理器701、输入装置703、输出装置704和通信接口。
存储器702可以是独立的物理单元,与处理器701、输入装置703和输出装置704可以通过总线连接。存储器702、处理器701、收发器703也可以集成在一起,通过硬件实现等。
存储器702用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器701调用该程序,执行以上方法实施例的操作。
输入装置702包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的视频数据的抗抖动处理方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(networkprocessor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器可以包括易失性存储器(volatile memory),例如存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flashmemory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的视频数据的抗抖动处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的视频数据的抗抖动处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (11)

1.一种视频数据的抗抖动处理方法,其特征在于,包括:
接收设备获取发送设备和所述接收设备之间的通信链路的网络质量参数;
所述接收设备在多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略;
所述接收设备根据所述目标抗抖动策略对来自所述发送设备的视频数据包进行抗抖动处理;其中,所述视频数据包包括一个或多个图像组,每个图像组包括至少一个关键帧和至少两个非关键帧。
2.根据权利要求1所述的方法,其特征在于,所述接收设备在多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略,包括:
在多个互不重合的数值区间中确定所述网络质量参数所在的数值区间;
确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略。
3.根据权利要求2所述的方法,其特征在于,所述确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数位于第一数值区间时,判断所述图像组中的关键帧是否解码成功;
若为否,丢弃所述图像组,以及指示所述发送设备降低视频数据包的发送码率;和/或,若为是,在所述图像组中存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,以及指示所述发送设备降低视频数据包的发送码率。
4.根据权利要求3所述的方法,其特征在于,所述根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
对所述图像组中奇数位或偶数位上解码失败的非关键帧进行修复。
5.根据权利要求2所述的方法,其特征在于,所述确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数位于第二数值区间时,判断所述图像组中的关键帧是否解码成功;
若为否,对所述图像组进行缓冲处理,指示所述发送设备在预设时长内重传所述关键帧,以及指示所述发送设备降低视频数据包的发送码率;和/或,若为是,在所述图像组中存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,以及指示所述发送设备降低传输视频数据包的码率。
6.根据权利要求2所述的方法,其特征在于,所述确定与所述网络质量参数所在的数值区间关联的目标抗抖动策略,包括:
在所述网络质量参数在第三数值区间时,判断所述图像组中的关键帧是否解码成功;
若为否,对所述图像组进行缓冲处理,以及指示所述发送设备在预设时长内重传所述关键帧;和/或,若为是,在所述图像组中的存在解码失败的非关键帧时,根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复。
7.根据权利要求6所述的方法,其特征在于,所述根据所述关键帧和所述图像组中解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
对所述图像组中所有解码失败的非关键帧进行修复。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述网络质量参数包括丢包率和往返时延中的一种或多种。
9.一种视频数据的抗抖动处理装置,其特征在于,包括:
获取单元,用于获取发送设备和接收设备之间的通信链路的网络质量参数;
确定单元,用于在多个抗抖动策略中确定与所述网络质量参数匹配的目标抗抖动策略;
处理单元,用于根据所述目标抗抖动策略从对来自所述发送设备的视频数据包进行抗抖动处理;其中,所述视频数据包包括一个或多个图像组,每个图像组包括至少一个关键帧和至少两个非关键帧。
10.一种电子设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令,执行如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8任一项所述的方法。
CN201910551307.3A 2019-06-24 2019-06-24 视频数据的抗抖动处理方法、装置、电子设备和存储介质 Pending CN110366003A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910551307.3A CN110366003A (zh) 2019-06-24 2019-06-24 视频数据的抗抖动处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910551307.3A CN110366003A (zh) 2019-06-24 2019-06-24 视频数据的抗抖动处理方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN110366003A true CN110366003A (zh) 2019-10-22

Family

ID=68216604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910551307.3A Pending CN110366003A (zh) 2019-06-24 2019-06-24 视频数据的抗抖动处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110366003A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111641835A (zh) * 2020-05-19 2020-09-08 Oppo广东移动通信有限公司 视频处理方法、视频处理装置和电子设备
CN111813765A (zh) * 2020-06-19 2020-10-23 北京金堤科技有限公司 一种异常数据处理的方法、装置、电子设备、计算机可读介质
CN113747097A (zh) * 2020-05-14 2021-12-03 北京小米移动软件有限公司 视频的处理方法、装置及存储介质
CN115037707A (zh) * 2021-02-22 2022-09-09 中国移动通信有限公司研究院 一种传输抖动控制方法,用户设备和网络侧设备
CN115118636A (zh) * 2022-06-13 2022-09-27 北京达佳互联信息技术有限公司 网络抖动状态的确定方法、装置、电子设备及存储介质
CN116546191A (zh) * 2023-07-05 2023-08-04 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备
CN116647710A (zh) * 2023-06-05 2023-08-25 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质
CN116915688A (zh) * 2023-09-13 2023-10-20 中兴通讯股份有限公司 一种实时音视频传输网络的数据传输方法及系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060120449A1 (en) * 2004-12-06 2006-06-08 Lg Electronics Inc. Method of coding and decoding moving picture
CN101990087A (zh) * 2010-09-28 2011-03-23 深圳中兴力维技术有限公司 无线视频监控系统及根据网络状态动态调整码流的方法
CN102231898A (zh) * 2011-07-05 2011-11-02 深圳市融创天下科技股份有限公司 一种网络带宽自适应qos传输的方法、系统和终端设备
CN103428531A (zh) * 2012-05-25 2013-12-04 中兴通讯股份有限公司 一种多媒体数据的arq控制方法及系统
CN103916208A (zh) * 2012-12-31 2014-07-09 华为技术有限公司 去抖动、抗丢包处理方法及装置
CN105430532A (zh) * 2015-11-18 2016-03-23 南京创维信息技术研究院有限公司 一种视频数据传输自适应调整的控制方法及其系统
CN105791260A (zh) * 2015-11-30 2016-07-20 武汉斗鱼网络科技有限公司 一种网络自适应的流媒体服务质量控制方法及装置
CN106060539A (zh) * 2016-06-16 2016-10-26 深圳风景网络科技有限公司 一种低传输带宽的视频编码方法
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN106791899A (zh) * 2016-12-13 2017-05-31 飞狐信息技术(天津)有限公司 直播中减少观众端画面卡顿的方法及装置以及客户端
CN107566795A (zh) * 2017-09-04 2018-01-09 浙江大华技术股份有限公司 一种提高实时画面流畅度的方法、装置及系统
CN109150876A (zh) * 2018-08-20 2019-01-04 深圳市昊源科技有限公司 一种视频无线传输的qos方法、装置及系统
CN109525447A (zh) * 2019-01-07 2019-03-26 北京大米科技有限公司 一种调整网络传输带宽的方法、装置及电子设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060120449A1 (en) * 2004-12-06 2006-06-08 Lg Electronics Inc. Method of coding and decoding moving picture
CN101990087A (zh) * 2010-09-28 2011-03-23 深圳中兴力维技术有限公司 无线视频监控系统及根据网络状态动态调整码流的方法
CN102231898A (zh) * 2011-07-05 2011-11-02 深圳市融创天下科技股份有限公司 一种网络带宽自适应qos传输的方法、系统和终端设备
CN103428531A (zh) * 2012-05-25 2013-12-04 中兴通讯股份有限公司 一种多媒体数据的arq控制方法及系统
CN103916208A (zh) * 2012-12-31 2014-07-09 华为技术有限公司 去抖动、抗丢包处理方法及装置
CN105430532A (zh) * 2015-11-18 2016-03-23 南京创维信息技术研究院有限公司 一种视频数据传输自适应调整的控制方法及其系统
CN105791260A (zh) * 2015-11-30 2016-07-20 武汉斗鱼网络科技有限公司 一种网络自适应的流媒体服务质量控制方法及装置
CN106060539A (zh) * 2016-06-16 2016-10-26 深圳风景网络科技有限公司 一种低传输带宽的视频编码方法
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN106791899A (zh) * 2016-12-13 2017-05-31 飞狐信息技术(天津)有限公司 直播中减少观众端画面卡顿的方法及装置以及客户端
CN107566795A (zh) * 2017-09-04 2018-01-09 浙江大华技术股份有限公司 一种提高实时画面流畅度的方法、装置及系统
CN109150876A (zh) * 2018-08-20 2019-01-04 深圳市昊源科技有限公司 一种视频无线传输的qos方法、装置及系统
CN109525447A (zh) * 2019-01-07 2019-03-26 北京大米科技有限公司 一种调整网络传输带宽的方法、装置及电子设备

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113747097A (zh) * 2020-05-14 2021-12-03 北京小米移动软件有限公司 视频的处理方法、装置及存储介质
CN111641835B (zh) * 2020-05-19 2023-06-02 Oppo广东移动通信有限公司 视频处理方法、视频处理装置和电子设备
CN111641835A (zh) * 2020-05-19 2020-09-08 Oppo广东移动通信有限公司 视频处理方法、视频处理装置和电子设备
CN111813765A (zh) * 2020-06-19 2020-10-23 北京金堤科技有限公司 一种异常数据处理的方法、装置、电子设备、计算机可读介质
CN111813765B (zh) * 2020-06-19 2024-04-12 北京金堤科技有限公司 一种异常数据处理的方法、装置、电子设备、计算机可读介质
CN115037707A (zh) * 2021-02-22 2022-09-09 中国移动通信有限公司研究院 一种传输抖动控制方法,用户设备和网络侧设备
CN115118636A (zh) * 2022-06-13 2022-09-27 北京达佳互联信息技术有限公司 网络抖动状态的确定方法、装置、电子设备及存储介质
CN115118636B (zh) * 2022-06-13 2024-05-14 北京达佳互联信息技术有限公司 网络抖动状态的确定方法、装置、电子设备及存储介质
CN116647710B (zh) * 2023-06-05 2024-01-26 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质
CN116647710A (zh) * 2023-06-05 2023-08-25 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质
CN116546191A (zh) * 2023-07-05 2023-08-04 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备
CN116546191B (zh) * 2023-07-05 2023-09-29 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备
CN116915688B (zh) * 2023-09-13 2024-01-23 中兴通讯股份有限公司 一种实时音视频传输网络的数据传输方法及系统
CN116915688A (zh) * 2023-09-13 2023-10-20 中兴通讯股份有限公司 一种实时音视频传输网络的数据传输方法及系统

Similar Documents

Publication Publication Date Title
CN110366003A (zh) 视频数据的抗抖动处理方法、装置、电子设备和存储介质
CN110225348A (zh) 视频数据的修复方法、装置、电子设备和存储介质
CN110225347A (zh) 视频数据传输方法、装置、电子设备和存储介质
Fouladi et al. Salsify:{Low-Latency} network video through tighter integration between a video codec and a transport protocol
US11070794B2 (en) Video quality assessment method and apparatus
CN103210642B (zh) 在http流送期间发生表达切换时传送用于自然再现的可缩放http流的方法
US20190327503A1 (en) Use of simultaneously received videos by a system to generate a quality of experience value
CN102714728B (zh) 视频图像编码数据的显示方法、设备和通信系统
CN106982378A (zh) 实时视频传输的带宽调整
CN106851281A (zh) 实时视频传输的初始带宽估计
CN109150876A (zh) 一种视频无线传输的qos方法、装置及系统
CN106973294A (zh) 实时视频传输的初始带宽估计
CN103067749A (zh) Iptv业务质量监测方法、装置和视频服务器
JP2020184805A (ja) ビデオサービス品質の評価方法及び装置
US20140020004A1 (en) Method and apparatus for evaluating video quality
JP2008131443A (ja) 監視システム、及び、その障害状況表示方法
CN107404646A (zh) 视频质量评估的方法、装置和头端设备
Tizon et al. MPEG-4-based adaptive remote rendering for video games
CN106330713B (zh) 一种报文传输方法及装置
US20130227062A1 (en) Apparatus and method of displaying a contents using for key frame in a terminal
KR20230012483A (ko) 5g 네트워크들 상으로의 분할 렌더링의 수행 및 평가
CN107438187A (zh) 实时视频传输的带宽调整
CN102300076B (zh) 会议电视终端动态丢包补偿的方法及会议电视终端
US8270307B2 (en) Network-adaptive preemptive repair in real-time video
CN109862400A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191022