具体实施方式
在各种实施例的下述说明中,参考相应的附图,其中附图构成说明书的一部分并且通过举例说明的方式显示了本发明可以应用的各种实施例。还应当理解,在不脱离本发明的范围和精神的情况下可以利用其它实施例并且可以进行结构和功能的改进。
图1示出了其中可以实现本发明的一个或多个实施例的合适的数字宽带广播系统102。如这里所示的系统可以利用数字宽带广播技术,例如数字视频广播-手持(DVB-H)。数字宽带广播系统102可以利用的其它数字广播标准的例子包括:数字视频广播-陆地(DVB-T)、综合业务数字广播-陆地(SDB-T)、先进的电视系统协会(ATSC)数字广播标准、数字多媒体广播-陆地(DMB-T)、陆地数字多媒体广播(T-DMB)、仅仅前向链路(FLO)、数字音频广播(DAB)、以及世界数字无线电(DRM)。还可以使用现在已知的或以后发展的其它数字广播标准和技术。
数字内容可以由数字内容源104产生和/或提供并且可以包括视频信号、音频信号、数据等。数字内容源104可以以数字分组--例如互联网协议(IP)分组--的形式向数字广播发射机103提供内容。共享特定惟一IP地址或其它源标识符的一组相关IP分组有时被描述为IP流。数字广播发射机103可以接收、处理并转发以传输来自多个数字内容源104的多个IP流。所处理的数字内容然后可以被传送到数字广播塔105(或其它物理传输工具)用于无线传输。最后,移动终端101可以有选择地接收并消费由数字内容源104发起的数字内容。
图2示出了其中可以实现本发明的一个或多个实施例的合适的数字广播发射机103。该设备可以被称为IP封装器。图2所示的功能块仅仅呈现了数字广播发射机103的一个可能的实施例。其它实施例可以分离或重组所示的功能。向数字广播发射机103传送内容的IP流包括实时业务和非实时业务。实时业务可以包括应当以时间敏感方式传送的内容。非实时业务可以包括时间不敏感或者至少较少时间敏感的内容。业务表示承载相关内容的一个或多个IP流(例如视频流及其相关的音频流)。实时业务可以包括视频或音频、或依靠及时和连续传送的任何内容流。非实时业务可以包括对其来说及时和连续传送并不重要的任何内容,例如数据文件的下载。用于不同类型业务的IP流可以被分割到发射机103内的两个或多个并行通道201,211中以用于分别传输。可替代实施例可以允许在相同通道内的不同类型IP流的调度共享。
在任何通道内,IP数据报多路分解块202,212过滤出想要的IP流并把它们分到单元流中。每个单元流被写入到单独的输出。一个单元流可以包含一个或多个IP流。每个单元流的IP流被传送到多协议封装-前向纠错(MPE-FEC)编码块203,213,在这里IP流被写入到应用数据表中。每个单元流可以被写入到其自身的表中。一旦应用数据表被填满(或者如果已经超过了下面详细解释的delta-t周期),则编码块开始工作。如果能够进行MPE-FEC,则该块计算Reed Solomon(RS)奇偶校验字节并把其插入到RS数据表中。形成一个MPE-FEC帧的两个数据表一起被转发到下一功能块。如果不能进行MPE-FEC,则该块并不执行RS计算,而是仅仅缓存IP流以用于形成时间片。
MPE/MPE-FEC片断封装块204,214把来自先前块的净荷封装到片断中并形成片断报头。净荷可以包括对于MPE片断的IP数据报,以及对于MPE-FEC片断的RS列。除了delta-t(下面解释)和CRC-32以外,在这里插入每个片断需要的所有实时参数。包括address、table_boundary、frame_boundary的片断报头值被插入到MPE和MPE-FEC片断中。此外,MPE-FEC特定报头值被插入到该片断,包括padding_column、last_section_number、以及section_number。然后,片断被转发到时间分片块205,215,在这里计算delta-t并把其插入到片断报头中。时间分片块205,215还计算循环冗余校验(CRC-32)值,该值也被插入到片断中。
时间分片涉及在较高带宽突发中而不是在较低带宽恒定流中的内容传输。因此,传输的接收机可以确定下一突发何时到达,并且因此计算delta-t以通知接收机何时将期待下一突发。因此,delta-t表示单元流中到下一时间片突发的时间量。通过这种方式,低功率接收机能够接收突发中的内容并且降低在传输之间的无线电功率。可以以散布的间隔来调度不同内容,使得允许接收机仅当期待感兴趣的内容时才打开或关闭其无线电。Tisle(时间分片)帧表示按照顺序发送的一系列时间片突发。Tisle时隙是一个突发在Tisle帧中所占用的位置。在第一帧的特定时隙中传输的内容将在随后第二帧的相同时隙中被广播。
传输流(TS)产生&复用块207把输入的时间片片断分割到TS分组的净荷中并产生每个TS分组的报头。移动图片专家组传输流(MPEG TS)标准可以用于形成TS分组。该功能块也可以结合来自实时业务和非实时业务的片断。最后,时间片片断和来自PSI/SI产生块206的节目特定信息和信令信息(PSI/SI)被复用成具有固定数据速率的一个TS输出。
图3示意了其中可以实现本发明的一个或多个示意性实施例的合适的移动终端101。尽管提供了一个特定设计,但这里提供的功能块可以被组合、重组、分开或者甚至省略。
移动终端101接收输入信号并作为数据流将其传送到接收机301。TS过滤块302接收整个输入TS,并依照分配到TS分组的节目标识符(PIDs)仅仅传递属于想要的内容或单元流的那些TS分组。片断解析303对TS分组的净荷进行解封装并重新形成片断。片断解封装块304提取实时参数和每个片断的净荷。基于片断的类型(MPE/MPE-FEC或PSI/SI),片断解封装块304把片断净荷或某些实时参数发送到MPE/MPE-FEC解码块307或者PSI/SI表解析块305。实时参数还可以被发送到Tisle控制和状态块306。
Tsile控制和状态块306负责在完全接收到特定突发后关闭接收器301,并且在将要接收下一突发之前重新打开接收机。当超过最大突发持续时间时,Tsile控制和状态块306还以信号通知MPE/MPE-FEC解码块307。可以需要该信令通知,从而使得在突发的末端丢失的情况下解码块知道开始解码。可以在时间片和FEC标识描述符中以信号通知最大突发持续时间,其中标识描述符被用在一个或多个PSI表中,例如在网络信息表(NIT)、IP/MAC通知表(INT)或者条件接入表(CAT)中。
MPE/MPE-FEC解码块307依照(如从实时参数中确定的)地址信息把片断净荷写入到MPE-FEC帧中并逐行地解码整个帧。解码器可以是可擦除或非可擦除解码器。可以从片断CRC-32中获得擦除信息或者,如果向前传送了错误的TS分组,则从位于TS分组报头中的传输错误指示符中获得擦除信息。如果并不使用MPE-FEC,则该块工作为一次存储一个突发的时间分片缓存器。
IP解析和过滤块308接收整个MPE-FEC帧(或者时间片突发)。于是,IP解析和过滤块308检查帧中的被校正的数据区域以检测最初是错误的但是被解码器校正的IP数据报,并且然后仅仅传送具有期望的IP地址的IP数据报。PSI/SI表解析305从片断之中解析PSI/SI表并向移动终端101的其它部件传送信令信息。
在使用时间分片和/或MPE-FEC的单元流上,每个MPE片断和MPE-FEC片断可以承载实时参数。如上所述,在MPE/MPE-FEC片断封装块204中,除了delta-t以外的所有实时参数被插入到MEP和MPE-FEC片断中。在时间分片205,215块中,delta-t参数被计算并被插入到片断报头中。时间分片205,215还计算也被插入到片断中的循环冗余校验(CRC-32)值。
对于MPE片断和MPE-FEC片断,可以使用下面的实时参数:
表1.时间片和MPE-FEC实时参数
Real_time_parameters(){ |
|
|
delta-t |
12 |
uimsbf |
table_boundary |
1 |
bslbf |
frame_boundary |
1 |
bslbf |
address |
18 |
uimsbf |
delta-t参数定义了当使用时间分片时到单元流中的下一时间片突发的时间,并且delta-t可以在片断之间改变。该时间信息位于时间片突发内的所有MPE片断和MPE-FEC片断中。table_boundary参数是1比特的标记,指示应用数据表中的最后片断。frame_boundary参数是1比特的标记,指示当前片断是当前突发内的最后片断或者在MPE-FEC片断中的MPE-FEC帧内的最后片断。address参数是18比特的文件,为该片断中承载的净荷的第一字节指定了在相应的MPE-FEC帧表中的字节位置。
图3B示出了其中可以实现本发明的一个或多个示意性实施例的移动终端的部件的例子。尽管提供了一种特定的设计,这里提供的功能块可以被组合、重组、分开、或者甚至省略。
移动终端101可以包括:所述的接收机301;缓存器311,其用于接收来自接收机301的将被缓存的数据;以及例如中间件块310的接口块,其用于接收与接收机处所接收的时间片数据相关联的数据。中间件块310可以包括硬件、软件或者两者的结合。中间件块310的发明原理还可以被具体化在计算机可读介质中。例如,在一个例子中,中间件块310可以是计算机可读介质,包含用于控制缓存器中的数据存储或者由播放器播放数据的计算机执行指令。中间件块310从接收机接收的数据可以包括,例如,来自数据突发的参数(例如delta-t)或者与之有关的参数和/或来自PSI/SI表的数据。除了从接收机接收的参数外,中间件块310还接收来自控制器的和/或来自播放器的响应。基于所接收的参数,中间件块310直接地或者通过控制器来控制缓存器322中的数据缓存。移动终端101进一步包括播放器312。在一个实施例中,播放器是可执行的软件应用程序。播放器从中间件块310接收参数,该参数控制或调整播放器312的播放(例如,多媒体数据的呈现)。在播放器312处从中间件块310接收的参数可以控制播放器312以最小化或消除业务中断的方式来播放数据。这些参数可以包括,例如,实时参数或来自PSI/SI表的参数。实时参数的一个例子是与突发间隔相关联的delta-t参数。
因此,接收机301向缓存器311提供用于缓存的数据(基于来自接收机301的参数被存储)并且如上所述提供来自突发和/或PSI/SI表的参数。移动终端101可以包括例如图3B所示的中间件块310的接口块。中间件块310存储当前使用的突发间隔,该间隔用于控制在缓存器311中的数据缓存。突发间隔可以基于最近所接收的会话描述协议(SDP)文件(参考下面)中之前通告的突发间隔,或者可以由来自接收机310的参数delta-t指定。
中间件块310还可以接收与数据突发相关的其它信息来控制缓存。例如,中间件块310还可以接收在PSI/SI表的描述符中通告的参数。这些参数可以包括,例如,描述最大突发持续时间、最大平均速率或帧大小的参数(例如,分别是MAXIMUM_BURST_DURATION、MAXIMUM_AVERAGE_RATE、FRAME_SIZE)。
中间件块310可以从接收机301接收一个或多个参数(320)并把参数转发到控制器用于缓存控制(321)。缓存器311接收用于缓存的数据(322)并基于来自中间件块310的参数对数据进行缓存(321)。缓存器311中的数据被提供到播放器312(323)。播放器312可以包含播放数据的播放器软件应用程序。中间件块310提供控制播放器312的参数(324)。播放器312基于从中间件块310接收的控制参数来提供所播放的数据。
返回数字广播发射机102,图4更详细示出了依照本发明的一个或多个实施例的时间分片块205。该块并行的读取包含MPE和MPE-FEC片断的MPE-FEC帧或者时间片突发,进行并串转换。之后,时间分片块205为突发中的片断计算并插入delta-t值并且最后计算并插入CRC-32校验和。该块的输出是时间片突发的串行流。
为了平滑地播放,需要能够连续地并且按照正确顺序而没有中断地获得例如视频和/或音频数据的数据。通过流式传输,数据被复制或存储在缓存器中并且然后,在有时也称为PREROLL的较短的时延后,开始回放并当正在获得文件的剩余部分时继续进行回放。流式传输提供一种由接收机和发射机或者服务器之间的交互来控制的稳定的传递方法。
当时间片时隙和帧的持续时间固定时,delta-t的计算需要知道帧的持续时间。因此,可以基于输入的数据流在消费数据之前被存储在缓存器中所等待的时间长度以及业务的比特速率,来确定数据的缓存。当在缓存器中已经接收到足够的数据时开始回放。例如,在时间片时隙和帧的持续时间固定且比特速率接近恒定的网络中,接收机可以基于下面的等式来确定在消费数据之前需要缓存的数据量:
R=(PREROLL)*(BITRATE)
其中R=在消费数据之前所需要的缓存大小。图5是示出对于其中以恒定比特速率提供数据流的系统的缓存数据流的时序图。数据在501被接收并且在502被存储在缓存器中。当缓存器中存储的数据量等于在数据消费之前所需要的缓存大小时回放504开始(例如播放504)。在数据消费之前所需要的缓存大小是PREROLL*BITRATE。因此,当存储在缓存器中的数据量等于PREROLL*BITRATE时(503),回放504开始。
然而,当时隙和帧的持续时间如在突发业务中那样改变时,delta-t的计算更加复杂。DVB-H网络是具有比特速率不固定的突发业务的网络的一个例子。在这种情况下,终端可以等到随后的突发以在缓存器中接收足够的数据以便开始回放。图6是示出DVB-H网络中的缓存的时序图。数据的第一时间片突发601被接收并存储在缓存器中。在缓存器中存储数据之后(603),缓存大小变成第一时间片突发601中的数据量。在数据消费之前需要的缓存大小(存储在缓存器中的数据量)被计算为(PREROLL)*(BITRATE)。在该例中,在第一时间片突发601中接收的数据量小于所计算的数据量(PREROLL*BITRATE)。因此,在这时(603)并不开始回放603。相反的,该业务等待第二时间片突发602的接收以及到缓存器中的存储。如果在接收第二时间片突发602并把其数据存储到缓存器期间缓存大小等于所计算的数据消费之前所需要的数据量,则开始回放603。在该例子中,第一时间片突发601和第二时间片突发602的合起来的数据量超过了所计算的在数据消费之前所需要的缓存大小(即,PREROLL*BITRATE)。因此,一旦缓存大小到达所计算的所需量(605)就开始回放。
因此,在数据流式传输期间,接收机监视缓存器中存储的数据量。只有当缓存器中存储的数据量达到所需量--通常为PREROLL*BITRATE时才开始回放。可以考虑网络的任何传输时延和/或编码器缓存中的时延来计算PREROLL。当BITRATE并不恒定时,例如在DVB-H网络的突发业务中,PREROLL应当被设定为足够大从而使得缓存器中的数据不会被耗尽。在突发网络中,还可以通过例如把突发间隔加到该网络的其它时延上,例如传输网络时延、传输时延抖动缓存、解交织缓存和预解码缓存,来计算PREROLL。
图7是示意例如DVB-H网络的突发业务中的缓存的时序图。在图7中,接收时间片突发701,702中的数据,每个突发被分开已知的突发间隔705。在开始接收第一时间片突发701时开始定时703。如果在第一时间片突发701被复制到缓存器后缓存器中的数据量不足以开始回放706,则接收终端在回放开始之前等待时间T1(从开始703的时间点测量)。然而,突发间隔705是已知的,从而使得知道将在特定时间(在突发间隔705之后)把第二时间片突发702接收到缓存器中。因此,回放706可以在最佳时间704开始,即使是在缓存器包含在数据消费之前所需的全部数据量之前。这将导致更快的回放启动同时保持较低的功率损耗。
可以基于几个因素确定用于开始回放706(即,缓存器中的数据消费)的最佳时间704,其中所述因素包括缓存中的时延以及其它时延,例如传输时延抖动缓存、解交织缓存和预解码缓存。这些时延可以用例如“BUFFERING_DELAY”的参数表示。还可以基于时间片突发的平均大小(在该例中用参数“AVERAGE_BURST_DATA_SIZE”表示)、缓存器中的数据量(在该例中用参数“AMOUNT_OF_DATA_IN_BUFFER”表示)、以及突发间隔(在该例子中用参数“BURST INTERVAL”表示),来进一步确定最佳时间704。可以基于数据流的平均比特率(在该例子中用参数“AVERAGE_BITRATE”表示)来确定AVERAGE_BURST_DATA_SIZE。因此,可以基于下述通用等式来确定用于开始回放706的最佳时间704:
T1=BD+((ABDS-ADB)/ABDS)*BURST_INTERVAL
其中T1是在接收到第一数据分组后等待开始回放的最佳时间,BD是BUFFERING_DELAY,ABDS是AVERAGE_BURST_DATA_SIZE以及ADB是AMOUNT_OF_DATA_IN_BUFFER。AVERAGE_BURST_DATA_SIZE还可以被进一步计算为 AVERAGE_BITRATE*BURST_INTERVAL。
在确定要等待的最佳时间T1期间,当接收到第一数据分组时,计时器开始计时。当响应于数据分组的进一步接收而改变缓存大小时,继续更新时间。可以看出,如果在接收第一时间片突发中没有时延,则AVERAGE_BURST_DATA_SIZE等于AMOUNT_OF_DATA_IN_BUFFER。在这种情况下,T1等于BUFFERING_DELAY。这是最好的情况。然而,如果时间片突发碰巧丢失,则计时并不开始直到接收到下一个第一数据分组。时间量是BUFFERING_DELAY。在接收到第一数据分组后,计时器开始等待一个长度为BURST_INTERVAL的时间。因此,如果时间片突发丢失,则开始回放的全部等待时间是BUFFERING_DELAY+BURSTINTERVAL。这是最坏的情况。
在多数情况下,等待开始回放的时间长度将在最好情况和最差情况之间。等待开始回放的时间长度是到下一时间片突发为止的时间长度加上BUFFERING_DELAY。因此,该时间基于等待下一突发的时间长度而改变,所述等待下一突发的时间长度可以如上所述的那样改变。
在另一例子中,接收部分突发。在这种情况下,AMOUNT_OF_DATA_IN_BUFFER可能小于AVERAGE_BURST_DATA_SIZE(AVERAGE_BURST_DATA_SIZE等于AVERAGE_BITRATE*BURST_INTERVAL)。这是由于部分的数据突发并不提供平均突发的全部数据量。例如,如果缓存时延是200ms,突发间隔是3000ms(3秒),比特速率是240kbps并且具有500kbits的部分缓存,则T1,在开始回放之前等待的最佳时间长度如下:
T1=BD+((ABDS-ADB)/ABDS)*BURST_INTERVAL
T1=200ms+((((240kbps*3sec))-500kb)/(240kbps*3sec))*3000msec
T1=200ms+((720kb-500kb)/720kb)*3000msec
T1=200ms+(220kb/720kb)*3000msec
T1=200ms+916.67msec=1116.67msec
因此,在这个例子中,播放器可以在接收到500kbits的部分突发之后1167.67msec开始播放。
可以基于所述的参数形式的突发间隔、缓存时延和平均比特速率的值,来确定缓存时间。这些参数可以通过服务器在会话描述协议(SDP)文件中发送包含该参数的数据流来提供。在该例子中,用于描述多媒体会话的基于文本的消息格式包括所述参数。下表提供了SDP文件参数的格式的例子。
表2.SDP文件
SDP文件 |
描述/解释 |
v=0 |
版本 |
0=-4119900237 1080299011 IN IP4192.168.44.30 |
发起方:源IP地址 |
S=Broadcaster_Live |
目标 |
C=IN IP4 224.177.0.1/16 |
连接:目标IP地址 |
t=00 |
时间标签:开始结束 |
m=video 4060 RTP/AVP 99 |
第一媒体:视频,端口号(4060),RTP净荷类型(99) |
B=AS:65 |
比特速率 |
a=rtpmap:99 H263-2000/90000 |
RTP净荷类型编解码 |
a=fmtp:99 profile=0;level 20 |
RTP净荷类型参数 |
a=framesize:99 176-144 |
RTP净荷类型的帧大小 |
a=control:trackID=11 |
|
a=mpeg4-esid:11 |
|
m=audio 4062 RTP/AVP 110 |
第二媒体:音频,端口号,RTP净荷类型 |
b=AS:88 |
比特速率 |
a=rtpmap:110 MP4A-LATM/44100/2 |
RTP净荷类型编解码 |
a=control:trackID=12 |
|
a=mpeg4-esid:12 |
|
A=fmtp:110 profile-level-id=15;object=23;cpresent=0;config=420024203FC0 |
RTP净荷类型参数 |
如表2所示,用于确定缓存时间的参数可以例如通过属性a=<attribute>:<value>的一般格式或者用于SDP参数的相似可接受格式,被包括在SDP文件中。
图8是示出使用突发间隔、缓存时延和平均比特速率的值来确定最佳缓存时间T1的一个例子的流程图。在该例子中,突发间隔、缓存时延和平均比特速率由服务器通过相应的参数BURST_INTERVAL、BUFFERING_DELAY和AVERAGE_BITRATE提供。平均突发数据大小由参数“AVERAGE_BURST_DATA_SIZE”表示并且等于AVERAGE_BITRATE*BURST_INTERVAL(步骤801)。在步骤802,检查缓存大小以确定缓存大小是否改变。缓存大小的改变,例如会发生在接收输入数据并把其存储在缓存器时(即,当数据被存储在缓存器中时,缓存大小增加)。如果缓存大小没有改变(步骤802的“否”分支),则该过程并不执行任何动作并等待数据流的接收。如果在步骤802确定缓存大小已经改变(例如,数据已经被存储在缓存器中)(步骤802的“是”分支),则在步骤803确定T1计时器是否正在运行。如果T1计时器没有运行(步骤803的“否”分支),则在步骤804接收第一数据分组并将其存储在缓存器中。因此,计时器之前没有启动并且启动时间(在该例子中由参数“START_TIME”表示)被存储为参考点,在步骤805中在回放(图7,706)开始之前的等待是从该参考点开始的。该等待时间被设定为T1时延,在该例子中,T1时延为BUFFERING DELAY+((ABDS-ADB)/ABDS)*BURST_INTERVAL,其中ABDS是“AVERAGE_BUST_DATA_SIZE”并且ADB是“AMOUNT_OF_DATA_IN_BUFFER”。
如果缓存大小已经改变(步骤802的“是”分支),并且T1计时器正在运行(步骤803的“是”分支),则在之前计算的T1时延结束之前,已经接收了另一时间片突发并将其存储在缓存器中。在这种情况下,计时器被停止(步骤806)并且确定流逝时间(在该例子中由参数“ELAPSED_TIME”表示)(步骤807)。ELAPSED_TIME被计算为CURRENT_TIME-START_TIME,其中CURRENT_TIME是表示当前时间的参数(即,流逝时间是从计时器开始的时间到当前时间的已经过去的时间量)。计时器值(在该例子中由参数“TIMER_VALUE”表示)可以被确定(步骤808)为之前所计算的T1时延减去流逝的时间。由于在该情况下,T1时延超过已经流逝的时间,所计算的计时器值指示为等待所需的T1时延时间除当前流逝的时间之外还要等待的时间量。在步骤809再次为由TIMER_VALUE表示的时间量(即,在回放开始之前等待的剩余时间量)开启计时器T1。继续该过程直到全部的所需时间量流逝并且开始回放。
在确定最佳缓存时间的另一例子中,输入的业务包含例如实时传输协议(RTP)中那样的时间戳信息。在这种情况下,时间戳信息可以用于确定最佳缓存时延。例如时间戳信息可以包括最早时间戳和最晚时间戳,它们可以分别由相应的参数FIRST_RTP_TS和LAST_RTP_TS表示。通过使用这些参数,可以如下地确定在回放数据之前等待的最佳时间(T1):
T1=(BUFFERING_DELAY+BURST_INTERVAL)-(LAST_RTP_TS-FIRST_RTP_TS)
图9是示出使用服务器提供的最晚和最早时间戳信息(在该例子中分别由参数LAST_RTP_TS和FIRST_RTP_TS表示)来确定最佳缓存时间T1的一个例子的流程图。如同前面的例子,在步骤902中,检测缓存大小的改变(例如,数据可以已经被存储在缓存器中)。在步骤903,然后确定T1计时器是否运行,并且如果没有运行(步骤903的“否”分支),则在步骤904中接收第一数据分组并将其存储在缓存器中并且存储开始时间(例如“START_TIME”)作为参考点,在步骤905中在回放(图7,706)开始之前的等待是从该参考点开始的。最佳缓存时间被设定为T1时延,在该例子中为BUFFERING DELAY+BURST_INTERVAL-(LAST_RTP_TS-FIRST_RTP_TS)。
如果T1计时器运行(步骤903的“是”分支),则如前面的例子,停止计时器(步骤906)并且把流逝时间(例如“ELAPSED_TIME”)确定为CURRENT_TIME-START_TIME(步骤907)。计时器值(例如TIMER_VALUE)被确定(步骤908)为之前所计算的T1时延(即,BUFFERING_DELAY+BURST_NTERVAL-(LAST_RTP_TS-FIRST_RTP_TS))减去该流逝时间。所计算的计时器值指示在当前流逝的时间之后还要等待的时间量。在步骤909为由TIMER_VALUE表示的时间量再次打开计时器T1。继续该过程直到全部的所需时间量流逝并且开始回放。
在另一例子中,所接收的数据流的突发间隔被改变。可以基于各种原因改变突发的间隔。例如,时间片块205中的参数可以改变,从而引起突发间隔的改变。而且,切换到具有不同突发间隔设置的DVB-H小区可以引起突发间隔的改变。如果突发间隔减小,则播放器312可以无中断的继续播放数据流。然而,如果突发间隔增大到比当播放器312最初被缓存时或者当播放器312最后一次被重新缓存时的突发间隔更大的值,则可以需要重新缓存。突发间隔中的改变可以由DVB-H信号的实时参数delta-t指示或者来自更新的电子业务向导(ESG)。
如果改变的突发间隔小于之前的突发间隔,则在缓存器中存在比回放或者播放所需数据更多的数据。然而,如果改变的突发间隔大于之前的突发间隔,则缓存器可能变成数据耗尽并且缓存必须从开头开始。例如,缓存时间可以是突发间隔加上缓存时延(例如,BURST_INTERVAL+BUFFERING_DELAY)。
图10是示出改变突发间隔的一个例子的流程图。在该例子中,移动终端101的接口模块--例如图3B中的中间件块310,从接收机块301接收delta-t参数或者来自PSI/SI表中的参数,并将所接收的参数与之前的突发间隔进行比较。例如,播放器可以在基于所接收数据突发的突发间隔的时间内消费数据(步骤1001)。在步骤1002,可以从接收机块301接收delta-t参数并且在步骤1003将其与之前的突发间隔进行比较。之前的突发间隔可以是,例如,之前通告的原始突发或者是随后更新的突发间隔(例如在SDP文件中接收的)。如果之前的突发间隔(BI_0)大于或等于当前接收的突发间隔(BI_1)(步骤1003的“是”分支),则由于当前接收的突发间隔(BI_1)被之前的突发间隔(BI_0)包围,则数据可以如前所述继续被存储(步骤1004)。在这种情况下,继续播放(即,多媒体数据的呈现)。
如果之前的突发间隔(BI_0)小于当前接收的突发间隔(BI_1)(1003的“否”分支),则缓存器中的数据可能被耗尽。在这种情况下,播放器312暂停(步骤1005)并且在步骤1006中计时器可以被设定为在最近接收的突发间隔和之前接收的突发间隔之间的差(BI_1-BI_0)。因此,在数据将被继续存储在缓存器311期间暂停播放(例如,多媒体数据的呈现)。当计时器期满时或者当缓存器在BI_1+Buffering_delay期间包含数据时(步骤1007),在步骤1008继续递交数据。
因此,本发明提供了一种用于对回放启动和/或信道切换提供最佳缓存时间的系统和方法。缓存时间被降低,从而允许较长的突发间隔和较低的功率损耗。存储器消耗也被降低了。
本发明包括这里明确公开的或者概括的任何新的特征或者特征的组合。尽管已经就包括执行本发明的优选模式的特定例子描述了本发明,本领域技术人员清楚还可以有上述系统和技术的多种变形和修改。因此,本发明的精神和范围应当由所附的权利要求广泛地来解释。