本申请是2009年8月17日提出的标题为“METHODANDSYSTEMFORCONDUCTINGCONTINUOUSPRESENCECONFERENCE”的美国专利申请No.12/542,450的部分继续申请,该美国专利申请要求2009年1月30日提出的标题为“METHODANDSYSTEMFORCONDUCTINGCONTINUOUSPRESENCECONFERENCES”的美国临时申请No.61/148,772的优先权,这两个申请的全部内容通过整体引用被结合于此。本申请还要求2011年8月11日提出的标题为“METHODANDSYSTEMFORSWITCHINGBETWEENSTREAMSINACONTINUOUSPRESENCECONFERENCE”的美国临时申请No.61/522,474的优先权,该申请的全部内容通过整体引用被结合于此。
具体实施方式
媒体中继会议中的上文所描述的缺陷不会以任何方式限制本公开的发明构思的范围。缺陷仅供说明之用。
在下面的描述中,为解释起见,阐述了很多具体细节,以便提供对本发明的全面的了解。但是,对本领域技术人员来说,显而易见的是,可以在没有这些具体细节的情况下实施本发明。在其他情况下,以框图形式示出了各个结构和设备,以避免不必要地使本发明模糊。对没有下标或后缀的编号的引用被理解为引用对应于被引用的编号的下标和后缀的所有实例。此外,本公开中所使用的语言主要是为可读性以及指导目的而选择的,而不是为描绘或限定本发明的主题、采取必须用来确定这样的发明主题的权利要求书而选择的。说明书中对“一个实施例”或“实施例”的引用意味着结合各实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中,而对“一个实施例”或“实施例”的多个引用不应该被理解为一定都是指同一个实施例。
虽然下面的一些描述是以涉及软件或固件的术语来描写的,但是各实施例可以根据需要以软件、固件或硬件,包括软件、固件以及硬件的任何组合来实现此处所描述的特征和功能。在下面的描述中,单词“单元”、“元件”,“模块”以及“逻辑模块”可以可互换地使用。表示为单元或模块的任何东西都可以是独立单元或专门或集成模块。单元或模块可以是模块化的或具有模块化方面,可使它轻松地拆卸和替换为另一类似的单元或模块。每一单元或模块都可以是软件、硬件和/或固件中的任何一个或任何组合,最终导致被编程为执行归于单元或模块的功能的一个或多个处理器。另外,相同的或不同类型的多个模块可以通过单一处理器来实现。逻辑模块的软件可以在诸如读/写硬盘、CD-ROM、闪速存储器、ROM或其他存储器或存储装置等等之类的计算机可读介质上具体化。为了执行某一任务,软件程序可以根据需要被加载到适当的处理器中。在本公开中,术语“任务”、“方法”、“过程”可以可互换地使用。
图1示出了根据本公开的一个实施例的新颖的多媒体会议系统100。系统100可包括:网络110、一个或多个媒体中继MCU(MRM)120、以及多个媒体中继端点(MRE)130。网络110可以是任何所需的网络,包括分组交换网络、电路交换网、IP网络、或其任何组合。通过网络的多媒体通信可以基于诸如H.320、H.323以及SIP之类的通信协议,并可以使用媒体压缩标准,如音频压缩标准G.711和G.719和/或用于视频流式播放以及多质量流的视频压缩标准,如H.264AVC、H.264附件G、MPEG-4等等。
在与端点建立连接之后,MRM120可以指示端点提供经压缩的音频。MRM120可以确定每一音频流的音频能量,以及相应地,选择一个或多个要被中继到一个或多个端点的音频流,在一个或多个端点处,它可以被解码和混合并被发送到端点扩音器。
以类似的方式,MRM120可以指示各端点以匹配将在其中呈现视频图像的布局中的段大小的某一大小来提供经压缩的视频图像。例如,大小可以由每一方向(高度和宽度)中的像素的数量进行定义。此外,MRM120还可以指定其中一个端点作为当前发言者的端点,并可以请求当前发言者的端点以较大的图像大小来提供其视频图像,该图像大小将使发言者的段拟合在相关布局中。在某些实施例中,可以使各端点适用于以两个或更多不同的大小来提供压缩视频图像,其中,每一视频图像大小都可以拟合不同的段大小(分辨率)。在这样的实施例中,前一发言者端点可以提供两个大小的其压缩视频图像:(i)要通过常规参加会议者的段布局显示的常规大小,以及(ii)要被呈现在分配给当前发言者的布局段中的发言者的大小(较大的图像)。
在其他实施例中,在整个MRC会话期间,端点可以以多个流向MRM120发送其视频图像。每一流都以不同的质量携带压缩视频图像。质量可以在空间分辨率(图像大小)、帧速率、比特速率、锐度等等方面不同。此外,MRM120还可以确定要将哪一个流中继到其他一个或多个端点。
会议会话的当前发言者可以是,例如其音频能量是最高的参加会议者。在一替换实施例中,发言者可以是在给定时间段最活跃的参加会议者。例如,最活跃的参加会议者可以被定义为其音频能量在某一百分比的时段(如60%或更高)内最高的参加会议者。
每一MRE130都能够向另一MRE130或向MRM120提供实时、双向音频和/或视觉通信。MRE可以是会话中的参加会议者的终端,该终端具有从MRM接收中继的压缩媒体并根据来自MRM的指令将中继压缩音频和视频数据块提供到MRM的能力。压缩媒体可以作为实时协议(RTP)数据块来发送。有关RTP的信息可以在因特网工程任务组(IETF)网站www.ietf.org找到。每一MRE130都可以以适当的所需比特速率以及所需压缩标准来发送中继RTP压缩音频数据块。类似地,每一MRE130都可以以适当的所需大小、比特速率或帧速率以及所需压缩标准,来发送中继RTP压缩视频数据块。在一个实施例中,可以修改每一MRE130以通过将音频能量指示嵌入到标头中的一个字段中或中继RTP压缩音频数据块的扩展标头中来发送其音频能量的指示。术语“数据块”以及“分组”此处可互换地使用。
在MRC会话开始时,MRM120可以处理会议的要求,包括参与者的数量、布局的数量、每一布局中的呈现的参加会议者的数量,以及不同的参加会议者的图像的大小。所呈现的参加会议者是其视频图像呈现在至少一个其他参加会议者(接收方参加会议者)的CP视频图像中的参加会议者。一个参加会议者的呈现的参加会议者可以是另一个参加会议者的接收方参加会议者。基于会话的要求,MRM120可以与每一个端点协商,以便为端点可以在会话期间发送或接收的每一个流建立连接。
每一MRE130可以与一标识符(ID)相关联,该标识符(ID)可以在媒体数据的中继RTP压缩块的RTP标头中携带,以标识接收到的压缩音频或视频分组的源。在一个实施例中,ID可以由MRE130随机地选择,并潜在地在验证其唯一性之后由MRM120确认。在另一实施例中,ID可以被MRM120分配并传输到相关MRE130。MRE130可以在每一中继压缩媒体数据块的RTP标头中的同步源(SSRC)字段中写入ID。在另一实施例中,ID可以被写入RTP标头的贡献源(CSRS)字段中。在一替换实施例中,ID可以被写入每一中继RTP压缩媒体数据块的扩展标头中。ID可以使MRM120能标识接收到的中继RTP压缩音频和/或视频分组的源。每一压缩音频或视频流都可以与其自己的ID相关联。在某些实施例中,同一MRE130的中继RTP压缩音频数据块和中继RTP压缩视频数据块可以具有相同ID。在一替换实施例中,同一MRE130的中继RTP压缩音频数据块和中继RTP压缩视频数据块可以具有不同的ID。在某些实施例中,如果MRE130在不同质量的多个流中向MRM120发送其视频图像,则可以给每一流指定不同的ID。在某些实施例中,显示的布局中的每一段都可以与ID相关联,以及MRM120可以负责根据诸如例如音频能量之类的不同的参数,将段的ID分发到会话中的每一MRE130。在另一实施例中,每一接收方MRE130都可以确定其布局中的每一个段的段ID,并将带有相关联的信息的那些段ID传输到MRM120。每一个段ID的信息可包括段所需的诸如分辨率、帧速率等等之类的视频参数。此处,术语“RTP标头”可以包括共同的RTP标头以及添加到RTP标头的扩展。
在某些实施例中,ID是号码;在其他实施例中,ID可以是可以提供MRE130或特定流的唯一标识的任何其他值。在其他实施例中,IP地址和IP端口(在此,在MRM120上接收中继RTP压缩音频和/或视频数据块)可以用作代替ID号码的标识。
在一个实施例中,根据每一参加会议者(MRE130)的接收到的音频能量,MRM120可以确定哪些参加会议者将在会话的某一时段呈现于CP图像中。例如,可以选择、呈现以及在未来的给定时间段听到带有最高音频能量的MRE130。MRM120还可以确定显示的参加会议者中的哪些将被显示在布局中的发言者段中。在一替换实施例中,每一MRE130都可以确定哪些参加会议者将呈现于其显示的布局中以及哪个参加会议者(MRE130)将被显示在发言者段中。在这样的实施例中,MRE130用户可以使用美国专利出版物No.20030174202中所公开的点击以及查看选项,此处引用了该申请的全部内容作为参考。MRM120还可以将适当的接收到的流路由到适当的MRE130。
基于会话的属性,每一端点都可以构建其自己的CP视频图像。根据其布局,端点可以将压缩视频的接收到的有效负载分组组织到两个或更多压缩视频段存储器(CVSM)中,其中,每一CVSM都与布局中的段相关联。每一CVSM都可以与将被呈现在该段中的压缩视频图像流的ID号相关联。将接收到的压缩视频数据存储在适当的CVSM中可以基于被嵌入在携带接收到的压缩视频的分组的RTP标头内的ID号。CVSM和ID号之间的关联关系可以根据会话中发生的活动动态地变化。例如,在会话中发生变化(如一个端点加入或离开会话,或发言者变化)之后,关联关系可以被来自MRM120的命令改变。端点可以具有将端点ID与布局中的段相关联的交叉索引表。该表可以在会话期间更新,以反映会话的动态特性。在CVSM中组织数据可以基于例如分组的序列号或被嵌入在RTP标头内的帧的时间戳。
在一个实施例中,可以修改端点,以通过将它们的音频能量的指示嵌入在RTP标头中的字段中或嵌入在RTP分组的扩展标头中来发送此数据。在这样的实施例中,MRM120可以解析携带音频数据的RTP的标头,以确定每一端点的音频能量,并相应地选择发言的参加会议者和/或呈现的参加会议者。在替换实施例中,MRM120可以指示端点通过信令或控制连接来发送有关它们的音频能量的指示,或者可另选地MRM120可以解码接收到的音频流并确定它们的能量。
在其中音频压缩符合压缩标准G.7221.C或G.719(例如)的其他实施例中,端点的音频编解码器可以被配置成向音频标头添加音频能量的指示。在这样的实施例中,可以修改MRM120,以搜索音频有效负载的标头并检索音频能量的字段。在其他实施例中,音频能量的指示可以通过专门的带外状态和控制连接,被从端点发送到MRM120。
另外,还可以修改端点以解码从每一个CVSM中获取的存储的压缩视频。解码的视频可以被存储在段帧存储器(FM)模块中。段FM存储将在相关段中的CP中呈现的解码的视频数据。在某些实施例中,可以在解码器以及其相关联的段FM之间添加缩放器,并可以将其用于将接收到的图像的大小调整到相关联的段。在其他实施例中,解码的视频可以被存储在与相关CVSM中的段相关联的部分中的CP图像的FM中。
在一个实施例中,CVSM可以与整个会话的某一ID相关联。在这样的实施例中,MRM120可以动态地将表示CVSM(布局中的段)的ID与将在相关段中显示的压缩视频数据相关联。在这样的实施例中,没有必要将布局中的变化通告给接收方端点。MRM120可以通过将段的相关ID与从将呈现于相关段中的参加会议者发送的相关压缩视频数据相关联。在某些实施例中,可以向源ID中添加表示布局中的段的ID,或者源ID可以被替换为段ID。
MRM120可以判断来自呈现方MRE130中的一个的Intra帧被接收方MRE130中的一个(被称为需求方MRE130)需要。判断可以基于从需求方MRE130接收到的Intra请求。请求可以响应于分组丢失或需求方MRE130的参加会议者的希望而发送,以例如将呈现方MRE130的视频图像添加到需求方MRE130的布局。在某些情况下,MRM120可以确定来自所呈现的参加会议者的Intra帧需要被发送给需求方MRE130。例如,当需求方MRE130加入正在进行的MRC会话时,那么,MRE130需要从每一个呈现的参加会议者获取Intra帧。在常规视频会议系统中,在那些情况下,Intra帧将被发送给所有接收视频流的端点,尽管它们不需要Intra帧。所公开的技术避免了将Intra帧传输到不需要它的MRE130。
在一个实施例中,MRM120在确定来自呈现方MRE130的Intra帧被需求方MRE130需要之后,还可以进一步验证需求方MRE130的解码器在处理来自该呈现方MRE130的以前接收到的视频帧时是否具有一个或多个被解码器解压缩的参考帧。众所周知,H.264、MPEG-4以及类似的编码器和解码器可以聚合并使用多个参考帧,例如多达16个帧。编码器当处理当前视频图像时确定将那些参考帧中的哪一个用于编码当前视频图像。此外,编码器还将指定哪一个参考帧用于编码当前压缩视频帧的指示添加到当前压缩视频图像的标头中。此指示被接收方MRE的解码器使用,以便将接收到的当前压缩视频图像的解码过程与编码过程同步。
在MRC视频会话的开始,MRM120可以指示参与的MRE130存储若干个参考帧以用于编码/解码过程中。数字可以是最后两个帧、最后四个、最后八等等。在正在进行的会话中,MRM120可能需要知道需求方MRE130的解码器具有来自呈现方MRE130的哪些参考帧。在一个实施例中,需求方MRE130可以传信对Intra替换的请求,伴有对应于最后一个存储的参考帧的帧编号。
在其他实施例中,MRM120可以将从每一个MRE130发送的最后几个帧的帧编号保存在表中或其他方便的数据结构中。基于此表,从需求方MRE130接收对Intra帧的请求的时间,以及在MRM120处从呈现方MRE130接收帧以及由于在需求方MRE130处不接收和解码此帧而获取Intra请求的事件之间的估计的延迟,MRM120可以估计哪些参考帧存在于需求方MRE130中。
如果MRM120确定需求方MRE130的解码器具有以前的参考帧(此帧可被称为现有的以前的参考帧),那么MRM120可以指示呈现的端点的相关流的编码器基于现有的以前的参考帧,将下一个视频帧压缩为Inter帧,并删除其预先存储的参考帧。在这样的情况下,所有接收方MRE130获取基于较旧的以前的帧压缩的Inter帧,从此时向前,所有接收方MRE130再次与呈现方MRE同步。
如果MRM120确定需求方MRE130的解码器需要来自呈现方MRE130的Intra帧,那么MRM120可以开始同步所有接收方MRE130(包括需求方MRE130)的解码器的参考帧的过程,而不必向所有接收方MRE130发送Intra帧。在呈现方MRE130发送一个或多个流的情况下,术语呈现方MRE130普通流可以是指发送到接收需求方MRE130的相同质量级别的其他MRE130的流。
在某些实施例中,在同步过程中可以涉及多个连续帧。跨多个帧伸展该过程的理由之一是避免呈现方MRE130中的计算资源以及呈现方MRE130和MRM120之间的以及MRM120和需求方MRE130之间的网络资源的消耗的跳跃。在某一时刻,例如当呈现方MRE130发送帧编号M-1时,MRM120可以指示呈现方MRE130与普通流并行地发送附加流(临时流)。临时流是通过对普通流的参考帧存储器编码而不是从摄像机接收到的视频图像而创建的。临时流的第一编码帧是Intra帧。Intra帧与普通流具有相同空间分辨率,但是以例如较低的质量、较小的图像锐化、较低的帧速率来压缩。
当由呈现方MRE130接收到MRM120指令时,例如来自呈现方MRE130的摄像机的帧M可以被压缩为一个或多个质量级别的Inter帧,并发送到MRM120。另外,临时流通过将与帧M相关的普通流的参考帧压缩为低质量的Intra帧(TIm)开始,以及被发给MRM120,该MRM120又将它中继到需求方MRE130。
需求方MRE130解码TIm,并将低质量的已解码图像置于CP图像中,并呈现给参加会议者。并行地,解码器创建与呈现方MRE130的普通流的帧M的参考相关的参考帧。
呈现方MRE130的编码器通过将与M+1、M+2等等直到帧N相关的普通流的参考存储器编码为Inter帧来继续编码临时流。帧的数量可以介于零帧和预定数量的帧(例如,10个帧)之间的范围。那些帧可被称为质量增强的帧,因为每一inter帧的压缩质量高于前一帧。从摄像机接收到的帧N被压缩为SP帧。SP帧被作为普通流中的P帧发送到其他接收方端点。此帧可被称为SPn。当编码SPn帧时创建的呈现方MRE130的编码器处的参考帧被压缩为SSPn。SSPn帧作为临时流的最后一个帧被发送给需求方MRE130。
需求方MRE130解码接收到的SSPn,创建涉及帧N的参考帧。经解码的图像被置于CP视频图像中,并被呈现成帧N。此时,由于对SSPn的解码而创建的参考帧与在具有相同质量级别的其他接收方MRE130创建的参考帧存储器以及呈现方MRE130中的普通流的参考存储器相同。后面的帧N+1以及上面的被编码一次,并作为普通流发送到需求方MRE130以及具有相同质量级别的其他接收方MRE130。
在另一实施例中,可以利用从摄像机接收到的视频图像而不是如在上面的示例中从普通流的编码器的参考帧创建临时流。在这样的实施例中,利用从摄像机接收到的相同视频图像创建SP和SSP帧。在某一时刻,例如当呈现方MRE130发送帧编号M-1时,MRM120可以指示呈现方MRE130与普通流并行地发送附加流(临时流)。临时流是通过如对普通流编码那样,编码从摄像机接收到的视频帧而创建的。临时流的第一编码帧是帧M的Intra帧(TIm)。Intra帧与普通流具有相同空间分辨率,但是以较低的质量、较小的图像锐化、较低的帧速率等等来压缩。
需求方MRE130解码TIm,并将低质量的已解码的图像置于CP图像中并呈现给参加会议者。并行地,解码器创建与来自呈现方MRE130的帧M相关的参考帧。呈现方MRE130的编码器通过将从摄像机接收到的后面的视频帧编码为Inter帧来继续编码临时流。那些Inter帧涉及帧M+1、M+2,等等,直到帧N。帧的数量可以介于零帧和预定数量的帧(例如,10个帧)之间的范围。那些帧可被称为质量增强的帧,因为每一inter帧的压缩质量高于前一帧。
普通流的帧N与其他inter帧不同地压缩。帧N被压缩为SP帧。此时,需求方MRE130与至少一个其他接收方MRE130具有类似的质量。然而,需求方MRE130的参考帧存储器可能不类似于其他接收方MRE130。
因此,MRM120可以将需求方MRE130的参考帧与具有相同质量流的其他接收方MRE130同步。为了将需求方MRE130的参考存储器与其他接收方MRE130同步,MRM120可以指示呈现方MRE130的编码器将临时流的帧N编码为SSPn帧,SSPn帧被作为临时流的最后一个帧发送给需求方MRE130。
需求方MRE130解码接收到的SSPn,创建涉及帧N的参考帧。经解码的图像被置于CP视频图像中,并被呈现成帧N。此时,通过对SSPn的解码创建的参考帧存储器与在具有相同质量级别的其他接收方MRE130创建的参考帧存储器以及呈现方MRE130中的普通流的参考存储器相同。后面的帧N+1以及上面的被编码一次,并作为普通流发送到需求方MRE130以及具有相同质量级别的其他接收方MRE130。
在使用多个以前编码的参考帧的另一实施例中,无损压缩可以用于将带有一组所需参数的前一参考帧传输到需求方MRE130,然后基于前一参考帧,例如当呈现方MRE130发送帧编号M-1时,编码下一个帧。MRM120可以指示呈现方MRE130与一个或多个普通流并行地发送附加流(临时流)。临时流是通过对在编码普通流的帧M-1时创建的参考帧的无损压缩而创建的。帧M-1的无损压缩参考帧(LLCRF)可以经由MRM120,通过从呈现方MRE130到需求方MRE130的IP连接,被带外地发送。临时流还可以传送诸如“画面参数集”、“序列参数集”等等之类的所需参数集合。关于所需参数集合的信息可以在诸如H.264之类的压缩标准中找到。
在另一实施例中,呈现方MRE130可以直接向需求方MRE130发送临时流。发送LLCRF以及所需参数集合可以以不多的分组来进行,并可以采取一个或多个帧间隔。无损压缩方法可以是任何无损方法,如ZIP、Lempel-Ziv-Welch(LZW)、无损JPEG2000等等。
在又一实施例中,需求方MRE130可能已经以第一分辨率从呈现方MRE130接收中继RTP压缩视频数据块的流,而其他MRE130可以以第二分辨率从呈现方MRE130接收中继RTP压缩视频数据块的流。第二分辨率的流可以被称为普通流。在某一时间,需求方MRE130可能需要将接收到的流分辨率从第一分辨率改变为第二分辨率。在这样的实施例中,呈现方MRE130可以分配临时编码器。可以利用第一分辨率的过渡参考帧来加载临时编码器。然后,已加载的过渡参考帧的分辨率可以从第一分辨率变为第二分辨率。并行地,相当于呈现方MRE130处的过渡参考帧的需求方MRE130的参考帧的分辨率可以从第一分辨率变为第二分辨率,类似于对呈现方MRE130所执行的那样。如此,此时呈现方MRE130处的临时编码器以及需求方MRE130处的解码器具有相同参考帧。
从呈现方MRE130的摄像机接收到的接下来的一个或多个视频图像可以被临时编码器以第二分辨率压缩,并与发送到其他接收方端点的普通流并行地传输到需求方MRE130。在一个或多个视频帧之后,常规编码器可以将从摄像机接收到的下一个视频图像压缩为SP帧,并通过普通流,将它发送到一个或多个接收方MRE130,而临时编码器可以将同一个视频图像压缩为SSP帧,并将它发送到需求方MRE130。在传输SP和SSP帧之后,呈现方MRE130可以释放临时编码器,以及需求方MRE130可以与一个或多个其他接收方MRE130那样接收普通流。在又一实施例中,可以使用过渡参考帧来创建和发送SP和SSP帧。
需求方MRE130,使用无损算法,解压缩获取的LLCRF和所需参数集合。然后,利用解压缩的参考帧和所需参数集合来加载需求方MRE130的解码器。如此,解码器与参考帧M-1具有相同参考帧以及其他接收方MRE130的相同的所需参数集合。呈现方MRE130的编码器可以基于参考帧M-1来编码下一个摄像机帧,并将所产生的Inter帧发送到接收方MRE130(包括需求方MRE130)。另外,需求方MRE130的编码器还可以删除所有以前的参考帧。
另一实施例可以使用上面所公开的技术的组合。这样的实施例可以使用以与普通流相同分辨率但是带有较低的质量的Intra帧来开始,接下来是几个质量增强的帧的临时流。在典型的视频会议会话中,连续帧之间的变化是最少的,因此在不多的质量增强帧之后,在临时流的编码器的输入端处的下一个未经压缩的帧,与编码以前的帧之后创建的参考帧十分类似。在这样的各实施例中,呈现方MRE130可以使用无损压缩技术来压缩普通流和临时流的参考帧之间的差,并将经过压缩的差发送到需求方MRE130。需求方MRE130可以解压缩这些差,并相应地纠正其解码器参考帧。
由两个流的编码器使用无损压缩技术压缩同一个帧将在两个流的编码器和解码器处生成相同参考帧,因此,下一个帧可以由普通编码器压缩,普通流可以被传输到需求方MRE130以及其他接收方MRE130。
在一个实施例中,MRM120通过指示呈现方MRE130来控制与临时流相关联的活动,如上文所描述的。在其他实施例中,MRM120可以通过分配用于在呈现方MRE130和MRM120之间传送临时流的信道来启动该过程。从此时,MRE130被配置成自动地执行整个过程,从低质量Intra开始并以SSPn结束,然后,对于临时流,关闭额外的信道。在一替换实施例中,MRM120可以开始该过程,但是呈现方MRE130和需求方MRE130可以协商何时沿着临时流从一个过程移到另一个过程。
在某些实施例中,被分配创建临时流的编码器可以是与普通流的编码器分开的编码器。分开的编码器可以访问普通流编码器的参考存储器。此外,分开的编码器还可以在过渡期引导普通编码器,并指示它何时利用编码器的动作之间的更改排序来执行特殊编码。在其他实施例中,单一编码器可以被配置成创建两个流。
MRE130可以解码从所选参加会议者接收到的视频图像的数据块的接收到的中继RTP压缩视频流,并在适当的布局段中显示每一图像。MRE130可以解码接收到的音频数据块的中继RTP压缩音频流,将不同的解码音频流混合,以及将混合的音频传输到MRE130的扩音器。在其他方向,MRE130可以根据来自MRM120的指令,提供中继RTP压缩音频和视频数据块。
除MRE130的上面的功能之外,将压缩视频的普通流发送到MRM120以便中继到两个或更多接收方MRE130的呈现方MRE130可以以新颖的方式对与需求方MRE130相关的Intra请求作出响应。在一个实施例中,其中编码器和解码器存储并使用多个以前的参考帧,然后代替编码Intra帧并将它作为普通流中的下一个帧发送到MRM120以便中继到两个或更多涉及的MRE130,呈现方MRE130可以通过向所有涉及的MRE130提供Inter帧来作出响应。所提供的Inter帧是基于存在于涉及到压缩视频的该流中的所有MRE130中的相同参考帧(IRF)编码的。编码的Inter帧被发送到涉及的MRE130,以及然后编码器释放所有预先存储的参考帧。需求方MRE130和其他接收方MRE130的解码器可以基于IRF的预先存储的副本来解码所提供的编码的Inter帧。
在其中编码器和解码器使用多个以前的参考帧来编码/解码当前帧的MRE130的一个实施例中,可以通知呈现方MRE130的编码器,以前的参考帧存在于需求方MRE130的解码器中。编码器可以使用此参考帧作为IRF,该IRF与也存在于其他接收方MRE130的参考帧相同。从呈现方MRE130的的摄像机接收到的下一个视频图像可以基于IRF被压缩为Inter帧,并可以释放呈现方MRE130的编码器的以前的参考帧的其余部分。
在某些实施例中,呈现方MRE130可以与MRM120建立临时连接,以便与普通流并行地输送压缩视频的新颖的临时流。临时流可以被MRM120中继到需求方MRE130。临时流用于准备需求方MRE的解码器以接收和解码也被发送给其他接收方MRE130的属于普通流的未来Inter帧。临时流和普通流具有相同分辨率。然而,临时流可以从低质量Intra帧开始,以及从一个Inter帧质量到后面的Inter帧,质量可以改善。
为了从临时流切换到普通流,呈现方MRE130可以将从摄像机接收到的下一个视频图像编码为普通流的SP帧,并将临时流的相对应的帧编码为SSP帧。解码SP和SSP帧的结果可以分别在其他接收方MRE130以及需求方MRE130的解码器中生成IRF。普通编码器的参考帧也与IRF相同。如此,可以基于IRF来编码从摄像机接收到的下一个视频图像,并通过普通流发送到所有涉及的MRE130(包括需求方MRE130)。在一个实施例中,可以通过编码普通流的参考帧来创建临时流的帧。在又一实施例中,可以通过编码从呈现方MRE的摄像机接收到的视频图像来创建两个流。
所公开的系统的再一个实施例通过建立用于与一个或多个普通流并行地输送临时流的临时连接来对Intra帧的需要作出响应。临时流是通过对在编码普通流的最近的帧时创建的参考帧的无损压缩而创建的。临时连接可以,例如经由MRM120,通过从呈现方MRE130到需求方MRE130的IP连接,被带外地打开。发送无损压缩参考帧(LLCRF)可以以不多的分组来进行,并可以采取一个或多个帧间隔。无损压缩方法可以是ZIP、Lempel-Ziv-Welch(LZW)、无损JPEG2000等等。除发送LLCRF之外,呈现方MRE130可以发送用于解码的所需参数,如“画面参数集”或“序列参数集”,如在H.264压缩标准中所公开的。
一个实施例可以使用上面所公开的方法的组合。在这样的实施例中,呈现方MRE130可以利用与普通流相同分辨率但是带有较低质量的Intra帧来开始临时流,接下来是几个质量增强帧。在几个质量增强帧之后,临时流的编码器处的参考帧类似于普通流的编码器处的参考帧。此时,可以计算两个编码器的参考帧之间的差,并以无损压缩方法来压缩该差。可以将该压缩的差传输到需求方MRE130。在需求方MRE130处,可以无损地解压缩无损压缩的差,并将其添加到需求方MRE130的解码器处的参考帧,在需求方MRE130的解码器以及其他接收方MRE130的解码器处创建IRF。此时,临时流可以结束,以及普通流也可以向需求方MRE130传输。
另一实施例可以使用上面所公开的方法的组合。在这样的实施例中,呈现方MRE130可以利用与普通流相同分辨率但是带有较低的质量的Intra帧来开始临时流,接下来是几个质量增强帧。在不多的质量增强帧之后,在临时流的编码器的输入端处从呈现方MRE130的摄像机接收到的下一个未经压缩的帧,与编码以前的帧之后创建的参考帧十分类似。在这样的实施例中,普通流的编码器和临时流的编码器可以以无损压缩方法压缩下一个帧和参考帧之间的差。
在呈现方MRE130处由两个流的编码器以无损压缩方法压缩同一个帧将在两个流的编码器和解码器处生成相同参考帧,因此,下一个帧可以由呈现方MRE130的普通编码器压缩,以及单一流,普通流,可以向MRM120传输,该MRM120将它分发到需求方MRE130以及其他接收方MRE130。普通流和临时流的无损压缩可以通过绕过编码器和解码器中的量化器模块来进行。下面结合图11B公开了有关MRE130的更详细的信息。
在另一实施例中,新颖的MRM120可以被配置成启动处理由需求方MRE130从呈现方MRE130请求Intra帧的过程,活动的其余部分可以由呈现方MRE130和需求方MRE130进行管理。
在其中使用多播的又一实施例中,MRM120可以指示需求方MRE130在使用临时流时监听新的多播地址,以及然后监听与普通流相关联的多播地址。并行地,MRM120可以指示呈现方MRE130开始生成临时流,并与将普通流发送到与普通流相关联的多播地址并行地将它发送到新的多播地址。下面结合图2、3、4、8A以及8B公开了有关MRM120的更详细的信息。
图2描绘了根据一个实施例的带有MRM120的相关元件的框图。MRM120可包括:例如网络接口模块(NI)220、一个或多个会话压缩音频RTP处理器(SCARP)230、信令和控制模块(SCM)240、以及一个或多个会话压缩视频RTP处理器(SCVRP)250。在一替换实施例中,MRM120可包括每一会话一个或多个SCM240。
网络接口模块(NI)220可以通过网络110与诸如MRE130之类的多个视频会议设备进行通信。网络接口220可以根据诸如H.323和SIP之类的一个或多个通信标准来解析通信。此外,网络接口模块220(NI)可以处理接收到的通信的物理层、数据链路层、网络层和传输层(UDP/TCP层)。NI220可以来往于MRM120和MRE130或其他节点(附图中未示出)接收和传输控制和数据信息。
NI220多路复用/多路分解在MRE130和MRM120之间传递的不同的信号和流。已压缩的音频的RTP块可以通过NI220往返于MRE130和SCARP230地传输。每一SCARP230都可以与某一会话相关联。NI220可以根据MRE130分组的源和/或目的地IP端口和IP地址和/或ID,确定MRE130正在参与哪一个会话,如此,使得NI220能确定哪一个SCARP230应该接收从某一MRE130接收到的已压缩的音频的RTP块。在其他方向,从SCARP230接收到的已压缩的音频的RTP块可以被NI220转换为IP分组,并向适当的MRE130或其他节点传输。
视频数据的RTP压缩块通过NI220往返于MRE130和SCVRP250地传输。每一SCVRP250都可以与视频会议会话相关联。NI220可以根据MRE130分组的源和/或目的地IP端口和IP地址和/或源ID,确定MRE130正在参与哪一个会话,如此,使得NI220能确定哪一个SCVRP250应该接收从某一MRE130接收到的分组。在其他方向,从SCVRP250接收到的已压缩的视频的RTP块可以被NI220转换为IP分组,并向适当的MRE130或其他节点传输。
NI220还可以往返于SCM240和MRE130传输与接收信令和控制数据。NI220还可处理对要被从呈现方MRE130向需求方MRE130发送的Intra帧的需求作出响应的过程的信令和控制。
为由MRM120处理的每一个会议会话,可以分配SCARP230以处理会话音频。SCARP230可以通过NI220从正在参与会话的MRE130接收音频数据的中继RTP压缩块(标头和有效负载)。SCARP230可以管理多个MRE顺序存储器,对于参与会话的每一个MRE130一个。SCARP230可以解析从MRE130接收到的中继RTP压缩音频块的RTP标头,并将所述块存储在适当的MRE顺序存储器中。SCARP230还可以根据被嵌入在中继RTP标头中的序列号或时间戳,确定将中继RTP压缩音频块存储在MRE顺序存储器中的适当的次序。
SCARP230可以收集有关每一MRE130的音频能量的信息。在一个实施例中,可以通过解析每一接收到的中继RTP压缩音频块的中继RTP标头中的适当的字段来获取音频能量。在又一实施例中,可以通过采样接收到的中继RTP压缩音频块的音频能量级来获取音频能量。
周期性地,通常每数十毫秒,SCARP230可以选择要听并因此传输到MRE130的一组音频块的中继RTP压缩流。选择可以基于比较与接收到的流相关联的音频能量。选择的中继RTP压缩流的数量取决于MRE130的音频混合能力。SCARP230还可以选择哪一个MRE130是主要发言者(例如,将以最大的布局段显示的那个),并相应地将信令和控制信息转发到SCM240。主要发言者可以是在某一时期内的某一百分比的听到的流的选择间隔(heard-streams-selectioninterval),带有最高音频能量的那一个。
在再一个替换实施例中,SCARP230可以将有关MRE130的音频能量的信息转发到SCM240。SCM240将选择MRE130的主要发言者和将被听到(混合)的音频数据的RTP压缩流的组,并将信令和控制数据发送到适当的SCARP230和SCVRP250。在某些实施例中,有关所选组的参加会议者和/或主要发言者的信息也被传输到MRE130。根据从SCM240发送的信令和控制数据,SCARP230可以排列所选组的中继RTP压缩音频块,并作为中继的压缩音频数据块,通过NI220将它们中继到适当的MRE130。下面结合图3公开了更多有关SCARP230的信息。
对于MRM120处理的每一个视频会议会话,分配SCVRP250。SCVRP250可以通过NI220从正在参与会话的MRE130接收中继RTP压缩视频块(标头和有效负载)的流。SCVRP250可以管理多个MRE顺序存储器,对于参与会话的每一个MRE130一个。SCVRP250可以解析接收到的中继RTP压缩视频块的标头,并根据其帧编号或时间戳将它存储在适当的MRE顺序存储器中。不时地,取决于会话所使用的帧速率,根据从SCM240接收到的信号和控制信息,SCVRP250可以访问一组一个或多个MRE顺序存储器,并通过NI220将选择的MRE130的组的数据中继到适当的MRE130。
在过渡期,除其正常操作之外,SCVRP250还可以分配额外的顺序存储器。额外的顺序存储器可以用于存储从呈现方MRE130接收到的临时流,并与从该呈现方MRE130接收到的常规的一个或多个流并行地定向到需求方MRE130。此外,此临时存储器可以被排向需求方MRE130,代替具有类似质量级别的常规流中的一个。下面结合图4公开了更多有关SCVRP250的信息。
SCM240控制会话的操作。SCM240可以启动会议会话(预留的或即席的)、与端点建立连接、确定会议属性、并相应地设置EP传输与接收媒体。SCM240还可以进一步分配资源、分配ID、指示端点的编码器使用多个参考帧等等。不时地,SCM可以基于音频能量和要发送到每一端点的视频源以及发言的参加会议者的指示,选择新发言者。相应地,新选择可以被传输到SCARP230和SCVRP250。SCM240可以指示EP根据布局中的变化来发送适当的视频参数。
SCM240可以确定视频数据的哪一个RTP压缩流被中继到哪些MRE130以及视频图像将在哪个布局段中呈现。基于从SCM240接收到的指令,SCVRP250将适当的流中继到MRE130,并可以指示MRE130以哪个布局段呈现每一个视频图像。在一个实施例中,SCVRP250可以通过改变它发送的中继的RTP压缩视频数据块的RTP标头中的ID,将参加会议者的呈现的变化通知给MRE130。标头中的改变的ID可以用作向接收方MRE130指定应该在CP图像中的哪个段中显示中继的RTP压缩视频数据的指示。在一替换实施例中,SCM240可以通过NI220,通过信令和控制数据,将变化通知给MRE130。在又一实施例中,SCVRP250可以通过设置它发送的中继的RTP压缩视频数据块的RTP标头中的预定义字段,将变化通知给MRE130。RTP标头中的预定义字段可以被用来指出MRE130应该在哪个段中显示中继的RTP压缩视频数据块。
除上面的活动之外,SCM240还可以处理过渡和切换周期。它可以对来自接收方MRE130中的一个MRE130的Intra请求作出响应。它可以确定请求的理由,例如对Intra的请求是否是由于布局中的变化或由于新参与者加入了会议。SCM240管理用于从呈现方MRE130输送唯一流的临时连接。MRM120的一些实施例可以按如下方式对Intra请求作出响应:SCM刚刚启动过渡期,呈现方MRE130和需求方MRE130管理临时的低质量帧的数量以及何时切换回常规流。下面结合图3、4、8以及11公开了有关MRM120的更多信息。
图3示出了带有实现各实施例的技术和元件的SCARP230的相关元件的简化框图。SCARP230可包括:RTP音频输入缓冲器310、音频RTP标头解析器和组织器320、多个MRE顺序音频存储器330、可以是内部总线或共享存储器的总线340、多个RTP压缩音频流生成器350、以及音频能量处理器360。SCARP230可以通过控制总线365被SCM240控制,控制总线365可以是例如内部总线或共享存储器。SCARP230的输入端和输出端可以通过压缩RTP音频数据接口(CRADI)305连接到NI220,以便接收和传输压缩音频数据块。CRADI305可以是内部总线或共享存储器。
每一SCARP230都可以被指定处理由MRM120处理的会议会话的音频。SCARP230的RTP音频输入缓冲器310可以从CRADI305获取中继RTP压缩音频数据块。从参与会话的MRE130接收中继RTP压缩音频数据块。在一个实施例中,RTP音频输入缓冲器310可以通过使用中继RTP标头中的ID号来确定要从CRADI305中获取哪一个中继RTP压缩音频数据块。在一替换实施例中,RTP音频输入缓冲器310可以基于接收到的相关分组的源和/或目的地IP地址和端口号,从NI220接收中继RTP压缩音频数据块。
音频RTP标头解析器和组织器320可以从RTP音频输入缓冲器310提取中继RTP压缩音频数据块,并解析中继RTP压缩音频数据块的标头以便检索相关信息,如:块的ID、序列号和/或时间戳、以及音频能量,如果存在的话。在某些实施例中,音频标头可以被解析,以便检索音频能量信息。例如基于ID,音频RTP标头解析器和组织器320可以将解析的中继RTP压缩音频数据块传输到适当的MRE顺序音频存储器330,以及将音频能量传输到音频能量处理器360。
每一MRE顺序音频存储器330都可以与MRE130相关联(图1)。从相关联的MRE接收到的中继RTP压缩音频数据块可以根据其序列号和/或时间戳而被存储在MRE顺序音频存储器330中。每一MRE顺序音频存储器330都可以通过总线340来访问,总线340将所有MRE顺序音频存储器330连接到RTP压缩音频流生成器350中的一个或多个。
每一RTP压缩音频流生成器350都可以被指定到一个或多个MRE130。RTP压缩流生成器350可以包括MRE多路复用器和定序器352以及MRERTP音频输出缓冲器354。RTP压缩流生成器350可以通过访问一个或多个MRE顺序音频存储器330来选择压缩音频中继数据块的一个或多个源的组。组选择可以基于不同的参数,如从音频能量处理器360接收到的控制信号、独立于其能量的特定源的用户指定、或目的地MRE130的音频混合能力。通常,所选源的组不包括从目的地MRE130接收到的音频流。在一替换实施例中,RTP压缩流生成器350可以从目的地MRE130接收有关要选择哪些MRE130的控制信号。此外,不时地,RTP压缩音频流生成器350可以根据会议中的实时变化来改变其输入的选择。
MRE多路复用器定序器352可以从总线340中选择一个或多个输入中继RTP压缩音频数据块。所选中继RTP压缩音频数据块流可以被多路复用为一个中继的RTP压缩音频数据块流,该流被发送到MRERTP音频输出FIFO354,以及从MRERTP音频输出FIFO354通过CRADI305和NI220向适当的MRE130传输。
RTP压缩音频流生成器350的替换实施例(图中未示出)可包括一组选择器。每一选择器都连接到总线340,并可以选择MRE顺序音频存储器330中的一个的输出。选择器的其他端口可以通过FIFO连接到CRADI305。在这样的实施例中,所选音频流作为多个中继RTP压缩音频数据块流,被发送到MRE130。
在一替换实施例中,RTP压缩音频流生成器350可以被用来服务于一组参与会议会话的参加会议者,其中所有相关MRE130都将接收中继RTP压缩音频数据块的相同流。
音频能量处理器360可以接收与每一中继RTP压缩音频数据块相关联的音频能量,以及基于此信息,音频能量处理器360确定将选择哪一个MRE130要在下一时间段混合,并将选择传输到适当的RTP压缩音频流生成器350的MRE多路复用器定序器352。此外,音频能量处理器360还可以确定哪一个端点应该被呈现成如上文所描述的主要发言者。此指定新的活动发言者的信息可以通过控制总线365被输送到SCM240。
图4是带有实现各实施例的技术和元件的SCVRP250的相关元件的简化框图。SCVRP250可以包括:RTP视频输入缓冲器410、视频RTP标头解析器和组织器420、一个或多个MRE顺序视频存储器430、总线440(可以是例如内部总线或共享存储器)、以及一个或多个RTP压缩视频流生成器450。SCVRP250可以通过控制总线465从SCM240接收控制,控制总线465可以是例如内部总线或共享存储器。压缩输入和输出视频数据块可以通过压缩RTP视频数据接口(CRVDI)405(可以例如是内部总线或共享存储器)在SCVRP250和NI220之间传递。
每一SCVRP250都管理会议会话的视频。RTP视频输入缓冲器410可以通过CRVDI405从NI220获取从参与会话的MRE130接收到的中继RTP压缩视频数据块。在一个实施例中,RTP视频输入缓冲器410可以通过例如嵌入在RTP标头中的ID号,来确定要处理哪一个中继RTP压缩视频数据块。在一替换实施例中,RTP视频输入缓冲器410基于与相关分组相关联的源和/或目的地IP地址和端口号,从NI220接收视频块。
视频RTP标头解析器和组织器420可以从RTP视频输入缓冲器410中提取中继RTP压缩视频数据块,并解析中继RTP压缩视频数据块的标头以便检索相关信息,如:ID、序列号和/或时间戳和/或帧编号以及与每一视频块相关联的第一宏块地址(MBA)。基于检索到的信息,视频RTP标头解析器和组织器420可以将相关中继RTP压缩视频数据块存储在适当的MRE顺序视频存储器430中。
每一MRE顺序视频存储器430都与从参与会话的MRE130接收到的流相关联。从MRE130接收到的每一流都可以以不同的质量级别和/或分辨率来传送压缩视频。MRE顺序视频存储器430的每一输出都链接到总线440,该总线440将所有MRE顺序视频存储器430连接到RTP压缩视频流生成器450中的一个或多个。
在过渡期,SCM240可以分配额外的临时MRE顺序视频存储器430,该视频存储器430将被指定到将从呈现方MRE130发送的临时流。另外,可以将临时流的ID通知给视频RTP标头解析器和组织器420、RTP视频输入缓冲器410、以及NI220,以便将它路由到临时MRE顺序视频存储器430。
每一RTP压缩视频流生成器450都可以被指定到一个或多个接收方MRE130,以便选择要被中继到MRE130的一组适当的中继压缩视频数据流。RTP压缩视频流生成器450可以包括MRE多路复用器定序器452以及MRERTP视频输出缓冲器454。每一RTP压缩视频流生成器450都可以选择一组中继RTP压缩视频数据块的一个或多个源(MRE130)以及一组一个或多个MRE顺序视频存储器430。此选择可以基于通过控制总线465从SCM240接收到的控制信号,并可以作为会话中的变化的结果而改变。在一替换实施例中,RTP压缩视频流生成器450可以通过SCM240以及有关指定的MRE130愿意看到哪些MRE130的控制总线465从指定的MRE130本身接收控制信号。
MRE视频多路复用器定序器452可以从总线440获取输入中继RTP压缩视频数据块的所选流,并将该组流多路复用为一个中继RTP压缩视频数据块的流,该流被存储在MRERTP视频输出FIFO454中,并从MRERTP视频输出FIFO454通过CRVDI405和NI220向指定的接收方MRE130传输。在一些会议会话中,一个RTP压缩视频流生成器450可以用于会话的所有MRE130,如此所有MRE130都将接收中继的RTP压缩视频数据块的相同流。
RTP压缩视频流生成器450的替换实施例(图中未示出)可以包括一组选择器。每一选择器都连接到总线440,并可以选择其中一个MRE顺序视频存储器430的输出。选择器的其他端口可以通过FIFO连接到CRVDI405。在这样的实施例中,所选视频流作为多个中继的RTP压缩视频数据块流,被发送到MRE。
在又一实施例中,示例性MRE顺序视频存储器430可以不根据其序列号来组织接收到的中继RTP压缩视频数据块。相反,接收到的中继RTP压缩视频数据块根据接收它们的次序来被组织。
在其中向布局中的每一段指定ID号的一个实施例中,可以修改MRERTP视频输出FIFO模块454以将适当的段ID添加到每一处理的压缩视频数据块中。在这样的实施例中,段ID以及源MRE130的相关ID之间的关联可以通过经由总线465接收到的控制信号来维护。段ID可以替换与块相关联的源ID,或者它也可以被存储在RTP标头中的另一字段中。
在过渡期,SCM240可以指示被指定到需求方MRE130的RTP压缩视频流生成器450从被指定到临时流的临时MRE顺序视频存储器430,而不是从被指定到从呈现方MRE130发送的流的MRE顺序视频存储器430,获取压缩视频数据块。被指定到其余的接收方MRE的RTP压缩视频流生成器450可以持续排出被指定到从呈现方MRE发送的流的MRE顺序视频存储器430。
图5描绘了带有MRE130的一个实施例的相关元件的简化框图。MRE130可包括:MRE网络接口模块(MRENI)520、MRE音频模块(MREAM)530、MRE控制模块(MRECM)540、以及MRE视频模块(MREVM)550。
MRE130可以通过MRENI520与MRM120进行通信或通过网络110与另一MRE130进行通信。MRENI520可以根据一个或多个通信标准,如H.323、SIP或类似的标准,以及压缩标准,如H.264、MPEG等等,来处理通信。此外,网络MRENI520还可以执行往返于MRE130的通信的物理层、数据链路层、网络层以及传输层(UDP/TCP层)。
MRENI520可以多路复用/多路分解在MRE130和MRM120之间传递的信号和控制以及媒体流。音频和视频的RTP压缩数据块(标头和有效负载)通过MRENI520被分别往返于MRM120和MREAM530和MREVM550地传输。MRENI520还可以在MRECM540和MRM120之间传输与接收信令和控制。
MREAM530可以通过MRENI520从MRM120接收一组多个中继的RTP压缩音频数据块(标头和有效负载),并解析中继的RTP压缩音频数据块的RTP标头,以确定诸如源ID、时间戳和序列号之类的参数。MREAM530还可以根据其ID、时间戳和/或序列号,来排列接收到的中继RTP压缩音频数据块,以及然后解码、混合以及放大音频数据块。MREAM530可以将混合音频传输到MRE130的一个或多个扩音器。
在其他方向,MREAM530可以从MRE130的麦克风采集音频信号,并将信号从模拟转换为数字,计算音频能量,以及根据适当的压缩标准将音频编码/压缩为RTP压缩音频数据块。所使用的压缩标准可包括G.711、G.719或G.722.1C。
MREAM530可以将计算出的音频能量、由MRM120指定到MRE130的音频流的ID、时间戳、以及序列号嵌入在压缩的音频数据块的RTP标头的适当的字段中。在另一实施例中,MREAM530可以通过MRECM540发送音频信号能量的指示。下面结合图7公开了关于MREAM530的更多信息。
MREVM550可以通过MRENI520从MRM120接收一组中继的RTP压缩视频数据块(标头和有效负载),并解析接收到的中继RTP压缩视频数据块的RTP标头,以便确定诸如源ID、段ID、时间戳以及序列号之类的参数。在过渡期,可以将ID号分配给临时流。MREVM550可以根据其时间戳和/或序列号来排列接收到的中继RTP压缩视频数据块,解码中继RTP压缩视频数据块,并基于ID号来将它们组织到适当的段FM(帧存储器)中。对于布局中的每一个段,可以有段FM,每一段和/或源ID都可以与布局中的某一段FM相关联。在一替换实施例中,源和/或目的地IP地址和端口号可以与布局中的段相关联。取决于MRE130所使用的帧速率,MREVM550可以将不同的段FM组合为合成的FM(CPFM),并发送完整的CPFM以便通过MRE130的一个或多个显示器来显示。
在一替换实施例中,MREVM550可以根据其时间戳和/或序列号来排列接收到的中继RTP压缩视频数据块,解码视频数据块,并将它们组织到一个覆盖整个布局的CPFM中。在另一实施例中,MREVM550还可以从MRECM540接收关于会议主要发言者中的变化、要被呈现的参加会议者的数量的变化、一些参加会议者的变化等等的信息。
在某些实施例中,解码接收到的中继RTP压缩视频数据块的MREVM550的解码器,可以被配置成在过渡期处理解码过程。在一个实施例中,解码器可以存储并使用多个以前的参考帧。在这样的实施例中,解码器可以发送Intra替换请求,带有最后一个存储的以前的参考帧的指示。在其他实施例中,解码器可以处理诸如SP和SSP帧之类的唯一帧。在又一些其他实施例中,可以修改解码器以解码无损压缩帧,以便作为后面的Inter帧等等的参考帧来加载它。
在其他方向,MREVM550可以从MRE130的摄像机采集视频图像,将视频图像缩放为一个或多个所需的大小/质量,以及根据适当的压缩标准将视频图像编码/压缩为RTP压缩视频数据块。压缩标准可包括H.264、MPEG4等等。可以通过MRECM540从MRM120接收关于所需的大小和压缩标准的信息。MREVM550可以被嵌入在诸如源ID、时间戳、序列号、帧编号等等之类的RTP标头不同的参数中的适当字段中。根据帧速率,中继RTP压缩视频数据块通过MRENI520被传输到MRM120。
在某些实施例中,编码/压缩中继RTP压缩视频数据块的MREVM550的编码器,可以被配置成在过渡期处理编码过程。在一个实施例中,接收方MRE130的解码器可以存储并使用多个以前的参考帧。在这样的实施例中,编码器可以接收来自需求方解码器的Intra替换请求,带有解码器具有的最后一个存储的以前的参考帧的指示。然后,编码器可以通过基于所指出的最后一个存储的以前的参考帧来将来自摄像机的后面的视频图像压缩为Inter帧来作出响应。在其他实施例中,编码器可以编码SP和SSP帧。在又一些其他实施例中,可以修改编码器以根据无损压缩方法将其参考帧编码为无损压缩帧,以便为后面的Inter帧等等作为参考帧被加载到需求方MRE130的解码器中。
MRE控制模块(MRECM)540可以控制MRE130的操作。MRECM540可以与MRM120建立连接,并传递将通过MRE130显示的关于布局中的参加会议者的数量、图像大小、压缩标准、主要发言者、ID信息等等参数。ID信息可包括:有关从MRE130发送的不同的音频或视频数据块的ID、涉及过渡期的通信等等的信息。涉及过渡期的信息可以包括:开始和结束过渡期的指示、临时流的ID、涉及过渡期的信令和控制等等。
MRECM540可以根据会话中的选择的参加会议者的数量、所需的布局、所需的FM的数量等等来分配音频和视频资源。MRECM540可以指示MREVM550如何构建要被显示在MRE130的一个或多个显示器中的布局。MRECM540还可以关于要被混合的参加会议者的数量等等来更新MREAM530。在某些实施例中,可以在MRE130和MRM120之间建立带外连接,该带外连接将使MRE130和MRM120能动态地传递会话中的变化。
在MRE130的某些实施例中,可以修改MRECM540和MREVM550,以将信息添加到显示的CP图像中。信息可以指出当前呈现于每一个段中的当前发言者和/或参加会议者的姓名。在这样的实施例中,可以修改MRECM540以从MRM120接收信息。信息可以被传输到包括文本和图形生成器的MREVM550,以便转换要被显示在端点的状态信息。在其他方向,可以修改MREVM550和MRECM540,以从端点显示菜单,在所述端点,菜单可以用于控制MRM120。
在过渡期,可以修改MRECM540,以(分别)在MREVM550和MRENI520中分配用于处理临时流的视频和网络资源。在某些实施例中,呈现方MRE130和需求方MRE130的MRECM540可以被配置成管理处理过渡期的过程。MRM120可以启动过渡期,但是在启动之后,需求方MRE130和/或呈现方MRE130的MRECM540可以管理过渡期的继续和结束。下面结合图6、7、9和9B公开了有关MRE130的更多信息。
图6描绘了带有根据一个实施例的MREVM550的一部分的相关元件的简化框图。MREVM550可以具有两个主要部分:(i)输入部分,该部分可以处理接收到的中继RTP压缩视频数据块的组,以及(ii)输出部分,该部分可以处理由MRE130摄像机捕捉到的视频数据。根据一个实施例的输入部分可以包括诸如,例如RTP视频输入缓冲器610、视频RTP标头解析器和组织器620、一个或多个压缩视频段存储器(CVSM)630(布局中的每一段一个)、一个或多个MRE视频解码器640(布局中的每一段一个)、一个或多个段FM650(布局中的每一段一个)、MRECP图像生成器660、MRECP帧存储器模块670、以及背景FM655之类的模块。输出部分可以包括:例如一个或多个缩放器和FM680、一个或多个视频编码器685、临时编码器687、以及MRE视频RTP处理器(MREVRTP)690。编码器685和解码器640能够使用诸如H.264AVC、H.264附件G、MPEG-4等等之类的压缩标准。
每一CVSM630都与要被呈现在该段中的视频流的ID相关联。在一个实施例中,CVSM与ID的关联可以在会话期间改变。在其他实施例中,CVSM和ID的关联在整个会话内是固定的。
MREVM550的输入部分的RTP视频输入缓冲器610可以从MRENI520获取中继RTP压缩视频数据块。视频RTP标头解析器和组织器620可以访问输入缓冲器610并解析RTP标头,以便确定接收到的中继RTP压缩视频数据的不同的参数。参数可包括但不仅限于序列号、帧编号、源和/或段ID、时间戳等等。RTP标头解析器和组织器620还可具有例如将源ID与显示的布局中的段相关联的索引表。在其中段ID不与接收到的数据块相关联的实施例中,每一CVSM630都可以例如与显示的布局中的某一段相关联。如此,RTP标头解析器和组织器620可以例如根据源ID,将适当的中继RTP压缩视频数据块流传输到CVSM630。RTP标头解析器和组织器620还可以根据接收到的数据块的第一MB的序列号或时间戳或帧编号和地址,将RTP压缩视频数据块组织到CVSM630中。
每一CVSM630的输出都可以与MRE视频解码器640相关联,而每一MRE视频解码器640的输出都可以与段FM650相关联。如此,MRE视频解码器640可以访问适当的CVSM630,解码RTP压缩视频数据块,并将经解码的视频存储在适当的段FM650中。在一替换实施例中,可以在解码器640和段FM650之间添加缩放器。MRECP图像生成器660可以将不同的段FM650的内容传输到MRECP帧存储器模块670中,以构建CP图像。CP图像的完整帧可以被从MRECP帧存储器模块670传输,以便显示在MRE显示单元上。不时地,可以基于不同的参数,如背景颜色、不同的段之间的边界线以及它们的颜色、模式、以及参加会议者的姓名,来加载背景FM655。可以在会话开始时创建背景FM655,但是可以在会话期间的任何时间改变背景FM655。在MRE130的一个实施例中,背景可以由MRECM540来创建。当构建CP图像时,MRECP图像生成器660可以从背景FM655模块收集数据,因为它是从段FM650收集的。
在过渡期,需求方MRE130的MREVM550的输入部分可以与正常操作不同地进行操作。在过渡期,RTP视频输入缓冲器610可以也被配置为从MRENI520获取涉及从相关的呈现方MRE130接收到的临时流的中继RTP压缩视频数据块。视频RTP标头解析器和组织器620可以被配置成获取临时流的中继RTP压缩视频数据块,并在与CP图像中的分配给呈现方MRE130的段相关联的CVSM630中组织它们,以便显示在需求方MRE130的显示器上。
在一个实施例中,与分配给呈现方MRE130的段相关联的MRE视频解码器640,可以被配置成使用多个存储的以前的参考帧。在这样的实施例中,解码器可以被配置成发送Intra替换请求以及存储的以前的参考帧的序列号。作为响应,呈现方MRE130的相关编码器可以发送基于所指出的存储的以前的帧压缩的Inter帧。Inter帧可以通过普通流发送。
在其中通过普通流使用SP帧并通过临时流使用SSP帧的另一实施例中,相关流640的解码器可以被配置成分别为接收方MRE130或需求方MRE130处理SP和/或SSP帧。
在其中通过使用无损压缩算法通过临时流从呈现方MRE130的编码器传输参考帧的一替换实施例中,相关解码器640能够解码用来编码参考帧的无损压缩算法,并将它加载到其参考帧中,以便能够解码将基于参考帧编码的普通流的后面的帧。
管理过渡期可以通过相关解码器640与呈现方MRE130的编码器一起进行。而在其他实施例中,管理可以通过SCM240来处理。在其他实施例中,解码器/编码器的过渡期活动可以由SCM240在开始过渡期之时启动,然后呈现方MRE130的解码器640和编码器自主地继续。
MREVM550的输出部分从MRE130摄像机接收视频图像,并将图像存储在一个或多个缩放器和FM680中。每一缩放器和FM680都可以例如缩放视频图像并将其以不同大小的(分辨率)存储。每一缩放器和FM680的输出都与视频编码器685相关联,该视频编码器685可以以不同速率和/或质量来编码数据,得到压缩视频数据块。然后,视频编码器685将压缩视频数据块传输到MREVRTP690,该MREVRTP690可以将源ID、时间戳、序列号或其他参数嵌入到RTP压缩视频数据块的标头中。接下来,MREVRTP690将中继RTP压缩视频数据块输出到MRENI520。
在过渡期,呈现方MRE130的MREVM550的输出部分可以与正常操作不同地进行操作。在过渡期,与扩展到与需求方MRE130相关联的大小的缩放器相关联的视频编码器685的一个实施例,可以被配置成使用多个存储的以前使用的参考帧。在这样的实施例中,当编码器从需求方MRE130接收到伴有存储的以前的参考帧的序列号的Intra替换请求时,编码器可以通过基于以前使用的参考帧来将来自相关缩放器和FM680的下一接收到的摄像机帧编码为Inter帧来作出响应。基于以前的帧压缩的Inter帧是通过MREVRTP690在普通流上发送的。在发送该Inter帧之后,编码器可以删除所有其他存储的以前的参考帧。
在其中通过普通流使用SP帧并通过临时流使用SSP帧的另一实施例中,可以分配临时编码器687以创建临时流。另外,还可以修改MREVRTP690以处理临时流的压缩块。临时编码器687可以从分配给普通流的编码器685的相关缩放器和FM680获取相同缩放的帧。临时流的第一压缩帧可以被编码为相同大小的但是质量比普通流较低的Intra帧。在一个Inter帧与另一个Inter帧之间,临时流的质量可以改善。在几个Inter帧之后(例如,3到15帧),临时编码器687可以传输SSP帧,而普通编码器685可以传输SP帧。下一摄像机帧将由相关视频编码器685编码为普通帧,并通过普通流向需求方MRE130发送,以便到所有其他接收方MRE130。
在其中通过使用无损压缩算法通过临时流从呈现方MRE130的编码器685传输参考帧的一替换实施例中,临时编码器687可以能够从普通流的编码器685获取参考帧。所获取的参考帧可以由临时编码器687使用无损压缩算法来压缩。无损压缩帧可以通过MREVRTP690通过临时流或通过带外IP连接向需求方MRE130发送。在其中使用带外连接的实施例中,无损压缩参考帧可以从临时编码器687直接传输到MRENI520。无损算法可以是ZIP、Lempel-Ziv-Welch(LZW)、无损JPEG2000等等。
图7描绘了带有MREAM530的一个实施例的相关元件的简化框图。MREAM530可以具有两个部分:(i)MREAM输入部分,该部分可以处理MREAM530接收到的输入中继RTP压缩音频数据块的组,以及(ii)MREAM输出部分,该部分可以例如处理将从MRE130向MRM120输出的音频数据。MREAM输入部分可以包括诸如RTP音频输入缓冲器710、音频RTP标头解析器和组织器720、一个或多个MRE顺序音频存储器(MRESAM)730、一个或多个MRE音频解码器740、以及音频混频器750之类的模块。MREAM输出部分可以包括例如编码器760和MRE音频RTP处理器770。在其中两个接收方MRE130使用不同的音频压缩标准的某些实施例中,输出部分可以包括:编码器760和MRE音频RTP处理器770的两个或更多集合,每一集合都可以例如与基于不同于其他集合的压缩标准的压缩音频流相关联。
RTP音频输入缓冲器710可以通过MRENI520从MRM120获取中继RTP压缩音频数据块的组。音频RTP标头解析器和组织器720可以访问输入缓冲器710,并解析RTP标头,以便确定诸如序列号、源ID、时间戳等等之类的参数。每一MRESAM730都可以与例如参与会话的且已经选择被听到的某一源MRE130相关联。RTP标头解析器和组织器720可以例如根据数据块ID,将适当的中继RTP压缩音频数据块流传输到MRESAM730。在一替换实施例中,RTP标头解析器和组织器720可以例如根据源IP地址和端口,将适当的中继RTP压缩音频数据块流传输到MRESAM730。RTP标头解析器和组织器720还可以根据数据块的序列号或时间戳,将RTP压缩音频数据块组织到每一个MRESAM730中。每一MRESAM730输出都与访问MRESAM730并解码RTP压缩音频数据块的MRE音频解码器740相关联。解码器所使用的压缩标准可以是诸如但不仅限于G.719、G.7221.C等等。音频混频器750可以接收所有MRE音频解码器740的输出,将它们混合,并将混合的音频输出到MRE130的扩音器。
MREAM530的输出部分可以从MRE130的麦克风接收音频。编码器760可以收集接收到的输入音频,确定其能量,并将输入音频编码为压缩音频数据块。压缩可以基于诸如G.719、G.7221.C等等之类的压缩标准。接下来,压缩音频数据块被传输到MRE音频RTP处理器770。有关音频能量的指示还可以被传输到MRE音频RTP处理器770,该处理器770可以将不同的参数嵌入到RTP音频数据块的标头中。参数可包括序列号、源ID、时间戳、音频能量指示等等。接下来,MRE音频RTP处理器770将中继RTP压缩音频数据块输出到MRENI520,并从MRENI520输出到MRM120。在一替换实施例中,音频能量指示可以被存储在压缩音频数据块的标头中。在又一实施例中,音频能量可以通过MRECM540和MRENI520,通过信令和控制连接,被传输到MRM120。
图8A是示出了通过SCM240的一个实施例来实现的会议设置方法800的相关过程的流程图。在动作810中,方法800可以由MRM控制模块会议设置过程启动。在动作815,收集会议参数,如参加会议者(MRE130)的数量、比特速率、音频和视频压缩标准、以及可以用于视频编码/解码的以前的参考帧的数量、CP布局等等。接下来,在动作820,方法800分配各种会议资源,如NI220资源、相关联的SCARP230、相关联的SCVRP250、带宽等等。然后,对于参与会议的每一MRE130,执行动作830和840之间的循环。在动作832,定义来自MRE130的一个或多个可能的输出图像大小(质量)以及其相关联的ID。在一个实施例中,方法800可以使用来自MRE130的每一流的IP地址和端口作为ID。动作836将MRE130与MRM120的诸如SCARP230和SCVRP250之类的内部模块相关联。
在动作836,MRE130链接到MRM120的SCARP230中的MRE顺序音频存储器330中的一个、RTP压缩音频流生成器350中的一个、MRM的SCVRP250中的MRE顺序视频存储器430中的一个、以及RTP压缩视频流生成器450中的一个等等。接下来,在动作838中,设置与相关MRE130相关联的资源的各种连接参数(外部和内部)。外部连接参数可包括MRE130的ID、远程IP地址和端口、以及本地IP地址和端口。内部连接参数可包括MRM120自身中的模块的内部连接,如SCARP230和SCVRP250等等内的模块的内部连接。
接下来,在动作840中就是否有更多MRE130要处理进行判断。如果是“是”,那么方法800返回到动作830,以管理下一MRE130的设置。如果是“否”,那么方法800进入动作845,该动作845涉及定义会议中的每一个MRE130的初始CP布局。方法800进入动作850,此时对于会议中的每一个MRE130,另一循环开始。在动作851,方法800可以利用MRE需要发送的一个或多个图像大小、MRE130需要发送的一个或多个压缩音频流、以及MRE130将需要添加在每一流的音频和视频RTP标头中的一个或多个ID等等,来加载相关MRE130。在动作852,可以计算被指定到MRE130的CP布局的参数,并将它们加载到MREVM550中。参数可包括:布局中的段的数量、与每一段相关联的ID或IP地址和端口、将被呈现的MRE130、当前发言者等等。在其他实施例中,每一MRE130都可以定义其自己的要被显示在其自己的显示单元上的布局,并将这些参数通知给MRM120。
在动作852,还可以指示MRE130的MREVM550定义段帧存储器650和CP帧存储器670的参数。例如,可以以类似的方式来设置MREAM530的诸如音频RTP标头解析器和组织器模块720和音频混频器750之类的内部模块。此动作的一个结果可以是将MRE130的不同的模块连接到相关流ID的映射。
接下来,方法800设置MRM120的诸如SCARP230和SCVRP250之类的内部模块中的相关参数。在动作854,设置SCVRP250的内部模块的不同参数以及连接。参数以及连接可包括MRE顺序视频存储器430与MRE130的ID和/或IP地址和端口的关联,以及相关MRE视频多路复用器定序器452要选择该MRE130的视频的设置。在动作856,设置SCARP230的内部模块的不同的参数以及连接。参数以及连接可包括MRE顺序音频存储器与MRE130的ID和/或IP地址和端口的关联,以及相关MRE多路复用器定序器352要选择该MRE130的音频的设置。
在动作858,MRM120从相关MRE130请求Intra帧,并进入动作860。在动作860,就是否有更多MRE130需要设置作出判断。如果“是”,那么方法800返回到动作850。如果“否”,那么方法800结束。每当主要发言者改变或添加新参加会议者或从会话中去除参加会议者等等时,都可以执行类似于方法800的方法。
图8B是示出了根据一个实施例的通过MRM120的SCM240来实现的过渡任务8000的相关动作的流程图。当需求方MRE130需要来自呈现方MRE130的Intra帧,而通过普通流接收相同视频图像的其他接收方MRE不需要Intra帧时,任务8000可以在动作8010启动。当需求方MRE130是希望加入正在进行的会话的新参与者时,当需求方MRE130所使用的布局中的变化发生而该变化不会在其他接收方MRE130发生时,或者当传输到需求方MRE130的流中的一个或多个分组被丢失时等等,会发生这样的情况。
在启动8010之后,SCM240可以在框820中验证需求方MRE130是否具有与来自呈现方MRE130的相关流相关联的以前使用的参考帧(以相关大小)。可以通过来自需求方MRE130的与Intra请求替换指示相关联的信令来进行验证。可另选地,SCM240可以管理存储最近通过普通流从呈现方MRE130发送到MRE130中的每一个的几个帧(例如,最后的16个帧)的序列号的历史表。基于请求的时间和历史表,SCM240在动作8020可以推导以前的参考帧是否存在于需求方MRE130的解码器中。如果SCM240改变需求方MRE130的布局,则SCM240可以断定以前的参考帧是否可以匹配新布局等等。
如果在动作8020中以前使用的参考帧存在于需求方MRE130的解码器中,那么SCM240可以在动作8026中指示呈现方MRE130中的相关流的编码器基于现有的以前的参考帧来将下一帧编码为Inter帧,并通过普通流将Inter帧发送到需求方130以及其余的接收方MRE130。另外,还可以指示编码器重置所有其他以前的参考帧。SCM240可以并行地重置相关流的历史表。然后,方法8000可以结束。在其他实施例中,从需求方MRE130接收到的Intra替换请求可以被中继到呈现方MRE130中的相关流的编码器,该编码器被配置成通过基于以前使用的参考帧来将下一帧编码为Inter帧来进行响应。
如果在动作8020中以前使用的参考帧不存在于需求方MRE130的解码器中,那么SCM240可以在动作8022中为临时流分配通信信道,以及SCVRP250和呈现方MRE130的MREVM550的输出部分SCVRP250中的额外资源,以及调整需求方MRE130的MREVM550的输入部分以处理临时流。SCVRP250中的分配的资源可以包括额外的MRE顺序视频存储器430以及额外的RTP压缩视频流生成器450。呈现方MRE130的MREVM550中的分配的资源可以包括临时编码器687。
在分配资源以及带宽之后,可以在动作8022中指示呈现方MRE130开始根据所定义的序列,与普通流并行地生成相同大小(分辨率)的临时流。所定义的临时流序列可以从低质量但是相同分辨率的Intra开始,接下来是不多的质量增强的Inter帧,直到在两个流(普通流和临时流)中达到类似质量。在序列结束时,呈现方MRE130的每一个编码器都编码和发送唯一帧。普通流的编码器685编码SP帧并通过普通流将SP帧发送到其他接收方MRE,而临时编码器687可以编码SSP帧并通过临时流发送SSP帧。
在指示呈现方MRE130开始发送临时流之后,任务8000可以在动作8024中等待从呈现方MRE130接收唯一帧(SP和SSP)。在动作8030接收到唯一帧之后,SP和SSP帧在动作8032被分别中继到其他接收方MRE130和需求方MRE130。然后,可以结束临时流,可以在动作8032释放MRM120、呈现方MRE130、以及需求方MRE中的已分配的资源,并可以结束任务8000。
图9A是示出了通过MRECM540的一个实施例来实现的MRE会议设置方法900的相关动作的流程图。方法900可以在动作910启动。在动作912,建立与MRM120的连接,以及MRECM540可以接收设置指令。设置指令可包括:将与从MRE130发送的媒体流相关联的一个或多个ID、MRE130将需要传输的图像的大小、要通过MRE130被听到和显示的参加会议者的数量、以及布局信息。然后,方法900可以相应地在动作914中分配资源,包括MRENI520、MREVM550、MREAM530、带宽等等中的资源。
接下来,方法900进入动作920,在此,设置MREVM550的不同的内部模块。这些设置可包括:基于在动作912接收到的ID,指示视频RTP标头解析器和组织器620确定哪些中继压缩视频RTP数据块存储在哪个CVSM630中,根据会话的布局,设置每一段FM650和MRECPFM模块670的参数,指示CP生成器660如何从段FM650构建CP,更新背景FM655,设置缩放器和FM680提供正确的大小,指示MREVRTP690在RTP标头中添加ID,等等。在动作920,指示CP生成器660如何构建CP图像。指令可以定义CP帧中的每一行中的第一和最后一个MB的MBA(宏块地址),CP图像等等中的每一段中的第一MBA以及段的最后一个MBA。
在其中MRECM540和MREVM550被修改以向显示的CP图像添加信息的MRE130的某些实施例中,动作920可以被修改以提供此信息。该信息可以指出当前呈现于每一个段中的当前发言者,参加会议者的姓名等等。在这样的实施例中,CP生成器660可以被修改以将信息转换为视频数据,并将它添加到CP图像中以通过端点显示。
接下来,在动作922,设置MREAM530的不同的内部模块。设置可包括:根据压缩标准来设置音频编码器760,指示MRE音频RTP在RTP标头中添加ID和音频能量指示,指示音频RTP解析器720将哪一个ID存储在哪个MRESAM730中,设置MRE音频解码器740等等。在动作922之后,方法完成,以及相关MRE130准备发送Intra帧。每当主要发言者改变,或者添加或去除新参加会议者等等时,都可以执行类似于方法900的方法。
图9B是示出了通过MRE130的MRECM540来实现的过渡任务9000的相关动作的流程图。所示出的方法9000包括要由呈现方MRE130处理的动作和要由需求方MRE130处理的动作。当需求方MRE130需要来自呈现方MRE130的Intra帧,而通过普通流接收相同质量/大小的视频图像的其他接收方MRE130不需要Intra帧时,任务9000可以在动作9010启动。当需求方MRE是希望加入正在进行的会话的新参与者时,或者当需求方MRE130需要布局中的变化而其他接收方MRE130不需要它时,或者当需求方MRE130希望从一个质量/大小流切换到另一质量/大小流等等时,会发生这样的情况。另外,当传输到需求方MRE130的流中的一个或多个分组被丢失等等时,Intra帧会被需求方MRE130需要,而不被其他接收方MRE130需要。
任务9000的启动9010可以由被指定解码从呈现方MRE130接收到的压缩流的需求方MRE解码器640(图6)进行。当解码器在从呈现方MRE130接收并解码多个以前的Inter帧之后需要Intra帧时,可以启动任务9000。对这样的Intra帧的需求可能是由于例如分组丢失。可另选地,任务可以由MRM120的SCM240在确定从呈现方MRE130发送的某一流(普通流)的Intra帧需要被发给需求方MRE130时启动。
在其中编码器/解码器被配置成存储多个以前的参考帧并使用Intra替换请求而不是Intra请求的各实施例中,可以实现方法9000。Intra替换请求是基于以前的参考帧对Inter帧的请求。该请求被从需求方MRE130发送到呈现方MRE130,指出存储的以前的参考帧中的一个。在这样的实施例中,任务9000可以由需求方MRE解码器640在动作9010启动,需求方MRE解码器640确定解码器所拥有的以前的参考帧中的哪一个可以用于解码下一个从呈现方MRE130接收到的编码的帧。判断可以基于参考帧的时间戳。然后,Intra替换请求以及所选以前的参考帧的序列号或时间戳可以在动作9110中从需求方MRE130的解码器通过MRECM540发送到MRM120的SCM240。
接着,MRM120的SCM240在动作9110中将Intra替换请求连同以前的参考帧的序列号或时间戳传输到呈现方MRE130的MRECM540。在呈现方MRE130的MRECM540处,在动作9110从SCM240获取Intra替换请求之后,在动作9130,该Intra替换请求被传输到呈现方MRE130的视频编码器685,该视频编码器685被指定到被发送到需求方MRE130的相关流(质量/大小)。在动作9130,指示视频编码器685基于以前的参考帧,将通过相关联的缩放器680从摄像机接收到的下一个缩放帧压缩为Inter帧,并将它作为下一个Inter帧在普通流上发送到所有接收方MRE130(包括需求方MRE130)。另外,指示编码器685释放所有其他以前的参考帧,并结束方法9000。在其中MRM120的SCM240改变从呈现方MRE130接收到的中继帧的序列号而将它们作为中继帧发送到接收方MRE130的各实施例中,SCM240可以将从需求方MRE接收到的序列号转换为已经从呈现方MRE130发送到MRM120的适当的序列号。
如果在动作9012确定无法使用以前的参考帧,那么任务9000可以继续到动作9210,并与MRM120的SCM240进行通信。在与SCM240的通信中,可以指示呈现方MRE130的MRECM540与普通流并行地为临时流打开新连接,可以向临时流分配ID,临时流的经过编码的图像的大小(分辨率)被定义为与普通流相同,可以定义临时流中的质量增强的帧的数量等等。
如果临时流是从呈现方MRE130发送的新流,则需求方MRE130的MRECM540可以在框9210从SCM240获取新中继流的一个或多个ID以及与此流相关的视频参数,如视频图像的大小(分辨率)、CP布局中的相关联的段的位置等等,如上文在图9A和8A的描述中所说明的。如果临时流不是从呈现方MRE130发送的新流,那么可以仅仅通知需求方MRE130的MRECM540,从呈现方MRE130接收到的流的后面的帧属于临时流。
在动作9210从呈现方MRE130和需求方MRE130的SCM240、MRECM540获取关于过渡期的相关信息之后,方法9000可以在动作9230开始分配处理两种MRE130中的过渡期所需的资源。资源可以是MRENI520中的通信和带宽资源、MRENI520和MREVM550之间的内部通信资源、以及MRENI520和MRM120中的NI220之间的外部通信资源。额外的分配的资源可以是MREVM550中的视频资源等等。
在动作9240,组织分配的资源以处理临时流。在呈现方MRE130的MREVM550处,临时编码器687的输入与普通流的编码器相关联。在一个实施例中,关联是例如用于从相关联的缩放器680获取相同缩放的视频图像,以及获取常规Inter帧以及SP和SSP帧的适当的量化参数集合。在其他实施例中,关联是用于获取普通流的编码器的参考帧以及使用它作为要被临时编码器687编码的输入视频图像。此外,呈现方MRE130的临时编码器687的输出可以与MREVRTP690相关联,以便与适当的ID号以及时间戳相关联。
在其中通过普通流使用SP帧并通过临时流使用SSP帧的一个实施例中,需求方MRE130的视频解码器640将接收低质量的压缩Intra帧,然后是不多的质量增强的Inter帧,接下来是SSP帧。此序列符合压缩标准。将遵循SSP帧的帧将是来自普通流的Inter帧。
此外,如果临时流是通过MRM120从呈现方MRE130发送的新流,那么可以在动作9240组织需求方MRE130的MRECM540以处理新流,并可以将新流的ID通知给RTP视频输入缓冲器610和视频RTP解析器620,并将其与CVSM630相关联。MRE视频编码器640可以与该CVSM等等相关联。
在其中普通编码器的参考帧被压缩(无损压缩)并通过临时流传输的另一实施例中,除如上文所描述的一些实施例的相关活动之外,当将压缩标准从普通压缩变化为用来压缩参考帧的唯一一个(无损压缩)时,在动作9240通告需求方MRE130的相关MRE视频解码器640,反之亦然。
在动作9240组织呈现方MRE130和需求方MRE130的MREVM550之后,可以由呈现方MRE130和需求方MRE130的MREVM550以及MRM120的SCVRP250进一步自主地执行过渡期。如此,方法9000可以结束。
图10A和10B是示出了在使用从MRE1(呈现方MRE130)生成的并通过MRM120传输到MRE2&3(分别是接收方和需求方MRE130)的视频流的唯一帧的一个实施例中的过渡期的时序图。图10A和10B只是出于说明的目的,且不是按比例绘制的。
图10A具有两个部分,顶部示出了普通流,以及底部示出了涉及呈现方MRE130、MRE1的临时流。两个部分通过五行以及服务于两个部分的时间轴来示出。第一行示出了在由缩放器和FM680缩放之后从MRE1的摄像机接收到的缩放的摄像机视频图像(CF1到CFn+1)的流。第二行示出了在MRE1的普通编码器的输出端处的编码视频帧(IF1到EFn+1)的流。该编码帧的流被作为普通流传输到管理MRC会话的MRM120。第三行示出了作为编码从摄像机接收到的相关缩放视频帧的结果,存储在MRE1的编码器中的参考帧(RFm-1到RFn)的流。第三行是顶部的最后一行。
图10A的底部示出了从第四行开始的临时流,该第四行示出了在MRE1的临时编码器的输出端处的编码视频帧(TIm到Tm+2,以及SSTn)的流。该编码帧的流被作为临时流传输到MRM120。最后一行示出了存储在MRE1的临时编码器687中的参考帧(RTm到RTm+2以及RTFn)的流。
在此示例中,临时流是通过编码普通编码器685的参考帧来创建的,如第三和第四行之间的箭头所示。第一帧(TIm)被编码为相同大小(分辨率)但是质量较低的Intra帧。接下来的两个帧是增强的Inter帧。每一帧都改善质量,并降低存储在普通流的编码器中的参考帧和存储在临时编码器687中的相关参考帧之间的差异。在其他实施例中,增强的Inter帧的数量可以是两个帧之外的数量,如例如1到15帧之间的任何数量。临时流的最后一个帧,SSTn是以参考帧RTFn与普通编码器的参考帧RFn具有相同值的方式压缩的唯一帧,将参考帧RTFn与参考帧RFn同步。在一个实施例中,临时编码器的输入端处的RFn和存储在临时编码器687中的参考帧RTm+2之间的差异可以以无损压缩方式压缩,以创建SSTn帧,如此RTFn中的每一个像素的值与RFn中的相对应的像素的值相同。
在缩放之后从MRE1的摄像机接收到视频帧CF1之后,在T1启动来自MRE1的普通流。普通流的编码器将它压缩为Intra帧IF1。后面的缩放的摄像机帧被编码为Inter帧。压缩标准可以是H.264AVC、H.264附件G、MPEG-4等等。
在T2,MRE3请求加入普通流的接收方MRE。因此,在T2,从MRE3发送Intra请求,以从MRE1请求Intra帧。代替通过将Intra帧发送到普通流的所有接收方MRE130来对请求作出响应,MRE1、呈现方MRE130可以启动临时流,如图10A的底部所示。
基于当压缩以前的帧RFm-1时生成的参考帧,压缩来自遵循Intra请求的摄像机的第一帧CFm。在图10A的实施例中,通过在普通流上将CFm压缩为Inter帧EFm而创建的参考帧RFm,被压缩为临时流的Intra帧TIm。Intra帧TIm被作为临时流上的第一帧发送到MRE3。对临时流的压缩是通过使用用于普通流的编码器中的相同压缩标准来执行的,但是Intra帧的质量可以低于普通流的质量。质量可以在比特速率、锐度等等方面不同。
普通流的编码器的后面的不多的参考帧RFm+1、RFm+2被临时编码器编码为质量增强的Inter帧,以创建后面的Inter帧Tm+1和Tm+2。质量增强的Intra帧的数量可以是例如1和15之间的任何数量。质量增强的帧的数量可以在建立临时流期间定义。
在T3,在假设两个流的质量类似之后,后面的缩放的摄像机帧CFn被压缩为Inter帧EFn。当压缩CFn时创建的参考帧RFn可以由临时编码器687以无损压缩方式来压缩,以生成唯一帧SSTn。可以对RFn和临时流的参考帧RTm+2之间的值差异执行无损压缩,例如利用在视频会议中两个连续帧之间的差异与普通视频图像相比小一些的这一事实。无损压缩的示例可以是ZIP、Lempel-Ziv-Welch(LZW)、无损JPEG2000等等。如此,在临时编码器687处所生成的参考帧RTFn与RFn具有相同值,将参考帧RTFn与参考帧RFn同步。此外,在MRE3的解码器处对唯一帧的解码将生成具有RFn和RTFn的相同值的参考帧。因此,此时临时流可以结束而普通流可以被MRM120切换到需求方MRE3,如图10B所示。
在需求方MRE3处,对编码的差异的解码可以作为无损编码的逆操作来进行。结果将被添加到以前的解码器参考帧的值,这类似于RTm+2。将经解码的差相加的结果可以在MRE3的解码器中被保存为参考帧RTFn,并可以显示在MRE3上。在T4,临时流可以结束。
看看图10B中的MRM120的另一端,在T1,呈现方MRE1的普通流的第一帧,Intra帧IF1,被发送到MRE2,接下来是多个Inter帧。普通流可以与MRE2并行地被中继到多个接收方MRE130(图中未示出)。在T2,MRE3要求接收普通流并请求Intra帧。作为响应,MRM120开始向需求方MRE3发送临时流的帧。第一帧是Intra帧,TIm,接下来是不多的质量增强的Inter帧,Tm+1和Tm+2。接下来,在T3,唯一帧SSTn被作为临时流的最后一个帧发送。在T4,Inter帧Fn+1,Fn+2,以及来自普通流的后面的帧也被向MRE3中继。
图11A和11B是示出了使用SP和SSP帧以便从一个流移到其他流的另一实施例中的过渡期的时序图。从具有相同大小(分辨率)的相同摄像机生成两个流。由MRE1,呈现方MRE130生成视频流,并通过MRM120传输到MRE2与3(分别是接收方和需求方MRE130)。图11A和11B只是出于说明的目的,且不是按比例绘制的。
类似于图10A,图11A也具有两个部分。顶部示出了普通流,以及底部示出了来自MRE1的临时流。两个部分通过五行以及服务于两个部分的时间轴来示出。第一行示出了在由缩放器和FM680缩放之后从MRE1的摄像机接收到的缩放的摄像机视频图像(CF1到CFn+1)的流。第二行示出了在MRE1的普通编码器的输出端处的编码的视频帧(IF1到Fn+1,包括SPn)的流。该编码帧的流被作为普通流传输到管理MRC会话的MRM120。第三行示出了作为编码从摄像机接收到的相关缩放视频帧的结果,存储在MRE1的普通编码器685中的参考帧(RFm-1到RFm+2和RSPn)的流。第三行是顶部的最后一行。
图11A的底部示出了从第四行开始的临时流,该第四行示出了在MRE1的临时编码器687的输出端处的编码视频帧(TIm到Tm+2,以及SSPn)的流。该编码帧的流被作为临时流传输到MRM120。最后一行示出了存储在MRE1的临时编码器687中的参考帧(RTm到RTm+2以及RSSPn)的流。
在此示例中,临时流是通过在与普通编码器685相关联的缩放器和FM680的输出端处编码相同缩放的视频帧来创建的,如压缩帧TIm到SSPn的顶部箭头所示的。如此,两个编码器,普通编码器685和临时编码器687编码相同输入帧。第一帧(TIm)被编码为相同大小(分辨率)但是质量较低的Intra帧。接下来的两个帧是增强的Inter帧。每一帧都改善质量,并降低临时编码器687的输入端处的缩放帧和存储在临时编码器687中的相关参考帧之间的差异。在其他实施例中,增强的Inter帧的数量可以是两个帧之外的数量,包括例如1到15帧之间的任何数量。临时流的最后一个帧是作为常规SSP帧压缩的并作为SSPn帧生成的缩放的摄像机帧CFn。相同的缩放的摄像机帧CFn被普通编码器685作为常规SP帧来缩放。SP和SSP编码的结果是,普通流的参考帧RSPn和临时流的参考帧RSSPn具有相同值,将参考帧RSPn和参考帧RSSPn同步。由于普通流和临时流的解码器的参考帧具有相同值,因此临时流可以结束,以及MRM120可以将普通流的后面的帧中继到需求方MRE3。
在缩放之后从MRE1的摄像机接收到缩放的视频帧CF1之后,在T1启动来自MRE1的普通流。普通流的编码器685将它压缩为Intra帧IF1。后面的缩放的摄像机帧被编码为Inter帧。压缩标准可以是能够处理SP和SSP帧的任何标准,如H.264AVC、H.264附件G等等。
在T2,MRE3要求加入普通流的接收方MRE130。因此,在T2,从MRE3发送Intra请求,以从MRE1请求Intra帧。在一个实施例中,代替通过将Intra帧发送到普通流的所有接收方MRE130来对请求作出响应,MRE1、呈现方MRE130,可以启动临时流,如图11A的底部所示。
基于当压缩以前的帧RFm-1时生成的参考帧,压缩在遵循Intra请求缩放之后来自摄像机的第一帧CFm。在图11A的实施例中,相同的缩放的摄像机帧CFm被压缩为临时流的Intra帧TIm。Intra帧TIm被作为临时流上的第一帧发送到MRE3。对临时流的压缩是通过使用用于普通流的编码器685中的相同压缩标准来执行的,但是Intra帧的质量可以低于普通流的质量。质量可以在比特速率、锐度等等方面不同。
后面的不多的缩放的摄像机帧CFm+1、CFm+2被临时编码器687编码为质量增强的Inter帧,以创建后面的Inter帧Tm+1和Tm+2。质量增强的Inter帧的数量可以是例如1和15之间的任何数量。
在T3,在假设两个流的质量类似之后,后面的缩放的摄像机帧CFn被普通编码器压缩为常规SP帧,SPn,并通过普通流发送。相同缩放的摄像机帧CFn被临时编码器687压缩为常规SSP帧,SSPn,并通过临时流作为最后一个帧发送。因此,在临时编码器处生成的参考帧RSSPn,与普通编码器的参考帧RSPn具有相同值。此外,在MRE2的解码器处对SPn帧的解码将生成与RSPn具有相同值的参考帧。在MRE3的解码器处对SSPn的解码将生成与RSSPn具有相同值的参考帧。由于RSSPn和RSPn具有相同值,因此编码器/解码器包括相同参考帧。因此,此时在T4,临时流可以结束,而普通流也可以被MRM120切换到需求方MRE3,如图11B所示。
看看图11B中的MRM120的输出端,在T1,呈现方MRE1的普通流的第一帧,Intra帧IF1,被发送到MRE2,接下来是多个Inter帧。普通流可以与MRE2并行地被中继到多个接收方MRE130(图中未示出)。在T2,MRE3要求接收普通流并请求Intra帧。作为响应,MRM120开始向需求方MRE3中继临时流的帧。第一帧是Intra帧TIm,接下来是不多的质量增强的Inter帧Tm+1和Tm+2。接下来,在T3,唯一帧SSPn被作为临时流的最后一个帧发送。在T4,Inter帧Fn+1,Fn+2以及来自普通流的后面的帧也被向MRE3中继。
上面的描述只是说明性的,而非限制性的。例如,上文所描述的各实施例可以彼此相结合地使用。在阅读上面的描述之后,许多其他实施例对本领域的技术人员是显而易见的。因此,本发明的范围应该参考所附权利要求书以及这些权利要求所授权的等效技术方案的完整范围来确定。在所附权利要求书中,术语“包括”和“其特征在于”被用作相应的术语“包含”和“其中”的普通英语等效词。