CN108063973A - 一种视频流解码方法及设备 - Google Patents

一种视频流解码方法及设备 Download PDF

Info

Publication number
CN108063973A
CN108063973A CN201711340143.7A CN201711340143A CN108063973A CN 108063973 A CN108063973 A CN 108063973A CN 201711340143 A CN201711340143 A CN 201711340143A CN 108063973 A CN108063973 A CN 108063973A
Authority
CN
China
Prior art keywords
gop
frame
decoding
time
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
CN201711340143.7A
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201711340143.7A priority Critical patent/CN108063973A/zh
Publication of CN108063973A publication Critical patent/CN108063973A/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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种视频流解码方法及设备,用于根据当前的解码能力对后续解码过程的丢帧数目进行调整,以使得解码速度能够与视频流的传输速度相适应,保证视频的流畅播放。该方法包括:确定对视频流中的第一GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对第一GOP进行解码时的第一参考耗时;将第一参考耗时与实际耗时进行比较,根据比较结果确定第一参考耗时与实际耗时不匹配时,对第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对一个GOP进行解码过程中能够忽略不解码的帧数目;待读取到第二GOP时,基于调整后的丢弃帧数目对第二GOP进行解码。

Description

一种视频流解码方法及设备
技术领域
本发明涉及数据处理领域,特别涉及一种视频流解码方法及设备。
背景技术
目前,在通过摄像头采集了监控视频之后,在视频播放客户端查看监控视频时,为了能够快速查找到想要的信息,通常会将监控视频进行加速播放,例如采取2倍速或者4倍速进行播放。
请参见图1,为现有技术中视频播放的流程示意图。其中,用于存储视频的存储设备将视频以视频流的方式发送给客户端,客户端中的接受线程接收视频流后,存储到一级缓冲区,再通过解码线程对依次读取一级缓冲区中的视频流并进行解码,解码后的视频流依次存储在二级缓冲区,在通过对二级缓冲区的视频流进行渲染处理后显示在客户端的播放窗口。其中,在高清高播放速度的场景下,客户端中的解码线程对视频流的解码速度通常达不到接收线程的接受速度时,这样会使得一级缓冲区中的视频流会逐渐增加,直至一级缓冲区中的存储量达到上限,进而使得接收线程阻塞。此时,接收线程则会给存储设备进行反馈,使得存储设备停止发送视频流,直至一级缓存区再次拥有富余的存储空间之时,再次通知存储设备继续进行视频流的发送。这样若是接收线程频繁的向存储设备进行反馈停止或者继续发送视频流会使得视频出现卡顿不流畅的情况。
发明内容
本发明实施例提供一种视频流解码方法及设备,用于根据当前的解码能力对后续解码过程的丢帧数目进行调整,以使得解码速度能够与视频流的传输速度相适应,保证视频的流畅播放。
第一方面,提供一种视频流解码方法,该方法包括:
确定对视频流中的第一画面组GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时;所述当前的帧解码参考速率为所述视频流当前的帧传输实际速率和所述视频流的帧传输理论速率中的最小值;
将所述第一参考耗时与所述实际耗时进行比较,根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对所述一个GOP进行解码过程中能够忽略不解码的帧数目;
待读取到所述第二GOP时,基于所述调整后的丢弃帧数目对所述第二GOP进行解码。
可选的,所述方法还包括:
确定接收所述视频流包括的第一个关键帧时的第一时刻,以及确定接收所述第一个关键帧之后的其他关键帧时的第二时刻;
确定在所述第二时刻时已经接收完毕的总帧数;其中,所述总帧数为关键帧和非关键帧的总和;
根据所述总帧数、所述第一时刻和所述第二时刻计算在所述第二时刻时的帧传输实际速率。
可选的,所述获取解码所述视频流中的第一GOP的实际耗时,包括:
确定开始解码所述第一GOP中的关键帧的第三时刻;其中,一个GOP包括一个关键帧和至少一个非关键帧,所述关键帧为所述一个GOP中的第一个帧;
确定所述第一GOP中的待解码帧全部解码完毕时的第四时刻;所述待解码帧为所述第一GOP中除所述第一GOP对应的丢弃帧数目之外的其他帧,且所述待解码帧至少包括所述关键帧;
计算所述所述第四时刻与所述第三时刻的时间差,以及将所述时间差确定为解码所述第一GOP的实际耗时。
可选的,根据帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时,包括:
在开始解码所述第一GOP中的关键帧时,将GOP解码参考耗时的取值设置为0;
依次对第一GOP中的每一帧进行解码,其中,每针对一帧解码完毕,根据当前的单帧解码参考耗时对所述GOP解码参考耗时的取值进行更新,所述一帧为关键帧或非关键帧,所述当前的单帧解码理论耗时为当前的帧解码参考速率的倒数;
待所述第一GOP中待解码帧全部解码完毕时,将所述GOP解码参考耗时的当前取值确定为对所述第一GOP进行解码时的第一参考耗时。
可选的,所述帧传输理论速率为根据所述视频流的原始帧率和所述视频流当前的播放速度计算所得的值。
可选的,所述根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,包括:
根据比较结果确定所述第一参考耗时小于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之和确定为所述第二GOP的丢弃帧数目;或者,
根据比较结果确定所述第一参考耗时大于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之差确定为所述第二GOP的丢弃帧数目。
第二方面,提供一种视频流解码设备,该设备包括:
确定单元,用于确定对视频流中的第一画面组GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时;所述当前的帧解码参考速率为所述视频流当前的帧传输实际速率和所述视频流的帧传输理论速率中的最小值;
比较单元,用于将所述第一参考耗时与所述实际耗时进行比较,根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对所述一个GOP进行解码过程中能够忽略不解码的帧数目;
解码单元,用于待读取到所述第二GOP时,基于所述调整后的丢弃帧数目对所述第二GOP进行解码。
可选的,
所述确定单元,还用于确定接收所述视频流包括的第一个关键帧时的第一时刻,以及确定接收所述第一个关键帧之后的其他关键帧时的第二时刻;确定在所述第二时刻时已经接收完毕的总帧数;其中,所述总帧数为关键帧和非关键帧的总和;用于根据所述总帧数、所述第一时刻和所述第二时刻计算在所述第二时刻时的帧传输实际速率。
可选的,所述确定单元确定对视频流中的第一画面组GOP进行解码时的实际耗时,包括:
所述确定单元,还用于确定开始解码所述第一GOP中的关键帧的第三时刻;其中,一个GOP包括一个关键帧和至少一个非关键帧,所述关键帧为所述一个GOP中的第一个帧;确定所述第一GOP中的待解码帧全部解码完毕时的第四时刻;所述待解码帧为所述第一GOP中除所述第一GOP对应的丢弃帧数目之外的其他帧,且所述待解码帧至少包括所述关键帧;计算所述所述第四时刻与所述第三时刻的时间差,以及将所述时间差确定为解码所述第一GOP的实际耗时。
可选的,所述确定单元根据帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时,包括:
所述确定单元,还用于在开始解码所述第一GOP中的关键帧时,将GOP解码参考耗时的取值设置为0;依次对第一GOP中的每一帧进行解码,其中,每针对一帧解码完毕,根据当前的单帧解码参考耗时对所述GOP解码参考耗时的取值进行更新,所述一帧为关键帧或非关键帧,所述当前的单帧解码理论耗时为当前的帧解码参考速率的倒数;待所述第一GOP中待解码帧全部解码完毕时,将所述GOP解码参考耗时的当前取值确定为对所述第一GOP进行解码时的第一参考耗时。
可选的,所述帧传输理论速率为根据所述视频流的原始帧率和所述视频流当前的播放速度计算所得的值。
可选的,所述比较单元根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,包括:
所述比较单元根据比较结果确定所述第一参考耗时小于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之和确定为所述第二GOP的丢弃帧数目;或者,根据比较结果确定所述第一参考耗时大于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之差确定为所述第二GOP的丢弃帧数目。
第三方面,提供一种计算机装置,其特征在于,所述装置包括至少一个处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面提供的视频流解码方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的视频流解码方法的步骤。
在本发明实施例中,在对第一画面组(Group of Pictures,GOP)进行解码时,在对第一GOP进行解码的第一参考耗时与实际耗时进行比较的结果为不匹配时,则对第一GOP之后的第二GOP的丢弃帧数目进行调整,并按照调整后的丢弃帧数目对第二GOP进行解码。其中,第一参考耗时是视频流当前的帧传输实际速率和帧传输理论速率中的最小值,即在确定后续需要解码的GOP的丢弃帧数目时,综合考虑了当前的解码能力、当前的视频流的传输速度以及当前的播放速度,从而确定的丢弃帧数目则能够使得解码的速度与视频流的传输速度相适应,以保证视频流的流畅播放。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的视频播放的流程示意图;
图2为本发明实施例提供的视频流解码方法的流程示意图;
图3为本发明实施例提供的视频流解码设备的一种结构示意图;
图4为本发明实施例提供的计算机装置的一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面介绍本发明实施例的技术背景。
目前,在高清高播放速度的场景下,客户端中的解码线程对视频流的解码速度通常达不到接收线程的接受速度时,这样会使得一级缓冲区中的视频流会逐渐增加,直至一级缓冲区中的存储量达到上限,进而使得接收线程阻塞。此时,接收线程则会给存储设备进行反馈,使得存储设备停止发送视频流,直至一级缓存区再次拥有富余的存储空间之时,再次通知存储设备继续进行视频流的发送。这样若是接收线程频繁的向存储设备进行反馈停止或者继续发送视频流会使得视频出现卡顿不流畅的情况。
鉴于此,本发明实施例提供一种视频流解码方法,在该方法中,在对第一画面组(Group of Pictures,GOP)进行解码时,在对第一GOP进行解码的第一参考耗时与实际耗时进行比较的结果为不匹配时,则对第一GOP之后的第二GOP的丢弃帧数目进行调整,并按照调整后的丢弃帧数目对第二GOP进行解码。其中,第一参考耗时是视频流当前的帧传输实际速率和帧传输理论速率中的最小值,即在确定后续需要解码的GOP的丢弃帧数目时,综合考虑了当前的解码能力、当前的视频流的传输速度以及当前的播放速度,从而确定的丢弃帧数目则能够使得解码的速度与视频流的传输速度相适应,以保证视频流的流畅播放。
下面结合附图介绍本发明实施例提供的技术方案。
请参见图2,本发明一实施例提供一种视频流解码方法,该方法可以通过本发明实施例提供视频流解码设备来实现,视频流解码设备可以通过手机或者个人电脑(PersonalComputer,PC)等可以安装视频播放客户端的设备来实现。该方法包括:
步骤101:确定对视频流中的第一GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对第一GOP进行解码时的第一参考耗时;当前的帧解码参考速率为视频流当前的帧传输实际速率和视频流的帧传输理论速率中的最小值;
步骤102:将第一参考耗时与实际耗时进行比较,根据比较结果确定第一参考耗时与实际耗时不匹配时,对第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对一个GOP进行解码过程中能够忽略不解码的帧数目;
步骤103:待读取到第二GOP时,基于丢弃帧数目对第二GOP进行解码。
本发明实施例中,想要在视频流解码设备中播放视频,首先需要向用于存储视频的存储设备请求相应的视频资源。其中,存储设备例如可以是服务器等设备。相应的,存储设备会将请求的视频资源发送给视频流解码设备。
本发明实施例中,视频流解码设备在接收到存储设备发送的视频流包括的第一个关键帧时,可以记录下当前的第一时刻。其中,存储设备发送的视频流可以包括至少一个GOP,一个GOP可以包括一个关键帧和至少一个非关键帧,且在一个GOP中,关键帧一般为该GOP的第一个帧。为了便于识别出关键帧,在视频进行采集的过程中,便在关键帧中添加了能够确定该帧为关键帧的标识,因此,视频流解码设备在收到视频流之后,在则可以根据标识确定视频流中哪些帧为关键帧。
在视频流解码设备后续接收到其他关键帧时,也可以记录下当前的第二时刻,并且可以在第二时刻时,确定已经接收完毕的总帧数。其中,这里的总帧数是指已经接收完毕的所有关键帧和非关键帧的总和。具体的,视频流解码设备可以在每接收到一帧时,则可以将已接收帧数的取值加1,在第二时刻时,在可以将当前的已接收帧数的取值直接确定为已经接收完毕的总帧数。当然,除了可以在收到关键帧之时记录当前的时刻之外,也可以是每接收一帧就记录一次当前的时刻,本发明实施例对此不做限制。
在视频流解码设备获取第二时刻和在第二时刻时已经接收完毕的总帧数之后,则可以根据第一时刻、第二时刻和在第二时刻时已经接收完毕的总帧数确定在第二时刻时的帧传输实际速率。具体的,第一时刻与第二时刻的差值即为接收已经接收完毕的总帧数对应的总耗时,则总帧数与该总耗时的比值即为在第二时刻时的帧传输实际速率。
本发明实施例中,上述计算所得的帧传输实际速率可以用作解码时的帧解码参考速率。但是,为了使得帧解码参考速率的准确性更高,还可以将上述帧传输实际速率与帧传输理论速率进行比较,选择其中较小的值作为最终的帧解码参考速率。具体的,帧传输理论速率可以根据视频流的原始帧率和当前的播放速度计算而得,例如,帧传输理论速率可以为帧传输理论速率为原始帧率与播放速度的乘积。其中,视频流的原始帧率与采集该视频流的采集设备有关,并且在该视频流中也会携带原始帧率信息,因此,可以直接通过视频流中的原始帧率信息获取该视频流的原始帧率。
本发明实施例中,视频流解码设备还可以获取当前对视频流的解码能力。下面将对如何获取当前的解码能力进行描述。
本发明实施例中,可以获取对视频流中的第一GOP进行解码的实际耗时和第一参考耗时。实际耗时为对第一GOP进行解码的实际消耗的时间,而第一参考耗时是根据当前的帧解码参考速率确定的对第一GOP进行解码的所需要的参考耗时。其中,第一GOP可以为视频流中的第一个GOP,当然,也可以是视频流中出第一个GOP之外的其他GOP,本发明实施例对此不做限制。下面将具体以第一GOP为第一个GOP为例来进行描述。
当第一GOP为第一个GOP时,视频流解码设备可以为第一GOP设置一个初始的丢弃帧数目。其中,一个GOP对应的丢弃帧数目,为对一个GOP进行解码过程中能够忽略不解码的帧数目。
具体的,视频流解码设备可以在对第一GOP中的关键帧开始解码时,记录当前的第三时刻,并将此时GOP解码参考耗时的取值设置为0。其中,GOP解码参考耗时是指对当前正在进行解码的GOP中已经解码完毕的帧,进行解码所需要消耗的参考耗时。
本发明实施例中,视频流解码设备可以依次对第一GOP中的每一帧进行解码,且在每针对一帧解码完毕之后,则可以对GOP解码参考耗时的取值进行更新。需要声明的是,这里所述的一帧可以为关键帧,或者可以为非关键帧。
具体的,视频流解码设备可以根据当前的帧解码参考速率实时的计算出当前的单帧解码参考耗时,在每针对一帧解码完毕之后,则使GOP解码参考耗时累加一次单帧解码参考速率的值。其中,单帧解码参考耗时用于表征当前解码一帧所需要消耗的时间。帧解码参考速率是指单位时间内所能解码的帧的数量,那么解码一帧所需要消耗的时间则为帧解码参考速率的倒数,即单帧解码参考耗时为帧解码参考速率的倒数。例如,当帧解码参考速率为25帧每秒(Frames Per Second,FPS)时,那么单帧解码参考耗时则为1/25s,由于在本领域中,时间通常以ms作为单位,因此单帧解码参考耗时又可以表示为1000/25=40ms。
在视频流解码设备对第一GOP中的待解码帧全部解码完毕时,记录下当前的第四时刻,那么对第一GOP进行解码的实际耗时则为第四时刻与第三时刻的时间差。同时,在对第一GOP中的待解码帧全部解码完毕时,将最终累加所得的GOP解码参考耗时确定为第一GOP的第一参考耗时,即当前的GOP解码参考耗时的取值确定为第一GOP的第一参考耗时。其中,待解码帧是指一个GOP中需要进行解码的帧,即为一个GOP中除了丢弃帧数目之外的其他帧,第一GOP的待解码帧即为除去为第一GOP设置的初始的丢弃帧数目之外的其他帧。例如,一个GOP包括25帧,该GOP的丢弃帧数目为5帧,那么这里的待解码帧即为该GOP中的第一帧到第20帧,最后的5帧则直接忽略不进行解码。
本发明实施例中,在视频流解码设备获取对第一GOP进行解码的实际耗时和第一参考耗时之后,则可以将实际耗时和第一参考耗时进行比较,由于第一参考耗时是与帧传输速率相关的,因此比较结果可以确定出当前的实际解码速度是否能够达到当前的视频流传输速度,进而根据比较结果确定是否对第一GOP之后的第二GOP的丢弃帧数目进行调整。其中,第二GOP可以为第一GOP的下一个GOP,当然,也可以是第一GOP之后的任意一个GOP。
具体的,当比较结果表明第一参考耗时与实际耗时不匹配时,则视频流解码设备可以确定对第二GOP的丢弃帧数目进行调整。其中,不匹配可以包括两种情况,即第一参考耗时大于实际耗时,或者第一参考耗时小于实际耗时。
当第一参考耗时大于实际耗时时,说明当前的解码速度已经大于当前的视频流传输速度,也就是说当前的解码能力能够满足当前的播放倍数,那么为了降低解码过程产生的负担,并使得显示的视频画面的质量更高,可以将第二GOP的丢弃帧数目适当的进行下调。其中,可以在第一GOP的丢弃帧数目基础上降低预设调整值,即将第一GOP的丢弃帧数目与预设调整值之差作为第二GOP的丢弃帧数目。预设调整值可以根据原始帧率进行设置。
当第一参考耗时小于实际耗时时,说明当前的解码速度小于当前的视频流传输速度,那么当前的解码能力并不能够满足当前的播放倍数,那么可以将第二GOP的丢弃帧数目适当的增加。其中,可以在第一GOP的丢弃帧数目基础上增加预设调整值,即将第一GOP的丢弃帧数目与预设调整值之和作为第二GOP的丢弃帧数目。
当比较结果表明第一参考耗时与实际耗时匹配时,即第一参考耗时与实际耗时相等时,则不需要对第二GOP的丢弃帧数目进行调整。其中,第一参考耗时与实际耗时相等,可以不是严格意义上的相等,可以第一参考耗时与实际耗时的差在一定阈值范围内,则认为第一参考耗时与实际耗时相等。
本发明实施例中,在确定第二GOP的丢弃帧数目之后,当读取到第二GOP进行解码时,则按照确定的第二GOP的丢弃帧数目对第二GOP进行解码。同时,在对第二GOP进行解码的过程中,还会进行对第一GOP进行解码时的相同操作,即获取对第二GOP进行解码实际耗时和当前的第一参考耗时,以确定第二GOP的下一个GOP的丢弃帧数目。这样,通过不断的调整丢弃帧数目,则可以使得对视频流的解码过程中始终能够根据当前的解码能力确定丢弃帧数目,以使得解码速度与视频流的传输速度相适应,以保证视频流的流畅播放。
综上所述,在对第一GOP进行解码时,在对第一GOP进行解码的第一参考耗时与实际耗时进行比较的结果为不匹配时,则对第一GOP之后的第二GOP的丢弃帧数目进行调整,并按照调整后的丢弃帧数目对第二GOP进行解码。其中,第一参考耗时是视频流当前的帧传输实际速率和帧传输理论速率中的最小值,即在确定后续需要解码的GOP的丢弃帧数目时,综合考虑了当前的解码能力、当前的视频流的传输速度以及当前的播放速度,从而确定的丢弃帧数目则能够使得解码速度与视频流的传输速度相适应,以保证视频流的流畅播放。
下面结合附图介绍本发明实施例提供的设备。
请参见图3,基于同一发明构思,本发明一实施例提供一种视频流解码设备,该设备包括:
确定单元301,用于确定对视频流中的第一画面组GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对第一GOP进行解码时的第一参考耗时;当前的帧解码参考速率为视频流当前的帧传输实际速率和视频流的帧传输理论速率中的最小值;
比较单元302,用于将第一参考耗时与实际耗时进行比较,根据比较结果确定比值与播放速度不匹配时,对第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对一个GOP进行解码过程中能够忽略不解码的帧数目;
解码单元303,用于待读取到第二GOP时,基于调整后的丢弃帧数目对第二GOP进行解码。
可选的,
确定单元301,还用于确定接收视频流包括的第一个关键帧时的第一时刻,以及确定接收第一个关键帧之后的其他关键帧时的第二时刻;确定在第二时刻时已经接收完毕的总帧数;其中,总帧数为关键帧和非关键帧的总和;用于根据总帧数、第一时刻和第二时刻计算在第二时刻时的帧传输实际速率。
可选的,确定单元301确定对视频流中的第一画面组GOP进行解码时的实际耗时,包括:
确定单元301,还用于确定开始解码第一GOP中的关键帧的第三时刻;其中,一个GOP包括一个关键帧和至少一个非关键帧,关键帧为一个GOP中的第一个帧;确定第一GOP中的待解码帧全部解码完毕时的第四时刻;待解码帧为第一GOP中除第一GOP对应的丢弃帧数目之外的其他帧,且待解码帧至少包括关键帧;计算第四时刻与第三时刻的时间差,以及将时间差确定为解码第一GOP的实际耗时。
可选的,确定单元301根据帧解码参考速率确定对第一GOP进行解码时的第一参考耗时,包括:
确定单元301,还用于在开始解码第一GOP中的关键帧时,将GOP解码参考耗时的取值设置为0;依次对第一GOP中的每一帧进行解码,其中,每针对一帧解码完毕,根据当前的单帧解码参考耗时对GOP解码参考耗时的取值进行更新,一帧为关键帧或非关键帧,当前的单帧解码理论耗时为当前的帧解码参考速率的倒数;待第一GOP中待解码帧全部解码完毕时,将GOP解码参考耗时的当前取值确定为对第一GOP进行解码时的第一参考耗时。
可选的,帧传输理论速率为根据视频流的原始帧率和视频流当前的播放速度计算所得的值。
可选的,比较单元302根据比较结果确定第一参考耗时与实际耗时不匹配时,对第一GOP之后的第二GOP的丢弃帧数目进行调整,包括:
比较单元302根据比较结果确定第一参考耗时小于实际耗时时,将第一GOP对应的丢弃帧数目与预设调整值之和确定为第二GOP的丢弃帧数目;或者,根据比较结果确定第一参考耗时大于实际耗时时,将第一GOP对应的丢弃帧数目与预设调整值之差确定为第二GOP的丢弃帧数目。
该设备可以用于执行图2所示的实施例所提供的方法,因此,对于该设备的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。
请参见图4,本发明一实施例还提供一种计算机装置,该计算机装置包括至少一个处理器401,至少一个处理器401用于执行存储器中存储的计算机程序时实现本发明实施例提供的视频流解码方法的步骤。
可选的,至少一个处理器401具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,至少一个处理器401可以包括至少一个处理核心。
可选的,该计算机装置还包括存储器402,存储器402可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器。存储器402用于存储至少一个处理器401运行时所需的数据。存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive)、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

Claims (14)

1.一种视频流解码方法,其特征在于,包括:
确定对视频流中的第一画面组GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时;所述当前的帧解码参考速率为所述视频流当前的帧传输实际速率和所述视频流的帧传输理论速率中的最小值;
将所述第一参考耗时与所述实际耗时进行比较,根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对所述一个GOP进行解码过程中能够忽略不解码的帧数目;
待读取到所述第二GOP时,基于所述调整后的丢弃帧数目对所述第二GOP进行解码。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定接收所述视频流包括的第一个关键帧时的第一时刻,以及确定接收所述第一个关键帧之后的其他关键帧时的第二时刻;
确定在所述第二时刻时已经接收完毕的总帧数;其中,所述总帧数为关键帧和非关键帧的总和;
根据所述总帧数、所述第一时刻和所述第二时刻计算在所述第二时刻时的帧传输实际速率。
3.如权利要求1所述的方法,其特征在于,所述获取解码所述视频流中的第一GOP的实际耗时,包括:
确定开始解码所述第一GOP中的关键帧的第三时刻;其中,一个GOP包括一个关键帧和至少一个非关键帧,所述关键帧为所述一个GOP中的第一个帧;
确定所述第一GOP中的待解码帧全部解码完毕时的第四时刻;所述待解码帧为所述第一GOP中除所述第一GOP对应的丢弃帧数目之外的其他帧,且所述待解码帧至少包括所述关键帧;
计算所述所述第四时刻与所述第三时刻的时间差,以及将所述时间差确定为解码所述第一GOP的实际耗时。
4.如权利要求1所述的方法,其特征在于,根据帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时,包括:
在开始解码所述第一GOP中的关键帧时,将GOP解码参考耗时的取值设置为0;
依次对第一GOP中的每一帧进行解码,其中,每针对一帧解码完毕,根据当前的单帧解码参考耗时对所述GOP解码参考耗时的取值进行更新,所述一帧为关键帧或非关键帧,所述当前的单帧解码理论耗时为当前的帧解码参考速率的倒数;
待所述第一GOP中待解码帧全部解码完毕时,将所述GOP解码参考耗时的当前取值确定为对所述第一GOP进行解码时的第一参考耗时。
5.如权利要求1~4任一项所述的方法,其特征在于,所述帧传输理论速率为根据所述视频流的原始帧率和所述视频流当前的播放速度计算所得的值。
6.如权利要求1~4任一项所述的方法,其特征在于,根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,包括:
根据比较结果确定所述第一参考耗时小于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之和确定为所述第二GOP的丢弃帧数目;或者,
根据比较结果确定所述第一参考耗时大于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之差确定为所述第二GOP的丢弃帧数目。
7.一种视频流解码设备,其特征在于,包括:
确定单元,用于确定对视频流中的第一画面组GOP进行解码时的实际耗时,以及根据当前的帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时;所述当前的帧解码参考速率为所述视频流当前的帧传输实际速率和所述视频流的帧传输理论速率中的最小值;
比较单元,用于将所述第一参考耗时与所述实际耗时进行比较,根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,其中,一个GOP对应的丢弃帧数目,为对所述一个GOP进行解码过程中能够忽略不解码的帧数目;
解码单元,用于待读取到所述第二GOP时,基于所述调整后的丢弃帧数目对所述第二GOP进行解码。
8.如权利要求7所述的设备,其特征在于,
所述确定单元,还用于确定接收所述视频流包括的第一个关键帧时的第一时刻,以及确定接收所述第一个关键帧之后的其他关键帧时的第二时刻;确定在所述第二时刻时已经接收完毕的总帧数;其中,所述总帧数为关键帧和非关键帧的总和;根据所述总帧数、所述第一时刻和所述第二时刻计算在所述第二时刻时的帧传输实际速率。
9.如权利要求7所述的设备,其特征在于,所述确定单元确定对视频流中的第一画面组GOP进行解码时的实际耗时,包括:
所述确定单元,还用于确定开始解码所述第一GOP中的关键帧的第三时刻;其中,一个GOP包括一个关键帧和至少一个非关键帧,所述关键帧为所述一个GOP中的第一个帧;确定所述第一GOP中的待解码帧全部解码完毕时的第四时刻;所述待解码帧为所述第一GOP中除所述第一GOP对应的丢弃帧数目之外的其他帧,且所述待解码帧至少包括所述关键帧;计算所述所述第四时刻与所述第三时刻的时间差,以及将所述时间差确定为解码所述第一GOP的实际耗时。
10.如权利要求7所述的设备,其特征在于,所述确定单元根据帧解码参考速率确定对所述第一GOP进行解码时的第一参考耗时,包括:
所述确定单元,还用于在开始解码所述第一GOP中的关键帧时,将GOP解码参考耗时的取值设置为0;依次对第一GOP中的每一帧进行解码,其中,每针对一帧解码完毕,根据当前的单帧解码参考耗时对所述GOP解码参考耗时的取值进行更新,所述一帧为关键帧或非关键帧,所述当前的单帧解码理论耗时为当前的帧解码参考速率的倒数;待所述第一GOP中待解码帧全部解码完毕时,将所述GOP解码参考耗时的当前取值确定为对所述第一GOP进行解码时的第一参考耗时。
11.如权利要求7~10任一项所述的设备,其特征在于,所述帧传输理论速率为根据所述视频流的原始帧率和所述视频流当前的播放速度计算所得的值。
12.如权利要求7~10任一项所述的设备,其特征在于,所述比较单元根据比较结果确定所述第一参考耗时与所述实际耗时不匹配时,对所述第一GOP之后的第二GOP的丢弃帧数目进行调整,包括:
所述比较单元根据比较结果确定所述第一参考耗时小于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之和确定为所述第二GOP的丢弃帧数目;或者,根据比较结果确定所述第一参考耗时大于所述实际耗时时,将所述第一GOP对应的丢弃帧数目与预设调整值之差确定为所述第二GOP的丢弃帧数目。
13.一种计算机装置,其特征在于,所述装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述方法的步骤。
CN201711340143.7A 2017-12-14 2017-12-14 一种视频流解码方法及设备 Pending CN108063973A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711340143.7A CN108063973A (zh) 2017-12-14 2017-12-14 一种视频流解码方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711340143.7A CN108063973A (zh) 2017-12-14 2017-12-14 一种视频流解码方法及设备

Publications (1)

Publication Number Publication Date
CN108063973A true CN108063973A (zh) 2018-05-22

Family

ID=62138700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711340143.7A Pending CN108063973A (zh) 2017-12-14 2017-12-14 一种视频流解码方法及设备

Country Status (1)

Country Link
CN (1) CN108063973A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022489A (zh) * 2019-05-30 2019-07-16 腾讯音乐娱乐科技(深圳)有限公司 视频播放方法、装置及存储介质
CN110445579A (zh) * 2019-07-31 2019-11-12 广州小鹏汽车科技有限公司 数据处理方法、数据处理装置、车载终端、车辆和介质
CN111669599A (zh) * 2020-06-18 2020-09-15 Oppo广东移动通信有限公司 视频解码方法、视频解码装置及终端设备
CN113068074A (zh) * 2021-03-24 2021-07-02 浙江大华技术股份有限公司 缓存方法和装置、计算机可读的存储介质及电子装置
CN113453054A (zh) * 2021-06-30 2021-09-28 深圳市斯博科技有限公司 音视频丢帧方法、装置、计算机设备及存储介质
CN114666603A (zh) * 2022-05-06 2022-06-24 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质
CN115278305A (zh) * 2022-05-12 2022-11-01 浙江大华技术股份有限公司 视频处理方法、视频处理系统和存储介质
CN115623248A (zh) * 2022-12-19 2023-01-17 腾讯科技(深圳)有限公司 数据处理方法、帧率调整方法、装置,设备及计算机介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946079A (zh) * 2006-11-02 2007-04-11 北京大学 一种网络带宽自适应的流媒体传输选择性丢帧方法
US20120314579A1 (en) * 2011-06-07 2012-12-13 Fujitsu Limited Communication system and communication apparatus
US20140201322A1 (en) * 2013-01-14 2014-07-17 Hon Hai Precision Industry Co., Ltd. Server and method for transmitting videos
CN104053002A (zh) * 2014-06-05 2014-09-17 乐视网信息技术(北京)股份有限公司 视频解码方法和视频解码装置
CN104254018A (zh) * 2014-03-19 2014-12-31 深圳深讯和科技有限公司 多媒体播放中的视频帧处理方法和装置
CN104702968A (zh) * 2015-02-17 2015-06-10 华为技术有限公司 一种视频帧丢帧方法及视频发送装置
CN104822008A (zh) * 2014-04-25 2015-08-05 腾讯科技(北京)有限公司 视频同步方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1946079A (zh) * 2006-11-02 2007-04-11 北京大学 一种网络带宽自适应的流媒体传输选择性丢帧方法
US20120314579A1 (en) * 2011-06-07 2012-12-13 Fujitsu Limited Communication system and communication apparatus
US20140201322A1 (en) * 2013-01-14 2014-07-17 Hon Hai Precision Industry Co., Ltd. Server and method for transmitting videos
CN104254018A (zh) * 2014-03-19 2014-12-31 深圳深讯和科技有限公司 多媒体播放中的视频帧处理方法和装置
CN104822008A (zh) * 2014-04-25 2015-08-05 腾讯科技(北京)有限公司 视频同步方法及装置
CN104053002A (zh) * 2014-06-05 2014-09-17 乐视网信息技术(北京)股份有限公司 视频解码方法和视频解码装置
CN104702968A (zh) * 2015-02-17 2015-06-10 华为技术有限公司 一种视频帧丢帧方法及视频发送装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022489A (zh) * 2019-05-30 2019-07-16 腾讯音乐娱乐科技(深圳)有限公司 视频播放方法、装置及存储介质
CN110445579A (zh) * 2019-07-31 2019-11-12 广州小鹏汽车科技有限公司 数据处理方法、数据处理装置、车载终端、车辆和介质
CN111669599A (zh) * 2020-06-18 2020-09-15 Oppo广东移动通信有限公司 视频解码方法、视频解码装置及终端设备
CN113068074A (zh) * 2021-03-24 2021-07-02 浙江大华技术股份有限公司 缓存方法和装置、计算机可读的存储介质及电子装置
CN113068074B (zh) * 2021-03-24 2023-03-24 浙江大华技术股份有限公司 缓存方法和装置、计算机可读的存储介质及电子装置
CN113453054A (zh) * 2021-06-30 2021-09-28 深圳市斯博科技有限公司 音视频丢帧方法、装置、计算机设备及存储介质
CN114666603A (zh) * 2022-05-06 2022-06-24 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质
CN114666603B (zh) * 2022-05-06 2024-05-03 厦门美图之家科技有限公司 一种视频解码方法、装置、电子设备及存储介质
CN115278305A (zh) * 2022-05-12 2022-11-01 浙江大华技术股份有限公司 视频处理方法、视频处理系统和存储介质
CN115278305B (zh) * 2022-05-12 2024-05-07 浙江大华技术股份有限公司 视频处理方法、视频处理系统和存储介质
CN115623248A (zh) * 2022-12-19 2023-01-17 腾讯科技(深圳)有限公司 数据处理方法、帧率调整方法、装置,设备及计算机介质

Similar Documents

Publication Publication Date Title
CN108063973A (zh) 一种视频流解码方法及设备
US12003887B2 (en) Image encoding method, image encoder and image transmission system
US10666939B2 (en) Method and apparatus for processing video bitrate, storage medium, and electronic device
US8867611B2 (en) Video transmitting method and system with image quality adjusting function
US20090220003A1 (en) Method of compressing video data and a media player for implementing the method
RU2624641C2 (ru) Способ и устройство для регулировки качества видео на основе сетевой среды
US20170180746A1 (en) Video transcoding method and electronic apparatus
US20160065978A1 (en) Image processing apparatus, image processing method, and storage medium
US11356739B2 (en) Video playback method, terminal apparatus, and storage medium
US9794608B2 (en) Video transmission method and video transmission apparatus
US10389785B2 (en) Method for adaptively streaming an audio/visual material
US20200107084A1 (en) Method and device for playback optimization
US10277652B2 (en) Transmission apparatus, transmission method, and program
CN114245196B (zh) 一种录屏推流方法、装置、电子设备及存储介质
CN110087116B (zh) 多码率直播视频流剪辑方法、装置、终端及存储介质
US10674188B2 (en) Playback apparatus, method of controlling playback apparatus, playback method and server apparatus
US10178428B2 (en) Video bitstream processing for enabling tune-in
CN105379281B (zh) 用于使用图形处理器的视频解码的图片参考控制
CN115460458B (zh) 视频丢帧方法和设备
CN106331847A (zh) 音视频播放方法及设备
US20160211002A1 (en) Video data file generation method and video data file generation apparatus
JP5739079B1 (ja) 動画圧縮装置および動画圧縮伸長システム
EP3661216A1 (en) A method and apparatus for loop-playing video content
US9467691B2 (en) Video system for displaying image data, method and computer program
US11496535B2 (en) Video data transmission apparatus, video data transmitting method, and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180522

RJ01 Rejection of invention patent application after publication