分屏多媒体视频会议的制作方法

文档序号:7636544阅读:258来源:国知局
专利名称:分屏多媒体视频会议的制作方法
技术领域
本发明涉及多媒体通信系统中的分屏视频。更具体地说,本发明的实施方式涉及用于比特流域视频分割的系统和方法。

背景技术
多方和多媒体的实时通信在很长一段时间是具有挑战性的技术问题。最直接的方法是每一个用户都发送多媒体数据(如视频、音频、图像、文本和文件)给每一个其他的用户,如图1所示。
现有技术中,用户的网状连接(mesh connection)典型地需要非常高的带宽,因为每一个用户必须接收来自多个用户的不同的媒体数据,并且每一个用户必须发送相同的媒体数据给多个用户。网络中数据流量的总带宽将随着用户数的增加而迅速增加。每个用户终端所需的处理能力也会随着用户数的增加而迅速增加。因此,多用户的网状连接通常具有缺点。
图2示出了现有技术中的视频会议系统,该系统通过使用多点控制单元(“MCU”)作为所有用户的中心连接点来解决这个问题。
为了节约带宽,MCU接收来自所有用户的编码后的视频比特流,对其解码,将所有的视频序列或选择一定数量的视频序列混合到一个视频序列中,对组合后的视频序列编码,并将一个比特流分别发送到每一个用户。在混合多视频序列的过程中,必须将一些输入视频序列的分辨率减小以使组合后的视频序列具有给定的分辨率。例如,如果用户1、用户2和用户3在他们的视频中,使用公共交互格式(“CIF”),并且用户4、用户5和用户6在他们的视频中,使用四分之一CIF(“QCIF”),第一、三用户的视频分辨率为352×288像素,并且最后三位用户的视频分辨率为176×144像素。假设第一四视频序列典型地混合到一个单一的CIF视频序列中,第一、三视频序列的分辨率必须在与第四视频序列组合为输出视频序列之前从CIF减小到QCIF。图3示出了本实施例的流程。选择哪些视频序列将混合在一起通常是通过语音启动选择(“VAS”)或者通过主席控制(chair control)进行的。在上面的例子中,如果使用VAS,选出与视频会议中最高的四个语音相关的四个视频序列来混合。如果使用主席控制,在用户中,指定一个用户作为主席,并且这个用户可以确定将哪些视频序列混合在一起。
在单个MCU中,用户的数量通常是受限的,因为MCU的带宽和处理能力都会随着用户数的增加而增加。为了处理大量用户的并发视频会议,在现有技术中,多个MCUs是层叠的,如图4所示。在传统的视频会议系统中,在事物中通常存在网守,用于确保关于哪一个用户连接到哪一个MCU以及多个MCU是如何层叠的信息,从而可以通过合适的MCU来完成用户间的视频呼叫。对于每一个MCU,和其他MCU的连接通过与和用户的连接一样对待。例如,如果一个视频会议涉及在MCU1上的三个用户,在MCU2上的2个用户,在MCU3上的2个用户,以及在MCU4上的3个用户,每一个独立的MCU将其自己的本地视频混合并作为单个视频比特流发送给相邻MCU。这意味着,将来自用户1.1的视频通过在MCU1、MCU2、和MCU4上的三个视频混合发送给用户4.1。
现有技术中,层叠的MCU视频会议系统存在端到端的时延问题,尤其是在IP网络中。首先,每一个MCU的视频处理都会引入时延。其次,每一个MCU通常必须等待所有的相关视频包都到达后,才能解码和混合多个视频序列。这也存在传输时延。因此,对于用户来说通常由于端到端的总时延太长,不能进行实时的交互通信。在任何两个端点间的传输路径中,时延量通常会随着层叠的MCU的数量而增加。
因此,在现有技术中,传统视频会议系统的缺点是不能处理大量用户。现有技术中的传统视频会议系统的另一个缺点是每个用户的成本相对太高。还有一个缺点是通常随着用户数以及层叠的MCU的增加,呼叫建立的复杂度迅速增大。


发明内容
一种视频的编码方法。以全帧分辨率捕捉视频序列。识别视频序列帧中内部区域的边界。以全帧分辨率将视频序列编码为比特流。比特流包含针对内部区域编码的子比特流。在比特流中嵌入数据。数据用于在比特流中识别出子比特流。一方面,数据是用于指定(specify)内部区域的包头。另一方面,编码基于内部区域的像素估计内部区域中像素的运动。
本发明还描述一种方法,包含接收编码后的比特流,所述比特流以全帧分辨率针对视频序列编码的。识别出比特流中的子比特流。所述子比特流是针对视频序列帧中内部区域编码的。内部区域具有低于全帧分辨率的第一分辨率。丢弃比特流中的比特(Bits)来获得子比特流。
本发明还描述一种方法,包含识别用于呈现来自大量端点的视频序列的分屏布局。确定端点的能力,所述能力包括在端点处用于捕捉视频序列的第一分辨率。确定用于在分屏布局中显示视频序列的第二分辨率。做出关于将视频序列从第一分辨率剪切到第二分辨率是否是可接受的决定。如果剪切是可接受的,指示端点将视频序列以第一分辨率编码到比特流中。比特流包含针对视频序列内部区域以第二分辨率进行编码的子比特流。
本发明还描述了一种图形用户界面,包含图形用户界面中的分屏窗口。窗口包含多个区域,每个区域显示从多个端点中的一个端点接收到的视频序列。能够接收窗口中第一区域的选择。能够接收将选择的第一区域拖到第二区域上的命令。能够接收将选择的第一区域放置到第二区域上的命令。为了响应接收到放置选择的第一区域的命令,交换窗口中的第一区域和第二区域的位置。
通过以下附图以及具体描述可以明显看到本发明的其他特征和优点。



本发明的实施方式将通过参照在附图中所示的实施方式具体描述,但不限于此,对各个附图中相同的元件使用相同的附图标记。在附图中 图1示出了现有技术中的网状网络; 图2示出了现有技术中,具有单一的多点控制单元的视频会议系统; 图3示出了现有技术中,在多点控制单元中将四个视频序列混合为一个视频序列的实施例; 图4示出了在现有技术中视频会议系统中层叠的多点控制单元; 图5示出了含有组服务器、多媒体应用路由服务器以及端点设备的系统的实施方式; 图6示出了多媒体应用路由服务器的框图; 图7示出了多媒体应用路由服务器的系统控制模块的框图; 图8示出了多媒体应用路由服务器的媒体功能模块的框图; 图9示出了与多媒体应用路由服务器通信的端点的框图; 图10示出了视频帧的实施方式; 图11示出了视频处理方法的实施方式; 图12示出了多媒体应用路由服务器用于确定用于每一个端点的编码的方法; 图13示出了在两个不同目的端点间传输的视频源; 图14示出了视频帧的编码结构; 图15示出了比特流域视频分割包头语法(syntax)的实施方式; 图16A示出了多媒体应用路由服务器的输入比特流; 图16B示出了多媒体应用路由服务器的输出比特流; 图17A和17B示出了在端点监视器上显示的分屏(SS)窗口;并且 图18A和18B示出了图形用户界面中的分屏窗口和缩略图窗口。

具体实施例方式 本发明所涉及的实施方式有助于克服通常现有视频会议系统技术存在的问题,并且为实时多媒体通讯和协作(collaboration)的增加了功能。本发明实施方式中的系统结构的组件是多媒体应用路由服务器(“MARS”),其既能路由又能处理多媒体数据。MARS单元也称作实时路由服务器。系统的其他组件包括端点(“EP”)和组服务器(“GS”)。端点也称作端点处理设备。
在视频会议系统中,各种用户从其各自的端点中参与进来。这些端点是附带摄像机和耳机(或麦克风和扬声器)的个人计算机设备,并且这些计算机设备连接到含有MARS的网络。每个端点将其各自的视频作为比特流发送到MARS。这些比特流是由端点摄像机捕捉的并且以全帧尺寸/分辨率(例如,320×240像素)编码。由于MARS从每一个端点接收视频,然后重新将这些视频分配到目的地端点,该目的地端点可以是提供视频的相同参与者。在目的地端点接收到的视频流在单个窗口中以分屏的格式呈现,分屏中的每一个区域都与一个端点相对。并且每一个区域的内容由从MARS中接收到的分立的比特流提供。由于分屏格式的屏幕面积有限(“屏幕可操作区域”),将以比在源端捕捉的全帧分辨率低的分辨率来呈现每一个视频源。另外,并不是减小全帧的总的分辨率,只是减小在视频窗口中显示的帧的内尺寸(inner size)或者被剪切的部分的分辨率。通过最大化视频帧的中心部分的显示同时省略不必要的背景内容弥补了一些低分辨率图像的不足,该视频帧的中心部分最可能包含最重要和最有意义的内容,如用户的脸。
因为MARS路由从不同端点接收的视频,有必要将MARS上执行的处理数量减到最小从而达到高效以及高性能,同时也提高了目的端点的用户体验。可以通过在端点编码其视频之前向每个端点发送表示在目的端点以什么样的准确内帧位置和什么样的分辨率来显示它们各自的视频内容的信号的技术来减少MARS上处理数量。源端点在将视频内容编码到输出比特流时将考虑这个信息。产生的比特流(resulting bitstream)中包括仅对帧内部(剪裁部分)编码的子比特流。一旦在MARS处接收到全比特流(full bitstream),MARS能够仅获得视频帧的里面部分,而不必解码这些比特流,仅仅丢弃除了子比特流部分之外的所有比特流数据。从而,使MARS处处理比特流的时间最小,因为MARS不需要完全解码比特流,降采样或者剪切帧,然后重新编码新的比特流。更适合的,视频编码仅在源端点处发生一次,并且MARS只将比特流的相关部分路由到目的地端点来解码。其他特征将在下面部分详细描述。
图5示出了提供实时多媒体通信和协作的系统50。系统50示例性示出具有4个MARS单元61-64的系统。实时路由服务器61-64通过网络连接到组服务器70。MARS单元61-64和组服务器70也通过网络连接到终端处理设备11-15、 21-24、 31-32和41-46。系统50的所有组件MARS单元61-64,组服务器70和EP设备11-15、21-24、31-32,和41-46连接到因特网协议(“IP”)网络,并且通过IP地址来识别。可选地,可使用其他类型的网络和其他类型的地址。
对于其他实施方式, MARS设备、组服务器,和EP设备作为多媒体通信和协作系统50的一部分是可多可少的。例如,可以有一个MARS设备,一个组服务器,以及几个EP设备。作为另一实施方式,可以有10个MARS单元,一个组服务器,以及45个EP处理设备。
系统50的用户与终端处理设备11-15、21-24、31-32和41-46交互。系统50允许端点处理设备的用户以最小的时延实时发送视频。因此,这些用户可以通信和协作。除了实时视频,系统50也允许用户以最小的时延发送实时视频。系统50还允许用户发送其他形式的数字信息,如图像、文本和文件。因此。用户互相之间能使用系统50建立实时多媒体通信会话。
EP设备,如图5的EP设备11-15、21-24、31-32和41-46中的一个,可以是作为软件终端运行的个人电脑(“PC”)。EP设备可以是与用户接口设备连接的专用硬件设备。EP设备也可以是PC和硬件设备的组合。EP设备用于人类用户以调度和指导多媒体通信会话。如视频会议,网络会议或在线会议。EP设备能够捕捉用户接口设备的输入,如摄像头,音频麦克风,指示设备(如鼠标),打字设备,如键盘以及显示图像/文本的监测器。EP设备也能将输出发到用户接口设备,如PC监测器、TV监测器、扬声器和耳机。
EP设备按照网络带宽和EP设备的计算机能力来对视频、音频、图像和文本编码。将编码后的数据发送到与其关联的MARS。同时,EP设备从与其关联的MARS接收编码后的媒体数据。EP设备对这些数据进行解码并将解码后的数据发送到输出设备,如用于音频的耳机或扬声器以及用于显示视频、图像和文本的PC监测器。除了媒体数据,EP设备也处理在EP设备以及与其关联的MARS之间传输的通信消息。这些消息包括调度会议,加入会议,邀请其他用户参加会议,退出会议,建立呼叫,应答呼叫,结束呼叫,控制会议,安排会议参与者的视频位置,更新密友表状态,检查与MARS相关的网络连接等。
系统50的每一个用户注册到组服务器数据库并且通过唯一的标识如用户电子邮件地址来识别。为了管理会话,用户与端点相关联,端点与MARS相关联,以及MARS与组服务器相关联。
组服务器70管理系统50的网络上的多媒体通信会话。在组服务器70中,运行几个软件程序来管理组内用户的所有通信会话并且与其他组服务器组交换信息来管理跨组会话。在一个实施方式中,组服务器70使用Linux操作系统。运行在组服务器70的这些软件程序包括自动配置(provisioning)服务器、网络服务器和与多媒体协作和日历管理相关的程序。
MARS设备的功能可以分为两大类一类是路由媒体数据,另一类是处理媒体数据。不像传统视频会议系统中的某种现有层叠MCU中通常在构建系统的时候确定静态数据路径的技术,MARS动态寻找具有足够带宽的最佳路径以最小的时延从源向目的地发送媒体数据。也不像传统视频会议系统中某种现有层叠MCU中视频可以在沿源到目的地的路径中的每一个MCU中处理的技术,系统50的结构确保了从视频源到任何给定的目的地,最多在两个MARS单元中执行视频处理。
图6示出了多媒体应用路由服务器61的框图,多媒体应用路由服务器61也称作实时路由服务器61。MARS单元61包含系统控制模块90(“SCM”)和媒体功能模块(“MFM”)110、120和130。媒体功能模块110、120和130也称作多功能模块。系统控制模块90和媒体功能模块110、120和130连接到背板模块(“BPM”)以太网交换机140。可选地,可以使用其他类型的交换机。
在本发明的一个实施方式中,BPM以太网交换机140是由Irvine,California(加里福尼亚州欧文市)的Broadcom公司提供的型号为BCM5646以太网交换机。电源150连接到以太网交换机140或其他组件上。背板模块以太网交换机140依次连接到互联网协议网络160。
系统控制模块90包含系统控制单元(SCU)92和媒体控制单元(MFU)102。媒体功能模块110包含媒体功能单元112和114。媒体功能模块120包含媒体功能单元122和124。媒体功能模块130包含媒体功能单元132和134。媒体功能单元102、112、114、122、124、137以及134也称作多功能单元。
MARS 61结构提供高速多媒体和视频处理。在本发明的一个实施方式中,MARS 61基准速度约为每秒120,000百万指令(MIPS)。MARS单元61既充当路由器又充当网络服务器。MARS 61的结构朝着高速实时视频和多媒体处理而不是大容量存储的方向发展。从而,MARS单元61可用于实时视频通信和协作会话。
图7示出了系统控制模块90的框图,系统控制模块90包括系统控制单元92和媒体控制单元102。系统控制单元92控制实时路由服务器61。系统控制单元92包括由Schaumburg,Illinois(伊利诺斯州绍姆堡)的MotorolaCorporation(摩托罗拉公司)提供的PowerPC 微处理器172。PowerPC微处理器172与小型闪速存储卡(compact flash card)182连接。小型闪速存储卡182含有用于微处理器172的Linux操作系统。小型闪速存储卡182充当类似个人电脑的硬盘驱动的作用。微处理器172也与同步DRAM(“SDRAM”)存储器174连接。存储器174保存用于在微处理器172中执行的代码和数据。对于本发明的一个实施方式,存储器174大小为32兆字节。作为可选的实施方式,存储器174可以大于或小于32兆。
PowerPC微处理器172通过PCI总线184连接到数字信号处理器(“DSP”)176。在一个实施方式中,DSP 176是由Dallas,Texas(德克萨斯州,达拉斯)的Texas Instruments Inc.(德州仪器公司)提供的型号为TMS 320C6415的DSP。DSP176为系统控制单元92的媒体处理资源。数字信号处理器176与32兆SDRM存储器178连接。可选地,存储器178可以更大或者可以更小。
PowerPC微处理器172通过线(lines)186连接到以太网交换机140。以太网交换机140依次接到网络160。媒体功能单元102包含与32兆SDRAM存储器204连接的Power PC微处理器202。
Power PC微处理器202连接到PCI总线206。PCI总线206依次连接到数字信号处理器208至211。数字信号处理器208至211中每一个是由Dallas,Texas(德克萨斯州,达拉斯)的Texas Instruments Inc.(德州仪器公司)提供的型号为TMS320C6415的DSP。数字信号处理器208与SDRAM存储器220连接。数字信号处理器209与SDRAM存储器221连接。数字信号处理器210与SDRAM存储器222连接。数字信号处理器211与SDRAM存储器223连接。在一个实施方式中,SDRAM存储器220至223中的每一个都包括32兆存储器。
PowerPC微处理器202还通过线(lines)230连接到以太网交换机140。
图8包含媒体功能模块110的框图,该媒体功能模块110包含媒体功能单元112和114。媒体功能单元112包含与32兆SDRAM存储器282连接的PowerPC微处理器280。PowerPC微处理器连接到PCI总线310。PowerPC微处理器也通过线308连接到以太网交换机140。
PC总线310依次连接到数字信号处理器291至294。数字信号处理器291与32兆SDRAM存储器300连接。数字信号处理器292与32兆SDRAM存储器301连接。数字信号处理器293与32兆SDRAM存储器302连接。数字信号处理器294与32兆SDRAM存储器303连接。
媒体功能单元114类似于媒体功能单元112。媒体功能单元114包含与SDRAM存储器242连接的PowerPC微处理器240。PowerPC微处理器240通过线278连接到以太网交换机140。PowerPC微处理器240也连接到PCI总线250。
PCI总线250依次连接到数字信号处理器261至264。数字信号处理器261与存储器270连接。数字信号处理器262与存储器271连接。数字信号处理器263与存储器272连接。数字信号处理器264与存储器273连接。存储器270至273中每一个都是32兆SDRAM存储器。作为可选的实施方式,也可使用其他大小的存储器。
图6示出的媒体功能模块120和130与媒体功能模块110相似。
MARS 61可以路由并处理媒体数据。MARS 61的系统控制单元92用于路由媒体数据。MARS 61的数字信号处理器,如数字信号处理器261至264,用作数字媒体处理资源。与现有技术的视频会议系统中的层叠MCU中视频在从源到目的地(如上面图4所描述的)的每一个MCU中处理的技术不同,本发明的实施方式确保从视频源到任何给定的目的地,视频最多在两个MARS单元中处理。
由于不同用户终端(EP)可以具有不同的处理能力,并且在EP和MARS之间或两个MARS单元之间的网络连接可以具有不同带宽,本发明实施方式的视频处理的目标是在给定视频源、给定带宽和给定目标EP计算能力的条件下确保最佳视频质量。在实施方式中,用于视频处理的技术包括比特流域视频分割(“BDVS”),视频转换(transrating)和降采样。图9示出了系统900的一个实施方式,其中MARS 902确定在多个视频流904A、906A、908A、910A、912A和914A中使用哪一个操作。6个视频源904、906、908、910、912和914中每一个视频源的视频内容都是通过MARS发送到相同的目的端点920。的每个视频源904-914对应于各自EP,例如,来自用户参考该EP参与到视频会议中。6个源EP中的三个(904、912、914)能够以每帧320×240像素的分辨率捕捉并编码视频,其他三个源EP(906、908、910)能够以176×144像素的分辨率捕捉并编码视频。目的地EP920能够以每帧208×160像素的分辨率对一个视频比特流解码,并且能够对每个视频比特流以每帧104×80像素的分辨率解码5个视频比特流。如图9所示,目的地EP 920以“5+1”的分屏格式呈现出解码后比特流,其中,各以同样的分辨率(如104×80像素)呈现5个视频源的视频内容,并且以最大的分辨率(如208×160像素)呈现1个视频源的视频内容。因此,本发明的实施方式,MARS 902以完整的源分辨率来接收6个输入视频比特流(904A、906A、908A、910A、912A、914A)并以目的地EP 920分辨率将他们转换为6个输出视频比特流(904B、906B、908B、910B、912B、914B)。更具体地,EP 904的输入视频必须从320×240转化到208×160,EP 906、908和910的输入视频必须从176×144转化到104×80,EP 912和914的输入视频必须从320×240转化到104×80。
因为在每一示例性的例子中,输出分辨率都低于输入分辨率,可以对MARS 902执行解码每一个输入比特流,减少像素域中的视频分辨率,重新编码分辨率减小后的视频,并且然后将重新编码后的比特流发送到目的EP。通过降采样输入视频像素或剪切/截减图像边缘的像素来达到减少视频分辨率。然而,由于需要低通滤波操作来防止图像混迭伪像(artifact),降采样需要复杂的计算。此外,在每一个尺寸下,从任意一个分辨率到另一任意分辨率的降采样需要比低复杂度的2∶1降采样更多的计算量。另一方面,剪切/截减图像周围的像素比较易于操作,但会导致损失一些图像背景。如果在剪切后输入和输出分辨率的比率太大,如320×240的输入,104×80的输出,将剪切掉太多的背景。因此,在实施方式中,MARS 902能够做出智能地决策来执行降采样或者剪切来在计算/处理需求和视频背景保护方面达到最佳折中。
尽管剪切操作本身是相对简单的,解码和重新解码在MARS 902上仍然需要很高的计算能力。况且,视频序列的解码和重新编码将引入额外的伪影(artifact)导致视频质量下降。因此,本发明的实施方式,为了在剪切(截减)视频屏幕像素的情况下消除对在MARS 902处解码和重新编码的操作的需要,执行比特流域视频分割(BDVS)操作以与降低计算要求到达同样的目的。比特流域视频分割指在MARS在不需要首先解码比特流的情况下在比特流域内分割用于视频序列内部尺寸的数据的能力。
为了在MARS902中使用BDVS,相应的EP以下述方式解码视频序列在MARS 902,在比特流域中,从原始视频图像中分割出视频图像的中间部分而不需要解码,剪切和重新编码。例如EP 904的原视频分辨率是每帧320×240像素,并且将转换为每帧208×160像素用于目的EP 920。使用BDVS,在EP904处的视频编码器对源于EP904处的视频编码为320×240分辨率的比特流904A。比特流904A也包含分辨率为208×160的子比特流。这些子比特流仅对视频帧的内部区域编码。为了更好理解可以参见图10示出的视频帧1000的实施例。帧1000的外部尺寸(或全帧尺寸)1020是320×240像素。比特流904A对外部尺寸帧1020编码。帧1000也包含具有分辨率为208×160像素的内部尺寸1040(或内部区域)。内部尺寸1040的边缘定义全帧场景的一部分,该部分在比特流904A的内部通过子比特流来编码。内部尺寸1040只表示原始图或整个视频图像的中央区域,可以通过截减或剪切全帧1000的外部边缘来得到。再参见图9,在MARS 902处,子比特流可以不经过解码、剪切和重新编码而从主比特流中分割出来。于是,子比特流作为输出比特流904 B从MARS 902发送到目的EP 920,然后对其进行解码,从而重新生成原始图像的中央区域(如图10的1040)。
以同样的方式对EP906、908和910的视频序列进行编码。尤其是,以EP906为例,在EP906处的视频编码器产生全分辨率为176×144像素的比特流906A,其中包含分辨率为104×80像素的子比特流。如上所述,MARS 902接收全比特流906A,然后在不进行解码,剪切和重新编码比特流的情况下从主比特流906A分割出子比特流。分割出来的子比特流然后作为输出比特流906B发送到目的EP920。
对于EP912和914,将分辨率从320×240像素简单地剪切到104×80像素将会失去太多的视频场景,并且将分辨率从320×240像素降采样到104×80像素也需要大量的计算。因此,在实施方式中,BDVS与21降采样结合达到最佳平衡。以EP912为例,EP912处的视频编码器产生分辨率为320×240像素的比特流,该比特流包含分辨率为208×160像素的子比特流。这个操作类似于对EP904编码操作。然而,一旦MARS902从EP912接收到该比特流,MARS902从主比特流912A中分割出子比特流。而不是像用于EP904的例子那样仅将子比特流发送到目的EP920,而是MARS902执行21降采样操作来将208×160像素视频转换到104×80像素。MARS902然后对104×80像素视频编码,并将比特流912B发送到目的地EP920。
正如在背景技术中所描述的,传统的视频会议系统将来自多用户的视频在MCU中混合,将混合后的视频作为一个比特流重新编码。并将混合后视频的单个比特流发送到EP。相反,图9示出了系统900中,MARS 902分别处理比特流(904A、906A、908A、910A、912A、914A),但不将来自不同源的视频混合为单个比特流。如果某一视频排列以及布局如在图9的目的地EP 920中所示,EP 920将每个单个的视频放置到具体的分屏布局中的正确位置。因此,MARS对单个的视频比特流进行分割或者分割降采样,然后根据目的地EP 920布局的需要,将单个视频的足够的数据发送到目的EP 920中。从而,在某种意义上,目地EP 920对MARS 902提供的单个比特流执行混合任务。因此,对于MARS 902不需要等待接收多个视频比特流来处理视频,无论有多少MARS单元,视频比特流必须通过从他们的源到目的地的这条路径。与端到端时延随着层叠MCU的数量增加而增加的层叠MCU相比,图9系统900中从源到目地发送视频的端到端时延显著减少。
本发明实施方式的另一重要特征是MARS系统的带宽特性。如上面所述,MARS从端点接收全帧比特流。MARS然后剪切出子比特流,并将每一个子比特流转发到目的地端点。从而,对于如图9的920中的5+1布局,MARS将总数为6的单个比特流从MARS发送到目地端点,每个比特流只代表子比特流部分。从而,从MARS到达单个目的端点的6个子比特流的码率总和仅包含足够用视频内容填充分屏窗口尺寸所需的比特。换句话说,MARS仅发送填充分屏窗口实际所需的像素(也就是只有子比特流)。由于这个原因,目的地端点不需要剪切任何像素,端点只需要对每一个接收到的子比特流解码,并在分屏窗口的恰当位置显示。从而,MARS系统提供与图2和图3中示出的传统MCU系统可比较的带宽性能,其中,传统的MCU系统将单个的组合后的比特流发送到每一个单个用户。然而,MARS系统不具备MCU系统的缺点,如以成倍解码操作以及MCU处的视频混合的形式增加的处理,上述处理导致视频图像质量的降级。反而,MARS系统提供可比较的码率性能,然而,仅需要单一编码操作(在源端点)和单一解码操作(在目地端点)。
图11示出了视频处理方法1100的实施方式。作为实施方式,通过图9的MARS 902来执行方法1100。在操作1102时,确定分屏(SS)窗口布局。SS布局可以由控制视频会议会话的用户如主席、协调人、或视频会议的管理人员(这里统称为“主席”)手动地指定。主席可以与MARS通过网络通信来控制视频会议会话。可选地,MARS 902可以自动确定SS窗口布局,例如,基于参与者端点数。许多分屏窗口布局可以用于本发明的实施方式。例如,分屏布局可以是如图9 EP 920所示的5+1(相同尺寸的5个区域,和一个大区域),1×1、2×1、 2×2、2+1、3+1、2×3(也就是两个面积高乘以三个面积宽,所有面积具有相同的分辨率),3×2、8+1以及其他的配置中的任意一个。对于其他的实施方式,通过上面所述的语音启动选择(VAS)在传输中自动并且在运行中(on-the-fly)确定分屏窗口中的每个端点的位置。
在操作1104,MARS确定用于每个参与者端点的处理能力,以及到MARS的连接带宽。例如,MARS可以确定在每一个端点处捕捉的视频源的分辨率。
在操作1106,确定用于每个参与者端点的视频帧的子比特流分辨率和内部区域。在实施方式中,基于SS窗口布局中端点视频内容的位置,MARS自动确定每个端点的子比特流分辨率。在另一实施方式中,MARS自动确定比特流表示的内部区域的位置。例如,MARS参照全帧自动聚集内部区域,并且在视频帧中沿宏块MB边界排列内部区域边界。对于可选实施方式,MARS也可以在全帧中上移、下移、左移或右移内部区域的位置,来调节帧中偏离中心的主题,然而仍将沿MB边界排列内部区域。可选地,一旦MARS确定了内部区域的分辨率,用户如主席,在内部尺寸的边界与视频帧的MB边界对准的前提下,参照全帧手动地定位内部区域位置,从而在内部区域中放置尽可能多的主题(如参与者的图像)。应该注意到为了提高性能,不可以采用任意位置的内部尺寸边界,更适合,如下所述,内部尺寸边界对准MB边界从而易于处理。因为宏块尺寸(如16×16像素)与整个帧尺寸相比相对较小,内部尺寸对准MB边界不会导致失去很多的场景。操作1106的其他细节将在下面参照图12描述。
在操作1108,MARS向每一个参与者的端点通知编码子比特流的分辨率,以及相对于全帧的视频帧的内部区域的位置。基于MARS所提供的设置信息,每个端点对其源视频编码。
每一个单独的端点然后按照MARS在操作1108处的指示对其视频序列编码。在操作1110,MARS从每一个单独端点接收全比特流。在操作1112,MARS处理每一个接收到的比特流来产生输出比特流。MARS可以执行的一种处理类型是从接收到的比特流中分割出子比特流,然后仅将子比特流传输到一个或多个目地端点。应该注意到仅需要截去比特流中不在子比特流中的部分,不需要对比特流进行解码或者重新编码,这将在下面详细描述。可选地,根据源端点的特点及在目标端点的分屏中的位置,MARS可以分割出于比特流,然后降采样子比特流,将其重新编码为输出比特流。可选地,MARS可以降采样接收来自源端点的全比特流,然后将其重新编码为输出比特流。
在操作1114,MARS然后将每一个单独的输出比特流传输到一个或多个目的端点。因此,单个目的端点可以接收多个输入比特流,然后在端点处的分屏布局中一起显示这些输入比特流。
图12示出了一种由MARS用来确定每个端点的编码的方法1250。该方法可在图11的操作1106中执行。为了清楚,图12中参照单个源端点描述方法1250。然而,对参与到多媒体通信会话中的每个端点都可以执行方法1 250。
起初,MARS从图11中的操作1104所做的决定得到端点的能力。参见图12,在操作1254,对于每一个源端点,基于在目的端点的分屏窗口中源端点的相应位置以及在目的端点为分屏窗口指定的总尺寸,MARS确定输出分辨率(从MARS到目的端点)。例如,参见图9的5+1分屏布局920,端点904对应于分屏布局的最大区域。在一个实施方式中,分屏窗口配置中为每一个位置预定义的分辨率比率(尺寸)可以存储在MARS上,从而一旦将源端点指定到分屏窗口的一个具体位置,从MARS的输出分辨率能够从给定的总分屏窗口尺寸自动地确定。
在操作1256中,方法1250确定将视频帧从端点的完全的源分辨率剪切为(也就是截减)MARS输出分辨率是否会导致丢失的部分场景过大。换句话说,决定丢弃源视频帧的边缘的像素是否将导致重要的图像信息丢失(比如主题用户的整个头是否可见?)这个决定可以由MARS自动做出,例如,通过设置不能超过的的源分辨率与输出分辨率的阈值比率。可选地,用户如主席,可以做出决定将帧剪切到输出分辨率是否会丢失太多的场景。
如果在操作1256处的答案是否定的(也就是剪切是可以接受的),然后处理流程进行操作1258,其中MARS指示源EP以全分辨率对视频进行编码,同时,使用与目的端点处的输出分辨率相匹配的子比特流。再一次,使用图9的端点904作为例子,如果操作1256的答案是否,然后MARS 902指示端点904对其源视频以320×240像素(分分辨率)进行编码,同时子比特流为208×160像素(与目的端点分屏920内的相应于区域相匹配的尺寸)。
如果在操作1256处的答案是肯定的,然后操作1260确定是否从端点的全源分辨率到MARS输出分辨率降采样的计算是容易的。容易的计算意思是在MARS处的降采样不需要大量的计算;易于计算的示例是21的降采样。
如果在操作1260处的答案是肯定的(也就是易于降采样),然后处理流程前进至操作1262,其中,MARS指示源端点以全分辨率来编码视频。在这样的例子中,然后MARS可以对接收到的比特流降采样到输出分辨率。
如果在操作1260处的答案是否定的,然后处理流程前进至操作1264。在操作1264,MARS指示源端点以全分辨率来编码视频,使用中间分辨率的子比特流。中间分辨率意味着,通过子比特流编码的帧的内部区域的分辨率小于源的全分辨率,但大于目的端点分屏内的分辨率(也就是MARS输出分辨率)。在接收到来自源端点的编码后的视频,MARS将分割出子比特流,然后降采样此子比特流到输出分辨率。以图9的端点912为例,参照端点912执行操作1264将会导致端点912以320×240像素的分辨率对视频进行编码,具有208×160像素分辨率的子比特流。在这种情况下,208×160像素是中间分辨率。在从源端点912接收到比特流,MARS将会分割出208×160像素的子比特流,然后在子比特流上执行2∶1的降采样来产生104×80像素的输出比特流,该输出比特流与目的端点分屏窗口的相应区域内分配的分辨率相匹配。
图13示出了视频源1302的实施方式,该视频源1302通过MARS1304以不同的分辨率转发到两个不同的目的端点1306、1308(可选地,视频源可以以两个不同分辨率通过MARS转发到单个目的端点)。一个目的端点1 306需要视频源1302的全尺寸,然而另一目的1308需要源视频的一部分以输入到分屏视频窗口。源视频帧包含内部尺寸(如208×160像素)以及外部尺寸(如320×240像素),类似于图10所示出的。
如上面所描述的,一个实施方式中,使用比特流域视频分割(BDVS)对视频源1302编码,其针对全帧分辨率(如320×240像素)进行编码,以及通过子比特流对内部区域(如208×160像素)进行编码。为了确保子比特流的正确编码,存在在视频源1302由编码器执行视频编码时需要考虑的几个方面。
一种考虑是在视频编码中执行运动估计的方式。在视频编码中,运动估计是通过分析先前帧或未来帧以识别没有被改变的或只有位置改变的块,然后存储运动矢量来代替块的图像压缩过程。参见图10,本发明的实施方式中,执行运动估计算法,从而内部尺寸视频1040可以在不依靠内部尺寸视频外部的像素1030的情况下解码以预测运动。为此,用于内部视频1040的边缘宏块的视频源1302编码器的运动估计算法不需要搜索外部1030内部尺寸区域就可以完成。因此,在实施方式中,以一种方式执行端点编码,从而一旦解码,子比特流可以通过自身来解码(也就是内部地),而不依赖于内部部分外面的像素或子比特流外面的比特流部分。视频帧里的宏块是每块16×16像素。边界宏块是完全是内部尺寸1040中具有由内部尺寸1040的边界限定的至少一条边缘的宏块。
另一种考虑是运动矢量编码。运动矢量是用于运动补偿的二维矢量,其中运动补偿提供从当前图像的坐标位置到参考图像的坐标的偏移量。因为大多数视频编码技术对运动矢量的差而不是运动矢量本身进行代码化,所以本发明实施方式中,紧邻内部尺寸1040外面的宏块的运动矢量应该是0,从而用于紧邻内部尺寸1040的里面的宏块的运动矢量的差等于运动矢量本身。
还有一考虑是量化器编码。量化器是一种获得幅度连续信号并将其转换为能够被解码器重新构建的离散值的结构。量化器用来从信号中去除信息、冗余和不相干的信息。因为大多数视频编码技术中对量化器的差而不是量化器本身进行代码化,所以本发明的实施方式中,对于在内部尺寸1040里面的第一个宏块之前的帧1000中的每一个宏块,量化器的差应该为0。
现在描述用于比特流域视频分割(BDVS)的视频比特流语法的实施方式。图14示出了用于视频帧1400的编码结构,与通过使用BDVS的本发明实施方式所编码的相同。通过实例,视频帧1400表示分辨率为320×240像素的全视频帧。帧1400分为15行,每一行被称作宏块组(GOB),每一个宏块组由单行的20个宏块的组成。每一个宏块(MB)是16×16像素的块。帧1400的内部尺寸区域是由标号为中心2至中心11的的中心MB的组共同定义的。GOB和MB的维数取决于具体实施的编码技术。本实施例也可以使用其他的维数。
为了在不对全部视频帧1400的比特流解码的情况下,从视频帧1400的比特流中分割出内部尺寸的比特流。将4个值通过信号发送给MARS来执行分割操作。通过这些值,MARS能够从全比特流中简单地剪切出子比特流。这些值通过比特流上的BDVS包头从视频源发送到MARS。如图14所示,4个值是(1)可以剪切出的开始GOB的个数(如GOB 0和GOB 1);(2)应该保持的中央GOB的个数(如GOB 2到GOB 11);(c)在每一个保留的GOB中可以被剪切出的开始比特的个数(如开始2到开始11);和(d)在每一个保留的GOB内应该保留的中心比特数(如中心2到中心11)。共同地,这4个值向MARS表明内部区域在比特流中的位置,并且比特流的那些部分可以截减掉以仅产生内部尺寸。
前两个值需要通过指定内部尺寸和外部尺寸一次只通过一个信道来发送。对于每一个编码后的GOB,在GOB比特流识别具体的GOB之前,携带GOB号。例如,图14中示出的,如果GOB号是0,1,12,13或14,对于至仅需要内部尺寸视频的目的EP的输出信道,MARS可以丢弃这些GOB。如果GOB号是在2到11之间,包含2和11,MARS进一步检查BDVS包头找出用于GOB的最后两个值。
图15示出了BDVS包头语法的一个实施方式。BDVS包头附加到从源发送到MARS的用于每一个GOB的数据包。本发明的实施方式中,BDVS包头嵌入到从源端点发送到MARS的比特流中。在此参考各字段来描述包头结构的语义。
字段gob_no 1502是a5-比特的无符号整数,范围从0到31并且表示GOB号 字段h1504是1-比特的标记,其中1表示包中含有图像包头或0表示包中含有GOB包头。
字段t1506是1-比特的标记,其中1表示包含有在图像内(inter picture)的数据或者0表示在包含有图像间(intra picture)数据。
字段d1508是1-比特的标记,其中1表示包中含有差分编码信息或者0表示包中没有差分编码信息。
字段frag_or_n_gob 1510是3-比特的无符号整数,其中0表示携带GOB片段的包或者非0值,从1到7表示包中的GOB的数量。注意到这里限制在一个包中打包的GOB的数量最多为7。
字段gob_bytes_h_or_frag_no 1512是5-比特的无符号整数。其含义取决于在包中是否携带有非分段的GOB或者GOB的片段,正如frag_or_n_gob 1510所表示的。如果包携带有非分段GOB,这些5比特是用于表示GOB中字节数的10比特整数中的高5比特。如果包携带GOB的片段,这个字段指定范围从0至31的片段序列号。
字段gob_bytes_l_or_n_frag 1514是5-比特无符号整数。其含义取决于是否在包中携带有分段的GOB或GOB片段,正如frag_or_n_gob 1510所表示的。如果包携带非分段GOB,这些5比特是用于表示GOB中字节数的10比特整数中的低5比特。如果包携带GOB片段,这个字段指定片段数为负1。注意到,根据以上定义,有两种不同的方式来通知包确实具有GOB(a)frag_or_n_gob设为0并且gob_bytes_l_or_n_frag设为0,和(b)frag_or_n_gob设为1。最好使用(b),因为它只涉及一个字段的语法以做出决定。另外还注意到,当frag_or_n_gob是非0时,GOB的字节数为(gob_bytes_h_or_frag_no<<5)+gob_bytes_l_or_n_frag。
字段1516是1-比特标记,其中1表示参考帧到备份帧的转换,或者0表示使用前一帧作为参考帧。
字段m1518是1-比特标记,其中1表示临时帧移动到备份帧,或者0表示临时帧没有移动到备份帧。
字段r1520是1-比特标记,其中1表示当前重新构成的帧保存到临时帧存储器,或者0表示当前重新构成的帧不保存到临时帧存储器。
字段hdr_bits 1522是8-比特无符号整数,根据1-比特的标志h表示或者用于图像包头或者用于GOB包头的比特数。当h为1是,这个字段表示图像包头中的比特数。当h为0是,这个字段表示GOB包头中的比特数。注意到分割操作即需要图像包头的比特数也需要用于内部图像的第一GOB的GOB包头的比特数,并且当内部图像的第一GOB与外部图像的第一GOB不相同时,必须存储图像包头比特数。
字段sb 1524是1-比特标记,其中1表示在差分编码中,包中含有GOB的开始比特,或者0表示在差分编码中,包中不含有GOB的开始比特。
字段cb 1526是1-比特标记,其中1表示在差分编码中,包中含有GOB的中心比特,或者0表示在差分编码中,包中不含有GOB的中心比特。注意到(a)sb=0和cb=0表示差分编码中含有所有比特为GOB结束比特的包;(b)sb=1和cb=0表示差分编码中含有所有比特为GOB开始比特且不为中间比特的包;(c)sb=0和cb=1表示差分编码中不含有GOB的开始比特且含有所有比特为GOB中心比特可能加上GOB的一些(或所有)结束比特的包;并且(d)sb=1和cb=1表示差分编码中含有GOB的所有开始比特和一些(或所有)中间比特可能再加上一些(或所有)的结束比特的包。
对于非分段的GOB,sb=1和cb=1是仅可能的设置,甚至开始比特的个数可以为0。
字段gob_center_bits 1528是14-比特无符号整数,表示差分编码中,包中所含的用于GOB的中心比特的数量。
字段gob_start_bist 1530是13-比特无符号整数,表示差分编码中,用于包中所含的用于GOB的开始比特的数量。
字段gob_insert_bits 1532 是3-比特无符号整数,表示在对差分编码的分割后在(图像或GOB)包头和数据之间插入的比特数。
图15描述用于不同目的的语法元素。然而,上面描述的语法元素尤其在执行BDVS中是非常有用的gob_no,d,hdr_bits,sb,cb,gob_center_bits,gob_start_bits,和gob_insert_bits 图16A和16B示出了在MARS中执行分割操作之前的比特流结构1600和在MARS中执行分割操作之后的比特流结构1650。图16A示出了在MARS中,在BDVS中输入到BDVS操作的比特流1600(从视频源端点到MARS)。对于示例性示出的实施方式,针对单个GOB编码比特流1600。比特流1600包含图像包头1602(含有图像宽度和高度),每GOB的BDVS包头1604(包含GOB号,以及包括包头比特数,开始比特数,中心比特数和插入比特数),GOB包头1606,以及实际开始比特1608,中心比特1610以及结束比特1612。开始比特1608,中心比特1610和结束比特1612共同形成GOB。
图16B示出了在MARS中从BDVS操作的输出比特流1650。输出比特流从MARS传输到端点,在该端点仅表示全视频帧中分割出的内部尺寸。从而,比特流只对视频图像的内部尺寸进行编码。如上面所描述的,该输出比特流是MARS放弃内部尺寸外部的图像部分的结果,不必须对这部分比特流进行解码。从而输入比特流1600的某些元素在输出比特流1650中保存。比特流1650包含图像包头1602、每GOB的BDVS包头1604,GOB包头1606,插入比特1658,以及中心比特1610。应该注意到,仅需要图像的中心比特1610就可以再现内部尺寸。因为中心比特1610可能没有字节对齐,在输出比特流1650中使用插入比特来对齐他们。MARS产生这些插入比特1658,因为具有对齐的中心比特所以允许使用字节拷贝,然而避免使用比特拷贝,来获得输出比特流1650。在解码侧(也就是目的EP),解码器检查用于插入比特数的语法元素1532,并丢弃他们。
图17A示出了在终端监测器上显示的分屏(SS)窗口1700。相应于多个端点(用户)的源视频在分屏(SS)窗口显示。通过实施例,示出了5+1分屏格式,也可以有其他的格式。SS窗口1700的单个元素区域或位置1702、1704、1706、1708、1710和1712中每一个对应于由目的端点从MARS接收到的单个比特流。会议主席是控制或管理视频会议各种特征的用户。主席可以控制的一个特征是用于所有参与端点(也就是所有目的端点)的SS窗口1700的布局。这个布局不仅包括多屏格式(如5+1,3×2等),也包括SS窗口1700内的单个视频源的位置安排(如用户2的视频是在SS窗口1700的右上角显示,等)。
对于本发明实施方式,主席通过图形用户界面与MARS交互以在SS窗口1700中安排源视频的位置。提供“拖放”式的用户界面(“D&D”)使得主席可以安排源视频的位置,例如,通过使用鼠标或其他指示设备,选择(如“单击”)SS窗口1700的第一个区域,将选择的区域拖到SS窗口1700中一个新的要放置的区域,然后在要放置的区域放下或者不选择(例如,释放鼠标按钮)以在SS窗口1700中新位置插入所选择的区域。原来占据这个新位置的视频移到或交换到拖走的视频的老位置;从而,这个操作也称作“拖换式”。SS窗口中的任何给定用户(端点视频)的位置可以通过主席使用鼠标从原始的位置“拖”和“拉”到新的位置来重新安排。代替主席,控制会话令牌(token)的用户可以重新安排他们自己的SS窗口,并且可以使用单一的D&D行为通过单个用户为所有观众做同样的重新安排。例如,在SS窗口1700上通过拖区域1708然后将其放到区域1704上方来执行D&D操作,从而交换1708和1704,如图17B示出。
另一个实施方式,参见图9,主席可以使用拖和放特性来建立视频会议,从而端点906的源视频以208×160像素的分辨率显示在目的端点920的5+1布局的左上角。因为源EP 906仅以为176×144像素的分辨率来捕捉视频,该分辨率小于分配给目的920的左上角的分屏窗口的分辨率(如208×160像素),MARS不需要剪切从EP 906接收的来自比特流906A的子比特流。而是,MARS将接收到的比特流简单地转发给目的端点。从而,本发明实施方式,源端点对其视频以两个等级(全尺寸,内部尺寸)进行编码,并且可以通过目的端点以两个级别(全尺寸,内部尺寸)来解码比特流。
由于全比特流的分辨率为176×144像素小于分屏窗口分配空间的208×160像素,目的端点可以简单地用空白区域来填充其余的区域。应该注意到,如果D&D操作使得端点904的视频被交换到分屏内的端点906视频的先前位置,MARS将从端点904接收的分辨率为208×160像素的子比特流降采样到104×80像素的分辨率。
主席可以也使用D&D用户界面特征来将源视频从SS窗口中移除。比如,如果拖动区域1708到窗口1700的外面,窗口1700中相应的区域1708将不会显示视频内容(如,将会显示空白)。
在另一个实施方式中,在SS窗口1700中当前没有显示的端点用户的源视频,能通过D&D机制加到SS窗口1700中。参见图18A,在主席监测器上的图形用户界面除了SS窗口1804还包含缩略窗1802。缩略窗1802显示低分辨率的图像以相对低的速率刷新(如每秒1或2次),该图像是从源端点使用无状态协议接收,其中,不对接收到的包进行确认。这些图像与视频会议中的每一个参与者对应,不管他们的源视频是否在SS窗口显示出来。这允许参与者和主席即使主要关注于在SS窗口中显示的参与者的视频,也可以参考会议中的所有参与者的视频。
主席可以将图像从缩略窗口1802中拖走并将其放到SS窗口1804中,使得那个用户的源视频可以在SS窗口1804中想要的位置显示。比如,如果在SS窗口中,有空白或有未占据的部分,主席可以通过将用户从缩略窗口1802中拖到SS窗口1804来填充这个位置。缩略窗口将仍然含有与在视频会议中所有参与者相对应的图像。在另外一个实施例中,主席可以通过与其他用户交换源视频来移动最初在SS窗口中的端点视频(用户)。主席将缩略图从缩略窗口1802拖到SS窗口1804,然后将缩略图放到想要的位置,使得现有的视频源(如果有)显示或者占据从SS窗口1804交换出去(或移除)的位置。如果在那个位置已经有源视频显示了,现有的源视频从SS窗口1804中移除,并且被放下的源视频取代。例如,参见图18A,如果用户9对应的缩略图从缩略图窗口1802拖走,放在对应于用户3的源视频的SS窗口1804中,SS窗口1804的内容将会变为用户9端点的当前源视频,而不是用户3的源视频,如图18B所示。正如图18B中示出的,在拖和交换操作之后,缩略窗口1802保持不变。
作为可选实施方式,主席可以通过将一个或多个用户的缩略图从缩略窗口拖到SS窗口来改变视频会议会话的分屏布局。例如,将缩略图放到SS窗口,改变SS窗口的布局来容纳额外的源。如果布局是3×1布局(3列乘以1行),从而为三个端点显示视频,将单个额外用户的缩略图放到到SS窗口,将SS窗口的布局变为2×2布局。另外,也可使用其他布局。例如,同时将三个额外用户缩略图放到SS窗口上,可以使得SS窗口布局飞速(on the fly)变换,如从3×1布局到5+1布局。然而,当SS窗口布局变化时,每一个端点可以改变他们的编码来为子比特流选择合适的内部尺寸。另外,SS窗口布局频繁的变化会引起暂停或者以其它方式会影响用户体验。由于这个原因,一旦会议开始,屏幕布局将在整个会议期间保持相同。可选地实施方式,在每个目的端点的用户使用拖和放特征来按照他们的需要来安排分屏格式,包含在分屏中显示哪一个端点视频。在这样的情况下,MARS然后将合适的比特流(全或子比特流)路由到各自的端点。
在另一实施方式中,通过在端点处呈现的图形用户界面提供“点开查看”(CTS)特性。参见图18A,端点用户/观众能双击(或以它方式选择)缩略窗口1802中表示的用户/参与者。当双击选中的用户时,出现一个新的窗口显示与被选的用户/端点相对应的源视频。新窗口仅以MARS接收的源的全分辨率显示被选的用户/端点的源视频。这使得用户关注特定的参与者的视频,不管参与者的视频是否显示在视频会话的SS窗口中。这个特征因为允许用户观察其他参与者的行为(如肢体语言),甚至参与者可以在会议中不积极参与或讲话,重新创建了一个真实的个人会议情形。可选地,新窗口可以只显示如通过它的子比特流编码的源视频地内部尺寸。由于通过源端点提供给MARS的比特流既用于全帧分辨率又用于内部尺寸分辨率,单个比特流可以既适应小尺寸的视频(如呈现在SS窗口)又适应大尺寸的视频(如通过CTS特性呈现的全帧分辨率)。
观众也可以双击在在SS窗口1804显示的端点的任何源视频,产生只有被选择用户/端点视频的分立的窗口。再一次,分立的窗口呈现选中用户的全帧分辨率源视频。因为SS窗口1804包含用于许多用户的视频内容,SS窗口1804中一些用户/端点的视频为了配合SS窗口,可以被删节/剪切或降采样。CTS特征允许观众通过全屏幕以及可能比在SS窗口1804中形成的子比特流的分辨率更高分辨率的源视频(如通过在MARS处接收且比特流编码的)来关注SS窗口1804中的任何特定用户。
本发明的实施方式可以使用各种编码和解码方案。在本发明实施方式中,使用国际电信联盟(ITU)发布的H.263标准作为编码解码器(codec)。H.263是用于压缩视频会议传输的ITU标准。它基于H.261并在视频质量上做了改进。H.263支持CIF、QCIF、SQCIF、4CIF以及16CIF分辨率。其他的编码如MPEG-1、MPEG-2、MPEG-4、H.261、H.264/MPEG-4 Part 10、以及AVS(音频视频编码标准)也可以在其他实施方式中使用。
实际上,本发明实施方式所描述的方法可以构成机器可执行的指令所组成的一个或多个程序。参考流程图描述的方法能够使得本领域技术人员开发这种包含这些指令的程序,以实施通过在合适配置的计算机或其他类型处理器(机器的处理器执行来自可读的媒体指令)的逻辑模块所表示的操作(行为)。机器可执行的指令可以用计算机程序语言来写或者可以嵌入到固件逻辑中,如果用程序语言写的符合公认的标准的指令,则这种指令可以在多个硬件平台上执行并且可以与多个操作系统接口。另外,本发明的实施方式不限于特定的程序语言。本发明的实施方式中,可以使用各种程序语言。此外,以一种形式后另一种形式(即程序、流程、过程、应用、模块、逻辑等)来表述软件,如采取行动或引起后果,是本领域中公知的。当说到通过机器执行软件引起机器的处理器采取行动或产生结果时,这样的表述仅是简单的方式。不脱离本发明的范围的情况下,所示的方法可以结合入更多或更少的流程,以及本发明示出的块的排列没有特定的顺序。
已经描述了本发明的实施方式,但是,在不脱离如所附权利要求书所公开的本发明的范围和精神的情况下,可以有各种修改、增加和替换。因此,说明书和附图只作示例性说明,没有限制性含义。
权利要求
1.一种视频的编码方法,该方法包括
以全帧分辨率捕捉视频序列;
识别视频序列的帧中内部区域的边界;
以全帧分辨率将视频序列编码为比特流,所述比特流包含针对内部区域编码的子比特流;
在比特流中嵌入数据,所述数据用于在比特流中识别出子比特流。
2.根据权利要求1所述的方法,其特征在于,所述数据是包头,所述包头用于指定内部区域。
3.根据权利要求2所述的方法,其特征在于,所述包头包含指定下述内容的信息要丢弃的宏块组数、要保留的中心宏块组数、每一个中心宏块组中要丢弃的起始比特数以及每一个宏块组中要保留的中心比特数。
4.根据权利要求2所述的方法,其特征在于,内部区域是仅从包头和比特流中的子比特流部分解码得到的。
5.一种用于视频的编码装置,包含
用于以全帧分辨率捕捉视频序列的器件;
用于识别视频编码序列帧中内部区域边界的器件;
用于以全帧分辨率将视频序列编码到比特流中的器件,所述比特流包含针对内部区域编码的子比特流;
用于在所述比特流中嵌入数据的器件,所述数据用于从比特流中识别出子比特流。
6.根据权利要求5所述的装置,其特征在于,所述数据是包头,所述包头用于指定内部区域。
7.根据权利要求6所述的装置,其特征在于,所述包头包含用于指定下述内容的信息要丢弃的宏块组数、要保留的中心宏块组数、每一个中心宏块组中要丢弃的起始比特数以及每一个宏块组中要保留的中心比特数。
8.根据权利要求6所述的装置,其特征在于,内部区域为仅从包头和比特流中的子比特流部分解码得到的。
9.一种机器可读媒体,其具有让机器执行机器可执行的方法的指令,所述方法包括
以全帧分辨率捕捉视频序列;
识别视频序列的帧中用于内部区域的边界;
以全帧分辨率将视频序列编码为比特流,所述比特流包含针对内部区域编码的子比特流;
在所述比特流中嵌入数据,所述数据用于从比特流中识别出子比特流。
10.根据权利要求9所述的机器可读媒体,其特征在于,所述数据是包头,所述包头用于指定内部区域。
11.根据权利要求10所述的机器可读媒体,其特征在于,所述包头包含用于指定下述内容的信息要丢弃的宏块组数、要保留的中心宏块组数、每一个中心宏块组中要丢弃的起始比特数以及每一个宏块组中要保留的中心比特数。
12.根据权利要求10所述的机器可读媒体,其特征在于,内部区域是仅从包头和比特流中的子比特流部分解码得到的。
13.一种方法,包括
接收编码后的比特流,所述比特流是以全帧分辨率针对视频序列进行编码的;
识别出比特流中的子比特流,所述子比特流是针对视频序列帧中内部区域编码的,所述内部区域具有低于全帧分辨率的第一分辨率;并且
丢弃所述比特流的比特以获得子比特流。
14.根据权利要求13所述的方法,其特征在于,还包含
将子比特流降采样到第二分辨率,所述第二分辨率低于所述第一分辨率。
15.根据权利要求13所述的方法,其特征在于,还包含
将子比特流传输到目的端点,以在分屏窗口中显示。
16.根据权利要求13所述的方法,其特征在于,所述识别出子比特流的步骤包含读出嵌入到比特流中的包头,所述包头用于指定内部区域。
17.根据权利要求13所述的方法,其特征在于,还包含
将大量比特附加到子比特流中以使子比特流中中心比特字节对齐,所述中心比特是针对内部区域的一部分进行编码的。
将包头附加到子比特流,所述包头包含表示附加比特数的值;并且
传输所述子比特流、所述附加的比特,以及所述包头到目的端点。
18.一种装置,包含
用于接收编码后的比特流的器件,所述比特流是针对视频序列以全帧分辨率进行编码的;
用于识别出比特流中的子比特流的器件,所述子比特流是针对视频序列帧中的内部区域编码的,所述内部区域具有低于全帧分辨率的第一分辨率;并且
丢弃所述比特流的比特以获得子比特流的器件。
19.根据权利要求18所述的装置,还包含
将子比特流降采样到第二分辨率的器件,所述第二分辨率低于所述第一分辨率。
20.根据权利要求18所述的装置,还包含
将子比特流传输到目的端点以在分屏窗口中显示的器件。
21.根据权利要求18所述的装置,其特征在于,所述用于识别所述子比特流的器件包含用于从所述比特流中读出嵌入的包头的器件,所述包头用于指定内部区域。
22.根据权利要求18所述的装置,其特征在于,还包含
将大量比特附加到子比特流中以使子比特流中的中心比特字节对齐的器件,所述中心比特是针对内部区域的一部分进行编码的;
将包头附加到子比特流中的器件,所述包头包含表示附加比特数的值;并且
传输所述子比特流、所述附加的比特、以及所述包头到目的端点的器件。
23.一种机器可读媒体,具有让机器执行机器可执行的方法的指令,所述方法包括
接收编码后的比特流,所述比特流是针对视频序列以全帧分辨率编码的;
识别出比特流中的子比特流,所述子比特流是针对视频序列帧中内部区域编码的,所述内部区域具有低于全帧分辨率的第一分辨率;并且
丢弃所述比特流的比特以获得子比特流。
24.根据权利要求23所述的机器可读媒体,其特征在于,所述方法还包含
将子比特流降采样到第二分辨率,所述第二分辨率低于所述第一分辨率。
25.根据权利要求23所述的机器可读媒体,其特征在于,所述方法还包含
将子比特流传输到目的端点以在分屏窗口中显示。
26.根据权利要求23所述的机器可读媒体,其特征在于,所述识别出子比特流的步骤包含读出嵌入到比特流中的包头,所述包头用来指定内部区域。
27.根据权利要求23所述的机器可读媒体,其特征在于,所述方法还包含
将大量比特附加到子比特流中以使子比特流中中心比特字节对齐,所述中心比特是针对对内部区域的一部分进行编码的;
将包头附加到子比特流中,所述包头包含表示附加比特数的值;并且
传输所述子比特流、所述附加的比特以及所述包头到目的端点。
28.一种方法,包含
识别分屏布局,所述分屏布局用于呈现来自多个端点的视频序列;
确定端点的能力,所述能力包含用于在端点处捕捉视频序列的第一分辨率;
确定用于在分屏布局中显示视频序列的第二分辨率;
确定将视频序列从第一分辨率剪切到第二分辨率是否是可以接受的;
如果剪切是能够接受的,指示端点将视频序列以全帧分辨率编码到比特流中,所述比特流包含针对视频序列的内部区域以第二分辨率进行编码的子比特流。
29.根据权利要求28所述的方法,其特征在于,还包含
如果所述剪切是无法接受的,确定将所述视频序列从第一分辨率降采样到第二分辨率是否是可以接受;
如果所述降采样是无法接受的,指示端点以第一分辨率将视频序列编码到比特流,所述比特流包含针对视频序列的内部区域以中间分辨率编码的子比特流,所述中间分辨率介于所述第一分辨率和所述第二分辨率之间。
30.根据权利要求29所述的方法,其特征在于,还包含
接受含有为所述中间分辨率的子比特流的比特流;
从所述比特流中提取所述子比特流;并且
将所述子比特流降采样到所述第二分辨率。
31.一种装置,包含
用于识别分屏布局的器件,所述分屏布局用于呈现来自多个端点的视频序列;
用于确定端点的能力的器件,所述能力包含用于在端点处捕捉视频序列的第一分辨率;
用于确定在分屏布局中显示视频序列的第二分辨率的器件;
用于确定将视频序列从第一分辨率剪切到第二分辨率是否是可以接受的器件;
如果剪切是能够接受的,用于指示端点将视频序列以全帧分辨率编码码到比特流中的器件,所述比特流包含针对视频序列的内部区域以第二分辨率编码的子比特流。
32.根据权利要求31所述的装置,其特征在于,还包含
如果所述剪切是无法接受的,用于确定将所述视频序列从第一分辨率降采样到第二分辨率是否是可以接受的器件;
如果所述降采样是无法接受的,用于指示端点以第一分辨率将视频序列编码到比特流的器件,所述比特流包含针对视频序列的内部区域以中间分辨率编码的子比特流,所述中间分辨率介于所述第一分辨率和所述第二分辨率之间。
33.根据权利要求32所述的装置,其特征在于,还包含
用于接收含有为所述中间分辨率的子比特流的比特流的器件;
用于从所述比特流中提取所述子比特流的器件;并且
用于将所述子比特流降采样到所述第二分辨率的器件。
34.一种机器可读媒体,其具有能够让机器执行机器可执行的方法的指令,所述方法包括
识别分屏布局,所述分屏布局用于呈现来自多个端点中的视频序列;
确定端点的能力,所述能力包含用于在端点处捕捉视频序列的第一分辨率;
确定用于在分屏布局中显示视频序列的第二分辨率;
确定将视频序列从第一分辨率剪切到第二分辨率是否是可以接受的;
如果剪切是能够接受的,指示端点将视频序列以全帧分辨率编码到比特流中,所述比特流包含针对视频序列的内部区域以第二分辨率编码的子比特流。
35.根据权利要求34所述的机器可读媒体,其特征在于,所述方法还包含
如果所述剪切是无法接受的,确定将视频序列从第一分辨率降采样到第二分辨率是否是可以接受的方法;
如果所述降采样是无法接受的,指示端点以第一分辨率将视频序列编码到比特流,所述比特流包含针对视频序列的内部区域以中间分辨率编码的子比特流,所述中间分辨率介于所述第一分辨率和所述第二分辨率之间。
36.根据权利要求35所述的机器可读媒体,其特征在于,所述方法还包含
接收含有为所述中间分辨率的子比特流的比特流;
从所述比特流中提取所述子比特流;并且
将所述子比特流降采样到所述第二分辨率。
37.一种装置,包含
用于在图形用户界面显示分屏窗口的器件,所述窗口包含多个区域,在每个区域显示从多个端点中的一个端点中接收到的视频序列;
用于在所述窗口中第一区域的选择的器件;
用于接收将选择的第一区域拖到第二区域上的命令的器件;
用于接收将选择的第一区域放置在所述第二区域上的命令的器件;以及
用于响应接收到放置选择的第一区域的命令交换窗口中第一区域和第二区域的位置的器件。
全文摘要
本发明涉及一种对视频进行编码的方法。以全帧分辨率捕捉视频序列。确定在视频序列帧中内部区域的边界。以全帧分辨率将所述视频序列编码到比特流中。所述比特流包含针对内部区域编码的子比特流。在比特流中嵌入数据。所述数据识别出比特流的子比特流。一方面,数据是用于指定内部区域的包头。另一方面,所述编码基于在内部区域中的像素估计内部区域中像素的运动。
文档编号H04N7/26GK101147400SQ200680009752
公开日2008年3月19日 申请日期2006年1月26日 优先权日2005年3月25日
发明者成道·黄, 史蒂文·王, 卫平·李 申请人:爱米特系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1