CN110225348A - 视频数据的修复方法、装置、电子设备和存储介质 - Google Patents

视频数据的修复方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110225348A
CN110225348A CN201910550435.6A CN201910550435A CN110225348A CN 110225348 A CN110225348 A CN 110225348A CN 201910550435 A CN201910550435 A CN 201910550435A CN 110225348 A CN110225348 A CN 110225348A
Authority
CN
China
Prior art keywords
frame
key frame
image group
key
decoded
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
CN201910550435.6A
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 CN201910550435.6A priority Critical patent/CN110225348A/zh
Publication of CN110225348A publication Critical patent/CN110225348A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种视频数据的修复方法、装置和存储介质,对来自发送设备的视频数据包中的图像组进行解码;若图像组中的关键帧解码成功,判断图像组中是否存在解码失败的非关键帧;其中,图像组中包含一个关键帧和至少两个非关键帧;若为是,根据图像组中解码成功的关键帧和解码成功的非关键帧对图像组中解码失败的非关键帧进行修复,本申请可以通过帧修复处理使图像组包含完整的视频帧,在对图像组进行解码后能提高视频画面播放的流畅度。

Description

视频数据的修复方法、装置、电子设备和存储介质
技术领域
本申请涉及视频处理领域,尤其涉及一种视频数据的修复方法、装置、电子设备和存储介质。
背景技术
为了便于视频内容的存储和传输,通常需要减少视频内容的大小,即需要将视频的原始内容元素进行压缩,这种技术称为视频编码;与视频编码对应的,当需要对视频进行播放时,也需要对编码后的视频进行相应的解码,才能读取到画面并渲染显示。
为了便于解码,以及提高解码效率,编码器在对多张原始图像进行编码后,会生成多个图像组(group of pictures,GOP),编码器在播放时就可以读取多个GOP,以进行编码,而需要等待所有的编码数据都读取完毕,才能进行解码,也就是说GOP是视频图像编码器和解码器存取的单位。
一般的,GOP可以由一张I帧和多张B帧或P帧组成,I帧是内部编码帧,每个GOP的第一个帧,是一个完整的图像;P帧是前向预测帧,记录的是相对于I帧和相邻前一个P帧的变化,B帧是双向内插帧,与P帧的区别在于,它既可以参考I帧或相邻的前一个帧,也可以参考相邻的后一个帧,即P帧记录的是相对于相邻前后帧的变化。
发明内容
本申请实施例解决的技术问题是:在发送设备和接收设备之间的通信链路的网络质量不稳定时,在通信链路上传输视频数据包的丢包率或时延较大,接收设备播放视频画面会造成不流畅的现象。
为解决上述技术问题,本申请提供了一种视频数据的修复方法,包括:
对来自所述发送设备的视频数据包中的图像组进行解码;若图像组中的关键帧解码成功时,判断图像组中是否存在解码失败的非关键帧,其中,图像组中包含一个关键帧和至少两个非关键帧,若为是,根据图像组中解码成功的关键帧和解码成功的非关键帧对图像组中解码失败的非关键帧进行修复。
在一种可能的设计中,根据图像组中解码成功的关键帧和解码成功的非关键帧对图像组中解码失败的非关键帧进行修复之前,还包括:
监测发送设备和接收设备之间的通信链路的网络质量参数;根据网络质量参数确定通信链路的网络状态为异常。
在一种可能的设计中,网络质量参数包括丢包率和往返时延中的一种或多种。
在一种可能的设计中,根据图像组中解码成功的关键帧和解码成功的非关键帧对图像组中解码失败的非关键帧进行修复,包括:
确定与待修复帧相邻的解码成功的非关键帧,以及获取所述关键帧和相邻的解码成功的非关键帧中相同位置的像素值;将关键帧和相邻的解码成功的非关键帧中相同位置的像素值进行加权平均得到待修复帧的像素值。
在一种可能的设计中,关键帧和相邻的解码成功的非关键帧的加权系数相同。
在一种可能的设计中,图像组中各个视频帧预先划分为多个像素区域,各个像素区域具有不同的加权系数。
在一种可能的设计中,若图像组中的关键帧解码失败,指示所述发送设备在预设时长内重传关键帧;若在预设时长内未接收到发送设备重传的关键帧,丢弃图像组。
本申请又一方面提供了一种装置,可以实现上述第一方面或第二方面的视频数据的修复方法。例如所述装置可以是芯片(如数字处理芯片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、对来自发送设备的视频数据包中的图像组进行解码。
一般的,视频数据包中包括编码后的视频帧,视频数据包中包括一个或多个图像组,图像组中包含一个关键帧和至少两个非关键帧,关键帧可以是I帧,非关键帧可以是B帧或P帧。图像组中的视频帧的视频编码的方式包但不限于:音频视频交错格式(audio videointerleaved,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帧。
其中,接收设备识别视频数据包中视频帧的编码格式,根据编码格式对应的解码算法以图像组为单位对视频数据包进行解码得到原始图像。
S202、若图像组中的关键帧解码成功,判断图像组中是否存在解码失败的非关键帧。
其中,解码失败的原因可能是视频帧(关键帧或非关键帧)发生丢失或发生变更,这样接收设备无法对视频帧进行解码。
S203、若为是,根据图像组中解码成功的关键帧和解码成功的非关键帧对图像组中解码失败的非关键帧进行修复。
其中,补帧表示根据图像组中解码成功的关键帧和非关键帧推测出图像组中解码失败的非关键帧中各个像素点的取值。接收设备在完成补帧之后,可以根据完成补帧的视频帧再次进行修复。接收设备可以对图像组中所有解码失败的非关键帧进行修复,也可以对图像组中指定位置上解码失败的非关键帧进行修复,例如:对图像组中奇数位或偶数位上解码失败的非关键帧进行修复。
实施本申请实施例,对来自发送设备的视频数据包中的图像组进行解码,在图像组中的关键帧解码成功但是该图像组中的非关键帧解码失败时,根据图像组中解码成功的关键帧和非关键帧对图像组中解码失败的非关键帧进行修复,帧修复后得到解码失败的非关键帧的像素值,这样能避免图像组中的非关键帧解码失败造成的视频画面播放不流畅的问题,通过帧修复处理使图像组包含完整的视频帧,在对图像组进行解码后能提高视频画面播放的流畅度。
参见图3,为本申请实施例提供的一种视频数据的修复方法的另一流程示意图,在本申请实施例中,所述方法包括:
S301、监测发送设备和接收设备之间的通信链路的网络质量参数。
一般的,发送设备和接收设备之间的通信链路表示发送设备和接收设备之间用户进行数据传输的链路,该通信链路可能是发送设备和接收设备之间进行直连形成的链路,也可能是发送设备和接收设备之间通过中继设备通过形成的链路。通信链路可能是发送设备到接收设备之间的链路,也可以是接收设备到发送设备之间的链路,也可以是同时包括发送设备到接收设备之间的通信链路和接收设备到发送设备之间的通信链路。网络质量参数用于评价通信链路的网络质量的参数,网络质量参数包括但不限于:往返时延、丢包率、误码率中的一种或多种。
其中,测量通信链路的设备可以是发送设备,也可以是接收设备,在接收设备测量通信链路的网络质量参数时,可以由接收设备将测量的网络质量参数上报给发送设备。
在一个实施例中,网络质量参数包括往返时延,监测通信链路的网络质量参数包括:发送设备向接收设备发送探测包;发送设备接收接收设备响应于探测包发送的响应包;发送设备根据发送探测包的时刻和接收响应包的时刻计算通信链路的往返时延。
一般的,探测包携带测试标识,测试标识用于区分不同的测试过程,测试标识可以是序号,例如:以1开始以1为步长进行递增编号。探测包包括包头和包体,包头中携带探测包的描述信息,例如:测试标识、校验信息、长度信息等,探测包的包体可以不携带任何数据,即为空的包体。
其中,发送设备还会记录发送探测包的时刻,该发送探测包的时刻记录到本地。
在一个实施例中,发送设备可以在预设时长的时间区间内发送多个探测包,各个探测包具有不同的测试标识,发送设备记录各个探测包的发送时刻。例如:发送设备根据预设的时间间隔发送多个探测包,分别记录各个探测包的发送时刻。
一般的,接收设备接收到探测包后,解析探测包的包头中携带的测试标识,响应于所述探测包生成一个响应包,响应包的包头中携带该测试标识。
例如:接收设备接收到的测试包的测试标识为0x01,接收设备生成一个响应包,该响应包的包头中也携带相同的测试标识0x01。
应理解,发送设备接收到多个探测包的情况下,需要分别为各个探测包返回一个响应包。
在一个实施例中,发送设备每发送一个探测包会启动定时器,在定时器超时后确定该探测包发送失败,定时器的定时时长可根据实际需求来设置,本申请不作限制。例如:定时时长为5ms,发送设备发送探测包时启动定时器,在定时器的定时时长到时,发送设备确定未检测到探测包对应的响应包。
其中,发送设备在发送探测包时会记录探测包的发送时刻,然后接收到响应包时记录该响应包的接收时刻,计算探测包的发送时刻和响应包的接收时刻之间的RTT。
在一个实施例中,通信链路的网络质量参数可以是丢包率,发送设备计算通信链路的丢包率的方法可以是:发送设备在预设的时间区间内向接收设备发送多个探测包,各个探测包携带不同的测试标识,然后发送设备在该时间区间内接收来自接收设备的响应包,统计响应包的数量,根据接收到的响应包的数量和发送的探测包的数量确定通信链路的丢包率。
例如:发送设备在t1时刻和t2时刻之间向接收设备发送100个探测包,各个探测包的测试标识从1到100进行编号,然后在t1时刻和t2时刻之间接收来自接收设备的响应包,统计接收到的响应包的数量,假设接收到80个响应包,确定通信链路的丢包率为(100-80)/100*100%=20%。
在一个实施例中,通信链路的网络质量参数可以是误码率,发送设备计算误码率的方法可以是:发送设备向接收设备发送测试码,测试码中包含的比特位的值、长度和比特位的位置是已知的,接收设备接收测试码,统计接收的测试码中发生错误的比特位,根据发生错误的比特位的数量和测试码的总长度确定误码率。
在一个实施例中,发送设备可以分多次测量通信链路的网络质量参数,然后将测量得到的多个网络质量参数进行平均得到最终的网络质量参数。
S302、根据网络质量参数确定通信链路的网络状态为异常。
例如:网络质量参数为往返时延RTT,发送设备预存储或预配置有时长阈值,时长阈值可以根据实际需要进行设置,本申请不作限制。发送设备判断RTT是否大于时长阈值,则通信链路的网络状态为异常;若RTT小于或等于时长阈值,则通信链路的网络状态为正常。
S303、对来自发送设备的视频数据包进行解码。
其中,接收设备接收来自发送设备的视频数据包,视频数据包中包括一个或多个图像组,接收设备获取图像组中视频帧的编码格式,根据编码格式对应的解码算法对以图像组为单位进行视频解码。图像组中包含一个关键帧和至少两个非关键帧。
S304、判断图像组中的关键帧是否解码成功。
其中,接收设备判断图像组中的关键帧解码成功或解码失败的方法可以是:接收设备将关键帧输入到解码器,解码器能否根据编码后的关键帧得到视频画面,关键帧失败的原因可能是传输过程中发生变更或丢失。
S305、确定图像组中存在解码失败的非关键帧。
其中,在图像组中关键帧解码成功时,接收设备进一步判断图像组中是否存在解码失败的非关键帧。非关键帧的解码需要依赖相关帧来完整,例如:P帧需要根据前一帧来实现解码,B帧需要根据前一帧和后一帧来实现解码。
例如:视频数据包中的一个图像组包括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帧4、P帧6和P帧7解码失败。
S306、确定与待修复帧相邻的解码成功的非关键帧,以及获取关键帧和相邻的解码成功的非关键帧中相同位置的像素值。
其中,待修复帧为图像组中解码失败的非关键帧中的任意一个视频帧,根据图像组中各个视频帧的位置和解码状态,确定与待修复帧相邻的解码成功的非关键帧,以及获取关键帧和相邻的解码成功的非关键帧中相同位置的像素值。
举例来说,根据S305的例子,解码失败的非关键帧为:P帧2、P帧4、P帧6和P帧7,待修复帧为P帧2,P帧2相邻的非关键帧为P帧3,图像组中各个视频帧的分辨率是相同的,获取I帧1中各个像素点的像素值,以及获取P帧3中各个像素点的像素值,将I帧1和P帧3中相同位置的像素点的像素值进行加权平均得到P帧3的像素点的像素值。假设I帧1的分辨率为1024*768,I帧1中像素点的坐标范围为(x,y),1≤x≤1024,1≤y≤768,x和y为整数;P帧3的分辨率为1024*768,P帧3中像素点的坐标范围表示为(i,j),1≤i≤1024,1≤j≤768,i和j为整数,x=i且y=i时,I帧1中的像素点的位置和P帧3中像素点的位置是相同的。
S307、将关键帧和相邻的解码成功的非关键帧中相同位置的像素值进行加权平均得到待修复帧的像素值。
举例来说,参见图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。
又举例来说,视频帧中划分的像素区域包括手臂,I帧1中人物的手臂的像素值矩阵为:
a1,a2,a3;
b1,b2。b3;
c1,c2,c3。
P帧3中手臂的像素值矩阵为:
a1+4,a2+4,a3+4;
b1+4,b2+4,b3+4;
c1+4,c2+4,c3+4。
则可以将两图像中手臂的像素值矩阵的均值作为待修复帧P帧2的像素值矩阵:
a1+2,a2+2,a3+2;
b1+2,b2+2,b3+2;
c1+2,c2+2,c3+2。
S308、指示发送设备在预设时长内重传关键帧。
其中,若图像组中的关键帧解码失败,发送设备向接收设备发送重传指示,重传指示携带关键帧的索引,关键帧的索引可以使用关键帧在视频数据包中的绝对索引或关键帧在图像组中的相对索引来表示,重传指示用于指示发送设备在预设时长内重传关键帧。
例如:视频数据包中包括3个图像组,每个图像组包括4个视频帧,视频数据包一共包括12个视频帧,视频帧的编号从0~11进行编号;或每个图像组中的视频帧从0~3进行编号,图像组从0~2进行编号。
S309、若在预设时长内未接收到发送设备重传的关键帧,丢弃图像组。
举例来说,若图像组中的I帧1解码失败,接收设备向发送设备发送用于重传I帧1的重传指示,接收设备同时启动定时器,定时器的定时时长为50ms,在定时时长内未接收到重传的I帧1时,接收设备丢弃该图像组。
实施本申请实施例,对来自发送设备的视频数据包中的图像组进行解码,在图像组中的关键帧解码成功但是该图像组中的非关键帧解码失败时,根据图像组中解码成功的关键帧和非关键帧对图像组中解码失败的非关键帧进行修复,帧修复后得到解码失败的非关键帧的像素值,这样能避免图像组中的非关键帧解码失败造成的视频画面播放不流畅的问题,通过帧修复处理使图像组包含完整的视频帧,在对图像组进行解码后能提高视频画面播放的流畅度。
上述图2至图5详细阐述了视频数据的修复方法。相应的本申请实施例的一种视频数据的修复装置(简称装置)的结构示意图。
请参见图6,图6是本申请实施例提供的一种装置6的结构示意图,该装置6可以包括解码单元601、判断单元602和补帧单元603。
解码单元601,用于对来自发送设备的视频数据包中的图像组进行解码。
判断单元602,用于若所述图像组中的关键帧解码成功时,判断所述图像组中是否存在解码失败的非关键帧;其中,所述图像组中包含一个关键帧和至少两个非关键帧。
补帧单元603,用于若所述判断单元的判断结果为是,根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复。
在一个或多个实施例中,装置6还包括:
监测单元,用于监测发送设备和接收设备之间的通信链路的网络质量参数;
根据所述网络质量参数确定所述通信链路的网络状态为异常。
在一个或多个实施例中,所述网络质量参数包括:丢包率和往返时延中的一种或多种。
在一个或多个实施例中,补帧单元603根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
确定与待修复帧相邻的解码成功的非关键帧,以及获取所述关键帧和所述相邻的解码成功的非关键帧中相同位置的像素值;
将所述关键帧和所述相邻的解码成功的非关键帧中相同位置的像素值进行加权平均得到所述待修复帧的像素值。
在一个或多个实施例中,所述关键帧和所述相邻的解码成功的非关键帧的加权系数相同。
在一个或多个实施例中,图像组中各个视频帧预先划分为多个像素区域,各个像素区域具有不同的加权系数。
在一个或多个实施例中,装置6还包括:
丢弃单元,用于若所述图像组中的关键帧解码失败,指示所述发送设备在预设时长内重传所述关键帧;
若在所述预设时长内未接收到所述发送设备重传的所述关键帧,丢弃所述图像组。
装置6可以是终端设备或服务器,所述装置6也可以为实现相关功能的现场可编程门阵列(field-programmable gate array,FPGA),专用集成芯片,系统芯片(system onchip,SoC),中央处理器(central processor unit,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也可以集成在一起,通过硬件实现等。
存储器802用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器801调用该程序,执行以上方法实施例的操作。
输入装置802包括但不限于键盘、鼠标、触摸面板、摄像头和麦克风;输出装置包括但限于显示屏。
通信接口用于收发各种类型的消息,通信接口包括但不限于无线接口或有线接口。
可选地,当上述实施例的视频数据的修复方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器可以是中央处理器(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 (10)

1.一种视频数据的修复方法,其特征在于,包括:
对来自发送设备的视频数据包中的图像组进行解码;其中,所述图像组中包含至少一个关键帧和至少两个非关键帧;
若所述图像组中的关键帧解码成功,判断所述图像组中是否存在解码失败的非关键帧;
若为是,根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复。
2.根据权利要求1所述的方法,其特征在于,所述根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复之前,还包括:
监测发送设备和接收设备之间的通信链路的网络质量参数;
根据所述网络质量参数确定所述通信链路的网络状态为异常。
3.根据权利要求2所述的方法,其特征在于,所述网络质量参数包括:丢包率和往返时延中的一种或多种。
4.根据权利要求1~3任意一项所述的方法,其特征在于,所述根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复,包括:
确定与待修复帧相邻的解码成功的非关键帧,以及获取所述关键帧和所述相邻的解码成功的非关键帧中相同位置的像素值;
将所述关键帧和所述相邻的解码成功的非关键帧中相同位置的像素值进行加权平均得到所述待修复帧的像素值。
5.根据权利要求4所述的方法,其特征在于,所述关键帧和所述相邻的解码成功的非关键帧的加权系数相同。
6.根据权利要求4所述的方法,其特征在于,图像组中各个视频帧预先划分为多个像素区域,各个像素区域具有不同的加权系数。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
若所述图像组中的关键帧解码失败,指示所述发送设备在预设时长内重传所述关键帧;
若在所述预设时长内未接收到所述发送设备重传的所述关键帧,丢弃所述图像组。
8.一种视频数据的修复装置,其特征在于,包括:
解码单元,用于对来自发送设备的视频数据包中的图像组进行解码;其中,所述图像组中包含一个关键帧和至少两个非关键帧;
判断单元,用于若所述图像组中的关键帧解码成功时,判断所述图像组中是否存在解码失败的非关键帧;
补帧单元,用于若所述判断单元的判断结果为是,根据所述图像组中解码成功的关键帧和解码成功的非关键帧对所述图像组中解码失败的非关键帧进行修复。
9.一种电子设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201910550435.6A 2019-06-24 2019-06-24 视频数据的修复方法、装置、电子设备和存储介质 Pending CN110225348A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910550435.6A CN110225348A (zh) 2019-06-24 2019-06-24 视频数据的修复方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910550435.6A CN110225348A (zh) 2019-06-24 2019-06-24 视频数据的修复方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN110225348A true CN110225348A (zh) 2019-09-10

Family

ID=67814493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910550435.6A Pending CN110225348A (zh) 2019-06-24 2019-06-24 视频数据的修复方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110225348A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314640A (zh) * 2020-02-23 2020-06-19 苏州浪潮智能科技有限公司 一种视频压缩方法、设备以及介质
CN111640173A (zh) * 2020-05-09 2020-09-08 杭州群核信息技术有限公司 一种基于特定路径的家装漫游动画的云端渲染方法及系统
CN111950517A (zh) * 2020-08-26 2020-11-17 司马大大(北京)智能系统有限公司 一种目标检测方法、模型训练方法,电子设备及存储介质
CN112717389A (zh) * 2020-12-31 2021-04-30 贵阳动视云科技有限公司 一种云游戏图像花屏修复方法及装置
CN115589450A (zh) * 2022-09-01 2023-01-10 荣耀终端有限公司 一种视频录制的方法和装置
CN115604540A (zh) * 2022-09-01 2023-01-13 荣耀终端有限公司(Cn) 视频获取方法及装置
CN116546191A (zh) * 2023-07-05 2023-08-04 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备
CN116647710A (zh) * 2023-06-05 2023-08-25 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321284A (zh) * 2007-06-10 2008-12-10 华为技术有限公司 一种编解码方法、设备及系统
CN101355708A (zh) * 2007-07-25 2009-01-28 中兴通讯股份有限公司 一种自适应误码掩盖方法
CN106060539A (zh) * 2016-06-16 2016-10-26 深圳风景网络科技有限公司 一种低传输带宽的视频编码方法
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN107231328A (zh) * 2016-03-23 2017-10-03 福建星网锐捷通讯股份有限公司 实时视频传输方法、装置、设备及系统
CN108243338A (zh) * 2016-12-23 2018-07-03 杭州海康威视数字技术股份有限公司 视频解码、编码方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321284A (zh) * 2007-06-10 2008-12-10 华为技术有限公司 一种编解码方法、设备及系统
CN101355708A (zh) * 2007-07-25 2009-01-28 中兴通讯股份有限公司 一种自适应误码掩盖方法
CN107231328A (zh) * 2016-03-23 2017-10-03 福建星网锐捷通讯股份有限公司 实时视频传输方法、装置、设备及系统
CN106060539A (zh) * 2016-06-16 2016-10-26 深圳风景网络科技有限公司 一种低传输带宽的视频编码方法
CN106713947A (zh) * 2016-12-13 2017-05-24 飞狐信息技术(天津)有限公司 减少直播时延和卡顿的方法及装置、直播系统
CN108243338A (zh) * 2016-12-23 2018-07-03 杭州海康威视数字技术股份有限公司 视频解码、编码方法、装置及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314640A (zh) * 2020-02-23 2020-06-19 苏州浪潮智能科技有限公司 一种视频压缩方法、设备以及介质
CN111314640B (zh) * 2020-02-23 2022-06-07 苏州浪潮智能科技有限公司 一种视频压缩方法、设备以及介质
CN111640173A (zh) * 2020-05-09 2020-09-08 杭州群核信息技术有限公司 一种基于特定路径的家装漫游动画的云端渲染方法及系统
CN111640173B (zh) * 2020-05-09 2023-04-21 杭州群核信息技术有限公司 一种基于特定路径的家装漫游动画的云端渲染方法及系统
CN111950517A (zh) * 2020-08-26 2020-11-17 司马大大(北京)智能系统有限公司 一种目标检测方法、模型训练方法,电子设备及存储介质
CN112717389A (zh) * 2020-12-31 2021-04-30 贵阳动视云科技有限公司 一种云游戏图像花屏修复方法及装置
CN115604540A (zh) * 2022-09-01 2023-01-13 荣耀终端有限公司(Cn) 视频获取方法及装置
CN115589450A (zh) * 2022-09-01 2023-01-10 荣耀终端有限公司 一种视频录制的方法和装置
CN115604540B (zh) * 2022-09-01 2023-11-14 荣耀终端有限公司 视频获取方法、电子设备及介质
CN115589450B (zh) * 2022-09-01 2024-04-05 荣耀终端有限公司 一种视频录制的方法和装置
CN116647710A (zh) * 2023-06-05 2023-08-25 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质
CN116647710B (zh) * 2023-06-05 2024-01-26 美琦佳成网络科技有限公司 一种基于社交群聊的直播方法、系统及存储介质
CN116546191A (zh) * 2023-07-05 2023-08-04 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备
CN116546191B (zh) * 2023-07-05 2023-09-29 杭州海康威视数字技术股份有限公司 视频链路质量检测方法、装置及设备

Similar Documents

Publication Publication Date Title
CN110225348A (zh) 视频数据的修复方法、装置、电子设备和存储介质
CN110366003A (zh) 视频数据的抗抖动处理方法、装置、电子设备和存储介质
CN110225347A (zh) 视频数据传输方法、装置、电子设备和存储介质
US5768533A (en) Video coding using segmented frames and retransmission to overcome channel errors
CN101060633B (zh) 图像显示装置
CN106851281B (zh) 实时视频传输的初始带宽估计
CN102714728B (zh) 视频图像编码数据的显示方法、设备和通信系统
US20050166050A1 (en) Encoded data receiving device and method for updating decoding keys
JP2000341688A (ja) 動画通信品質判定装置
CN104284135B (zh) 视频传输方法及设备
JP2007143113A (ja) 送受信システム、送信装置、および送信方法
US20140020004A1 (en) Method and apparatus for evaluating video quality
CN103430538A (zh) 用于视频编码的基于反馈的参考帧选择
CN106330713B (zh) 一种报文传输方法及装置
US8270307B2 (en) Network-adaptive preemptive repair in real-time video
CN109862400A (zh) 一种流媒体传输方法、装置及其系统
CN107438187A (zh) 实时视频传输的带宽调整
CN103813175A (zh) 传输装置、传输方法、接收装置、接收方法和计算机程序
CN104079859B (zh) 基于反馈机制的视频传输速率自适应系统
CN106162375A (zh) 影像播放装置及影像播放方法
KR20180045719A (ko) 영상품질 측정장치 및 방법
JP6881437B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
CN112055174B (zh) 一种视频传输方法、装置及计算机可读存储介质
Chen et al. Study on relationship between network video packet loss and video quality
JP2001086153A (ja) データ通信装置、データ通信システム、データ通信方法及び記憶媒体

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: 20190910