影音流传输方法、影音装置以及影音提供装置制造方法

文档序号:7996429阅读:148来源:国知局
影音流传输方法、影音装置以及影音提供装置制造方法
【专利摘要】本发明公开了一种影音流传输方法、影音装置以及影音提供装置。当网络发生壅塞的一段时间中,本发明所提出的适应网络带宽的实时影音流系统及其方法,能使影音接收者平顺且正确地播放出此段时间内尽可能多的影音数据、或对影音提供者/接收者有意义的影音数据,且播放进度跟影音提供者提供的最新进度的差距须维持在一固定范围内。在一种实施方式,当影音流存在其它不同传输比特率的流时,影音接收者可以依据自身网络状况,尽快切换到不高于可用带宽的最高传输比特率的流来收看。
【专利说明】影音流传输方法、影音装置以及影音提供装置
【技术领域】
[0001 ] 本发明提出一种影音流传输方法、影音装置以及影音提供装置。
【背景技术】
[0002]现今人们非常习惯使用网络来收看实时的(live)影音流,例如大型比赛或表演的直播、道路或大楼的监控、游戏画面撷取直播、远程教学、在线实时新闻、灾难现场画面直播等。因为网络有多变的特性,所以影音接收者会使用一个数据缓冲器来储存几百毫秒至几秒不等的影音数据,来减缓网络延迟抖动所造成的播放不连续性。然而,这个简单的做法并不能使实时影音流的传输适应网络的变动。当网络壅塞时间长到令缓冲器的数据耗尽,影音接收者的传统播放器有下面两种反应。一种反应为不放弃任何未播数据,暂停播放一段时间直到缓冲区又有一定量数据再继续播放,但如此会造成收看进度与实时进度落差变大。另一种反应为丢弃任何接收时间超过播放时间的数据,但这很可能会造成之后的画面不能正确呈现。
[0003]为了解决上述问题,这十几年来有许多方法被提出。其中有一种叫作比特流切换(Bitstream Switch)的做法有逐渐变为趋势的倾向。此做法是把一个节目流同时做出不同传输比特率(Bit Rate)的流。影音接收者在适当时间点依据自身的网络环境,从上述流中选择不超过可用带宽的最高传输比特率的流来观赏。这个做法的好处是影音提供者仅需就大多数使用者感兴趣或有办法接收的几种传输比特率(通常为3?5种)进行压缩即可,故不会对影音提供者造成巨大负担。另外,影音接收者得到的收看质量,大多情况下也很接近该网络环境下所能达到的最佳质量。
[0004]目前市面上至少已有两种免费软件产品可以提供实时产生不同传输比特率流的功能。一种是Adobe?公司的“Flash Media Live Encoder”(简称FMLE)软件,此软件可以把网络摄像机传过来的数据,同时压缩出3种传输比特率的实时消息通讯协议(Real-TimeMessaging Protocol,简称RTMP)的影音流,视频压缩格式为VP6或H.264,声音压缩格式为mp3或NellyMoser。另一种软件是开放源码的“FFMpeg”,此软件可以将原始的一条影音流转换出众多数目(取决于硬件能力)的影音流(支持格式至少有:RTP、LiveFLV、RTMP),且几乎所有的压缩格式都支持。另外,许多知名的影音分享平台,例如Youtube?、优酷?等,上面的影片大多都有几种不同质量可供选择。目前这些平台上的节目都是预先录制的,而非实时产生,但大众已经很习惯这种使用模式,所以很自然地会期望以后的实时影音分享平台也可以有不同质量的影音流可供选择。
[0005]然而,使用者并不能随时切换流,主要原因如下所述。一是网络的变化可能是短期的,使用者若太积极地随网络变化来切换流,会加剧网络的动荡。所以,使用者必须利用公知技术中的带宽评估技术,确认网络已经达到另外一种稳定状况再行切换。另外,由于主流视频压缩算法(H.264和Mpeg2、4)采用1、P、B三种不同的帧(Frame)来表示数据,其中P帧或B帧必须直接或间接参照先前最新的I帧才可以正确解码出画面,故使用者切换至另一流的时间点,会受限于I帧出现的时间点。这会衍生出两个功能需求:一是在还未能切换前,要有办法维持住可接受的观赏质量,一是必须帮助使用者尽快进行切换。
[0006]最后,从目前的技术可以观察到几个使用者使用习惯的趋势:(一)越来越多使用者改用平板电脑或智能手机来收看影音流,这类设备的计算能力和电力有限;(二)热门的节目通常会有几千或几百个以上使用者在收看;(三)P2P (Peer-to-peer)的架构风行,在P2P系统中,每个使用者同时也要把影音流分享给别人。这些使用习惯的趋势,会延伸出两个效能需求:不可有太大的计算量,以及不可太耗费网络带宽。

【发明内容】

[0007]本发明提出一种适应网络带宽的实时影音流系统以及方法。
[0008]在本发明的一种实施方式中,提出一种影音流传输方法,包括接收流数据,并监控从所述流数据取得并暂存的多笔编码数据,每一暂存的编码数据包括多个编码译码单元,而所述编码译码单元以一传送顺序进行传送,其中此编码数据在一实施例中可包括影音数据或可仅包括视频数据。
[0009]在此影音流传输方法中,当需要调整传输质量时,取得编码数据的信息,并根据所述编码数据的信息取得对应每一编码数据内所包括的编码译码单元对应的重要性参数,以及对应于所述的重要性参数,调整从影音流传输通道所送的后续编码数据的多个编码译码单元的传送顺序。
[0010]上述根据所述编码数据调整编码译码单元的传送顺序方法在一实施例中包括判断所述编码数据的存量是否低于第一阈值或高于第二阈值,其中第二阈值大于第一阈值。当所述编码数据的存量低于第一阈值时,取得编码数据的信息,并根据所述编码数据的信息取得对应每一编码数据内所包括的编码译码单元对应的重要性参数,以及对应于所述的重要性参数,调整从影音流传输通道所传送的后续编码数据的多个编码译码单元的传送顺序。当编码数据的存量高于第二阈值时,停止调整此传送顺序。
[0011]在本发明的一种实施方式中,提出一种影音流传输方法,包括接收一流数据,并将从流数据取得的多笔编码数据。输出暂存的编码数据以进行播放,并判断当编码数据的存量是否低于第一阈值,当编码数据的存量低于第一阈值或已经用尽时,暂停输出一第一时间区间,并暂存在第一时间区间内所收到的编码数据。将在第一时间区间内所收到的编码数据调整为在一第二时间区间内加速播放完毕,其中第二时间区间小于第一时间区间,当所述影音数据的存量高于一第二阈值时,恢复正常播放速度。此编码数据在一实施例中可包括影音数据或可仅包括视频数据。
[0012]在本发明的一种实施方式中,提出一种影音流传输方法,包括以一第一比特传输率接收一第一流数据。在一切换时间切换到以一第二比特传输率接收一第二流数据,其中此切换时间是以目前播放时间、第一重要编码译码单元的播放时间、第二重要编码译码单元的播放时间进行判断。此目前播放时间是第一流数据在判断时正在播放的时间,第一重要编码译码单元的播放时间是第二流数据中比目前播放时间还早的第二流数据中的多个编码数据中最新的重要编码译码单元的播放时间,此第二重要编码译码单元的播放时间是第二流数据中的编码数据中比目前播放时间还晚的第二流数据中最旧的重要编码译码单元,其中编码数据的重要性判断是根据编码数据的信息取得对应每一编码数据内的多个编码译码单元所对应的重要性参数比较取得。此编码数据在一实施例中可包括影音数据或可仅包括视频数据。
[0013]在本发明的一种实施方式中,提出一种影音装置,适用于从一流数据接收多笔编码数据,每一编码数据包括多个编码译码单元,而所述编码译码单元以一编码顺序为传送顺序,其中此编码数据包括影音数据或仅包括视频数据。此影音装置包括一缓冲器、一缓冲器监控模块以及一帧请求模块。此缓冲器监控模块用以监控暂存于此缓冲器的编码数据的存量,当编码数据的存量低于第一阈值时,发出一调整信号,当编码数据的存量高于第二阈值时,发出一停止调整信号。帧请求模块响应于所述调整信号,输出一帧请求信号,以调整流数据中,编码数据内的编码译码单元的传送顺序。
[0014]在本发明的一种实施方式中,上述影音装置还包括一时戳调整模块,用以接收下载的编码数据,并将编码数据暂存到该缓冲器,其中时戳调整模块可将部分编码数据的播放时间进行修改。
[0015]在本发明的一种实施方式中,上述影音装置还包括一流请求模块,响应于调整信号与带宽评估器的信号,输出一比特率请求信号,用以提供编码数据的信息,以切换接收不同比特传输率的另一流数据。
[0016]在本发明的一种实施方式中,上述影音装置还包括一上传器与一排程器。所述上传器用来将从该流数据接收到的编码数据传出。排程器用来接收来自外部的另一帧请求信号,此另一帧请求信号包括由上传器传出的编码数据中,每一编码数据内所包括的编码译码单元对应的重要性参数,其中此重要性参数是根据这些编码数据的信息计算取得,排程器则根据重要性参数调整上传器传出的编码数据内的编码译码单元的传送顺序。
[0017]上述影音装置还包括一时戳调整模块与一时戳复位模块。所述时戳调整模块用以接收下载的编码数据,并将编码数据暂存到缓冲器,其中时戳调整模块可将部分编码数据的播放时间进行修改。时戳复位模块连接到时戳调整模块,用以将修改过的播放时间进行复位,以适合下一阶影音接收者所要使用的影音流信息时间戳记。
[0018]另一实施例中,上述影音装置还包括流请求模块与一切换器。所述流请求模块响应于调整信号与一带宽评估器的信号,输出一比特率请求信号,用以提供编码数据的信息,以切换接收不同比特传输率的另一流数据。切换器用来接收来自外部的另一比特率请求信号,用来切换由上传器所输出的具有一第一比特传输率的一第一流数据切换到具有一第二比特传输率的一第二流数据,并判断从第二流数据的合适播放时间点开始传送。
[0019]在本发明的一种实施方式中,上述影音装置还包括一时戳调整模块、一时戳复位模块、一上传器与一排程器。此时戳调整模块用以接收下载的编码数据,并将编码数据暂存到缓冲器,其中此时戳调整模块可将部分编码数据的播放时间进行修改。时戳复位模块连接到所述时戳调整模块,用以将修改过的播放时间进行复位,以适合下一阶影音接收者所要使用的影音流信息时间戳记。上传器连接到所述时戳复位模块,用来将从流数据接收到的编码数据传出。排程器用来接收来自外部的另一帧请求信号,此另一帧请求信号包括由上传器传出的编码数据中,每一编码数据内所包括的编码译码单元对应的重要性参数,其中此重要性参数是根据编码数据的信息计算取得,而此排程器根据重要性参数调整上传器传出的编码数据内的编码译码单元的传送顺序。
[0020]在本发明的一种实施方式中,提出一种影音装置,适用于从一流数据接收多笔编码数据,每一编码数据包括多个编码译码单元,而这些编码译码单元以一编码顺序为传送顺序,其中编码数据包括影音数据或仅包括视频数据。此影音装置包括一缓冲器、一缓冲器监控模块、一时戳调整模块、一帧请求模块、流请求模块、一时戳复位模块、一上传器、一排程器以及一切换器。此缓冲器监控模块用以监控暂存于缓冲器的编码数据的存量,当编码数据的存量低于第一阈值时,发出一调整信号,当编码数据的存量高于第二阈值时,发出一停止调整信号。时戳调整模块用以接收下载的编码数据,并将编码数据暂存到缓冲器,其中时戳调整模块可将部分编码数据的播放时间进行修改。帧请求模块响应于调整信号,输出一帧请求信号,以调整流数据中,所述编码数据内的编码译码单元的传送顺序。流请求模块,响应于调整信号与带宽评估结果,输出比特率请求信号,用以提供编码数据的信息,以切换接收不同比特传输率的另一流数据。时戳复位模块连接到时戳调整模块,用以将修改过的播放时间进行复位,以适合下一阶影音接收者所要使用的影音流信息时间戳记。上传器连接到时戳复位模块,用来将从流数据接收到的编码数据传出。排程器用来接收来自外部的另一帧请求信号,此另一帧请求信号包括由上传器传出的编码数据中,每一编码数据内所包括的编码译码单元对应的重要性参数,其中重要性参数是根据编码数据的信息计算取得,而此排程器根据重要性参数调整上传器传出的编码数据内的编码译码单元的传送顺序。切换器用来接收来自外部的另一比特率请求信号,用来切换由该上传器所输出的具有一第一比特传输率的一第一流数据切换到具有一第二比特传输率的一第二流数据,并判断从第二流数据的合适播放时间点开始传送。
[0021 ] 在本发明的一种实施方式中,提出一种影音提供装置,包括一上传器、一排程器以及一切换器。此上传器用来传送具有一第一比特传输率的一第一流数据,其中此第一流数据包括多笔编码数据,每一编码数据包括多个编码译码单元,而这些编码译码单元以一传送顺序排列,其中编码数据包括影音数据或仅包括视频数据。排程器用来接收一帧请求信号,并根据帧请求信号调整上传器传出的编码数据内的所述编码译码单元的传送顺序。此切换器用来接收来自外部的另一比特率请求信号,用来切换由上传器所输出的具有一第一比特传输率的一第一流数据切换到具有一第二比特传输率的一第二流数据,并判断从第二流数据的合适播放时间点开始传送。
【专利附图】

【附图说明】
[0022]图1A与IB为分别说明本发明所提出适应网络带宽的实时影音流系统的不同实施例的架构示意图。
[0023]图2A?2C为本发明的一个实施例的实时影音流系统的客户端所使用的系统方块示意图。
[0024]图3为本发明的一个实施例的实时影音流系统的服务器所使用的系统方块示意图。
[0025]图4A?4C为本发明的一个实施例的实时影音流系统的客户端所使用的系统方块示意图。
[0026]图5为本发明的一个实施例的重要性下载顺序的运作方法流程示意图。
[0027]图6为说明本发明的实施例中判断帧最迟启动下载时间的方法示意图。
[0028]图7A、7B、7C为说明本发明的实施例中,使用数据类型配置重要性的示意图。
[0029]图8A、8B、8C为说明本发明的实施例中,依据播放时间的紧迫性来调整影音数据的重要性的过程示意图。
[0030]图9为说明本发明的实施例中,依据额外的重要性指定策略,采用额外标示法调整影音数据的重要性的过程示意图。
[0031]图10A、10B、10C为说明本发明多个实施例中,采用快速播放方法以适应网络带宽过程的示意图。
[0032]图11A、11B、11C为说明本发明多个实施例中,采用可行立即切换方法进行切换到不同传输比特率的流过程的示意图。
[0033]【主要元件符号说明】
[0034]100、300A、300A’、300A”、300B ;客户端(Client)
[0035]200:服务器(Server)
[0036]210:播放器(Player)
[0037]220:缓冲单兀(Buffer Unit)
[0038]222:缓冲器
[0039]224:缓冲器监控模块
[0040]230:带宽评估器(Bandwidth Estimator)
[0041]240:下载器(Downloader)
[0042]250:时戮调整模块(Timestamp Regulator)
[0043]260:帧请求模块(Frame Demander)
[0044]270:流请求模块(Stream demander)
[0045]310:上传器(Uploader)
[0046]320:排程器(Scheduler)
[0047]330:切换器(Switcher)
[0048]340 ~344:缓冲器
[0049]440:时戮复位模块(Timestamp Restorer)
[0050]1110、1120、1130、1140:流数据[0051 ]1150:快速播放的时间区间
【具体实施方式】
[0052]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0053]本发明提出一个适应网络带宽的实时影音流系统以及方法。
[0054]在一个实施例中,本发明所提出的适应网络带宽的实时影音流系统以及方法,当网络发生壅塞的一段时间中,影音接收者可以平顺且正确地播放出此段时间内尽可能多的影音数据、或是对影音提供者/接收者有意义的影音数据,且播放进度跟影音提供者提供的最新进度的差距须维持在一固定范围内。
[0055]在一个实施例中,本发明所提出的适应网络带宽的实时影音流系统以及方法,当影音流存在其它不同传输比特率的流时,影音接收者可以依据自身网络状况,切换到不高于可用带宽的最高传输比特率的流收看。
[0056] 在一个实施例中,本发明提出一个适应网络带宽的实时影音流系统以及方法,在效能上,可以达到不增加影音提供者/接收者太多的计算负担,不增加冗余影音数据以节省带宽。某些相关研究采用增加I帧的做法,如此会增加冗余影音数据。某些相关研究采用FEC或MDC的编码方式,如此会增加冗余数据与计算负担。
[0057]本发明提出一个适应网络带宽的实时影音流系统以及方法,适合用于使用者想要跟上最新进度的应用环境,例如在部分实施例中,适用于道路或大楼监控、灾难现场直播、影音接收者之间或影音接收者与提供者之间有互动需求的影音直播(例如Call-1n节目、远程教学、购物节目、视频会议)等。
[0058]本发明提出一个适应网络带宽的实时影音流系统以及方法,适合用于影音接收者的硬件能力不高(例如手持装置等),以及影音提供者的资源也需要节约的情况(例如有限数目的服务器希望服务尽可能多的使用者),或是点对点(Peer-to-Peer,P2P)架构下每个点(Peer)也是一个影音提供者下使用。
[0059]本发明提出一个适应网络带宽的实时影音流系统以及方法,在一实施例中,包括一或多个影音提供者与一或多个影音接收者,即所谓客户端/服务器(Client/Server)架构)。在另一实施例中,本系统中的影音接收者亦可同时为影音提供者,也就是点对点(P2P)架构下的每个点(Peer)。
[0060]在本发明所提出的系统与方法中,可将网络的状态分为至少四类,例如包括:
[0061]1.壅塞-数据匮乏状态:网络可用带宽低于比特传输率,以至于影音接收者缓冲器中的暂存数据量少于一阈值。
[0062]2.壅塞-数据耗尽状态:网络可用带宽低于比特传输率,以至于影音接收者缓冲器中的暂存数据已经耗尽。
[0063]3.切换低比特率状态:网络可用带宽低于比特传输率的时间超过一阈值,且用带宽评估技术确认网络可用带宽适合选择另一较低比特传输率的流。
[0064]4.切换高比特率状态:网络可用带宽高于比特传输率的时间超过一阈值,且用带宽评估技术确认网络可用带宽适合选择另一较高比特传输率的流。
[0065]上述四个网络的状态,可以称为需要进行调整传输的事件之一,一旦发生此调整传输的事件后,可以使用本发明中适应网络带宽的实时影音流的一至数个方法,而达到较平顺且正确的播放效果。而在本发明中适应网络带宽的实时影音流的一至数个方法中,可分别采用重要性下载顺序方法、快速播放方法、切换比特率方法等,或是在这三种方法中根据设计上的需求而例如选择其中的一或部分的组合达到预定的效果。
[0066]例如在以下多个实施例的网络状态中采用不同的组合:
[0067]1.在壅塞-数据匮乏状态下,采用例如重要性下载顺序方法,优先下载重要数据。
[0068]2.在壅塞-数据耗尽状态下,影音接收者暂停播放一小段时间,同时使用例如重要性下载顺序方法优先下载重要数据,再搭配快速播放方法播放上述重要数据以追上实时时间。
[0069]3.在切换低比特率状态,可行立即切换方法判断网络状况是否适合在新流于目前播放进度之后第一个I帧出现前进行切换。若是,则采用重要性下载顺序方法下载新流中必要的数据并以快速播放方法播放它,然后回复正常播放。若不适合立即切换,则使用重要性下载顺序方法及快速播放方法继续播放原流,直到新流于目前播放进度之后第一个I帧的播放时间切换至新流。[0070]4.在切换高比特率状态,运作方式原理同在切换低比特率状态下的运作方式。
[0071]本发明所提出适应网络带宽的实时影音流系统以及方法,所传输的视频压缩数据,适用于各种包括例如以下特性的压缩数据。例如在压缩的数据中,某部分的数据仅依赖本身信息即可解压缩,而剩余的数据须依赖自身以外的数据才能解压缩的特性。符合上述特质的压缩算法有例如国际标准组织(ISO)的移动画面专家组(MPEG)系列、H.264标准、高效率视频编码(High Efficiency Video Coding, HEVC)。Η.264标准是在ISO组织中则纳入MPEG-4地时部分(IS0/IEC14496-10)并命名为先进视频编码(Advanced Video Coding,AVC),通常合并称为H.264/AVC。高效率视频编码(HEVC)是一个由IS0/IEC MPEG及ITU-TVCEG所共同开发,被认为是H.264/AVC的后继者并预期在未来会成为热门的新一代视频编码标准。
[0072]为方便说明,以下的描述仅采用I帧、P帧、B帧来解释,但H.264中所使用的1、P、B片段(Slice)或是任何用以编码/译码视频的单元都可适用于本发明所提出的系统及/或方法。
[0073]请参照图1A与1B,为分别说明本发明所提出适应网络带宽的实时影音流系统的不同实施例的架构示意图。在一实施例中,如图1A所示,本发明所提出实时影音流系统可运用在客户端/服务器(Client/Server)架构。服务器(Server) 200提供实时影音流给客户端(Client) 100。由于服务器200经由网络传输提供影音流给想要跟上最新进度的客户端100,但因为网络传输有其限制,因此,本实施例在此披露的所谓实时影音流,只要能符合系统所要求一定时间传送到客户端100的状态,都可符合本实施例所谓的实时状态或是接近实时的状态,例如与记录事件所对应的影音流发生时间到传送到客户端100的时间是例如在十秒之内,或是在二十秒之内等等都可称为实时或是接近实时的状态,但并非以此为限制,而是以系统所要求的时间为主。例如道路或大楼监控、灾难现场直播等等,所要求反应的时间,会依照状况有所差异。
[0074]在另一实施例中,如图1B所示,本发明所提出实时影音流系统可运用在点对点(P2P)架构。服务器(SerVer)200提供实时影音流给客户端(Client)300A。而客户端(Client) 300A则是可以成为点对点(P2P)架构下的一个点(Peer)。而其它的影音接收者,例如图示中的客户端(Client) 300B,则是可以从其它一至多个影音接收者下载影音数据,例如从客户端300A取得实时影音流。在P2P架构中,每个影音接收者还可以提供本身暂存的影音数据给一或多个影音接收者。
[0075]请参照图2A?2C,其为本发明所提出关于实时影音流系统多个实施例的客户端所使用的系统方块示意图,但并非以此为限制。
[0076]在一个实施例中,请参照图2A,其为实时影音流系统的客户端所使用的系统方块示意图。此客户端100包括播放器(Player)210、缓冲单元220、带宽评估器(BandwidthEstimator) 230以及下载器(Downloader) 240。而用以达成本发明所提出实时影音流系统的客户端100所使用的系统包括巾贞请求模块(Frame Demander) 260。
[0077]上述在客户端100所使用的系统可以是由个别单独物理设备所执行,也可以是由处理器(Processor)执行储存在内存装置内的韧体或是软件模块。上述的方式都可达到本发明所提出实时影音流的系统。下载器240用以接收编码数据,并传送到缓冲单元220。而缓冲单元220则是连接到播放器210与帧请求模块260。[0078]播放器210可以是目前市面上已有的主流播放器,例如快闪播放器(Fl ashplayer),也可以是自行开发的播放器,并播出声音与视频(Audio/Video, A/V)数据。缓冲单元220是位于播放器210外部的缓存单元器,用以缓冲暂存欲提供给播放器210的影音数据,例如带有流通讯协议(例如RTMP)信息的影音数据。此缓冲单元220包括缓冲器(Buffer) 222以及一缓冲器监控模块(Buffer Monitor) 224。缓冲器监控模块224用来监控缓冲器222存量是否不足。带宽评估器230利用带宽评估机制来评估目前的影音提供者到自身,以及其它可能的影音提供者到自身的可用带宽。下载器240用来下载影音数据。帧请求模块260传送一帧请求给影音提供者,用以提供必要信息给影音提供者,请其改变影音数据传送的优先级。
[0079]在一个实施例中,请参照图2B,其为实时影音流系统的客户端所使用的系统方块示意图。此客户端100包括播放器210、缓冲单元220、带宽评估器230以及下载器240。而用以达成本发明所提出实时影音流系统的客户端100所使用的系统包括时戳调整模块(Timestamp Regulator) 250 以及巾贞请求模块(Frame Demander) 260。
[0080]与图2A相同的元件用相同的标号表示,在此不再冗述。下载器240连接到时戳调整模块250,用以接收编码数据,并传送到时戳调整模块250。缓冲单元220则是连接到播放器210、时戳调整模块250与帧请求模块260。时戳调整模块250将编码数据传送到缓冲单元220暂存。
[0081]下载器240用来下载影音数据。时戳调整250接收来自下载器240所下载的影音数据,并将某些特定视频数据的播放时间进行修改,使其根据修改的时戳(Timestamp)调整播放的速度。帧请求模块260传送一帧请求给影音提供者,用以提供必要信息给影音提供者,请其改变影音数据传送的优先级。
[0082]在一个实施例中,请参照图2C,其为实时影音流系统的客户端所使用的系统方块示意图。此客户端100包括播放器210、缓冲单元220、带宽评估器230以及下载器240。而用以达成本发明所提出实时影音流系统的客户端100所使用的系统包括时戳调整模块250、巾贞请求模块260、以及流请求模块(Stream demander) 270。
[0083]与图2A相同的元件用相同的标号表示,在此不再冗述。下载器240连接到时戳调整模块250,用以接收编码数据,并传送到时戳调整模块250。缓冲单元220则是连接到播放器210、时戳调整模块250、帧请求模块260、以及流请求模块270。时戳调整模块250将编码数据传送到缓冲单元220暂存。
[0084]时戳调整250接收来自下载器240所下载的影音数据,并将某些特定视频数据的播放时间进行修改,使其根据修改的时戳(Timestamp)调整播放的速度。帧请求模块260传送一帧请求给影音提供者,用以提供必要信息给影音提供者,请其改变影音数据传送的优先级。流请求模块270传送一比特率请求给影音提供者,用来提供必要信息给影音提供者,请其提供不同比特率的新流影音数据给客户端100。
[0085]请参照图3,其为本发明的一个实施例的实时影音流系统的服务器所使用的系统方块示意图。服务器200以一流服务器(Stream Server)进行说明,但并非以此为限制。服务器200至少包括上传器(Uploader) 310以及至少一个缓冲器。为方便说明,在此仅以图示所标示的缓冲器340?344为例,但并非以此为限制。为达成本发明所提出实时影音流系统的服务器200的功能,服务器200可以选择性地包括排程器(Scheduler) 320以及/或是切换器(Switcher) 330,此为根据客户端的需求而有不同的实施方式。例如客户端为图2A的架构,则配合的服务器200可只包括排程器320。例如客户端为图2C的架构,则配合的服务器200可须包括排程器320以及切换器330。
[0086]上传器310用来将数据传送给下一阶段的影音接收者,例如图2所述的客户端100。排程器320用来调整要传送给影音接收者的数据的传送顺序。切换器330用来判断要从新流的哪个播放时间点开始提供数据,以及提供那些数据。而缓冲器340?344中的每个缓冲器储存一种对应的比特传输率的流数据。
[0087]请参照图4A?4C,其为本发明多个实施例的实时影音流系统的客户端所使用的系统方块示意图。
[0088]请参照图4A,其为本发明的一个实施例的实时影音流系统的客户端所使用的系统方块示意图。在此实施例中,为说明图1所示点对点(P2P)架构下的一个点(Peer)的客户端(Client) 300A系统方块示意图。客户端(Client) 300A包括播放器210、缓冲单元220、带宽评估器230以及下载器240、以及帧请求模块260。为了扮演点对点(P2P)架构下的一个影音提供者,此客户端300A还包括上传器(Uploader)310以及排程器(Scheduler) 320。本实施例中与图2A及图3相同元件以相同的标号表示,在此不再冗述。缓冲器222将数据传送到上传器310,再经由上传器310传送到点对点(P2P)架构下的下一个点(Peer)。
[0089]请参照图4B,其为本发明的一个实施例的实时影音流系统的客户端所使用的系统方块示意图。在此实施例中,为说明点对点(P2P)架构下的一个点(Peer)的客户端(Client) 300A’系统方块示意图。客户端(Client) 300A’包括播放器210、缓冲单元220、带宽评估器230以及下载器240、时戳调整模块250以及帧请求模块260。为了扮演点对点(P2P)架构下的一个影音提供者,此客户端300A还包括上传器(Uploader) 310以及排程器320。本实施例中与图2B及图3相同元件以相同的标号表示,在此不再冗述。在此实施例中,此客户端300A’还包括一时戳复位模块440,连接到时戳调整模块250,用以将被时戳调整模块250所修改过的播放时间信息修改回来或是修改为适合下一阶影音接收者所要使用的影音流信息时间戳记,再经由上传器310传送到点对点(P2P)架构下的下一个点(Peer)。
[0090]请参照图4C,其为本发明的一个实施例的实时影音流系统的客户端所使用的系统方块示意图。在此实施例中,为说明图1所示点对点(P2P)架构下的一个点(Peer)的客户端(Client) 300A”系统方块示意图。客户端(Client) 300A”包括播放器210、缓冲单元220、带宽评估器230以及下载器240、时戳调整模块250、帧请求模块260、以及流请求模块270。为了扮演点对点(P2P)架构下的一个影音提供者,此客户端300A”还包括上传器310、排程器320以及切换器(Switcher) 330。本实施例中与图2C及图3相同元件以相同的标号表示,在此不再冗述。在此实施例中,此客户端300A”还包括一时戳复位模块(TimestampRestorer) 440,连接到时戳调整模块250,用以将被时戳调整模块250所修改过的播放时间信息修改回来或是修改为适合下一阶影音接收者所要使用的影音流信息时间戳记,再经由上传器310传送到点对点(P2P)架构下的下一个点(Peer)。
[0091]在此必需注意的是,本
【发明内容】
的图式或上述实施例中,所述许多功能单元标示为功能方块或模块,是为了具体地强调其实施独立性。例如,可将功能方块或模块实施为硬件电路,其包含自订VLSI电路或门极阵列、如逻辑芯片的现成半导体、晶体管、或其它离散元件。亦可在可编程硬设备中实施模块,如可编程栅极阵列、可编程阵列逻辑、可编程逻辑设备、或其类似物。亦可在利用各种类型的处理器执行的软件中实施模块。例如,可执行码的识别模块包含计算机指令的一或多个物理或逻辑区块,例如,可将这些区块组织为对象、程序、或功能。然而,识别模块的可执行文件物理上不一定位于一起,而是可包含储存于不同位置的不同指令,这些指令当逻辑结合一起时将包含模块并达成模块的指定目的。
[0092]可执行码模块可为单一指令或许多指令,并可分布于数个不同程序代码片段上、不同程序中、及数个内存装置上。同样地,操作数据在此可识别及说明于模块内,并可以任何合适形式体现及组织于任何合适类型的数据结构内。可收集操作数据为单一数据集,或操作数据可分布于不同位置(包括分布于不同的储存设备),且操作数据可仅作为电子信号至少局部地存在。
[0093]具体方法步骤
[0094]本发明所使用的方法,将以下面的实施例加以说明,但本发明并不仅限于以下的实施例。所有与下列实施例类似的应用场合,皆可使用本发明所提出的系统与方法。本发明使用主流视频压缩算法,例如MPEG系列、H.263、H.264等等,所使用的I帧、P帧、B帧或是1、P、B片段(Slice)都可用来解释本发明的方法。
[0095]重要性下载顺序方法
[0096]本发明所提出的方法,在一实施例中,提出一种重要性下载顺序的运作方法,内容如下所述,并请参照图5进行说明。
[0097]首先,步骤S502,影音接收者的缓冲器监控模块可以周期性或随时地监测缓冲器的存量,影音接收者的带宽评估器可以周期性或随时地监测网络可用带宽。
[0098]步骤S510,缓冲器监控模块判断缓冲器的存量是否低于一阈值(以Thl表示),若否,则持续监控。若是,则影音接收者的帧请求模块可针对未来某一段要下载的影音数据进行如以下的方式处理。步骤S512,影音接收者取得影音数据相关信息,例如所接收影音内容的图像组(Group of Picture,以下简称GOP)信息、影音提供者的数量、是否使用网络编码(Network Coding)技术、该要被下载的编码数据的播出时间、预测数据量大小、预测解碼时间、可用带宽等信息。
[0099]上述图像组(GOP)信息例如是在MPEG视频编码中,图像组(GOP)即I帧和I帧之间的帧排列。图像组就是一组以MPEG编码的图片或视频流内部的连续图像。每一个以MPEG编码的影片或视频流都由连续的图像组组成。
[0100]取得上述的信息后,影音接收者可以决定处理方式,在一实施例中,将这些影音数据自行根据重要性排序方法进行排序后,再将排序的结果传送给单一或是多个影音提供者,例如步骤S514?S516。在步骤S514中,影音接收者的帧请求模块(Frame Demander)会依据一类型-紧迫性准则判断与指定取得的影音数据相关信息的重要性,并依据该重要性对未来要接收的一段影音数据进行排序。而后在步骤S516,影音提供者收到影音接收者送来的请求是“排序结果”时,除了根据此排序结果对后续传送的影音数据更新传送排列顺序夕卜,在另外一实施例中,影音提供者的排程器(Scheduler)还可以再依据额外指定的策略,例如广告商要求一定要传送有出现他们商标的画面、或是场景分析程序判断某灾难画面疑似出现人影等等特定的策略,改变画面的重要性,以调整传送排列顺序。
[0101]在另一实施例中,影音接收者单纯地将取得的影音数据相关信息,例如与排序相关的参考信息(网络可用带宽、目前播放进度、缓冲器的存量现状等等)传给影音提供者请其代为决定未来某一段要传送的数据的传送顺序,如步骤S518?S520。
[0102]如步骤S518,影音接收者的帧请求模块将取得的影音数据中与排序相关的参考信息,例如:网络可用带宽、目前播放进度、缓冲器现状或上述信息的处理结果,传送给影音提供者。步骤S520,影音提供者的排程器综合此排序参考信息依据类型-紧迫性准则及/或根据一额外指定的策略,决定未来某一段要传输的影音数据的顺序,也就是依照重要性进行排序。
[0103]步骤S522,影音提供者根据上述不同的处理方式决定的重要顺序依序传送编码数据。每传送若干个画面、或每传送完一个排程、或每经过一固定或非固定时间,影音接收者或影音提供者可根据最新的可用带宽信息以上述方式微调目前排序。同时,影音接收者或影音提供者会检查目前排序的这一段编码数据,是否会影响下一段要被排序的编码数据的传送。若不会影响,则继续传送目前排序的编码数据。若产生影响,则中断传送目前排序的编码数据。跳到步骤S502以对下一段影音数据传送顺序做排序。
[0104]步骤S524,若缓冲器监控模块发现缓冲器的存量已经超过另一阈值(以下以Th2表示),其中Thl < Th2 (以避免传输顺序于重要性顺序和编码顺序两者之间频繁切换),影音接收者告知影音提供者于下一段未排程影音数据开始传送时,恢复原来的传输模式(即依照原有的编码顺序传送)。
[0105]上述重要性下载顺序方法适用于许多情境,例如下面的情境,但并非以此为限制。
[0106]场景1:单一影音提供者,每个图像组(GOP)的结构已知(如:某些编码器采固定的图像组(GOP)结构)。
[0107]场景2:单一影音提供者,每个图像组(GOP)的结构未知(如:某些编码器会依据场景变化增减I帧的出现频率)。
[0108]场景3:多个影音提供者,每个图像组(GOP)的结构已知,影音数据无再经过网络编码(Network Coding)等编码技术编码。
[0109]场景4:多个影音提供者,每个图像组(GOP)的结构已知,影音数据有再经过网络编码(Network Coding)等编码技术编码。
[0110]场景5:多个影音提供者,每个图像组(GOP)的结构未知,影音数据无再经过网络编码(Network Coding)等编码技术编码。
[0111]场景6:多个影音提供者,每个图像组(GOP)的结构未知,影音数据有再经过网络编码(Network Coding)等编码技术编码。
[0112]在上述场景I或4中,则不论是影音接收者或影音提供者都可以对某段要被排序的影音数据进行排序。
[0113]在上述场景2或6中,由影音提供者对某段要被排序的影音数据进行排序较为合适,因为提供者可较接收者更早得知要被排序的影音数据的图像组(GOP)结构。
[0114]在上述场景3或5中,由影音接收者对某段要被排序的影音数据进行排序较为合适,因为此场景下不同的影音提供者间不易合作。影音接收者依据从各个影音提供者取得其所知的图像组(GOP)结构信息的联集,进行排序。
[0115]不论上述哪一场景,皆须每隔一段时间便对某一段数据计算重要性。在本发明的实施例中,所提到每隔一段时间便对某一段数据计算重要性,系针对图像组(GOP)中所有画面,以及这些画面播放时间内的声音数据。为方便说明,被评估重要性的视频与声音数据,称为评估对象集合。然而,若GOP中的画面数目不多,为节省控制花费,本发明的方法可适用于连续的数个GOP视为一个评估对象集合。若一个GOP的播放时间长度很长,为了提升效率,本发明也可将此GOP分割为数个评估对象集合。
[0116]当需要执行重要性下载顺序方法时,目前下载中的GOP里的画面,尚未下载者,以及这些画面的播放时间内的声音数据,即为第一个评估对象集合。每次进行评估前,须先计算下一个评估对象集合的最重要数据(可能为此GOP的I帧或声音数据)的最迟启动下载时间,才能知道目前的评估对象集合可以使用多少时间来下载。
[0117]在上述的实施例中,此重要性下载顺序指的是根据一指标参数进行调整,例如是根据数据所计算而得的重要性进行调整,但并非以此为限制,只要能作为下载顺序调整的任何因素的组合都可以称为重要性参数,此须视设计上的需要而变化。例如可以是接收影音内容的图像组(GOP)信息、被评估的所述编码数据的播出时间、预测数据量大小、预测译码时间、可用带宽、所述编码数据提供来源的数量或所述编码数据是否采用网络编码(Network Coding)方式。在另外一实施例中,还可以再依据额外指定的策略,例如广告商要求一定要传送有出现他们商标的画面、或是场景分析程序判断某灾难画面疑似出现人影等等特定的策略,改变画面的重要性,以调整传送排列顺序。
[0118]以图6为实施例,说明判断每个I帧的最迟启动下载时间的方法示意图。对于其它的信息,例如声音的判断原理与此实施例相同,也就是也可适用于此实施例所描述的方法,因此在此不再赘述。
[0119]首先,令影音接收者在数据不虞匮乏情况下,第Y个播放的画面的识别码为Y,且播放的第一个画面的识别码为I (识别码即为图6中每个画面内上方的数字,画面以菱形表示)。若某一 I帧的识别码为η,且此流的帧率(Frame Rate)固定为x帧/每秒(Framesper second, fps),也就是每张画面的呈现时间为l/χ秒。除此之外,此影音接收者的播放器于时间tstart时开始播放(缓冲器监控模块观察到已传送播放器认可的安全缓冲时间长度ts也的数据量给播放器的时间点即为tstart),则识别码为η的I帧应该于tstart+(n/x)秒时候播出。
[0120]若以下面的方式判断,在未来一段适宜时间内的可用带宽为W,识别码为η的I帧的数据量大小预测值s和解碼花费时间预测值如此便可求得识别码为η的I帧由影音提供者送出的最迟启动下载时间I^urgmt = (tstart+n/x)-td_je-(s/w)。此法也可用来评估P帧、B帧和声音的最迟启动下载时间。
[0121]在此假设目前时间加上影音接收者发送请求到影音提供者的花费时间所得的时间点为t,且下一评估对象集合的I帧的最迟启动下载时间为t’,则目前评估对象集合的可用下载时间即是t’ -t。
[0122]开始排序前,还有一点须注意的是,当影音接收者来指定数据的重要性时,声音数据的重要性可由例如影片类型(如:演讲节目则声音重要,武打节目则声音不重要)决定、使用者手动指定、或是影音提供者周期性地事先告知影音接收者接下来的评估对象的声音重要程度等方式来决定。
[0123]若声音为最重要,可先下载评估对象集合里的全部声音再开始下载画面,令全部声音数据下载需花费T s_d,则画面仅分配到t’ -t-τ s_d的时间来评估重要性。若声音最不重要,则可留到最后下载。若声音重要性介于I帧与P帧之间,可以先下载完I帧,再下载声音,然后剩余时间留给P帧与B帧。如果声音重要性介于P帧与B帧之间,可以先下载完I帧与P帧后,再下载声音,然后剩余时间留给B帧。若声音重要性等同于P帧,则每下载一个P帧,就把该下载P帧与其上一参考画面之间的声音下载下来(可先P帧或先声音)。
[0124]本发明中的实施例中,重要性以数值为例表示,数值越大表示越重要。重要性最大值为M+1,最小值为O。M值须比评估对象集合中的个数还多,且建议为一正整数,也可以是实数或任何可用以程度差异的数值皆适用于此实施例。
[0125]以上述场景I为例说明,也就是以单一影音提供者为例,每个图像组(GOP)的结构已知。影音接收者先以数据类型(声音、1、P、B)和播放时间的紧迫性来指定重要性,这种指定法称为类型-紧迫性。采用类型来指定重要性的精神为若一画面译码失败时会造成越多的画面译码不正确,则该画面越重要。采用紧迫性来指定重要性的精神为越是快要被播放到的数据越容易错失播放时机,故越重要。
[0126]依数据类型配置重要性
[0127]关于指定I帧的重要性,可配置为M。
[0128]关于指定声音的重要性,则可根据以下的规则,包括⑴若声音比I帧重要,则声音重要性为M+1。(2)若声音最不重要,则声音重要性为O。(3)若声音重要性介于1、P帧之间,声音重要性为M-1。(4)如果声音重要性介于P、B帧之间,则声音的重要性设为最后一个P帧的重要性减I。之后此P帧的重要性若改变为d,声音的重要性就跟着改变为d-1。
(5)若声音重要性等同于P(或B)帧,则把每个P(或B)帧及其对应到的声音的重要性设为相同,这里所谓的对应到的声音是指该P(或B)帧与前一帧、或该P(或B)帧与后一帧的播放时间点之间的声音。之后此P(或B)帧的重要性若改变为d,对应声音的重要性就跟着改变为d。
[0129]关于指定P帧的重要性。把M?O中未配置的值,从大到小配置给播放时间由最旧到最新的P帧。例如,评估对象集合中有3张P帧:P1、P2、P3,且Pl比P2早播出,P2比P3早播出。目前重要性M已配置给I帧,重要性M-1已配置给声音,则可以将Pl配置重要性M-2,P2配置重要性M-3,则P3配置重要性M-4。
[0130]关于指定B帧重要性,可依照以下的规则,包括(I)播放时间上连续的B帧视为一组B画面群,从播放时间最早的B画面群到播放时间最晚的B画面群中,各挑出此画面群中数据量最大的B画面来。例如评估对象若为I1、B3、B4、P2、B5、B6,则B3、B4是一个画面群,B5、B6是一个画面群。假设数据量方面是B3 > B4,B6 > B5,则第一次会挑出B3和B6。
(2)把M?O中未配置的值,从大到小配置给上述挑出来的B画面(从数据量大的往数据量小的配置。若有数个B画面的数据量一样大,则再以播放时间最早的往最晚的配置)。假设目前M?M-2已配置,上例中B3数据量比B6大,则B3会被配置为重要性M_3,B6会被配置为重要性M-4。(3)若还有B画面未被指定重要性,跳到前述步骤(1),直到全部的B画面已被指定重要性。
[0131]目前只以数据类型来指定重要性。上述方法可以顾虑到数据译码的相依性,B画面分布的均匀性(播放画面会较不均匀分布的平顺),及信息量较大的B画面较数据量小的B画面优先。
[0132]依播放时间紧迫性配置重要性[0133]依据播放时间的紧迫性来调整影音数据的重要性的一个实施例中,采用一类似气泡排序法的方式来调整,此法的计算量很小。
[0134]若所有比还未调整的B帧还重要的数据的下载时间总和,已经超过此次评估对象集合的可用下载时间(先前提及的t’ _t),则无需再依据播放时间的紧迫性来调整影音数据的重要性。
[0135]若所有比还未调整的B帧还重要的数据的下载时间总和,尚未超过此次评估对象集合的可用下载时间(先前提及的t’-t),则目前还未调整完毕的B帧中重要性最大者,试着和符合下列条件者交换重要性:(I)重要性比该B帧大I ; (2)该交换数据不是该B帧解碼时所需直接或间接参照的数据;(3)该交换数据是否可于其最迟启动下载时间之前启动下载的可能性,不因交换而改变;(4)该交换数据下载完毕时间是否超过下一评估对象中最重要数据的最迟启动下载时间的可能性,不因交换而改变。
[0136]当没有符合上述条件的交换数据时,若该调整中的B帧的下载时间没有超过其最迟启动下载时间,且其下载完毕时间也不超过下一评估对象中最重要数据的最迟启动下载时间的话,则此B帧调整完毕。反之,则恢复该调整中的B帧所做过的所有调整,然后该B中贞视为调整完毕。
[0137]以下实施例配合图7A~7C说明如何使用类型-紧迫性方法依据数据的类型来调整影音数据的重要性的过程示意图。为简化说明,此例并不包括声音数据。图7A显示一评估对象集合包括 nl、n+3P、n+lB、n+2B、n+6P、n+4B、n+5B、n+9P、n+7B、n+8B。在此 1、P、B 分别指的是I帧、P帧、B帧,而前列数字代表播放顺序。依据上述所提出的依数据类型配置重要性的方法后,上述数据分别得到重要性M、M-1、M-4、M-8、M-2、M-9、M-5、M-3、M-6、M-7,这同时也是其暂定的传输顺序。图7B显示这些画面数据的最迟启动下载时间及其参考信息。此实施例中的流每秒有10张画面,比特传输率是2000Kbps,评估近期未来的可用带宽是1600Kbps。图7C画出本发明的实施例中,目前的传输策略,其中时间轴上的标示表示该画面的最迟启动下载时间,虚线表示下一评估对象的最重要数据的最迟启动下载时间,在此例子中也就是 10.5 的时间。评估对象111、11+3?、11+6?、11+9?、11+18、11+58、11+78、11+88、11+28、n+4B的预测传输时间分别为tl、t2、t2、t2、t3、t3、t4、t4、t5、t5,其系对应传输数据的大小除以评估近期未来的可用带宽。
[0138]图7C可以看出,本发明所提出的方法的实施例,对于目前所指定之重要性的传输效果。目前可以确保nl、n+3P、n+6P、n+9P这4张画面及时抵达影音接收者。
[0139]图8A、8B、8C为说明本发明的多个实施例之一,依据播放时间的紧迫性来调整影音数据的重要性的过程示意图。图8A、8B、8C显示依据上述方法的实施例中,执行依据播放时间的紧迫性来调整影音数据的重要性的过程。
[0140]图8A显示η+1Β、η+5Β提升重要性的过程,η+lB先与n+9P互换。η+lB再与n+6P互换。接着因为η+lB解碼需要n+3P,所以不可互换。又η+lB此时的重要性不能使它在其最迟启动时间前开始下载,故η+lB所做的调整全部复原(即η+lB和n+6P换回来,然后η+1Β和n+9P再换回来)。
[0141]接着,n+5B先与η+lB互换。n+5B再与n+9P互换。接着因为n+5B解碼需要n+6P,所以不可互换。又n+5B此时的重要性可使它在其最迟启动时间前开始下载,且不影响被交换的Π+9Ρ下载完毕时间是否超过n+101的最迟启动下载时间的可能性,故n+5B调整完毕。[0142]图8B显示n+7B、n+8B提升的过程,n+7B先与η+1Β互换。接着因为n+7B解碼需要n+9P,所以不可互换。又n+7B此时的重要性会延误n+10I的下载,故n+7B所做的调整全部复原(即n+7B和η+lB再换回来)。
[0143]接着,n+8B先与n+7B互换。n+8B再与η+lB互换。接着因为n+8B解碼需要n+9P,所以不可互换。又n+8B此时的重要性会延误n+10I的下载,故n+8B所做的调整全部复原(即n+8B先和η+lB换回来,n+8B再和n+7B换回来)。
[0144]图8C显示n+2B提升的过程,n+2B先与n+8B互换。n+2B再与n+7B互换。n+2B再与η+lB互换。n+2B再与n+9P互换。n+2B再与n+5B互换。n+2B再与n+6P互换。接着因为n+2B解碼需要n+3P,所以不可互换。又n+2B此时的重要性可使它在其最迟启动时间前开始下载,且不影响被交换的画面的下载完毕时间是否超过η+lOI的最迟启动下载时间的可能性,故n+2B调整完毕。此时该评估对象集合的可用传输时间已用罄,n+4B可不用尝试提升。
[0145]在上述实施例中,本发明可以确保有6张正确解碼的画面及时抵达影音接收者。
[0146]在上述场景I中,影音提供者若非收到影音接收者依类型-紧迫性方法所指定的重要顺序,也就是上述由影音接收者自行运算后传来的“排序结果”,而是收到类型-紧迫性方法所需的参考数据,例如与排序相关的参考信息(网络可用带宽、目前播放进度、缓冲器的存量现状等等),则影音提供者会代替影音接收者执行类型-紧迫性方法来指定重要性。这样做的好处是,若影音接收者的设备能力很差,可由设备能力较好的影音提供者代劳。不论类型-紧迫性方法的工作由谁来做,其产出还会被影音提供者调整一次。
[0147]一些额外的重要性指定策略会标示出某些画面或某段声音特别重要。这些策略可能是广告商要求的,或是某程序解析影音数据后决定的。当影音提供者发现这些额外的重要性指定策略所标示的数据,在类型-紧迫性方法的产出排序中,是可以于这些数据的最迟译码时间之前送到影音接收者,则排序结束,开始传送数据。否则,影音提供者的排程器(Scheduler)会把这些标示数据的重要性,试着进行提升的操作。
[0148]本发明所提出额外的重要性指定策略方法,在一个实施例中,可以采用额外标示法,详细步骤如下所述。
[0149]首先,若所有比还未调整的标示数据还重要的数据(不含B画面)的下载时间总和,已经超过此次评估对象集合的可用下载时间(先前提及的t’-t)。则无需再调整影音数据的重要性。若尚未超过,则目前尚未调整完毕的标示数据中重要性最大者,将其重要性提高到仅小于其参考的画面数据中重要性最小者。提升过程中,若导致原本可及时下载的I中贞、P帧变为来不及下载,则试着排除排程里播放时间较该调整中数据晚的B画面(从播放时间最晚者逐一排除)。判断释放出来的排程时间能否容下此该调整中数据,若可以则该标示数据调整完毕,若不行,则放弃提升此额外标示的数据。此实施例可以参照图9,为说明本发明的实施例中,依据额外的重要性指定策略,采用额外标示法调整影音数据的重要性的过程示意图。如图9所示,以n+4B为例,因为额外的重要性指定策略,将n+4B提升到n+6P与n+9P之间。
[0150]在上述场景2中(即单一影音提供者,每个GOP的结构未知),影音接收者无法确定目前评估对象集合的大小,故只能提供参考信息给影音提供者请其代为指定重要性。要提供的信息至少包括tstart (影音接收者的播放器开始播放的时间)、影音接收者第一个播出的画面的识别码、未来一段适宜时间内的可用带宽为W、解碼花费时间预测值td_de。
[0151]在上述场景2中,若影音提供者的缓冲器里已经出现下一评估对象集合的I帧,则直接用上述场景一所述的类型-紧迫性法和额外标示法对目前评估对象进行重要性配置与传送顺序排序。若尚未出现下一评估对象集合的I帧,则以目前缓冲器里所有未传送给影音接收者的数据当作目前的评估对象集合,且将目前的评估对象集合中最新的P帧的最迟传送完毕的时间(即影音接收者来得及播放)减去目前时间t,当作此次评估对象集合的可传输时间,然后再用上述场景I所述的类型-紧迫性法和额外标示法对目前评估对象进行重要性配置与传送顺序排序。
[0152]在上述场景3中,也就是多个影音提供者,每个GOP的结构已知,影音数据无再经过网络编码(Network Coding)等编码技术编码。由于影音提供者彼此不知道对方的运作情况,所以要互相协调影音数据的传送顺序的复杂度很高。因此,在此情境中,本发明只让影音接收者来决定数据的传送顺序,而决定的方式跟场景I所述的类型-紧迫性法相同,唯一的区别在于带宽评估器(Bandwidth Estimator)所评估的未来一段适宜时间内的可用带宽为《,是所有影音提供者到影音接收者的可用带宽的总和。
[0153]决定好传送顺序后,影音接收者在一实施例中,可以采用以下两种方式来告知影音提供者。在第一种方法中,先跟各个影音提供者请求一画面或声音(越重要数据跟可用带宽越大者拿),再看哪个提供者先传输完,就向该影音提供者请求目前还没传输者中重要性最大者。举例来说,若有两个影音提供者A、B,且影音提供者A的可用带宽大于影音提供者B。目前排序好的数据顺序为I1、P1、声音1、P2、声音2、B1、B2、B3、B4。所以影音接收者会先向影音提供者A要II,向影音提供者B要P1。假设影音提供者B比影音提供者A先传完,则影音接收者又继续跟影音提供者B要声音I。当影音提供者B还在传声音I给影音接收者时,若影音提供者A已经传完II,则影音接收者就向影音提供者A请求P2。
[0154]第二种方法为,影音接收者先对各个影音提供者配置一画面或声音(越重要数据配置给可用带宽越大者),再依据配置画面的预测大小以及评估的可用带宽计算该配置数据传完的时间,看哪个提供者先传输完,就把目前还没传输者中重要性最大者配置给该影音提供者。待全部数据都配置好后,将配置结果传给所有的影音提供者。
[0155]在上述场景4中,也就是有多个影音提供者,每个GOP的结构已知,影音数据有再经过网络编码(Network Coding)等编码技术编码。由于网络编码可以让不同的影音提供者之间,无须协调便可以将一份原始数据,随意编码后传给影音接收者。故此场景下,不同的影音提供者可以视为一个。也就是说,场景4中影音接收者和提供者指定重要性的方法,与场景I相同。
[0156]在上述场景5中,也就是有多个影音提供者,每个GOP的结构未知,影音数据无再经过网络编码(Network Coding)等编码技术编码。由于影音提供者彼此不知道对方的运作情况,所以要互相协调影音数据的传送顺序的复杂度很高。因此,在此情境中,本发明只让影音接收者来决定数据的传送顺序。首先,影音接收者向各个影音提供者收集其缓冲器状态。然后,从这些缓冲器状态中,挑出影音接收者未下载数据的联集。
[0157]根据该未下载内容的联集,在一实施例中,可以采用以下两种作法。
[0158]其一,若无包括I帧,则该内容为目前评估对象集合。且将目前的评估对象集合中最新的P帧的最迟传送完毕时间减去目前时间,当作此次评估对象集合的可传输时间,然后再用上述场景I所述的类型-紧迫性法对目前评估对象进行重要性配置与传送顺序排序。
[0159]其二,若有包括I帧,则播放时间在联集中最旧的I帧之前且解碼时不需直接或间接依赖该I帧的画面及其播放时间中的声音数据,为目前评估对象集合。且将该最旧的I帧的最迟启动下载时间减去目前时间,当作此次评估对象集合的可传输时间,然后再用上述场景I所述的类型-紧迫性法对目前评估对象进行重要性配置与传送顺序排序。
[0160]在上述场景6中,也就是有多个影音提供者,每个GOP的结构未知,影音数据有再经过网络编码(Network Coding)等编码技术编码。同场景4的解释,这些影音提供者可视为I个。所以场景6的处理方式,等同场景2 (单一影音提供者,每个GOP的结构未知)。
[0161]快速播放方法
[0162]当播放进度追上下载的最新进度时(即缓冲区耗尽),或是缓冲区暂存的数据量低于一第一阈值,影音接收者的时戳调整模块(Timestamp Regulator)会暂存η时间单位的重要编码数据,并修改这η时间单位的数据的播放时间信息,例如RTMP消息标头中的时戳(Timestamp)字段,使其在η时间单位期间的最后m时间单位,得以加速度(约n/m倍)播完,以追上最新进度。如图1OA所示,其显示了在η时间单位期间内的最后m时间单位内将编码数据播放完毕。
[0163]在最后m时间单位期间,时戳调整模块依据修改过的时间信息,把修改过的影音数据放到缓冲器内,以便让播放器读取。若是在P2P架构下,此修改过的内容要分享给其它的影音接收者,则在分享前,时戳复位模块(Timestamp Restorer)会把影音数据复制过来,把播放时间信息恢复后再分享出去。
[0164]上述决定η与m值的方法详述如下。
[0165]决定η值时,η值至少要长到足以下载一重要编码数据(该定义等同重要性下载顺序方法中所定义的重要数据。最大为网络已经恢复平顺时。由于需暂停播放画面n-m时间单位,为避免使用者无法耐心等待,η值不宜太大,在一实施例中,建议值可采用2~20秒之间。
[0166]决定m值时,可以采用固定比例。即m = n/i, i为一大于I且小于等于η的正整数,也可以是实数或任何可用以比较程度差异的数值皆适用于此实施例。此法较易于实作。除此之外,m值也可采用依实际带宽调整的方式。以上述重要性下载顺序方法求得η时间区间内可下载的帧张数为w,加上该流于η时间区间内完整的帧张数为r,则m = nXw/r0此法可以依据带宽变化,尽可能让播放速度贴近正常速度。如:w = r/2,以2倍速播放;当w=4r/5时,以1.25倍速播放。
[0167]而关于调整播放时间的信息,可考虑维持画面之间原本的距离比例。如图1OB所
【权利要求】
1.一种影音流传输方法,包括: 接收流数据,并监控从该流数据取得并暂存的多笔编码数据,每一暂存的该编码数据包括多个编码译码单元,其中该编码数据包括影音数据或仅包括视频数据;以及 当一调整传输事件启动时,取得所述编码数据的信息,并根据所述编码数据的信息取得对应每一影音流传输通道所传送的后续编码数据的多个编码译码单元对应的重要性参数,以及对应于所述重要性参数,调整该后续编码数据的多个编码译码单元的传送顺序。
2.如权利要求1所述的影音流传输方法,其中调整该后续编码数据的所述编码译码单元的传送顺序之步骤包括: 判断当所述编码数据的存量是否低于一第一阈值或高于一第二阈值,其中该第二阈值大于该第一阈值,其中 当所述编码数据的存量低于该第一阈值时,取得所述编码数据的信息,并根据所述编码数据的信息取得对应每一影音流传输通道所传送的后续编码数据的多个编码译码单元对应的重要性参数,以及对应于所述重要性参数,调整该后续编码数据的多个编码译码单元的传送顺序;以及 当所述编码数据的存量高于该第二阈值时,停止调整该传送顺序。
3.如权利要求1所述的影音流传输方法,其中所述编码数据的信息包括所述编码数据的图像组信息、被评估的所述编码数据的播出时间、预测数据量大小、预测译码时间、可用带宽、所述编码数据提供来源的数量或所述编码数据是否采用网络编码方式。
4.如权利要求1所述的影音流传输方法,其中所述编码译码单元彼此包括交互参照关联特性。
5.如权利要求1所`述的影音流传输方法,其中所述编码译码单元包括符合移动画面专家组标准的I帧、P帧以及B帧。
6.如权利要求1所述的影音流传输方法,其中所述编码译码单元包括符合H.263、H.264、或HEVC标准的1、P、B片段。
7.如权利要求1所述的影音流传输方法,其中每一该影音数据内所包括的所述编码译码单元对应的所述重要性参数,是根据所述编码译码单元的类型判断而指定所述编码译码单元对应的所述重要性参数。
8.如权利要求7所述的影音流传输方法,其中每一该影音数据内所包括的所述编码译码单元对应的所述重要性参数,还包括所述编码译码单元的播放时间急迫性而指定所述编码译码单元对应的所述重要性参数。
9.如权利要求7所述的影音流传输方法,其中每一该影音数据内所包括的所述编码译码单元对应的重要性参数还包括根据额外指定的要求而调整所述编码译码单元对应的所述重要性参数。
10.如权利要求7所述的影音流传输方法,其中每一该影音数据内所包括的所述编码译码单元对应的所述重要性参数,还包括所述编码译码单元的播放时间急迫性以及额外指定的要求而指定所述编码译码单元对应的所述重要性参数。
11.如权利要求1所述的影音流传输方法,其中每一该编码数据内所包括的所述编码译码单元对应的所述重要性参数,是采用所述编码数据的多个或一个图像组、或该图像组的全部或是一部份做为评估对象集合,评估所述重要性参数。
12.如权利要求11所述的影音流传输方法,其中对该评估对象集合进行评估前,先取得下一个评估对象集合的最迟启动下载时间,以取得该评估对象集合可使用的时间。
13.—种影音流传输方法,包括: 接收一流数据,并将从该流数据取得的多笔编码数据暂存,其中该编码数据包括影音数据或仅包括视频数据; 输出暂存的所述编码数据以一第一速度进行播放; 当一调整传输事件启动时,暂停输出一第一时间区间,并暂存在该第一时间区间内所收到的所述编码数据;以及 将在该第一时间区间内所收到的所述编码数据中播放时间落于该第一时间区间内者调整为在一第二时间区间内以一第二速度播放完毕,其中该第二时间区间小于该第一时间区间,而该第二速度快于该第一速度。
14.如权利要求13所述的影音流传输方法,其中判断调整传输事件发生的步骤包括: 判断当所述编码数据的存量是否低于一第一阈值, 当所述编码数据的存量低于该第一阈值或已经用尽时,启动该传输方法,当所述编码数据的存量高于一第二阈值时,恢复以该第一速度进行播放。
15.如权利要求13所述的影音流传输方法,其中该将在该第一时间区间内所收到的所述编码数据中播放时间落于该第一时间区间内者,调整为在该第二时间区间内播放完毕的步骤包括将所述编码数据的播放时间信息,修改为落在该第二时间区间内播放。
16.如权利要求15所述的影音流传输方法,其中在该第二时间区间内所收到的所述编码数据中播放时间落于该`第二时间区间内者,也采用该第二速度播放。
17.如权利要求13所述的影音流传输方法,其中每一暂存的该编码数据包括多个编码译码单元,该第一时间区间至少要长到足以下载所述编码数据中的一或多个重要编码译码单元,其中该或所述重要编码译码单元是根据所述编码数据的信息取得对应每一该编码数据内的所述编码译码单元所对应的重要性参数比较取得。
18.如权利要求17所述的影音流传输方法,其中所述编码译码单元包括符合移动画面专家组标准的I帧、P帧以及B帧。
19.如权利要求17所述的影音流传输方法,其中所述编码译码单元包括符合H.263、H.264、或HEVC标准的1、P、B片段。
20.如权利要求13所述的影音流传输方法,其中该第一时间区间介于2到20秒。
21.如权利要求13所述的影音流传输方法,其中该第二时间区间等于该第一时间区间除以一大于I的数值。
22.如权利要求13所述的影音流传输方法,其中该第二时间区间依照实际带宽调整。
23.如权利要求22所述的影音流传输方法,其中在该第一时间区间内可下载帧数量为w,在该流数据中该第一时间区间内完整帧数量为r,则该第二时间区间为该第一时间区间乘以w/r的值,其中w与r为正整数。
24.如权利要求13所述的影音流传输方法,其中该第二时间区间等于该第一时间区间的一半。
25.—种影音流传输方法,包括: 以一第一比特传输率接收一第一流数据;以及在一切换时间切换到以一第二比特传输率接收一第二流数据,其中该切换时间是以目前播放时间、第一重要编码译码单元的播放时间、第二重要编码译码单元的播放时间进行判断,其中该目前播放时间是该第一流数据在判断时正在播放的时间,该第一重要编码译码单元的播放时间是该第二流数据中比该目前播放时间还早的该第二流数据中的多个编码数据中最新的重要编码译码单元的播放时间,该第二重要编码译码单元的播放时间是该第二流数据中的所述编码数据中比该目前播放时间还晚的该第二流数据中最旧的重要编码译码单元,其中 该重要编码数据是根据所述编码数据的信息取得对应每一该编码数据内的多个编码译码单元所对应的重要性参数比较取得。
26.如权利要求25所述的影音流传输方法,其中,若判断可以于第二重要编码译码单元的播放时间前切换,则 维持播放该第一流数据到该切换时间前,并同时接收该第二流数据中的所述重要编码译码单元; 到了该切换时间的前一画面的播放时间后切换到该第二流数据,并修改接收的该第二流数据中的所述重要编码译码单元的播放时间信息,以便在从该切换时间的前一画面的播放时间到该切换时间播放完毕。
27.如权利要求25所述的影音流传输方法,其中,若判断为不能于第二重要编码译码单元的播放时间前切换,则在该第二重要编码译码单元的播放时间切换到该第二流数据。
28.如权利要求25所述的影音流传输方法,其中,所述编码译码单元包括符合移动画面专家组标准的I帧、P帧以及B帧。
29.如权利要求25所述的影音流传输方法,其中所述编码译码单元包括符合H.263、H.264、或HEVC标准的1、P、B片段。`
30.如权利要求25所述的影音流传输方法,其中,该切换时间更进一步考虑额外可用的网络带宽。
31.如权利要求30所述的影音流传输方法,其中,该切换时间以一暴力法进行判断,也就是该目前播放时间到该第二重要编码译码单元的播放时间小于一阈值时,直接将该切换时间指定为从该目前播放时间到该第二重要编码译码单元的播放时间之间的一播放时间来进行判断。
32.如权利要求30所述的影音流传输方法,其中,该切换时间以二元搜索法进行判断,也就是以一可能范围的中间点作判断,递归测试直到两次测试的中间点的时间距离小于一阈值或小于一个画面的播放时间。
33.一种影音装置,适用于从一流数据接收多笔编码数据,每一该编码数据包括多个编码译码单元,而所述编码译码单元以一编码顺序为传送顺序,其中该编码数据包括影音数据或仅包括视频数据,该影音装置包括: 一缓冲器; 一缓冲器监控模块,用以监控暂存于该缓冲器的所述编码数据的存量,当所述编码数据的存量低于第一阈值时,发出一调整信号,当所述编码数据的存量高于第二阈值时,发出一停止调整信号;以及 帧请求模块,响应于该调整信号,输出一帧请求信号,以调整该流数据中,所述编码数据内的所述编码译码单元的传送顺序。
34.如权利要求33所述的影音装置,其中该帧请求信号包括所述编码译码单元对应的重要性参数,其中所述编码译码单元对应的重要性参数是根据所述编码数据的图像组信息、所述编码数据提供来源的数量、所述编码数据是否使用网络编码、所述编码数据的播出时间、预测数据量大小、预测解碼时间以及可用带宽的部分或是组合计算取得。
35.如权利要求33所述的影音装置,其中该帧请求信号包括网络可用带宽、目前播放进度、缓冲器现状三者全部或部分的组合。
36.如权利要求33所述的影音装置,还包括一时戳调整模块,用以接收下载的所述编码数据,并将所述编码数据暂存到该缓冲器,其中该时戳调整模块可将部分所述编码数据的播放时间进行修改。
37.如权利要求36所述的影音装置,还包括一流请求模块,响应于该调整信号与带宽评估结果,输出一比特率请求信号,用以提供所述编码数据的信息,以切换接收不同比特传输率的另一流数据。
38.如权利要求33所述的影音装置,还包括: 一上传器,用来将从该流数据接收到的所述编码数据传出;以及 一排程器,用来接收来自外部的另一帧请求信号,该另一帧请求信号包括 由该上传器传出的所述编码数据中,每一该编码数据内所包括的所述编码译码单元对应的重要性参数或用以计算每一该编码数据所包括的所述编码译码单元对应的重要性参数的信息,其中 该排程器根据所述重要性参数调整该上传器传出的所述编码数据内的所述编码译码单元的传送顺序 。
39.如权利要求38所述的影音装置,其中每一该编码数据所包括的所述编码译码单元对应的重要性参数的信息包括根据所述编码数据的图像组(GOP)信息、所述编码数据提供来源的数量、所述编码数据是否使用网络编码、所述编码数据的播出时间、预测数据量大小、预测解碼时间以及可用带宽的部分或其组合计算取得。
40.如权利要求38所述的影音装置,还包括: 一时戳调整模块,用以接收下载的所述编码数据,并将所述编码数据暂存到该缓冲器,其中该时戳调整模块可将部分所述编码数据的播放时间进行修改;以及 一时戳复位模块,连接到该时戳调整模块,用以将修改过的播放时间进行复位,以适合下一阶影音接收者所要使用的影音流信息时间戳记。
41.如权利要求40所述的影音装置,还包括: 一流请求模块,响应于该调整信号与一带宽评估器的信号,输出一比特率请求信号,用以提供所述编码数据的信息,以切换接收不同比特传输率的另一流数据;以及 一切换器,用来接收来自外部的另一比特率请求信号,用来切换由该上传器所输出的具有一第一比特传输率的一第一流数据切换到具有一第二比特传输率的一第二流数据,并判断从该第二流数据的合适播放时间点开始传送。
42.一种影音提供装置,包括: 一上传器,用来传送具有一第一比特传输率的一第一流数据,其中该第一流数据包括多笔编码数据,每一该编码数据包括多个编码译码单元,而所述编码译码单元以一传送顺序排列,其中该编码数据包括影音数据或仅包括视频数据;以及 一排程器,用来接收来自外部的一帧请求信号,该帧请求信号包括: 由该上传器传出的所述编码数据中,每一该编码数据内所包括的所述编码译码单元对应的重要性参数或用以计算每一该编码数据所包括的所述编码译码单元对应的重要性参数的信息,其中 该排程器根据所述重要性参数调整该上传器传出的所述编码数据内的所述编码译码单元的传送顺序。
43.如权利要求42所述的影音提供装置,其中每一该编码数据所包括的所述编码译码单元对应的重要性参数的信息包括根据所述编码数据的图像组(GOP)信息、所述编码数据提供来源的数量、所述编码数据是否使用网络编码、所述编码数据的播出时间、预测数据量大小、预测解碼时间以及可用带宽的部分或其组合计算取得。
44.如权利要求42所述的影音提供装置,还包括一切换器,用来接收来自外部的一比特率请求信号,用来控制该上传器将具有该第一比特传输率的该第一流数据切换输出具有一第二比特传输率的一 第二流数据,并判断从该第二流数据的合适播放时间点开始传送。
【文档编号】H04N21/438GK103873889SQ201310050054
【公开日】2014年6月18日 申请日期:2013年2月8日 优先权日:2012年12月17日
【发明者】游允帅 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1