专利名称:媒体再发送装置及方法
技术领域:
本发明是关于媒体读取装置,尤其是关于通过再发送丢失的流数据包来达到读取目的的一种媒体再发送装置及方法。
(2)背景技术近来,随着移动电话等移动终端机和网络技术的飞速发展,VOD(VideoOn Demand视频点播)服务与日剧增。
即,随着利用EVDO(Evolution Data Only)网络的VOD服务的普及,大多数用户正在加入到这种服务中来。
目前的服务是用移动电话接入操作人员所建立的服务器上,能够看到电影和新闻等内容。
以电影媒体为例,能流化已存入服务器中的电影媒体进行观看;以新闻媒体为例,能进行实时收看。
如上所述,存储在服务器中的电影媒体和实时提供的新闻媒体,通过RTP发送后,客户机将解读RTP(Real Time Protocol)并使其流化。
通过解码器解读这种媒体流,可输出影像或者/及声音。
图1是用于提供媒体服务的一般概念图如图1所示,服务从通过网页浏览器选择一个内容的过程开始。
通过这种过程后,客户机利用HTTP,接入网页服务器,然后上述网页服务器提供显示有关对话信息的叙述(Description)。
客户机参照上述叙述,向服务器发送‘安装’(‘SETUP’)指令,于是网页服务器做好发送媒体的最低限度的准备。
然后,客户机通过网页服务器发送读取(PLAY)指令,然后网页服务器通过RTP信道发送有关的媒体(RTP音频、视盘)。
如果想暂停正在读取中的媒体,客户机就通过网页服务器发送暂停(PAUSE)指令,中断服务。
而且,如果一个媒体的读取结束的话,客户机则向网页服务器发送结束指令(TEARDOWN),网页服务器按照这种指令,关闭打开着的信道。
如上所述,现有的媒体服务是指在发送流数据包的情况下,RTP向客户机发送从UDP(User Datagram Protocol用户数据包协议)生成的流数据包。
而且,客户机解读这种流数据包。
此时,如果从服务器发送的流数据包在发送途中丢失,客户机尚未收到的话,那么因现有的服务使用UDP而不能请求再发送流数据包。
鉴于此,一般用户只能看到在流数据包丢失状态下读取的媒体。
所以,因流数据包丢失,会造成诸如不能顺利完成对媒体的读取及媒体影像或媒体质量差的问题。
(3)发明内容本发明就是为解决上述问题而提出来的,目的在于提供一种媒体再发送装置及方法,使其能防止在UDP环境下发送的流媒体数据包丢失,进而提高影像和声音的质量。
本发明的另一目的在于提供不使用其它的客户机仍能请求对丢失流数据包进行再发送的这一媒体再发送装置及方法。
为了实现上述目的,本发明的媒体再发送装置包括部件当从服务器中接收到的流媒体数据包中规定的流媒体数据包丢失时,用于生成对上述丢失流数据包的再发送指令的部件RTP处理部;用于把从上述生成部件中生成的再发送指令发送给上述服务器的部件RTSP处理部;用于对上述发送的再发送指令予以应答,进而对从上述服务器中接收到的上述丢失流数据包进行复号化并传输的部件A/V复号部。
上述RTP处理部包括以从上述服务器中接收到的流数据包为对象,判断丢失与否的部件序号确认部;判断结果若是规定的流数据包丢失,则以上述丢失流数据包为对象,计算出当前读取时间的NPT计算部部件;对反映上述计算出的当前读取时间的再发送指令进行生成的部件RTSP反映信息处理机。
在这里,上述当前读取时间能从上述丢失流数据包所掌握的时间标志中计算出来。
根据本发明理想实施例,媒体再发送方法包括三个阶段当从服务器收到的流数据包中规定的流数据包丢失时,生成对上述丢失流数据包的再发送指令;将上述再发送指令发送给上述服务器,以接收上述再发送指令所对应的上述丢失流数据包;将上述丢失流数据包进行复号化并传输。
生成上述再发送指令的阶段包括以从上述服务器接收到的流数据包为对象,判断丢失与否;判断结果若是规定的流数据包丢失,则以上述丢失流数据包为对象,计算出当前的读取时间;对反映上述计算出的当前读取时间的再发送指令进行生成。
本发明的效果综上所述,按照本发明的媒体再发送装置及方法,能够连续确认从服务器接收到的流数据包的序号,并在规定的流数据包丢失的情况下,通过反映这个丢失流数据包当前读取时间的再发送请求,能够再次读取丢失的数据包。
因此,可起到的效果是不仅能防止发生因现有技术中没有再发送方法而在流数据包丢失时所导致的影像及媒体质量差的问题,而且能保障媒体数据传输的准确性。
另外,在不使用其它的协议的情况下,也能够轻而易举地改良RTP处理部,并与RTSP取得联系,向服务器提出再发送请求,从而能够读取任何时候丢失的流数据包,进而能够大大提高系统的性能和可靠性。
为进一步说明本发明的上述目的、结构特点和效果,以下将结合附图对本发明进行详细的描述。
(4)
图1是用于提供媒体服务的一般概念图。
图2是本发明实施例的客户机结构的概略图。
图3是说明从本发明实施例的客户机上丢失的流数据包通过再发送得以修复的方法的流程图。
图4是本发明实施例的流数据包丢失情况下的概念图。
图5是本发明实施例的从流数据包丢失到通过再发送得以修复的过程的概念图。
附图中主要部分的符号说明12RTP处理部13序号确认部14NPT计算部15RTSP反映信息处理机16RTSP处理部(5)
具体实施方式
下面将参照附图。对本发明的媒体再发送装置及方法的实施例进行详细说明。
图2是本发明实施例的客户机结构的概略图参照图2,若读取媒体的话,依靠服务器将用户请求的媒体分割成若干流数据包,发送给客户。
上述客户机由以下几个部分组成用于临时存储从上述服务器发送来的流数据包的网络协议栈11;将上述网络协议栈11临时存储的流数据包一个个调出来,并以这些流数据包为对象判断丢失与否的序号确认部13;在上述确认部13判断为流数据包丢失的情况下,用于从有关流数据包计算出当前读取(播放)时间(NPTNormal Play Time)的NPT计算部14;对反映从上述NPT计算部14计算出的当前读取时间的再发送指令进行生成的RTSP反映信息处理机15;负责处理把从上述RTSP反映信息处理机15生成的再发送指令发送给服务器工作的RTSP处理部19;在上述序号确认部13判断流数据包未丢失的情况下,对有关流数据包进行缓冲处理的缓冲器16;
把在上述缓冲器16进行缓冲处理的流数据包进行复号化并读取的A/V复号部18;负责控制把经过上述缓冲器16缓冲处理的流数据包传达给上述A/V复号部18工作的复号抑制部。
在这里,上述序号确认部13、NPT计算部14、RTSP反映信息处理机15及缓冲器16全属于RTP处理部12,RTP处理部12是当从服务器中接收到的流媒体数据包中规定的流媒体数据包丢失时,用于生成对所述的丢失流数据包的再发送指令的。
上述序号确认部13的功能是利用上述流数据包所包含的序号,判断丢失与否。
举例说,假如说第1、第2、第3流数据包的序号分别是35、36、37,当上述第1、第3流数据包的序号35及37已被上述序号确认部13确认,而上述第2流数据包的序号36未被确认时,上述序号确认部能够做出对上述第2流数据包已丢失的判断。
上述NPT计算部14的功能是当上述序号确认部13判断流数据包已丢失时,则以上述丢失流数据包为对象计算出NPT。
下面对其进行更加详细的说明上述NPT计算部14首先从丢失的流数据包中掌握时间标志。在这里,时间标志作为对每个画面和时钟是否被需要的值,是修改增加值。下面用数学式1表示时间印章[数学式1]时间标志(Timestamp)=时钟速率(clock rate)/帧每秒(frame persecond)一般来说,时间标志是以100、200、300等方式增加一定的值。
从这一时间标志中计算出当前的读取时间NPT,下面用数学式2表示NPT[数学式2]NPT=时间标志*(1/时钟速率)举例说,时间标志的值增加到100、200、300,如第2个流数据包丢失,第2流数据包的时间标志可用200表示,将这一时间标志值代入数学式2,从而计算出当前的读取时间值。
同时,上述RTSP反映信息处理机15的功能是通过RTSP处理部19,向上述服务器请求发送反映从NPT计算部14计算出的NPT的再发送指令。
此时,上述再发送指令包含暂停指令和读取指令。在这种情况下,当前的读取时间值将反映在上述读取指令上。
这个暂停指令和读取指令通过上述RTSP处理部19有序地发送给上述服务器。
在此,将再发送指令分成暂停指令和读取指令,有序发送这两个指令目的在于使客户机的状态及服务器的状态处于稳定状态。
一般来说,客户机和服务器设置有状态机,尤其是状态机,当一个状态从不稳定状态转到后一个状态时将跨跃很多的界线。
尤其是实现媒体发送的读取状态的情况显得更为严重,因此,当在这种读取状态下向服务器再次发送读取指令时,客户机和服务器发生很多错误的可能性很高。
所以,象本发明所述,首先发送暂停指令,如果读取暂停后,状态仍然趋于不稳定,则紧接着发送读取指令,从而能让客户机和服务器更加稳定。
因此,RTSP处理部19首先向服务器发送暂停指令,然后向服务器发送反映当前读取时间的读取指令。
服务器按反映这一当前读取时间的读取指令,查寻与之相对应的丢失流数据包,并再次向客户机有序地发送丢失的流数据包和随后的流数据包。
而且,再发送的流数据包经过上述缓冲器缓冲,再经A/V复号部18复号化后进行传输。
在本发明中,若流数据包丢失,取代对丢失流数据包进行再发送请求的是,在上述丢失的流数据包后再发送的流数据包不经过缓冲处理就被丢掉。
图3是说明在本发明实施例的客户机上丢失的流数据包通过再发送得以修复的方法的流程图参照图3S21,为读取电影和新闻之类的媒体,首先从服务器中接收对有关媒体的流数据包,即若客户机向服务器请求读取指令的话,上述服务器根据这种读取指令将有关媒体分割成若干流数据包,有序地向上述客户机发送。
S22,通过上述客户机接收到的流数据包临时存入了网络协议栈11,然后在RTP处理部12进行处理。
即,上述RTP处理部12的序号确认部13以上述输入的流数据包为对象,判断丢失的流数据包存在与否。换句话说就是,序号确认部13利用各个流数据包报头部分所包含的序号,判断这些序号是否按次序被确认。
举例说,如图4所示,如果说Seg.#58、59、60序号中的59序号尚未被确认的话,这就意味着包含59序号的流数据包从上述服务器发往上述客户机的途中丢失,或者被上述服务器本身丢失。当然,丢失与否可象前面所说明的那样通过序号是被依次确认的而做出判断,但是也能通过对序号次序发生改变的确认做出判断。
此时,上述流数据包丢失与否,只有输入丢失数据包后的流数据包才能知道。即,依次确认的序号中的某一个序号不存在的情况,只有确认某一个序号后的序号才能知道。
S23,如果说上述序号确认部13确认流数据包中规定的数据包丢失的话,那么在丢失流数据包后输入的的流数据包将不再经过进一步的缓冲,而直接转到下一个过程。
因此,上述NPT计算部14用于计算出上述丢失流数据包预定的当前读取时间(NPT)。
即,上述计算部14首先掌握上述丢失流数据包的时间标志。这种时间标志作为一种修改增加值,对各个流数据包都有规定。因此,参照上述丢失流数据包前后流数据包的时间标志,能轻而易举地掌握上述丢失流数据包的时间标志。上述NPT计算部14参照这样掌握的时间标志,利用上述数学式2可计算出当前读取时间。
S24,于是,RTSP反映信息处理机15就把反映如上计算出的当前读取时间的再发送指令提供给RTSP处理部19。而且,上述RTSP处理部19按照再发送指令,请求上述服务器对上述丢失流数据包进行再发送。
此时,上述再发送指令会包括暂停指令和读取指令,并且发送次序是先发送暂停指令,紧接着再发送读取指令。在这种情况下,上述计算出的当前读取时间NPT将反映在读取指令上。
因此,上述服务器根据客户机的再发送请求,参照读取指令中所反映的当前读取时间,将有关丢失的流数据包再发送给上述客户机。
而且,这个丢失流数据包被客户机接收并正常处理。即,丢失的流数据包在经过缓冲处理后将以复号化的形式被输出。此时,上述丢失流数据包后的流数据包也将依次经过缓冲及复号化处理后进行输出。
S25S26,同时,如果说从S22输入的流数据包的每个序号都被依次确认,可判断出任何流数据包都未丢失的话,那么经过RTP处理部处理的流数据包将依次通过缓冲及复号化处理过程进行输出。
图5是本发明实施例的服务器和客户机间从流数据包丢失到根据再发送请求得以修复的过程概念图参照图5,正如已经说明的那样,序号Seg.#58、59及60所对应的流数据包被发送给客户机。
此时,序号59所对应的流数据包丢失与否,可根据序号确认部做出判断,而此时序号为59的流数据包丢失与否只有序号为60的流数据包被确认才会知道。
即,如果说序号58被序号确认部确认后,紧接着序号60也被确认的话,那么可判断出序号59所对应的流数据包丢失。
若上述流数据包丢失的情况发生,则计算出对有关丢失流数据包的当前读取时间,然后向服务器发送暂停指令,暂时中断流数据包的发送,以维持客户机的稳定状态(ACK)。
而且,紧接着向服务器发送反映当前读取时间的读取指令,请求再发送有关丢失的流数据包,并从服务器接受对此的确认ACK。
因此,服务器将参照上述读取指令中所包含的当前读取时间,把有关丢失的流数据包(例如序号59所对应的流数据包)再发送给客户机。
紧接着,也将序号60所对应的流数据包再发送给客户机。
客户机把从上述服务器再次发送过来的流数据包(序号59以下)复号化,再输出到画面上。
因此,本发明通过再发送请求,能读取丢失的流数据包,而不必为此使用其它的协议。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上所述实施例的变化、变型都将落在本发明权利要求书的范围内。
权利要求
1.一种媒体再发送装置,其特征在于包括以下几种部件RTP处理部,当从服务器中接收到的流媒体数据包中规定的流媒体数据包丢失时,用于生成对所述的丢失流数据包的再发送指令的部件;RTSP处理部,用于把从上述生成部件中生成的再发送指令发送给上述服务器的部件;A/V复号部,对上述发送的再发送指令予以应答,进而对从上述服务器中接收到的上述丢失流数据包进行复号化并传输的部件。
2.如权利要求1所述的媒体再发送装置,其特征在于所述的RTP处理部包括序号确认部,以从所述的服务器中接收到的流数据包为对象,判断丢失与否的部件;NPT计算部,上述判断结果若是规定的流数据包丢失,则以所述的丢失流数据包为对象,计算出当前读取时间的部件;RTSP反映信息处理机,对反映上述计算出的当前读取时间的再发送指令进行生成的部件。
3.如权利要求2所述的媒体再发送装置,其特征在于所述的流数据包丢失与否,可从所述的每个流数据包所包含的序号做出判断。
4.如权利要求2所述的媒体再发送装置,其特征在于所述的序号确认部在所述的接收到的流数据包的序号尚未到达的情况下,可判断为尚未到达的的流数据包已丢失。
5.如权利要求2所述的媒体再发送装置,其特征在于所述的序号确认部在所述的接收到的流数据包的序号次序发生改变的情况下,可判断为次序改变的流数据包已丢失。
6.如权利要求2所述的媒体再发送装置,其特征在于所述的当前读取时间可从所述的丢失流数据包所掌握的时间标志中计算出来。
7.如权利要求1或2所述的媒体再发送装置,其特征在于所述的再发送指令包含暂停指令及读取指令。
8.如权利要求2所述的媒体再发送装置,其特征在于所述的当前读取时间反映在所述的读取指令上。
9.如权利要求1所述的媒体再发送装置,其特征在于所述的发送部件RTSP处理部在发送所述的暂停指令后再发送读取指令。
10.如权利要求1所述的媒体再发送装置的媒体再发送方法,其特征在于包括以下几个步骤当从服务器接收到的流数据包中规定的流数据包丢失时,生成对所述的丢失流数据包的再发送指令;向服务器发送所述的再发送指令,以接收所述的再发送指令所对应的所述的丢失的流数据包;将所述的丢失的流数据包复号化并传输。
11.如权利要求10所述的媒体再发送方法,其特征在于所述的关于生成再发送指令的方法分为以下几个步骤以从所述的服务器中接收到的流数据包为对象判断丢失与否;当判断结果为所规定的流数据包丢失时,以所述的丢失的流数据包为对象,计算出当前读取时间;对反映所述的计算出的当前读取时间的再发送指令进行生成。
12.如权利要求11所述的媒体再发送方法,其特征在于所述的流数据包丢失与否可从所述的每个流数据包所包含的序号做出判断。
13.如权利要求11所述的媒体再发送方法,其特征在于当所述的接收到的流数据包的序号尚未到达时,可判断为所述的接收的流数据包已丢失。
14.如权利要求11所述的媒体再发送方法,其特征在于当所述的接收到的流数据包的序号次序发生改变时,可判断为所述的次序改变的流数据包已丢失。
15.如权利要求11所述的媒体再发送方法,其特征在于所述的当前读取时间是从所述的丢失的流数据包所掌握的时间标志中计算出来的。
16.如权利要求10或11所述的媒体再发送方法,其特征在于所述的再发送指令包含暂停指令及读取指令。
17.如权利要求11所述的媒体再发送方法,其特征在于所述的当前读取时间反映在所述的读取指令上。
18.如权利要求10所述的媒体再发送方法,其特征在于向所述的服务器发送指令是按所述的暂停指令和读取指令的先后次序实现的。
全文摘要
本发明涉及一种媒体再发送装置及方法,本发明的媒体再发送方法是指连续确认从服务器接收到的流数据包的序号,当规定的数据包丢失时,能计算出对这个丢失流数据包的当前读取时间,并能通过反映当前读取时间的再发送请求,重新读取丢失的流数据包。因此,通过本发明的再发送方法,不仅能防止发生因现有技术中没有再发送方法而在流数据包丢失时所导致的影像及媒体质量差的问题,而且能保障媒体数据传输的准确性,提高媒体数据传输的质量。
文档编号H04L1/18GK1753353SQ200410051588
公开日2006年3月29日 申请日期2004年9月20日 优先权日2004年9月20日
发明者柳淑铉 申请人:乐金电子(惠州)有限公司