视频数据发送方法和装置的制作方法

文档序号:7744289阅读:209来源:国知局
专利名称:视频数据发送方法和装置的制作方法
技术领域
本发明涉及一种将视频数据发送到视频客户端的装置和方法,特别适用于经由诸如无线信道的不可靠链接发送的例如MPEG-4数据的压缩视频流。
背景技术
通常,视频流由称作帧的位分组流组成,所述帧包括有关视频图像本身的信息和一些元信息(meta information)。所述元信息包括例如发送时间(time-to-send)和显示时间(time-to-display),所述发送时间是将要发送帧的时间,所述显示时间是将要显示帧的时间。
所述帧包括视频信息,所述视频信息根据视频压缩具有不同的格式。可以独立使用这些帧中的一些帧,而其它的帧取决于在前的帧。独立的帧称作码内帧或I-帧,而相关的(dependent)帧称作预测码帧或P-帧。这些相关性(dependency)导致这些帧具有不同的重要性。P-帧的重要性随着远离在前的I-帧而降低。
当经由不可靠的链接发送实时视频流时会引起两个主要的问题。
第一个问题是经由不可靠信道发送视频帧会导致分组损失。然而,由于视频帧的内部相关性,压缩的视频流极易受到分组损失的影响。
为此,为了减少分组损失和补偿这种损失的后果,已经研发了几种机制。一种普通技术是通过简单地从接收机发送分组损失的信号到发送机并让发送机重复丢失的分组来重发丢失的分组。这称作自动重复请求(Automatic RepeatRequest,ARQ)。
当经由不可靠链接发送实时视频流时出现的第二个问题是延迟要求和/或发送信道的有限带宽的所造成后果。所有的视频帧都具有发送时间和显示时间值。在它们的显示时间之后接收的帧在接收方是无用的。因此,有时候帧被信道延迟到它们已经无用的程度。
为了控制显示时间和对付实时的要求,开发了实时发送协议(RTP)。这种协议将诸如时戳和序列编号的一些信息添加到封装在RTP分组中的视频帧。这种信息被用来在计划的时间将视频帧发送到正确的视频应用。在接收机可以执行诸如延迟抖动、简单损失统计等的一些测量,并且通过RTP控制协议(RTCP)将结果信号发送到源。
考虑到上述重发技术,因为延迟的要求,不能重发所有丢失的分组。而且,由于不同的数据分组具有不同的重要性,无任何标准仅简单重发丢失分组将使不太重要的分组阻塞其它更重要的分组的发送,从而导致所接收视频流的质量的降低。
EP 1 130 839 A1公开了一种通过重发I-帧和一定数量的后续P-帧来提高接收质量的数据发送方法和装置,所述数量根据当前信道条件来设定。也就是,所公开的技术不限制于对I-帧的重发,或对I-帧和一个固定数量的P-帧的重发,而适应于信道条件。这就允许更有效地使用可用的信道宽度,但是虽然符合了时间要求和信道宽度限制,仍然存在一些限制,使得允许更好的改善视频流应用的质量发明内容提供一种用于将视频数据发送到视频客户端的改进的装置和方法,能够有效利用可用的带宽并且改善视频质量。
在一个实施例中,提供一种将视频数据发送到视频客户端的装置。所述视频数据是一系列视频数据单元。所述装置包括优先级分配单元,用于为将要发送的每个视频数据分配一个唯一的优先级。所述装置还包括发送缓存器,用于缓存多个视频数据单元,每一个视频数据单元具有一个分配的优先级。所述多个视频数据单元的第一部分包括仍未发送的视频数据单元。所述多个视频数据单元的第二部分包括可用于重发的视频数据单元。所述装置还包括发送判断部分,用于根据视频数据单元的优先级从所述第一和第二部分选择一个被缓存的视频数据单元。所述装置还包括发送装置,用于将所选择的视频数据单元发送到所述视频客户端。
在另一个实施例中,提供一种将视频数据发送到视频客户端的方法。所述视频数据是一系列视频数据单元。所述方法包括为将要发送的每个视频数据单元分配一个唯一的优先级;缓存一个或多个视频数据单元,每个视频数据单元具有分配的优先级,其中所述视频数据单元的第一部分仍未被发送,并且所述视频数据单元的第二部分可用于重发;根据视频数据单元的优先级从所述第一和第二部分选择一个被缓存的视频数据单元;以及将所选择的视频数据单元发送到所述视频客户端。


结合附图以形成用于解释本发明原理的说明书的一部分。附图不能被理解为对本发明的限制,而仅是可以如何产生和使用本发明的图解性和描述性的示例。通过本发明的下列和更详细的描述,如附图所示,本发明的其它特征和优点将变得明显,其中图1是说明根据本发明操作的视频服务器和视频客户端的组件的方框图;图2是说明根据一个实施例的在一个序列内的优先级分配的图;以及图3是说明根据另一个实施例的对多个序列的数据单元的优先级分配的图。
具体实施例方式
将参考附图来描述本发明的说明性实施例,其中相同的元件和结构由相同的参考标记来表示。
现在参考图1,视频服务器110经由不可靠信道130连接到视频客户端120。当信道130产生传播延迟和/或比特错误时,信道130被认为是不可靠的。不可靠的信道的例子是无线链接。
视频服务器110通过信道130将视频数据发送到视频客户端120。由视频服务器110的视频数据源135以帧或帧段的形式来提供视频信息。帧或帧的段被封装在分组数据单元(PDU)中。PDU可以包括单个帧或帧的段。
PDU被转发到加权单元140,在该加权单元140中,使用一些诸如到期时间、压缩类型和PDU的序列编号的一些PDU元信息来分配优先值或加权。所述到期时间是PDU最迟能够被发送的时间,即显示时间与信道传播延迟的时间差。
随后PDU被保存在发送缓存器145中。发送缓存器145由一个控制单元(未示出)来控制,该控制单元管理在缓存器145中的每个PDU的到期时间,并且删除那些已经到期的PDU。发送缓存器145还由发送判断单元160来控制,该发送判断单元160通过根据PDU的优先级(或加权)选择相应的PDU来发送、重发或舍弃哪个PDU。一旦发送判断单元160选择了一个用于发送(重发)的PDU时,该PDU被转发到封装单元150,该封装单元150通过添加适当的标题信息将相应的PDU封装到RTP PDU。对于发送和重发,该RTP PDU的标题信息是不同的。
随后将RTP PDU转发到通信量整形器(traffic shaper)155,该通信量整形器155以由信道信息块170给出的位速率来发送RTP PDU。
有几种可能性用于触发发送判断单元160来选择发送缓存器145中的最高优先级PDU。
一种可能性是通过反馈评估单元165来触发发送判断单元160,所述反馈评估单元165接收和评估从视频客户端120接收的任何反馈。来自视频客户端12的反馈可以包括重发请求或指示已正确接收PDU的确认。随后,视频服务器110必须确定是否发送重发或者是否从发送缓存器145删除已经被确认的帧。
触发发送判断单元160的另一种可能性是使用来自通信量整形器155的控制信号。所述通信量整形器155向发送判断单元160发出每个PDU发送完成的信号,用以表示视频服务器110现在预备好继续发送来自发送缓存器145的PDU。
另一种可能性是由发送缓存器145自己来触发发送判断单元160。当发送缓存器145为空时,可以立即发送任何进入的PDU。
虽然已经描述了如何触发发送判断单元160的三种不同可能性,但是对于本领域的普通技术人员来说可以存在其它可能性。而且,很明显可以同时采用多于一种的触发方案。
在接收方,接收到通过不可靠的信道130而遭受了传播延迟和比特错误的PDU。在评估单元175,评估每个所接收的RTP PDU标题信息,更新所接收的统计资料,并且如果需要,则产生重发请求和确认。所产生的消息包括ACK(确认)、NACK(不确认)或MACK(多用途确认)消息,并且被发送回视频服务器110。
所评估的PDU随后被转发到接收缓存器180,在该接收缓存器180中标题被去掉,并且存储帧。随后视频显示应用程序185根据显示时间管理将帧从接收缓存器180中释放,并且执行视频信息的实际显示。
根据该实施例,每个PDU都被分配一个唯一优先级。为此目的,一个序列的每个帧被分类到几个优先权组中的一个,或分类到几个类别中的一个。序列是以I-帧开始并且还包括了取决于这个I-帧的所有P-帧的一系列帧。多个帧或一个帧的段都封装在PDU中。每个PDU随后被分配一个取决于它的优先权组的唯一加权(优先权)。
优先权组是属于特定类型的帧的一组PDU。在本实施例中,三个优先权组(或帧的类型)是有区别的I-帧(I)、较重要的P-帧(Pm)和不太重要的P-帧(Pl)。
根据下列等式来计算属于不同优先权组的PDU的加权w^I=wmax-G·D·SQN]]>w^Pm=w^I-D·(1+G·L)]]>w^Pl=w^Pm-D·(1+G)=w^I-2·D-D·D·G(1+L)]]>在这些等式中,G表示优先权组的数量,例如在本实施例中G=3。
D是这些组中的PDU的最大数量D=max{Imax,Pm_max,Pl_max}其中Imax是在I-帧优先权组中的PDU的最大数量,Pm_max是较重要的P-帧优先权组中的PDU的最大数量,而Pl_mam是不太重要P-帧优先权组中的PDU的最大数量。对于所有序列的每个序列测量这些数量。
SQN是序列的编号。如上所述,一个序列是以I-帧开始并且还包括了取决于这个I-帧的所有P-帧的一系列PDU。
最后,参数L是一个指示加权间隔的长度的值。下面将更详细地解释加权间隔。
现在参考图2,图形在一个示例中图解了上面所示的等式的相关性。给出图2的图形仅为示意目的,以便说明优先权组的概念。
当非分段帧碰巧非常大时,则将它们分段,以便达到更小的PDU大小以便有效发送。另外,分段被用来获得基本上恒定的PDU大小,只要这样是可能的。考虑到所有的序列,I-帧被分段为最多三个PDU,Pm帧被分段为最多两个PDU,而Pl帧也被分为最多两个PDU在图2的示例中,视频流在每个序列中包括一个I-帧和五个连续的P-帧。这五个P-帧的头三个属于较重要的P-帧优先权组Pm,剩余两个P-帧属于不太重要的P-帧优先权组Pl。
这导致每个优先权组中的PDU的最大数量如下Imax=3·1=3
Pm_max=2·3=6Pl_max=2·2=4因此,通过采用定义了D参数的等式,对于所有优先权组,在本示例中PDU的最大数量是D=6。
在图2中在每个优先权组中的PDU表示为具有相同的加权,即优先级。然而,本领域的技术人员应当理解最好是每个PDU都具有它的唯一加权。现在将参考图3来更详细地讨论一个实施例。
在这个示例中,一些连续序列中的每个PDU的优先全值表现为逐渐降低。在图3的示例中,最大加权Wmax被设定为一个对应于16位地址的常数65535。随后根据下列等式分配单个优先值w1=w^1-PN]]>wPm=w^Pm-PN]]>wP1=w^P1-PN]]>在这些等式中,参数PN表示优先权组中的PDU的数量。在每个优先权组的开始,这个数为零。通过应用这些等式,分配给每个序列中的PDU的优先级如下PDU SEQ=0 SEQ=1 SEQ=2 SEQ=3 SEQ=4 SEQ=5 SEQ=6 SEQ=7 SEQ=80 65535 65517 65499 65481 65463 65445 65427 65409 653911 65534 65516 65498 65480 65462 65444 65426 65408 653902 65533 65515 65497 65479 65461 65443 65425 65407 653893 65475 65457 65439 65421 65403 65385 65367 65349 653854 65474 65456 65438 65420 65402 65384 65366 65348 653845 65473 65455 65437 65419 65401 65383 65365 65347 653836 65472 65454 65436 65418 65400 65382 65364 65346 653827 65471 65453 65435 65417 65399 65381 65363 65345 653818 65470 65452 65434 65416 65398 65380 65362 65344 653809 65451 65433 65415 65397 65379 65361 65343 65325 6537910 65450 65432 65414 65396 65378 65360 65342 65324 6537811 65449 65431 65413 65395 65377 65359 65341 65323 6537712 65448 65430 65412 65394 65376 65358 65340 65322 65376根据本实施例的优先级分配希望给不太重要的PDU提供较低的加权,以便有利于更重要的PDU。假设对于每个序列,这个序列的PDU在五个随后序列之后到期,则该到期时间被设定为一个对应于五个序列长度的值。例如,第一序列(SQN=0)的PDU在第六序列(SQN=5)开始之前到期。在本实施例中,使第一序列中的Pm-帧的PDU比第一到第四序列的所有I-帧PDU更不重要。这在图3中以水平虚线表示出来了。
下面的描述中这种序列间隔将被称为加权间隔。因此加权间隔是这样的间隔,其中序列m的较重要的Pm-帧的PDU具有比序列m到m+L的所有I-帧PDU更低的加权。在图3的示例中,m=0和L=3。加权间隔的长度,即间隔中序列的数量被给定为L+1,也就是图3示例中的4。
该加权间隔也可以描述不太重要的P1帧的PDU。由于在图3的示例中第一序列(SQN=0)的P1帧PDU已经被分配了比第五序列(SQN=4)I-帧PDU更低但是比第六序列(SQN=5)I-帧PDU更高的加权,对于不太重要的Pl-帧的PDU的加权间隔的长度等于L+2,从而超过了较重要的Pm-帧PDU的加权间隔长度一个序列。
通过使用如上所述的加权间隔,I-帧PDU在到期之前可以被重发的次数增加了,从而接收I-帧的概率也增加了。这导致Pm-帧PDU的发送或重发被延迟或者被舍弃,而有利于在对应于L+1序列的一段时间期间的I-帧PDU的发送或重发。因此第一序列的Pm-帧PDU的发送或重发并不具有最高优先权,直到第四个序列的I-帧,而且这些PDU直到它们到期的时候,即第六序列的开始时才有时间被成功地发送。这也同样适用于Pl-帧的PDU,尽管它们具有较少的时间也能够被成功发送或重发到接收机,就像它们不太重要一样。
根据一个实施例,根据PDU的到期时间和发送时间来设定加权间隔的长度。例如,可以基于到期时间texp、发送时间tsend、序列持续时间Tseq、以及优先权组G的数量来计算LL=texp-tsendTseq-G+1]]>Tseq的值表示一个序列的持续时间,并且对于所有的序列,该值都被假定为固定的。
根据一个实施例,唯一优先级被分配给每个视频数据单元,并且该优先级被用来计划发送的数据。本实施例通过不仅考虑为重发而计划的帧还考虑为第一次发送,即常规发送而计划的帧,来克服现有技术的限制。而且,本实施例将唯一优先级分配给数据,从而避免多个数据单元具有相同的优先权。这样做的好处是,在任何时候它能清楚地定义什么数据单元将被计划来被发送。
根据本实施例,根据视频数据单元的优先级来选择(即计划)可以发送的视频数据单元。这可能导致这样一种情况为了有利于较重要的帧,不太重要的帧被延迟或者甚至被舍弃,无论它在流中的位置如何。这就增加了接收这种较重要的帧的可能性,也增加了这种帧可能重发的时间量。
而且,本实施例的优势在于它考虑到对于常规发送和重发而有效地处理可用带宽。常规发送和重发共享相同的链接的可用带宽。由第一次发送或由重发使用的带宽部分不是固定的,而是取决于被分配给数据单元的优先级,以及取决于对于请求重发多少数据单元以及哪些数据单元。通过使用根据本实施例的优先级分配,以最优方式利用了信道。
而且,本实施例的优势在于它考虑到所接收的压缩视频流的质量取决于视频质量保持不变的程度,而不是实际可见视频流的突然地改善或分等级(gradation)。
最好基于视频帧的元信息,例如发送时间、显示时间、发送延迟、压缩的重要性或类型,也就是基于所述帧是I帧或是P帧,来进行唯一优先级的分配。通过使用关于当前信道的这个信息和其它附加信息,例如可用带宽和接收机统计资料,本实施例允许更好地确定哪个帧将被发送、重发或舍弃。
而且,本实施例提供了一种加权算法,该算法不仅考虑了一种单个PDU还考虑了多个序列的多个PDU的加权间隔(这将在下面进行详细的讨论)。该加权机制的优势在于不会由于链接质量中的波动而导致所接收的视频流的质量的波动。
虽然对于根据本发明构造的物理实施例描述了本发明,但是对于本领域的技术人员明显的是,在不背离本发明的精神和范畴的情况下,鉴于上述示教和所附权利要求的范围可以做出本发明的各种更改、变化和改进,此外,这里不再描述本领域的技术人员认为是相近的那些领域,以便不必要地这里所述的本发明不清楚。因此,应当理解本发明不限于特别说明的实施例,而应当仅由所附权利要求来限定。
权利要求
1.一种向视频客户端发送视频数据的装置,所述视频数据是一系列的视频数据单元,所述装置包括优先级分配单元,用于将唯一优先级分配给将要发送的每个视频数据;发送缓存器,用于缓存多个视频数据单元,每个视频数据单元具有分配的优先级,所述多个视频数据单元的第一部分包括仍未发送的视频数据单元,所述多个视频数据单元的第二部分包括可用于重发的视频数据单元;发送判断部分,用于根据视频数据单元的优先级从所述第一和第二部分选择一个被缓存的视频数据单元;以及发送装置,用于将所选择的视频数据单元发送到所述视频客户端。
2.如权利要求1所述的装置,其中所述视频数据单元是分组数据报单元。
3.如权利要求1所述的装置,其中所述视频数据在包括码内和预测码帧的视频流中发送,并且所述视频数据单元是码内或预测码帧或者它们的段。
4.如权利要求1所述的装置,还包括反馈评估单元,用于从所述视频客户端接收反馈消息,并且操作所述发送判断单元来执行视频数据单元的重发,其中所述发送判断单元被安排用来独立于数据单元是否第一次被发送或者被重发来选择所述一个被缓存的数据单元。
5.如权利要求1所述的装置,其中所述优先权分配单元被安排用来根据各个视频数据单元的发送时间和/或显示时间和/或发送延迟来分配所述唯一优先级。
6.如权利要求1所述的装置,其中所述发送判断单元响应于来自所述视频客户端的确认或不确认消息而被触发来选择视频数据单元。
7.如权利要求1所述的装置,其中无论何时所述发送装置指示已经发送了一个先前选择的视频数据单元,所述发送判断单元都被触发来选择视频数据单元。
8.如权利要求1所述的装置,其中无论何时所述发送缓存器为空并且接收到它第一个视频数据单元,所述发送判断单元都被触发来选择视频数据单元。
9.如权利要求1所述的装置,其中所述视频数据在包括码内帧和预测码帧的视频流中发送,并且将所述预测码帧被分类为至少两种不同的优先级别。
10.如权利要求9所述的装置,其中分配给一个优先级别的码内帧的优先级和分配给一个优先级别的预测码帧的优先级相差一个量,所述量取决于在该优先级别中的分组数据报单元的最大总数量、和/或优先级别的数量。
11.如权利要求9所述的装置,其中分配给一个优先级别的预测码帧的优先级和分配给另一个优先级别的预测码帧的优先级相差一个量,所述量取决于在该优先级别中分组数据报单元的最大总数量、和/或优先级别的数量。
12.如权利要求1所述的装置,其中所述视频数据单元以序列排列,并且所述优先权分配单元被安排来将优先级分配给视频数据单元,优先级从一个序列到另一个序列逐渐降低。
13.如权利要求12所述的装置,其中所述视频数据在包括码内帧和预测码帧的视频流中发送,并且码内帧优先级与预测码帧优先级的差别取决于一个表示加权间隔的长度的参数,其中所述加权间隔是一组多个序列,在该多个序列中,加权间隔中的第一序列的预测码帧视频数据单元具有比加权间隔中的最后序列的码内帧视频数据单元更低的优先级。
14.一种将视频数据发送到视频客户端的方法,所述视频数据是一系列视频数据单元,所述方法包括将唯一优先级分配给将要发送的每个视频数据单元;缓存一个或多个视频数据单元,每个视频数据单元具有分配的一个优先级,其中所述视频数据单元的第一部分仍未被发送,而所述视频数据单元的第二部分可用于重发;根据视频数据单元的优先级从所述第一和第二部分选择一个被缓存的视频数据单元;以及将所选择的视频数据单元发送到所述视频客户端。
15.如权利要求14所述的方法,其中所述视频数据单元是分组数据报单元。
16.如权利要求14所述的方法,其中所述视频数据是在包括码内和预测码帧的视频流中发送的,并且所述视频数据单元是码内或预测码帧或者它们的段。
17.如权利要求14所述的方法,还包括一种反馈评估机制,所述机制包括从所述视频客户端接收反馈消息;以及执行视频数据单元的重发;其中所述一个所缓存数据单元是独立于所述数据单元是否是第一次发送或者是重发而选择的。
18.如权利要求14所述的方法,其中分配所述唯一优先级是根据各个视频数据单元的发送时间和/或显示时间和/或发送延迟来执行的。
19.如权利要求14所述的方法,其中所述视频数据单元的选择是响应于来自视频客户端的确认或不确认消息而被触发执行的。
20.如权利要求14所述的方法,其中无论何时发送一个先前选择的视频数据单元,都触发以执行所述视频数据单元的选择。
21.如权利要求14所述的方法,其中无论何时视频数据单元被第一次缓存,都触发执行所述视频数据单元的选择。
22.如权利要求14所述的方法,其中所述视频数据在包括码内帧和预测码帧的视频流中发送的,并且所述预测码帧被分类为至少两种不同的优先类别。
23.如权利要求22所述的方法,其中分配给一个优先级别的码内帧的优先级和分配给一个优先级别的预测码帧的优先级相差一个量,所述量取决于优先级别中的分组数据报单元的最大总数量、和/或优先级别的数量。
24.如权利要求22所述的方法,其中分配给一个优先级别的预测码帧的优先级和分配给另一个优先级别的预测码帧的优先级相差一个量,所述量取决于优先级别中分组数据报单元的最大总数量、和/或优先级别的数量。
25.如权利要求14所述的装置,其中所述视频数据单元以序列排列,并且所述优先权分配单元被安排来将优先级分配给视频数据单元,优先级从一个序列到另一个序列逐渐降低。
26.如权利要求25所述的装置,其中所述视频数据是在包括码内帧和预测码帧的视频流中发送的,并且码内帧优先级与预测码帧优先级的差别取决于一个表示加权间隔的长度的参数,其中所述加权间隔是一组多个序列,在该多个序列中加权间隔中的第一个序列的预测码帧视频数据单元具有比加权间隔中的最后序列的码内帧视频数据单元更低的优先级。
全文摘要
提供一种用于将视频数据发送到视频客户端的装置和方法。所述视频数据是一系列的视频数据单元。将唯一优先级分配给要发送的每个视频数据。随后缓存所述视频数据,其中所述视频数据单元的第一部分是仍未发送的视频数据单元,而所述视频数据单元的第二部分是可用于重发的视频数据单元。根据实施例,根据视频数据单元的优先级从所述第一和第二部分选择一个被缓存的视频数据单元,并被发送到视频客户端。该实施例允许通过使用优先级计划常规发送以及重发来提高视频质量,尤其是当经由不可靠的链接发送压缩视频流时。
文档编号H04N7/24GK1565128SQ02819680
公开日2005年1月12日 申请日期2002年10月7日 优先权日2001年10月5日
发明者乔斯·L·雷伊, 罗尔夫·黑肯伯格 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1