CN106685904B - 串流数据的编码排程方法与装置 - Google Patents

串流数据的编码排程方法与装置 Download PDF

Info

Publication number
CN106685904B
CN106685904B CN201610006019.6A CN201610006019A CN106685904B CN 106685904 B CN106685904 B CN 106685904B CN 201610006019 A CN201610006019 A CN 201610006019A CN 106685904 B CN106685904 B CN 106685904B
Authority
CN
China
Prior art keywords
queue
full
hardware encoder
frames
idle hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610006019.6A
Other languages
English (en)
Other versions
CN106685904A (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.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of CN106685904A publication Critical patent/CN106685904A/zh
Application granted granted Critical
Publication of CN106685904B publication Critical patent/CN106685904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/127Prioritisation of hardware or computational resources
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

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

Abstract

本发明公开了一种串流数据编码排程方法与装置,该方法执行于编码装置,包括:判断是否有至少一闲置硬件编码器;判断至少一串流队列中是否有至少一满群框串流队列;如果有至少一闲置硬件编码器,且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列,则计算该至少一未满群框串流队列各自的接收比例,以及使用该至少一闲置硬件编码器其中之一对具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码;如果有至少一闲置硬件编码器,且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码。

Description

串流数据的编码排程方法与装置
技术领域
本发明是有关于一种串流数据的编码排程方法与装置。
背景技术
随着网络软硬件技术的提升,透过网络的线上视音频串流成为一个普遍的网络应用。在影音服务应用中,例如可以将商标、个人化图案、浮水印、赞助商广告等讯息编码或加入视音频串流;或是将直播画面转成不同解析度供不同装置播放。是以,串流数据常需要先被重新编码,再传送到例如使用者装置或后端服务器。换句话说,串流数据的编码在视音频广播的网络应用里扮演重要角色。而串流数据的编码需要耗费庞大的计算量。
现今,硬件编码器已经广泛被使用以提供快速编码。例如,现场影视直播常采用图形处理器(Graphics Processing Unit,GPU)来做编码。而利用硬件资源分享技术可让硬件编码器处理更多编码工作,使发挥最大效能。一个好的排程机制使有效使用硬件编码器是目前业界所致力的课题之一。
发明内容
本发明有关于一种串流数据编码排程方法及装置,透过一排程机制,有效使用硬件编码器以提供串流数据的编码。
根据本发明的一实施例,提出一种串流数据编码排程方法,执行于串流数据编码装置,其步骤包括:判断是否有至少一闲置硬件编码器;判断至少一串流队列中是否有至少一满群框串流队列(full GOF(group of frames)streaming buffer);如果有至少一闲置硬件编码器,且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列(non-full GOF streaming buffer),则计算该至少一未满群框串流队列各自的接收比例,以及使用该至少一闲置硬件编码器其中之一对具有最高接收比例的未满群框串流队列(non-full GOF streaming buffer)的已经接收的数据框开始进行编码;以及如果有至少一闲置硬件编码器,且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码。
根据本发明的一实施例,提出一种串流数据编码装置,包括储存单元、至少一硬件编码器以及排程单元。储存单元储存至少一串流队列;排程单元,设置用以:判断是否有至少一闲置硬件编码器;判断该至少一串流队列中是否有至少一满群框串流队列;如果有至少一闲置硬件编码器,且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列,则计算该至少一未满群框串流队列各自的接收比例,以及使用该至少一闲置硬件编码器其中之一对具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码;以及如果有至少一闲置硬件编码器,且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码。
根据本发明的一实施例,提出一种内储程序的电脑可读取纪录媒体,当电脑载入该程序并执行后,可完成如上所述的方法。
以上的关于本发明内容的说明及以下的实施方式的说明用以示范与解释本发明的精神与原理,并且提供本发明的专利权利要求保护范围更进一步的解释。
附图说明
图1绘示不同排程机制的不同编码延迟示意图
图2绘示依据本发明的一实施例的串流数据编码排程装置的示意图。
图3A绘示依据本发明的一实施例的串流数据编码排程方法的流程图。
图3B绘示依据本发明的另一实施例的串流数据编码排程方法的流程图。
其中,附图标记:
200:串流数据编码排程装置
210:储存单元
210-1、210-2、210-3、…、210-M:串流队列
220:排程单元
230-1、230-2、…、230-N:硬件编码器
300:串流数据编码排程方法
301、302、302、304、305、306:步骤
具体实施方式
以下参照附图详细叙述本发明的其中几组实施态样。需注意的是,实施例所提出的多组实施态样的结构和内容仅为举例说明的用,本发明欲保护的范围并非仅限于所述的该些态样。需注意的是,本发明并非显示出所有可能的实施例,本领域的技术人员可在不脱离本发明的精神和范围内对实施例的结构加以变化与修改,以符合实际应用所需。因此,未于本发明提出的其他实施态样也可能可以应用。再者,实施例中相同或类似的标号用以标示相同或类似的部分。
首先定义群框(Group of Frames:GOF)以及满群框串流队列(full GOFstreaming buffer)。群框,意即,数据框群;满群框串流队列,意即,当串流队列(streamingbuffer)中承载的数据框数量大于或等于该串流队列的满群框总数(frame number ofGOF),我们称该串流队列为满群框串流队列(full GOF streaming buffer),否则称该串流队列为未满群框串流队列(non-full GOF streaming buffer)。进一步说明:当该至少一串流队列中有至少一满群框串流队列,也就是说,包括有至少一个群框(Group of Frames:GOF)在该至少一串流队列中的任一串流队列里;当至少一串流队列中没有满群框串流队列,也就是说,没有包括群框(GOF)在该至少一串流队列中的任一串流队列里;当有至少一未满群框串流队列,也就是说,包括有至少一个未满群框(non-full GOF)在该至少一串流队列中的任一串流队列里。
图1绘示不同编码排程所造成的不同编码延迟。在图1以一个串流队列及满群框总数为8来举例来说明,该串流队列承载来自一串流源(如,录影机)的数据框。方案A揭示编码器在串流队列的数据框数量达到满群框总数8时,才开始进行编码,而编码器可能在数据框数量尚未达到满群框总数8时,即已经闲置(例如,达到6数据框时)。如图1中所示,在时间Tx,串流队列有8个数据框,编码器在时间Tx开始进行编码原则上会在时间Tz完成编码。方案B揭示编码器在串流队列的数据框数量未达到满群框总数8时,即开始进行编码。如图中所示,在时间Ts,串流队列有6个数据框,编码器在时间Ts开始闲置但随即进行编码,原则上会在时间Ty完成8个数据框的编码。由图1可以看出,编码延迟A较编码延迟B长,方案B的完成时间将早于方案A,且方案A的有较长的编码器闲置时间(Tx-Ts)。由此可推论,方案B效率较佳。
基于以上的分析,本发明提出串流数据编码排程的方法及装置的实施范例,所述的串流数据(streaming data)包括多个数据框(frames)。
图2绘示依据本发明一实施例的串流数据编码排程装置200的方块图。图2绘示依据本发明的一实施例进一步描述如下,串流数据编码排程装置200包括储存单元210储存至少一串流队列210-1、210-2、210-3、…、210-M,排程单元220以及至少一硬件编码器230-1、230-2、…、230-N,其中,M、N是正整数。
如图3A所示的一实施例,排程单元220,设置用以判断是否有至少一闲置硬件编码器(步骤302),判断该至少一串流队列中是否有至少一满群框串流队列(full GOF)(步骤303),如果有至少一闲置硬件编码器且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列(non-full GOF),则计算该至少一未满群框串流队列各自的接收比例(步骤305),以及使用该至少一闲置硬件编码器其中之一对一具有最高接收比例的未满群框串流队列(non-full GOF)的已经接收的数据框开始进行编码(步骤306),如果有至少一闲置硬件编码器且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码(步骤304)。在一实施例,当有多个满群框队列时,会针对依照群框队列满群框的时间点先后顺序,以先到先服务(first-in-first-out)方式,依序编码该些满群框队列的数据框。当判断是否有至少一闲置硬件编码器(步骤302),如果无至少一闲置硬件编码器则可持续判断是否有一闲置编码器,或被动等待硬件编码器转为闲置时发出通知等等各种实作判断方式,不限定于图3A中回圈方式。
在一实施例,所谓闲置硬件编码器是指在当下这个硬件编码器没有进行编码动作。
在一实施例中,串流队列210-1、210-2、210-3、..210-M承载来自至少一串流源的数据框。在一些实施例中,所述串流源可以是录影机、录音机等,但不限于此。在一些实施例中,所述硬件编码器可以是图形处理器(GPU)、声音处理器或其他编码器。在一些实施例中,储存单元210可以是一个或多个记忆体装置,但不限于此。
在一实施例中,各个串流队列可以有各自对应的满群框总数(GOF number),各串流队列的满群框总数原则上是预先设定,但不限于此。在一实施例,各个串流队列的满群框总数是相同的,在一些实施例,部份串流队列的满群框总数是不同的。
为方便解释,这里以3个串流队列为例说明,并分别以参数GOFFrameNumber1,GOFFrameNumber2,GOFFrameNumber3来代表串流队列210-1,210-2,210-3的满群框总数。
例如:GOFFrameNumber1=8,GOFFrameNumber2=8,以及GOFFrameNumber3=10.
在步骤304,如果有至少一闲置硬件编码器且该至少一串流队列中有至少一满群框串流队列,该排程单元220使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码,进一步说明如下。
例如,如果有至少一闲置硬件编码器且该至少一串流队列中有至少一满群框串流队列X,排程单元220自该满群框串流队列X读取GOFFrameNumberx个数据框,并使用闲置硬件编码器Y来对这些数据框进行编码,其中X、Y是正整数。
进一步举例说明,当串流队列210-1承载9个数据框,其数量大于等于GOFFrameNumber1(=8),当串流队列210-2承载6个数据框,其数量小于GOFFrameNumber2(=8),当串流队列210-3承载9个数据框,其数量小于GOFFrameNumber3(=10),则串流队列210-1为满群框串流队列,而串流队列210-2、210-3是未满群框串流队列。
延续前述举例的3个串流队列的承载数据框状况,则排程单元220自流队列210-1读取其满群框总数(GOFFrameNumber1)的8个数据框进行编码。
当如果有一个以上的闲置硬件编码器的情况,后面会针对如何选取闲置硬件编码器Y进行编码来另做说明,在此暂不着墨。
在步骤305,当有至少一闲置硬件编码器且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列(non-full GOF)的情况下,排程单元220计算该至少一未满群框串流队列各自的接收比例;在步骤306,排程单元220使用该至少一闲置硬件编码器其中之一对一具有最高接收比例的未满群框串流队列(non-full GOF)的已经接收的数据框开始进行编码。
例如,串流队列210-1已经接收6个数据框(少于GOFFrameNumber1:8),串流队列210-2已经接收4个数据框(少于GOFFrameNumber2:8),串流队列210-3已经接收5个数据框(少于GOFFrameNumber3:10),则串流队列210-1、210-2、210-3都属于未满群框串流队列,所以,在所有串流队列中没有满群框串流队列情况下,则排程单元220计算串流队列210-1、210-2、210-3各自的接收比例1、接收比例2、接收比例3。
例如,当接收比例1是所有接收比例中具最高值的,则排程单元220开始自串流队列210-1中一一读取已经接收的数据框(6个数据框,承前段举例),并使用闲置硬件编码器Y来对这些数据框进行编码。串流队列210-1只需等待2个数据框就到达满眶,而串流队列201-2与210-3分别需等待4个与5个数据框才到达满框。因此优先选择串流210-1的编码等待时间缩短,所以编码延迟将会最小或降低。
如图3B所示的一实施例,排程单元220在使用该至少一闲置硬件编码器其中之一对具有最高接收比例的未满群框串流队列(non-full GOF)的已经接收的数据框开始进行编码步骤(图3A步骤306)之后,使用该至少一闲置硬件编码器其中之一闲置硬件编码器Y对该具有最高接收比例的未满群框串流队列(non-full GOF)的数据框继续编码,直到该具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码,其中,该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的未满群框串流队列的满群框(即,达到GOFFrameNumber数量)。(图3A步骤307)
以GOFFrameNumber1=8为例说明,当排程单元220自串流队列210-1读取其承载的已经接收到的6个数据框并交由闲置硬件编码器Y进行编码,排程单元220继续自串流队列210-1读取其后续接收的数据框并编码,直到剩余的2个剩余数据框都已经接收以及编码。
在一实施例中,硬件编码器在开始编码时,进入忙碌状态,在另一实施例中,硬件编码器完成一串流队列的满群框总数的数据框读取及编码时,进入闲置状态。
在一实施例中,至少一闲置硬件编码器其中之一,在具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码前,不会对其他满群框串流队列或未满群框串流队列进行编码,其中,该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的该未满群框串流队列的满群框(即,达到GOFFrameNumber数量)。
延续前面的举例,闲置硬件编码器Y在完成串流队列210-1的满群框总数(GOFFrameNumber1)8个数据框的编码后,闲置硬件编码器Y将可以进行其他串流队列的编码。
在一实施例中,该至少一未满群框串流队列各自的该接收比例,与该至少一未满群框串流队列各自的一解析度级数成正比。
解析度级数是依据串流队列的解析度而定的,可以是在初始步骤(图3A,步骤301)或是在计算接收比例的步骤(图3A,步骤305)时决定的。
这里列举几个决定解析度级数的实施例,但不在此限。例如,面积比例法(AreaRatio method)、穷举法(Exhaustive method)、分类法(Classification method)、内插法(Interpolation method)等,在此以影像来举例说明。
串流队列的解析度(W x H)例如是:(1920x1080)、(1024x768)、(800x600)等。
在面积比例法(Area Ratio method)的一实施例,例如以1920x1080为基本解析度,这个串流队列的解析度级数的计算可以下式表示:
解析度级数=(Wx H)/(1920x1080)
在穷举法(Exhaustive method)的一实施例,预先估算各种不同解析度(如,1920x1080、1024x768、800x600,等)所需的编码时间,然后计算这个串流队列编码时间与基本解析度所需编码时间的比例。例如以1920x1080为基本解析度,这个串流队列的解析度级数的计算可以下式表示:
解析度级数=((Wx H)所需编码时间)/((1920x1080)所需编码时间)
在分类法(Classification method)的一实施例,预先估算各种已知的不同解析度(如,1920x1080、1024x768、800x600等)所需的编码时间,将各串流队列归类到与其解析度相近的解析度群组,然后计算这个串流队列编码时间与基本解析度所需编码时间的比例。例如以1920x1080为基本解析度,假设这个串流队列解析度(W x H)与解析度群组1(Wgroup1 x Hgroup1)相近,则这个串流队列被归类到解析度群组1,这个串流队列的解析度级数的计算可以下式表示:
解析度级数=((Wgroup1 x Hgroup1)所需编码时间)/((1920x1080)所需编码时间)
在内插法(Interpolation method)的一实施例,预先估算各种已知的不同解析度(如,1920x1080、1024x768、800x600,等)所需的编码时间,针对这个串流队列解析度(W xH)以面积内插方式推算这个串流队列编码时间,然后计算这个串流队列编码时间与基本解析度所需编码时间的比例。例如以1920x1080为基本解析度,这个串流队列的解析度级数的计算可以下式表示:
解析度级数=(内插计算(Wx H)所需编码时间)/((1920x1080)所需编码时间)
在一实施例中,该至少一未满群框串流队列各自的接收比例,与该至少一未满群框串流队列各自的一满群框总数(GOFFrameNumber)成正比。
在一实施例中,该至少一未满群框串流队列各自的该接收比例,与该至少一未满群框串流队列各自的一复杂度成正比,其中,该复杂度是依据运动向量变异数(motionvector variance)、DCT系数变异数(DCT Coefficient variance)或解析度的至少一,但不限于此,并预先计算而得。在一实施例中,串流队列的复杂度是在初始步骤(图3A,步骤301)计算的,或在初始步骤的前计算的。
在一实施例中,该至少一未满群框串流队列各自的该接收比例,与该至少一未满群框串流队列各自接收剩余数据框所需时间成反比,其中,该至少一未满群框串流队列各自的该已经接收的数据框与该剩余数据框组成该未满群框串流队列各自的满群框(即,达到GOFFrameNumber数量)。进一步说明如下:
延续前述的举例,串流队列201-1的满群框总数GOFFrameNumber1是8,已经接收的数据框有6个,所以有2个剩余数据框尚未收到。接收2个剩余数据框所需时间,例如是(2/数据框速率)。接收比例与所需时间成反比。在一实施例中,数据框速率是指串流队列每秒内所包含的数据框数量。
在一实施例中,串流队列index的接收比例的计算可以下式表示:
Figure BDA0000900596820000081
在另一实施例中,串流队列index的接收比例的计算可以下式表示:
Figure BDA0000900596820000082
参数说明如下:
GOFFrameNumberindex:串流队列index的满群框总数。
ResolutionRateindex:串流队列index的解析度级数。
AlreadyReceivedFramesindex:串流队列index的已经接收数据框数量。
FrameRateindex:串流队列index的数据框速率。
RCidnex:串流队列index的复杂度。
在一实施例中,串流数据编码排程装置有一个硬件编码器,在另一实施例中,串流数据编码排程装置有一个以上的硬件编码器。
在图3A步骤304及306,在一实施例中,该至少一闲置硬件编码器其中之一是依据编码效率而选定。
在一实施例中,该至少一闲置硬件编码器的编码效率排序是预先设定或在初始步骤设定的(图3A,步骤304)。
在图3A步骤306中,当该至少一未满群框串流队列包括多个未满群框串流队列,该至少一闲置硬件编码器包括多个闲置硬件编码器,排程单元220设置以使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码的步骤,在一实施例中,更包括:使用该至少一闲置硬件编码器的一具最高编码效率的闲置硬件编码器对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码,以及使用该至少一闲置硬件编码器的一具第二高编码效率的闲置硬件编码器对该具有第二高接收比例的未满群框串流队列(non-full GOF)的已经接收的数据框开始进行编码。
上述的编码效率,例如是编码速度、硬件架构、数据存取速度、硬件内部运算单元数目等,但不限于此。
在一实施例中,串流数据编码排程装置另包括至少一数据列(Queue),排程单元220自串流队列读取数据框并储存在这至少一数据列(Queue)里,硬件编码器自至少一数据列(Queue)读取数据框进行编码。在另一实施例中,排程单元220传送读取的数据框到硬件编码器230-1、230-2、…、230-N。
在一实施例中,排程单元220以一处理单元自至少一记忆体装置读取至少一可读取程序码来实现排程单元220的功能。
在一实施例中,上述范例实施例中提及的上述排程单元220例如是以集成电路或电路板等组成的硬件装置,而可分别执行上述的功能。
本发明更提出一种内储程序的电脑可读取纪录媒体,当电脑载入该程序并执行后,可完成如上述实施例所载的串流数据编码排程方法。
综上所述,虽然本发明已以若干实施例公开如上,但其并非用以限定本发明。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与修改。因此,本发明的保护范围当视后附的权利要求书保护范围所界定者为准。

Claims (16)

1.一种串流数据编码排程方法,执行于串流数据编码装置,其特征在于,包括:
判断是否有至少一闲置硬件编码器;
判断至少一串流队列中是否有至少一满群框串流队列;
如果有至少一闲置硬件编码器,且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列,则
计算该至少一未满群框串流队列各自的接收比例;以及
使用该至少一闲置硬件编码器其中之一对一具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码;以及
如果有至少一闲置硬件编码器,且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码;
其中,该接收比例的计算公式如下:
Figure FDA0002588840400000011
Figure FDA0002588840400000012
其中,GOFFrameNumberindex:串流队列index的满群框总数;
ResolutionRateindex:串流队列index的解析度级数;
AlreadyReceivedFramesindex:串流队列index的已经接收数据框数量;
FrameRateindex:串流队列index的数据框速率;
RCindex:串流队列index的复杂度。
2.如权利要求1所述的方法,其特征在于,该使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码步骤之后,使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的数据框继续编码,直到该具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码,且该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的未满群框串流队列的满群框。
3.如权利要求1所述的方法,其特征在于,该至少一闲置硬件编码器其中之一,在该具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码前,不会对其他满群框串流队列或其他未满群框串流队列进行编码,且该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的未满群框串流队列的满群框。
4.如权利要求1所述的方法,其特征在于,该复杂度是依据运动向量变异数、DCT系数变异数或解析度的至少之一,预先计算而得。
5.如权利要求1所述的方法,其特征在于,该至少一未满群框串流队列各自的该接收比例,与该至少一未满群框串流队列各自接收剩余数据框所需时间成反比,且该至少一未满群框串流队列各自的该已经接收的数据框与该剩余数据框组成该至少一未满群框串流队列各自的满群框。
6.如权利要求1所述的方法,其特征在于,该至少一闲置硬件编码器其中之一是依据编码效率而选定。
7.如权利要求6所述的方法,其特征在于,该至少一未满群框串流队列包括多个未满群框串流队列,该至少一闲置硬件编码器包括多个闲置硬件编码器,且该使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码的步骤,更包括:
使用该至少一闲置硬件编码器的一具最高编码效率的闲置硬件编码器对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码;以及
使用该至少一闲置硬件编码器的一具第二高编码效率的闲置硬件编码器对该具有第二高接收比例的未满群框串流队列的已经接收的数据框开始进行编码。
8.一串流数据编码装置,其特征在于,包括:
储存单元,储存至少一串流队列;
至少一硬件编码器;以及
排程单元,设置用以执行下列步骤:
判断该至少一硬件编码器中是否有至少一闲置的硬件编码器;
判断该至少一串流队列中是否有至少一满群框串流队列;
如果有至少一闲置硬件编码器,且该至少一串流队列中没有满群框串流队列,但有至少一未满群框串流队列,则执行下列步骤:
计算该至少一未满群框串流队列各自的接收比例;以及
使用该至少一闲置硬件编码器其中之一对一具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码;以及
如果有至少一闲置硬件编码器,且该至少一串流队列中有至少一满群框串流队列,使用该至少一闲置硬件编码器其中之一对该至少一满群框串流队列的一满群框串流队列进行编码;
其中,该接收比例的计算公式如下:
Figure FDA0002588840400000031
Figure FDA0002588840400000032
其中,GOFFrameNumberindex:串流队列index的满群框总数;
ResolutionRateindex:串流队列index的解析度级数;
AlreadyReceivedFramesindex:串流队列index的已经接收数据框数量;
FrameRateindex:串流队列index的数据框速率;
RCindex:串流队列index的复杂度。
9.如权利要求8所述的装置,其特征在于,该排程单元更执行下列步骤:
设置以该使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码步骤之后,使用该至少一闲置硬件编码器其中之一对该具有最高接收比例的未满群框串流队列的数据框继续编码,直到该具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码;以及
该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的未满群框串流队列的满群框。
10.如权利要求8所述的装置,其特征在于,该至少一闲置硬件编码器其中之一,在该具有最高接收比例的未满群框串流队列的剩余数据框都已经接收并编码前,不会对其他满群框串流队列或未满群框串流队列进行编码,且该具有最高接收比例的未满群框串流队列的该已经接收的数据框与该剩余数据框组成该具有最高接收比例的未满群框串流队列的满群框。
11.如权利要求8所述的装置,其特征在于,该复杂度是依据运动向量变异数、DCT系数变异数或解析度的至少之一,预先计算而得。
12.如权利要求8所述的装置,其特征在于,该至少一未满群框串流队列各自的该接收比例,与该至少一未满群框串流队列各自接收剩余数据框所需时间成反比,且该至少一未满群框串流队列各自的已经接收的数据框与该剩余数据框组成该至少一未满群框串流队列各自的满群框。
13.如权利要求8所述的装置,其特征在于,该至少一闲置硬件编码器其中之一是依据编码效率而选定。
14.如权利要求13所述的装置,其特征在于,该至少一未满群框串流队列包括多个未满群框串流队列,该至少一闲置硬件编码器包括多个闲置硬件编码器,以及该排程单元设置以使用该至少一闲置硬件编码器的该闲置硬件编码器对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码的步骤,更包括:
使用该至少一闲置硬件编码器的一具最高编码效率的闲置硬件编码器对该具有最高接收比例的未满群框串流队列的已经接收的数据框开始进行编码,以及使用该至少一闲置硬件编码器的一具第二高编码效率的闲置硬件编码器对该具有第二高接收比例的未满群框串流队列的已经接收的数据框开始进行编码。
15.如权利要求8所述的装置,其特征在于,该排程单元以一处理单元自至少一记忆体装置读取至少一可读取程序码来实现。
16.如权利要求8所述的装置,其特征在于,该排程单元以集成电路或电路板来实现。
CN201610006019.6A 2015-11-06 2016-01-05 串流数据的编码排程方法与装置 Active CN106685904B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW104136679A TWI546779B (zh) 2015-11-06 2015-11-06 串流資料的編碼排程方法、裝置與電腦可讀取媒體
TW104136679 2015-11-06

Publications (2)

Publication Number Publication Date
CN106685904A CN106685904A (zh) 2017-05-17
CN106685904B true CN106685904B (zh) 2020-09-25

Family

ID=57183827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610006019.6A Active CN106685904B (zh) 2015-11-06 2016-01-05 串流数据的编码排程方法与装置

Country Status (3)

Country Link
US (1) US10334250B2 (zh)
CN (1) CN106685904B (zh)
TW (1) TWI546779B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240121416A1 (en) * 2022-10-10 2024-04-11 Microsoft Technology Licensing, Llc Systems and methods for encoding an interactive software video stream

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141636A (zh) * 2006-09-08 2008-03-12 联发科技股份有限公司 数据率控制方法以及视频信号编码器

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434196B1 (en) 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US7050496B2 (en) 2000-02-15 2006-05-23 4Nsys Co., Ltd. Multi-channel image encoding method and system
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
US7593580B2 (en) * 2003-07-14 2009-09-22 Texas Instruments Incorporated Video encoding using parallel processors
US20070291040A1 (en) 2005-01-25 2007-12-20 Reuven Bakalash Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation
US7809061B1 (en) 2004-01-22 2010-10-05 Vidiator Enterprises Inc. Method and system for hierarchical data reuse to improve efficiency in the encoding of unique multiple video streams
WO2005076539A1 (en) 2004-01-30 2005-08-18 Telefonaktiebolaget Lm Ericsson (Publ) Packet scheduling for data stream transmission
US7991053B2 (en) 2004-05-04 2011-08-02 Qualcomm Incorporated Method and apparatus to enable acquisition of media in streaming applications
TWI237806B (en) 2004-11-03 2005-08-11 Sunplus Technology Co Ltd Audio decoding system with ring buffer and method thereof
US8217950B2 (en) 2005-05-27 2012-07-10 Advanced Micro Devices, Inc. Video processing across multiple graphics processing units
US7768517B2 (en) 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
US7929599B2 (en) 2006-02-24 2011-04-19 Microsoft Corporation Accelerated video encoding
US8726279B2 (en) 2006-05-06 2014-05-13 Nvidia Corporation System for multi threaded multi processor sharing of asynchronous hardware units
US8861591B2 (en) 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US8233527B2 (en) 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US8320448B2 (en) 2008-11-28 2012-11-27 Microsoft Corporation Encoder with multiple re-entry and exit points
TW201143336A (en) 2010-05-21 2011-12-01 Acer Inc System for sharing hardwaer resouce and method thereof
US8705616B2 (en) * 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US8493482B2 (en) 2010-08-18 2013-07-23 Apple Inc. Dual image sensor image processing system and method
US9626216B2 (en) 2012-05-09 2017-04-18 Nvidia Corporation Graphics processing unit sharing between many applications
US20140286390A1 (en) 2013-03-20 2014-09-25 Nvidia Corporation Encoder controller graphics processing unit and method of encoding rendered graphics
US9430258B2 (en) 2013-05-10 2016-08-30 Vmware, Inc. Efficient sharing of identical graphics resources by multiple virtual machines using separate host extension processes
TW201445500A (zh) 2013-05-16 2014-12-01 Hon Hai Prec Ind Co Ltd 顯示適配器控制系統、控制方法及電腦裝置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141636A (zh) * 2006-09-08 2008-03-12 联发科技股份有限公司 数据率控制方法以及视频信号编码器

Also Published As

Publication number Publication date
US20170134729A1 (en) 2017-05-11
TW201717162A (zh) 2017-05-16
US10334250B2 (en) 2019-06-25
TWI546779B (zh) 2016-08-21
CN106685904A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
Petrangeli et al. An http/2-based adaptive streaming framework for 360 virtual reality videos
US20140187331A1 (en) Latency reduction by sub-frame encoding and transmission
KR20180031547A (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
CN107155093B (zh) 一种视频预览方法、装置及设备
CN109660879A (zh) 直播丢帧方法、系统、计算机设备和存储介质
US20170180746A1 (en) Video transcoding method and electronic apparatus
EP2629476A1 (en) Adaptive display streams
JP6365253B2 (ja) 映像データ処理装置、映像データ処理プログラムおよび映像データ処理方法
JP2022141586A (ja) 低遅延のために統合nicと共有フレームバッファアクセスとを有するクラウドゲーミングgpu
AU2018250308B2 (en) Video compression using down-sampling patterns in two phases
CN111183640A (zh) 发送装置、发送方法和程序
JP6544188B2 (ja) バッファサイズ決定装置、システム、バッファサイズ決定方法、映像データ再生方法およびプログラム
US8681860B2 (en) Moving picture compression apparatus and method of controlling operation of same
CN106685904B (zh) 串流数据的编码排程方法与装置
US20130094571A1 (en) Low latency video compression
KR20200019853A (ko) 비디오 인코딩의 연기된 포스트-프로세스들을 위한 시스템들 및 방법들
US9665422B2 (en) Information processing apparatus and method, and, program
US9338468B2 (en) Latency aware priority based multi-channel decoding
JP2004015351A5 (zh)
CN105100874A (zh) 一种用于多媒体播放的方法与设备
JP2023128393A (ja) 映像伝送装置、方法、及びシステム
US20130287100A1 (en) Mechanism for facilitating cost-efficient and low-latency encoding of video streams
JP6724581B2 (ja) 画像符号化装置、方法、及びプログラム
JP2016149770A (ja) ストリーミングレイテンシの最小化システム及びそれを使用する方法
CN115334310A (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