CN110677715A - 一种解码方法、解码器、电子设备及存储介质 - Google Patents

一种解码方法、解码器、电子设备及存储介质 Download PDF

Info

Publication number
CN110677715A
CN110677715A CN201910964291.9A CN201910964291A CN110677715A CN 110677715 A CN110677715 A CN 110677715A CN 201910964291 A CN201910964291 A CN 201910964291A CN 110677715 A CN110677715 A CN 110677715A
Authority
CN
China
Prior art keywords
coded data
buffer queue
encoded data
decoder
data buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910964291.9A
Other languages
English (en)
Other versions
CN110677715B (zh
Inventor
陈宇聪
郑云飞
闻兴
陈敏
黄跃
王晓楠
赵明菲
于冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201910964291.9A priority Critical patent/CN110677715B/zh
Publication of CN110677715A publication Critical patent/CN110677715A/zh
Application granted granted Critical
Publication of CN110677715B publication Critical patent/CN110677715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

本公开是关于一种解码方法、解码器、电子设备及存储介质,该方法包括:响应于接收到播放器发送的调用指令,创建编码数据缓存队列;响应于编码数据缓存队列中包含的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。该方案避免了解码器在完成一个编码数据的解码之后需要等待下一个编码数据,而造成的解码器处于空闲状态的问题,可提升解码器的解码效率。

Description

一种解码方法、解码器、电子设备及存储介质
技术领域
本公开涉及计算机领域,具体涉及解码方法、解码器、电子设备及存储介质。
背景技术
在播放视频时,需要由解码器对视频中的视频帧的编码数据进行解码,得到视频帧,将可视频帧加入到显示队列,播放器从显示队列中获取视频帧,对视频帧进行显示。
在相关技术中,采用播放器主动调用解码器的方式对编码数据进行解码。播放器主动调用解码器的方式为:播放器每间隔预设时长调用解码器并且向解码器发送一个视频帧的编码数据,解码器每一次在一个时长为预设时长的解码周期内对一个视频帧的编码数据进行解码。
然而,一方面,对于解码时长远小于的解码周期的时长的编码数据,解码器在一个解码周期内完成对解码时长远小于的解码周期的时长的编码数据的解码之后,解码器需要等到下一个解码周期才能从播放器接收到下一个编码数据并且对下一个编码数据进行解码,解码器在解码周期的大部分时间处于空闲状态。当解码时长远小于的解码周期的时长的编码数据较多时,解码器在多个在多个解码周期的大部分时间均处于空闲状态,导致解码效率低。
另一方面,对于解码时长大于解码周期的时长的编码数据,在一个解码周期未完成对解码时长大于解码周期的时长的编码数据并且已经接收到下一个编码数据的情况下,必须停止对解码时长大于解码周期的时长的编码数据的解码,开始对下一个编码数据进行解码。相应的,无法得到解码时长大于解码周期的时长的编码数据所属的视频帧,导致在播放视频时丢失该视频帧,降低视频的播放流畅度。
发明内容
为克服相关技术中存在的问题,本公开提供一种解码方法、解码器、电子设备及存储介质。
根据本公开实施例的第一方面,提供一种解码方法,包括:
响应于接收到播放器发送的调用指令,创建编码数据缓存队列;
响应于编码数据缓存队列中包含包括的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
根据本公开实施例的第二方面,提供一种解码器,包括:
响应模块,被配置为响应于接收到播放器发送的调用指令,创建编码数据缓存队列;
解码模块,被配置为响应于编码数据缓存队列中包含的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
本公开的实施例提供的技术方案可以包括以下有益效果:
播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据,利用编码数据缓存队列对接收到的播放器发送的编码数据进行缓存,当编码数据缓存队列中的编码数据达到一定数量时,解码器才开始对数据缓存队列中的编码数据进行解码。
一方面,避免了解码器在解码器在完成一个编码数据的解码之后等待下一个编码数据而造成的解码器处于空闲状态的问题,提升解码器的解码效率,另一方面,避免在播放视频时丢失视频帧的问题,提升视频的播放流畅度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种解码方法的一个实施例的流程图;
图2是根据一示例性实施例示出的一种解码器的结构框图;
图3是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1是根据一示例性实施例示出的解码方法的一个实施例的流程图。该方法的各个步骤可以由解码器执行,该方法包括以下步骤:
步骤101,响应于接收到播放器发送的调用指令,创建编码数据缓存队列。
在本公开中,解码器可以为具有视频播放功能的应用例如短视频APP中的用于对视频帧的编码数据进行解码以得到视频帧的单元。播放器可以为具有视频播放功能的应用例如短视频APP中的用于显示视频帧的单元。
视频中的图像可以称之为视频帧。在播放视频之前,可以由播放器从本地或服务器获取视频的视频流数据。视频的视频流数据包括:视频中的每一个视频帧的编码数据。视频中的每一个视频帧的编码数据通过预先对视频中的每一个视频帧分别进行编码得到。
视频中的每一个视频帧分别具有一个编码数据,当播放视频时,需要由解码器对视频中的每一个视频帧的编码数据进行解码,得到每一个视频帧。解码器每一次完成对一个视频帧的编码数据的解码之后,将得到的一个视频帧加入到显示队列。播放器每一次从显示队列获取一个视频帧,显示获取到的视频帧。
在本公开中,当用户进行指示开始播放视频的操作时,例如,点击播放界面中的指示开始播放视频的按钮,播放器可以向解码发送调用指令。解码器可以响应于接收到播放器发送的调用指令,创建编码数据缓存队列。编码数据缓存队列的结构参考数据结构中的队列这一结构。
在本公开中,编码数据缓存队列用于在解码器对视频中的视频帧的编码数据进行解码之前,对视频中的视频帧的编码数据进行缓存。
在本公开中,编码数据缓存队列具有一个长度,编码数据缓存队列的长度为编码数据缓存队列包括的编码数据的数量的最大值。
换言之,编码数据缓存队列最多可包括编码数据缓存队列的长度个视频帧的编码数据。
步骤102,响应于编码数据缓存队列包括的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码。
在本公开中,播放器可以在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
例如,播放器可以在编码数据缓存队列未满的情况下每间隔30ms向解码器发送视频中的一个视频帧的编码数据。在本公开中,当编码数据缓存队列中的编码数据的数量小于编码数据缓存队列的长度时,则编码数据缓存队列未满。当编码数据缓存队列中的编码数据的数量等于编码数据缓存队列的长度时,则编码数据缓存队列满。
在本公开中,当编码数据缓存队列满时,播放器暂停向解码器发送视频帧的编码数据,直到编码数据缓存队列中的至少一个编码数据在被解码之后,被解码的至少一个编码数据被删除。
在本公开中,编码数据缓存队列满时,解码器可以向播放器发送指示编码数据缓存队列满的标识,以使得播放器可以根据指示编码数据缓存队列满的标识,确定编码数据缓存队列满,暂时停止向解码器发送视频帧的编码数据。播放器可以在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据可以为:播放器每一次确定从上一次向解码器发送一个视频帧的编码数据的时刻起已经经过预设时长并且确定编码数据缓存队列未满,则播放器再次向解码器发送一个视频帧的编码数据。当播放器在确定从上一次向解码器发送一个视频帧的编码数据的时刻起已经经过预设时长并且确定编码数据缓存队列满的情况下,播放器暂停向解码器发送视频帧的编码数据。
在本公开中,解码器每一次接收到播放器发送的视频中的一个视频帧的编码数据,将接收到的一个视频帧的编码数据加入到编码数据缓存队列中。
在本公开中,解码器在对编码数据进行解码时,每一次从编码数据缓存队列中的队列头获取一个编码数据,对获取到的编码数据进行解码。解码器每一次完成对一个获取到的编码数据的解码,将解码得到的视频帧加入到显示队列中,同时,将编码数据缓存队列中的被解码的一个编码数据删除。
在本公开中,解码器每一次接收到播放器发送的视频中的一个视频帧的编码数据,可以将接收到的一个视频帧的编码数据加入到编码数据缓存队列中的队列尾。解码器在对编码数据进行解码时,每一次从编码数据缓存队列中的队列头获取一个编码数据,对获取到的编码数据进行解码。解码器每一次从编码数据缓存队列中的队列头获取一个编码数据,将被解码器获取的一个编码数据删除,编码数据缓存队列中的位于被解码器获取的一个编码数据之后的每一个编码数据在编码数据缓存队列中的位置向前移动一个位置,位于被解码器获取的一个编码数据之后并且与被解码器获取的一个编码数据相邻的编码数据成为位于编码数据缓存队列的队列头的编码数据。解码器每一次完成对一个获取到的编码数据的解码,可以将解码得到的视频帧加入到显示队列中,同时,将编码数据缓存队列中的被解码的一个编码数据删除,从而,被解码的一个编码数据在编码数据缓存队列中的位置成为空闲的位置,该空闲的位置可以用于存储由播放器发送的一个新的视频帧的编码数据。
在本公开中,编码数据缓存队列的结构为常用的数据结构中的队列的结构。将编码数据加入到编码数据缓存队列中的队列尾、从编码数据缓存队列中的队列头获取一个编码数据等操作的具体过程可以参考常用的数据结构中的队列的入队列操作的过程、队列的出队列操作的过程。
在本公开中,当编码数据缓存队列包括的编码数据的数量首次达到数据阈值即首次等于数量阈值,解码器可以响应于编码数据缓存队列包括的编码数据的数量首次等于数量阈值,对编码数据缓存队列中的编码数据进行解码。
换言之,对于视频中的前数量阈值个视频帧,解码器将视频中的前数量阈值个视频帧的每一个视频帧的编码数据缓存在编码数据缓存队列中。当解码器将前数量阈值个视频帧中的最后一个视频帧的编码数据加入到编码数据缓存队列时,编码数据缓存队列包括的编码数据的数量首次等于数量阈值,解码器开始对数据缓存队列中的编码数据进行解码。
在本公开中,当编码数据缓存队列包括的编码数据的数量首次等于数量阈值时,解码器按照编码数据缓存队列中的编码数据的顺序,每一次从编码数据缓存队列中的队列头获取一个编码数据,对获取到的编码数据进行解码。解码器每一次完成对一个获取到的编码数据的解码,将编码数据缓存队列中的被解码的一个编码数据删除。
例如,数量阈值为10,解码器每一次接收到视频中的一个视频帧的编码,将接收到的一个视频帧的编码数据加入到编码数据缓存队列。在解码器第1次接收播放器发送的一个视频帧的编码数据之前,编码数据缓存队列为空。解码器第1次接收到的一个编码数据为视频的前10个视频帧中的第1个视频帧的编码数据,解码器第2次接收到的一个编码数据为视频的前10个视频帧中的第2个视频帧的编码数据,以此类推。在解码器将视频的前10个视频帧中的第10个视频帧加入到编码数据缓存队列中之后,编码数据缓存队列包括的编码数据的数量首次等于数量阈值,解码器可以按照编码数据缓存队列中的编码数据的顺序,对前10个视频帧中的每一个视频帧的编码数据进行解码。解码器每一次从编码数据缓存队列中获取前10个视频帧中一个视频帧的编码数据,对获取到的一个视频帧的编码数据进行解码。解码器每一次完成对获取到的一个视频帧的编码数据的解码,将编码数据缓存队列中的一个视频帧的编码数据删除。
以下通过对比本公开中的解码过程与现有技术中的解码过程的不同说明本公开的有益效果。
以视频的前10个视频帧的解码过程为例进行对比,在视频的前10个视频帧的之后的多个视频帧的解码过程与前10个视频帧的解码过程同理。
在现有技术中,采用播放器主动调用解码器的方式对编码数据进行解码。播放器主动调用解码器的方式为:播放器每间隔一个解码周期的时长调用解码器并且向解码器发送一个视频帧的编码数据,换言之,播放器在每一个解码周期的开始时刻调用解码器并且向解码器发送一个视频帧的编码数据。解码器每一次在一个解码周期内对一个视频帧的编码数据进行解码。在现有技术中,播放器主动调用解码器的过程包括:播放器在第1个解码周期即第1个视频帧对应的解码周期调用解码器并且向解码器发送第1个视频帧的编码数据,播放器在第2个解码周期即第2个视频帧对应的解码周期调用解码器并且向解码器发送第2个视频帧的编码数据,以此类推。
在现有技术中,假设视频的前10个视频帧中,第2个视频帧和第8个视频帧由于编码数据的数据量大于其他视频帧的数据量,对第2个视频帧的编码数据的解码时长和第8个视频帧的编码数据的解码时长大于解码周期的时长。对除了第2个视频帧和第8个视频帧之外的每一个其他的视频帧的解码时长又由于编码数据的数据量小,远小于的解码周期的时长。
当采用现有技术对前10个视频帧进行解码时,导致以下问题:1)对于解码时长远小于的解码周期的时长除了第2个视频帧和第8个视频帧之外的任意一个视频帧的编码数据,解码器在一个解码周期内完成对解码时长远小于的解码周期的时长的编码数据的解码之后,解码器依然需要等到下一个解码周期才能从播放器接收到下一个编码数据并且对下一个编码数据进行解码,导致解码器在解码周期内的大部分时间处于空闲状态。当解码时长远小于的解码周期的时长的编码数据的数量较多时,解码器在多个解码周期内的大部分时间均处于空闲状态,导致解码效率低。2)对于解码时长大于解码周期的时长的第2个视频帧的编码数据和第8个视频帧的编码数据,解码器在第2个视频帧对应的解码周期内未完成对第2个视频帧的编码数据进行解码的情况下,由于已经达到该解码周期的下一解码周期的起始时刻并且已经接收到第3个视频帧的编码数据,此时,解码器必须停止对第2个视频帧的编码数据进行解码,开始对第3个视频帧的编码数据进行解码,从而,无法得到第2个视频帧,导致在播放视频时丢失第2个视频帧。同理,无法得到第8个视频帧,导致在播放视频时丢失第8个视频帧。
而在本申请中,解码器每一次接收到视频中的一个视频帧的编码,将接收到的一个视频帧的编码数据加入到编码数据缓存队列。在解码器第1次接收播放器发送的一个视频帧的编码数据之前,编码数据缓存队列为空。解码器第1次接收到的一个编码数据为视频的前10个视频帧中的第1个视频帧的编码数据,解码器第2次接收到的一个编码数据为视频的前10个视频帧中的第2个视频帧的编码数据,以此类推。在解码器将视频的前10个视频帧中的第10个视频帧加入到编码数据缓存队列中之后,编码数据缓存队列包括的编码数据的数量首次达到数量阈值,解码器可以按照编码数据缓存队列中的编码数据的顺序,对前10个视频帧中的每一个视频帧的编码数据进行解码。
在本申请中,一方面,相较于现有技术中的在一些解码周期内还有剩余的解码时间依然需要等到下一个解码周期才能从播放器接收到下一个视频帧编码数据以对下一个视频帧的编码数据进行解码,在本申请中,每一次完成对一个视频帧的编码数据的解码,由于下一个视频帧的编码数据已经在编码数据缓存队列中,则无需等待,直接对下一个视频帧的编码数据进行解码,使得解码器一直处于解码状态,避免了解码器较长时间处于空闲状态的情况下,提升解码效率。例如,在对第1个视频帧的编码数据进行解码之后,相较于现有技术中的在第1个视频帧对应的解码周期内还有剩余的解码时间依然需要等到下一个解码周期才能从播放器接收到第2个视频帧编码数据以对第2个视频帧编码数据进行解码,在本申请中,在对第1个视频帧的编码数据进行解码之后,直接对第2个视频帧编码数据进行解码。在本申请中,相当于利用第1个视频帧对应的解码周期内的剩余的解码时间对第2个视频帧的解码,从而,提升解码效率。
另一方面,相较于现有技术中的在一个解码周期内不能完成对解码时长大于解码周期的时长的视频帧的编码数据的解码而导致在播放视频时丢失对解码时长大于解码周期的时长的视频帧,在本申请中,在对解码时长大于解码周期的时长的视频帧的编码数据进行解码得到解码时长大于解码周期的时长的视频帧之后,才会对下一个视频帧的编码数据进行解码,确保完成对每一个视频帧的解码,得到每一个视频帧,避免了播放视频时视频帧丢失的情况。
在一些实施例中,数量阈值为编码数据缓存队列的长度。解码器响应于编码数据缓存队列中的编码数据的数量首次达到编码数据缓存队列的长度,对编码数据缓存队列中的编码数据进行解码。换言之,解码器响应于编码数据缓存队列中首次满,对编码数据缓存队列中的编码数据进行解码。
例如,编码数据缓存队列的长度为10,编码数据缓存队列包括的编码数据的数量的最大值为10。换言之,编码数据缓存队列最多可包括10个视频帧的编码数据。解码器响应于编码数据缓存队列中的编码数据的数量首次为10,开始对编码数据缓存队列中的编码数据进行解码。
在一些实施例中,在完成对首次缓存的所有编码数据的解码之后,还包括:当编码数据缓存队列包括至少一个编码数据时,对编码数据缓存队列中的编码数据进行解码。
首次缓存的所有编码数据为当编码数据缓存队列包括的编码数据的数量首次等于数量阈值时编码数据缓存队列中的所有编码数据。
在对首次缓存的所有编码数据中的每一个编码数据进行解码期间,解码器每一次接收播放器发送的一个视频帧的编码数据,将接收到的一个视频帧的编码数据加入到编码数据缓存队列中。
例如,编码数据缓存队列的长度为10,编码数据缓存队列包括的编码数据的数量的最大值为10。首次缓存的所有编码数据由视频的前10个视频帧中的每一个视频帧的编码数据组成。解码器响应于编码数据缓存队列中的编码数据的数量首次为10,解码器开始对编码数据缓存队列中的编码数据进行解码。在解码器对编码数据缓存队列中的该前10个视频帧中的每一个视频帧的编码数据进行解码期间,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据,解码器每接收到一个视频帧的编码数据,将视频帧的编码数据加入到编码数据缓存队列。当完成对视频的前10个视频帧中的每一个视频帧的编码数据的解码时,编码数据缓存队列包括在解码器对编码数据缓存队列中的视频的前10个视频帧中的每一个视频帧的编码数据进行解码期间接收到的播放器发送的至少一个编码数据,此时,可以对编码数据缓存队列中的编码数据进行解码。
例如,在解码器对编码数据缓存队列中的该前10个视频帧中的每一个视频帧的编码数据进行解码期间,每一次从编码数据缓存队列中的队列头获取一个编码数据,对获取到的编码数据进行解码。解码器每一次从编码数据缓存队列中的队列头获取一个编码数据之后,可以删除编码数据缓存队列中的被解码器获取的一个编码数据。每一次删除编码数据缓存队列中的被解码器获取的一个编码数据,编码数据缓存队列均可以产生一个空闲的位置用于存储后续接收到的新的视频帧的编码数据。
假设前10个视频帧中的每一个视频帧的解码时长均小于播放器发送视频帧的编码数据时采用的预设时长,则解码器对编码数据缓存队列中的该前10个视频帧中的每一个视频帧的编码数据进行解码期间,编码数据缓存队列一直处于未满的状态,播放器可以每间隔预设时长向编码数据缓存队列发送一个视频帧的编码数据。当解码器完成对视频的前10个视频帧中的每一个视频帧的编码数据的解码时,编码数据缓存队列可以包括在视频的前10个视频帧之后的10个视频帧的编码数据,此时,可以依次获取在视频的前10个视频帧之后的10个视频帧中的每一个视频的编码数据并且进行解码。
在一些实施例中,还包括:解码器响应于编码数据缓存队列为空,解码器执行等待操作;解码器响应于编码数据缓存队列包括至少一个编码数据,解码器开始对编码数据缓存队列中的编码数据进行解码。
当编码数据缓存队列中没有编码数据时,编码数据缓存队列为空。解码器可以响应于编码数据缓存队列为空,执行等待操作来等待编码数据缓存队列中包括编码数据。在编码数据缓存队列为空之后,解码器每一次接收到播放器发送的一个视频帧的编码数据,解码器将接收到的一个视频帧的编码数据加入到编码数据缓存队列。当编码数据缓存队列包括至少一个编码数据时,解码器可以响应于编码数据缓存队列包括至少一个编码数据,开始对编码数据缓存队列中的编码数据进行解码。
例如,当编码数据缓存队列为空时,解码器响应于编码数据缓存队列为空,执行等待操作。在编码数据缓存队列为空之后的某一个时刻,编码数据缓存队列包括一个或多个编码数据时,解码器开始对编码数据缓存队列中的编码数据进行解码。
例如,在对编码数据缓存队列中的该前10个视频帧进行解码之后,编码数据缓存队列包括位于该前10个视频帧之后的8个视频帧的编码数据,在对该8个视频帧的编码数据解码期间,由于播放器未从本地或服务器获取新的视频帧的编码数据,在完成对该8个视频帧的编码数据的解码之后,编码数据缓存队列为空。在编码数据缓存队列为空之后的某一个时刻,播放器开始从本地或服务器获取到新的视频帧的编码数据,然后,播放器可以每间隔预设时长向解码器发送一个视频帧的编码数据。当编码数据缓存队列包括一个或多个视频帧的编码数据时,解码器可以开始对编码数据缓存队列中的编码数据进行解码。
图2是根据一示例性实施例示出的一种解码器的结构框图。参照图2,该解码器包括:响应模块201,解码模块202。
响应模块201被配置为响应于接收到播放器发送的调用指令,创建编码数据缓存队列;
解码模块202被配置为响应于编码数据缓存队列中包含的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
在一些实施例中,所述数量阈值为所述编码数据缓存队列的长度。
在一些实施例中,所述解码模块进一步被配置为:在完成首次缓存的所有编码数据的解码之后,当编码数据缓存队列包括至少一个编码数据时,对编码数据缓存队列中的编码数据进行解码,其中,首次缓存的所有编码数据为当编码数据缓存队列包括的编码数据的数量首次等于数量阈值时编码数据缓存队列中的所有编码数据。
在一些实施例中,所述解码模块进一步被配置为:响应于编码数据缓存队列为空,执行等待操作;响应于编码数据缓存队列包括至少一个编码数据,对编码数据缓存队列中的编码数据进行解码。
图3是根据一示例性实施例示出的一种电子设备的结构框图。参照图3,电子设备300包括处理组件322,其进一步包括一个或多个处理器,以及由存储器332所代表的存储器资源,用于存储可由处理组件322执行的指令,例如应用程序。存储器332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件322被配置为执行指令,以执行上述方法。
电子设备300还可以包括一个电源组件326被配置为执行电子设备300的电源管理,一个有线或无线网络接口350被配置为将电子设备300连接到网络,和一个输入输出(I/O)接口358。电子设备300可以操作基于存储在存储器332的操作系统,例如WindowsServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请还提供一种计算机程序,该计算机程序包括如图1所示的操作步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种解码方法,其特征在于,所述方法包括:
响应于接收到播放器发送的调用指令,创建编码数据缓存队列;
响应于编码数据缓存队列中包含的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
2.根据权利要求1所述的方法,其特征在于,所述数量阈值为所述编码数据缓存队列的长度。
3.根据权利要求1所述的方法,其特征在于,在完成首次缓存的所有编码数据的解码之后,所述方法还包括:
当编码数据缓存队列包括至少一个编码数据时,对编码数据缓存队列中的编码数据进行解码,其中,首次缓存的所有编码数据为当编码数据缓存队列包括的编码数据的数量首次等于数量阈值时编码数据缓存队列中的所有编码数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于编码数据缓存队列为空,执行等待操作;
响应于编码数据缓存队列包括至少一个编码数据,对编码数据缓存队列中的编码数据进行解码。
5.一种解码器,其特征在于,所述解码器包括:
响应模块,被配置为响应于接收到播放器发送的调用指令,创建编码数据缓存队列;
解码模块,被配置为响应于编码数据缓存队列中包含的编码数据的数量首次达到数量阈值,对编码数据缓存队列中的编码数据进行解码,其中,解码器每一次接收到播放器发送的一个视频帧的编码数据,将接收到的视频帧的编码数据加入到编码数据缓存队列中,播放器在编码数据缓存队列未满的情况下每间隔预设时长向解码器发送一个视频帧的编码数据。
6.根据权利要求5所述的解码器,其特征在于,所述数量阈值为所述编码数据缓存队列的长度。
7.根据权利要求5所述的解码器,其特征在于,所述解码模块进一步被配置为:在完成首次缓存的所有编码数据的解码之后,当编码数据缓存队列包括至少一个编码数据时,对编码数据缓存队列中的编码数据进行解码,其中,首次缓存的所有编码数据为当编码数据缓存队列包括的编码数据的数量首次等于数量阈值时编码数据缓存队列中的所有编码数据。
8.根据权利要求5所述的解码器,其特征在于,所述解码模块进一步被配置为:响应于编码数据缓存队列为空,执行等待操作;响应于编码数据缓存队列包括至少一个编码数据,对编码数据缓存队列中的编码数据进行解码。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至4中任一项所述的方法。
CN201910964291.9A 2019-10-11 2019-10-11 一种解码方法、解码器、电子设备及存储介质 Active CN110677715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910964291.9A CN110677715B (zh) 2019-10-11 2019-10-11 一种解码方法、解码器、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910964291.9A CN110677715B (zh) 2019-10-11 2019-10-11 一种解码方法、解码器、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110677715A true CN110677715A (zh) 2020-01-10
CN110677715B CN110677715B (zh) 2022-04-22

Family

ID=69081637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910964291.9A Active CN110677715B (zh) 2019-10-11 2019-10-11 一种解码方法、解码器、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110677715B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541941A (zh) * 2020-05-07 2020-08-14 杭州趣维科技有限公司 一种移动端多编码器加速编码的方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050069039A1 (en) * 2003-09-07 2005-03-31 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US20110138427A1 (en) * 2007-11-07 2011-06-09 Jun Shen Video Service Buffer Management in a Mobile Rate Control Enabled Network
CN104113777A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种音频流解码方法及装置
CN104333795A (zh) * 2014-11-04 2015-02-04 北京佳讯飞鸿电气股份有限公司 一种不依赖时间戳的实时视频码流播放速度控制方法
CN105025343A (zh) * 2015-07-21 2015-11-04 无锡天脉聚源传媒科技有限公司 一种ts视频的缓存方法及装置
CN105704554A (zh) * 2016-01-22 2016-06-22 广州视睿电子科技有限公司 一种音频播放方法及装置
CN105872668A (zh) * 2016-03-31 2016-08-17 百度在线网络技术(北京)有限公司 音视频数据处理方法、装置以及车载终端
CN105916058A (zh) * 2016-05-05 2016-08-31 青岛海信宽带多媒体技术有限公司 一种流媒体缓冲播放方法、装置及显示设备
CN106713855A (zh) * 2016-12-13 2017-05-24 深圳英飞拓科技股份有限公司 一种视频播放方法及装置
CN107493510A (zh) * 2017-09-19 2017-12-19 武汉斗鱼网络科技有限公司 直播间内直播流播放方法、装置、计算机存储介质及设备
CN107517400A (zh) * 2016-06-15 2017-12-26 成都鼎桥通信技术有限公司 流媒体播放方法及流媒体播放器
CN108206969A (zh) * 2016-12-16 2018-06-26 北京酷我科技有限公司 一种视频播放快速启动方法及系统
CN108271031A (zh) * 2016-12-30 2018-07-10 北京酷我科技有限公司 一种直播视频的播放方法及装置
CN110072143A (zh) * 2019-03-18 2019-07-30 视联动力信息技术股份有限公司 一种视频流解码方法和装置
CN110213308A (zh) * 2018-02-28 2019-09-06 杭州海康威视数字技术股份有限公司 一种解码视频数据的方法及装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050069039A1 (en) * 2003-09-07 2005-03-31 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US20110138427A1 (en) * 2007-11-07 2011-06-09 Jun Shen Video Service Buffer Management in a Mobile Rate Control Enabled Network
CN104113777A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种音频流解码方法及装置
CN104333795A (zh) * 2014-11-04 2015-02-04 北京佳讯飞鸿电气股份有限公司 一种不依赖时间戳的实时视频码流播放速度控制方法
CN105025343A (zh) * 2015-07-21 2015-11-04 无锡天脉聚源传媒科技有限公司 一种ts视频的缓存方法及装置
CN105704554A (zh) * 2016-01-22 2016-06-22 广州视睿电子科技有限公司 一种音频播放方法及装置
CN105872668A (zh) * 2016-03-31 2016-08-17 百度在线网络技术(北京)有限公司 音视频数据处理方法、装置以及车载终端
CN105916058A (zh) * 2016-05-05 2016-08-31 青岛海信宽带多媒体技术有限公司 一种流媒体缓冲播放方法、装置及显示设备
CN107517400A (zh) * 2016-06-15 2017-12-26 成都鼎桥通信技术有限公司 流媒体播放方法及流媒体播放器
CN106713855A (zh) * 2016-12-13 2017-05-24 深圳英飞拓科技股份有限公司 一种视频播放方法及装置
CN108206969A (zh) * 2016-12-16 2018-06-26 北京酷我科技有限公司 一种视频播放快速启动方法及系统
CN108271031A (zh) * 2016-12-30 2018-07-10 北京酷我科技有限公司 一种直播视频的播放方法及装置
CN107493510A (zh) * 2017-09-19 2017-12-19 武汉斗鱼网络科技有限公司 直播间内直播流播放方法、装置、计算机存储介质及设备
CN110213308A (zh) * 2018-02-28 2019-09-06 杭州海康威视数字技术股份有限公司 一种解码视频数据的方法及装置
CN110072143A (zh) * 2019-03-18 2019-07-30 视联动力信息技术股份有限公司 一种视频流解码方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NIKOLA ZLATANOV等: ""Buffer-Aided Relaying with Adaptive Link Selection"", 《IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS 》 *
裘澍民: ""基于解码缓存信息的IPTV质量监测策略"", 《中国优秀硕士学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541941A (zh) * 2020-05-07 2020-08-14 杭州趣维科技有限公司 一种移动端多编码器加速编码的方法
CN111541941B (zh) * 2020-05-07 2021-10-29 杭州小影创新科技股份有限公司 一种移动端多编码器加速编码的方法

Also Published As

Publication number Publication date
CN110677715B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN110366033B (zh) 一种视频播放方法、装置、设备及存储介质
US10482568B2 (en) Information processor and information processing method
CN109862409B (zh) 视频解码、播放方法、装置、系统、终端及存储介质
CN109660879A (zh) 直播丢帧方法、系统、计算机设备和存储介质
US11922972B2 (en) Method and apparatus for video coding
CN108769815B (zh) 视频处理方法及其装置
CN110677715B (zh) 一种解码方法、解码器、电子设备及存储介质
CN111010603A (zh) 一种视频缓存转发处理方法及装置
CN114422799B (zh) 视频文件的解码方法、装置、电子设备、程序产品
CN111343503A (zh) 视频的转码方法、装置、电子设备及存储介质
CN110784717B (zh) 一种编码方法、装置、电子设备及存储介质
JP7267436B2 (ja) 送信装置、送信方法及びプログラム
CN113923507B (zh) Android端的低延迟视频渲染方法及装置
CN114222182B (zh) 一种视频播放方法及装置
CN111467797B (zh) 游戏数据处理方法、装置、计算机存储介质与电子设备
CN116126487A (zh) 多实例下的编解码器的调度方法及装置、存储介质、终端
CN115914745A (zh) 视频的解码方法、装置、电子设备及计算机可读介质
CN115633191A (zh) 视频播放方法、装置、系统、电子设备与可读存储介质
CN115225902A (zh) 基于分散编码的高分辨率vr云游戏解决方法及计算机设备
CN109710359B (zh) 动图显示方法、装置、计算机可读存储介质和终端
CN113961484A (zh) 数据的传输方法、装置、电子设备以及存储介质
CN108600696B (zh) 一种视频流解码方法及解码设备
CN113521729A (zh) 云游戏延迟检测方法、服务器、客户端、系统及介质
CN108111900B (zh) 一种播放速度控制方法及装置
CN110636332A (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