用于低延迟视频混合的方法和系统的制作方法

文档序号:7950402阅读:195来源:国知局
专利名称:用于低延迟视频混合的方法和系统的制作方法
技术领域
本发明涉及实时敏感通信系统中的视频混合器,例如用于视频会议系统的多点控制单元(MCUs),以及涉及构成逆混合处理的画面分解系统和方法。
背景技术
传统地,视频会议端点设计为以点对点方式连接到另一远程视频会议端点。如图1中所描述的,发送端点102包括例如照相机的动态视频源101和编码器103,该编码器用于将来自视频源的视频图像编码为视频压缩流。然后,该视频压缩流通过网络接口104由网络105发送到单个接收端点106。接收端点106包括网络接口107、解码器108和显示设备109。编码器103和解码器108通常遵照一个已知的视频压缩格式,如H.264。这样,接收端点显示发送端点的运动视频源的信息。
为了允许多点视频会议,使用了所谓的多点控制单元(MCUs)。MCUs保持端点体系结构简单,并将所有多点功能性移入到核心网络中,这在传统上存在于音频会议情况中。MCU包括一个或多个MCU网络接口、控制协议实施、多个音频混合器、多个视频转换开关或多个视频混合器、或开关与混合器的组合。对于连续存在的MCUs,不使用视频转换开关。
图2描述了现有技术的多点视频会议系统。如图所示,多个发送端点201、202使用视频源、编码器和网络接口将多个压缩视频流传送到MCU 203。在MCU 203内部,MCU网络接口204将输入压缩视频流传送到视频混合器205,从而使输入压缩视频流组合以形成单个输出压缩视频流。输出压缩视频流通过另一MCU网络接口206传送到接收端点207。
MCU可能具有许多的独立视频混合器208,以便将多个输出压缩视频流传送到多个接收端点。如果接收端点接收了相同的输出压缩视频流,则每个接收端点将显示同样组的处理过的输入视频流。
图3示出了现有技术的视频混合器。如图所示,每个输入压缩视频流301、302分别在解码器303、304中重建。每个重建的视频流形成了解压缩的图像序列305、306。每个解压缩的图像序列包括以固定或可变帧速率的单独画面307、308,该帧速率通常与发送端点的发送帧速率相同。每个图像序列中的单独画面由缩放/剪裁机构309、310缩放和剪裁,以形成处理过的图像序列311、312。以这样一种方式执行缩放和剪裁,即,不同的处理的图像序列中的单独画面可以按时间(time-wise)对应方式排列,以占据输出图像序列中相应画面的不同空间区域。在图3中,作为一个例子,第一图像序列305按X和Y两维中的因子而缩小,而第二图像序列306主要是被剪裁。处理的图像序列311、312被组合,以按照配置信息314通过图像组合模块313形成输出图像序列315。用于处理的图像序列311、312中画面的空间排列的配置信息314通常在会议期间是静态的。静态配置信息由用户接口来控制。也可以采用允许例如ITU-TRec.T.120的框架中动态重建的机制。
应当注意,输出图像序列中单独画面的空间区域可以小于、等于或大于任一单独画面307、308的空间区域。空间关系一般依赖于接收端点和它们的网络连通性的能力。在一些现有技术的视频混合器中,允许不同输入序列中单独图像的重叠。而在另一些中,则不允许这种重叠。
还应当注意,视频混合器可以不依赖于输入视频流的帧速率来选择用于输出图像序列的帧速率。该输出帧速率可依据应用的需要,为常量或变量。大多数现有技术的视频混合器都包含有处理不同输入帧速率和不同步输入视频流的机构。例如,在输出视频序列的合成期间,一个输入图像序列中的单独画面可能会缺失,这一失去的画面在视频混合器中可以通过复制或外推法从一个或多个之前的单独画面产生。
使用普遍已知的视频压缩格式之一,如H.264,在编码器316中,将输出图像序列315压缩为输出压缩视频流317。如图2中所示,输出压缩视频流通过MCU网络接口和网络传送,然后到接收端点,在此重建并显示。使用视频混合,用户可以看到来自几个发送端点的两个或多个视频流的组合,而不需在接收端点附加功能。
如上所述,MCU中的视频混合技术需要一系列的译码步骤,其中将输入压缩视频流通过一个或多个解码器重建到空间域中,以便能够在空间域中执行缩放、剪裁和组合步骤,从而形成组合的图像序列。然后,组合的图像序列在编码器中压缩,形成输出视频流。这些解码和重编码步骤使得在压缩视频流的发送与接收之间产生了延迟。
压缩域中的视频混合和处理可以减少延迟和图像质量下降。Zhu等人(美国专利号6,285,661)披露了一种用于多点视频会议的低延迟、实时数字视频混合技术。如Zhu等人中所披露的,在MCU中使用了多个分段处理器,以从相应的多个输入压缩视频流中抽取分段数据。使用多个数据队列来存储由分段处理器提供的分段数据,以便可以使用数据组合器来提供由控制器选择性地提供的输出数据。根据Zhu等人所述,视频混合技术使用H.261标准的通用中间格式(CIF),其中将CIF画面分割成十二个块组(GOB)。每个GOB包括多个数据宏块(macroblock)。Zhu等人还使用了四分之一CIF(QCIF)格式,其中将画面分割成三个块组。Chen等人(美国专利号5,453,780)披露了一种在压缩域中组合四个QCIF视频输入信号以产生合并CIF视频输出信号的方法。Yona等人(美国专利公开2003/0123537A1)披露了一种压缩域混合技术,其中使用了宏块地址修补法和流水线技术。Chen等人(美国专利号5,917,830)披露了一种用于接合压缩、分包数字视频流的技术。

发明内容
本发明提供了一种系统和方法,用于在压缩域中空间地混合几个视频位流,并在压缩域中将视频位流分解为几个视频位流。
在本发明的一个实施例中,多个发送端点从多个源画面流中产生接收端点所要求的空间分辨率的多个位流。每个位流必须以这种方式从相应的源画面流中产生,即,没有运动矢量指向源画面流中任一源画面的空间区域的外部,并且根据所采用的视频压缩技术,它们还遵循其他约束(例如,使用ITU-T Rec.H.264适用视频编码所大致要求的这些约束)。位流通过网络传送到视频混合器,典型地,该视频混合器是MCU的一部分。MCU可以位于核心网络中,或者位于接收端点中。在视频混合器中,使用根据所采用视频压缩标准的空间片(slice)组分配方案,将多个宏块空间地分配到它们在接收端点的重建画面中的希望的位置。视频混合器从多个输入流的每个中取出编码输入画面,以及修正输入编码画面的识别和空间信息,以便连结并组合编码输入画面,以形成单个输出编码画面。最终,该输出编码画面发送到接收端点用于重建。
在本发明的另一实施例中,MCU使用多个混合器,以将多个输入流组合成多个输出流。在MCU中,每个混合器将多个输入流中的一个或多个混合得到恰好一个输出视频流。多个混合器中的每个都具有本地配置信息,用于映射多个空间区域,其指示放置输入流的空间位置。这样允许用户根据他们自己的、独立的配置,在接收终端观看由MCU提供的流上的画面。这个实施例可能需要发送端点以不同的空间分辨率产生同一捕获图像的不止一个表示,以便满足混合器配置信息的需要。本发明的这一实施例涉及同时联播(simulcast)技术。
在本发明不同实施例中,MCU还包括分解系统。如上所述,该分解系统可以从产生混合视频流的另一个MCU的输出接收它的输入流。该分解系统将输入混合流分解成多个输出分解流。这些输出分解流可以用作MCU中混合器的输入流。本发明的这一实施例涉及级联MCU技术。
在本发明再一实施例中,视频混合器是端点的一部分。视频混合器的输入流从网络接口或者从多路复用器接收。视频混合器的输出流连接到网络接口或者多路复用器和/或连接到端点的视频解码子系统。本发明的这一实施例涉及基于端点的MCU功能性。
可能,分解系统不是MCU的一部分,但是其是实现例如实时视频编辑表的不同功能性的系统的一部分。
还可能,混合器不是MCU的一部分或者视频会议端点的一部分,但是其是实现例如实时视频编辑表的不同功能性的系统的一部分。
由此,本发明的第一方面提供了一种在压缩域中的视频混合方法,用于将多个第一视频位流组合成至少一个具有多个帧的第二视频位流,每个第一位流具有多个相应的帧。该方法包括将每个第一视频位流划分成多个片,每个片具有包括多个头字段的片头;改变片头中多个头字段中的一个或多个,用于在至少一些片中提供改变的片头;为所述至少一些片的每一个提供改变的片;以及根据改变的片,产生第二视频位流,其中在第二视频位流中的每帧中使用的改变的片对应于在第一视频位流中多个相应帧中的相同帧。
根据本发明,所述多个头字段中的一个或多个包括frame_num头字段。
根据本发明,所述多个头字段中的一个或多个包括first_mb_in_slice头字段,并且first_mb_in_slice具有指示在第一视频位流的空间表示中所述每个片在空间区域中的位置的值。
根据本发明,通过将所述first_mb_in_slice的值改变为指示相应的改变的片在第二视频位流的空间表示中的空间区域中的位置的新值,来改变该first_mb_in_slice头字段。
根据本发明,所述first_mb_in_slice的新值如下计算
tirst_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i)其中/表示截断除法(division by truncation);%表示取模运算符;xsize_i表示第一视频位流的空间表示中空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中空间区域的水平尺寸;xpos、ypos表示第二视频位流的空间表示中的、用于放置第一视频位流的空间表示中的所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
根据本发明,该方法进一步包括转换第二视频位流,用于提供第二视频位流的空间表示。
根据本发明,该方法进一步包括识别第一视频位流中的片,以便允许将相同帧中的改变的片组合为第二位流中的一个帧。
根据本发明,一个或多个第一视频位流包括由多个另外的视频位流构成的混合位流。该方法进一步包括分解混合位流,用于提供多个分量(component)视频位流,每个分量视频位流对应于该另外的视频位流中的一个,以便允许分量视频位流与一个或多个其他的第一视频位流组合,用于产生第二视频位流。
根据本发明,所述产生包括将所述多个第一视频位流中至少一个的多个片映射到第二视频位流的空间表示中多个不重叠矩形区域中的至少一个。
根据本发明,所述第一和第二视频位流遵照H.264标准,并且所述映射基于H.264的片组概念。
可选地,所述第一和第二视频位流遵照H.263,其中支持片结构模式(SSM,在Annex K中定义)、子模式矩形片,并支持独立分段解码模式(ISM,在Annex R中定义);使用S SM机构,将所述多个第一位流中的至少一个的多个片映射到所述重建第二位流中多个不重叠矩形空间区域中的至少一个。
本发明的第二方面提供了一种用于压缩域中视频混合的方法,用于将多个第一视频位流组合成至少一个第二视频位流,每个第一视频位流和第二视频位流具有相等的空间表示,其中第二视频位流包括多个第二片,每个第二片具有包括多个头字段的片头,并且其中每个第一视频位流包括多个第一片,每个第一片具有包括多个头字段的片头。该方法包括以下步骤解析第一片的片头,用于获得多个头字段中的值,其中一个值指示相应第一视频位流的空间表示中的空间区域;修改所述一个值,用于提供指示第二视频位流的空间表示中空间区域的新值;根据新值产生新片头,用于提供修改的第一片;以及将第一视频位流组合成所述一个第二视频位流,使得根据每个第一视频位流的修改的第一片来构成第二视频位流中的每个第二片。
根据本发明,所述一个值是first_mb_in_slice,指示第一片在相应第一视频流的空间表示中的空间区域中的位置,first_mb_in_slice的新值如下计算first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i)其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中的空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中的空间区域的水平尺寸;xpos、ypos表示第二视频位流的空间表示中、用于放置第一视频位流的空间表示中的所述空间区域的位置的坐标;以及mbpos i表示所述first_mb_in_slice的值。
根据本发明,一个或多个第一视频位流包括由多个另外的视频位流构成的混合位流。该方法进一步包括以下步骤分解混合位流,用于提供多个分量视频位流,每个分量视频位流对应于该另外的视频位流中的一个,以便允许分量视频位流与一个或多个其他的第一视频位流组合,用于产生第二视频位流。
本发明的第三方面提供一种视频混合器,可操作地连接到多个发送端点,以从其接收多个第一视频位流,用于在压缩域中将多个第一视频位流组合成至少一个具有多个帧的第二视频位流,每个第一位流具有在多个相应的帧中的多个片,每个片具有包括多个头字段的片头。该混合器包括用于改变片头中多个头字段中的一个或多个的机构,用于根据改变的一个或多个头字段,提供至少一些片中的改变的片;以及用于组合改变的片的机构,用于提供第二视频位流,其中在第二视频位流中每帧中使用的改变的片对应于在第一视频位流中多个相应帧中的相同帧。
根据本发明,所述多个头字段中的一个或多个包括first_mb_in_slice头字段,并且其中first_mb_in_slice具有指示所述片在第一视频位流的空间表示中的空间区域中的位置的值;通过将所述first_mb_in_slice的值改变为指示所述改变的片在第二视频位流的空间表示中的空间区域中的位置的新值,来改变该first_mb_in_slice头字段;以及所述first_mb_in_slice的新值如下计算first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i)其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中的空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中的空间区域的水平尺寸;xpos、ypos表示在第二视频位流的空间表示中的、用于放置第一视频位流的空间表示中的所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
根据本发明,所述组合包括将所述多个第一视频位流中至少一个的多个片映射到第二视频位流的空间表示中多个不重叠矩形区域中的至少一个。
本发明的第四方面提供一种支持如权利要求1所要求的方法的通信网络中使用的信号发送方法,其中通信网络包括提供多个第一视频位流的多个发送端点以及接收所述至少一个第二视频位流的至少一个接收端点。该信号发送方法包括以下步骤-步骤1商定由接收端点和发送端点使用的画面格式;-步骤2向接收端点发送控制信息,以使接收端点准备接收所述第二视频位流。
根据本发明,步骤1中的所述商定包括-产生针对接收端点的画面格式布局;-根据针对多个发送端点中每一个的所述布局,识别至少一个画面格式;以及-将针对多个发送端点中每一个的所述识别的画面格式通知多个发送端点。
根据本发明,步骤1中的所述商定进一步包括响应于所述通知,从多个发送端点中的每一个接收一个商定的画面格式;以及多个发送端点中的每一个均提供包含指示所述一个商定的画面格式的信息的参数集,以及其中步骤2中的所述发送进一步包括以下步骤-根据由多个发送端点中的每一个提供的所述信息,产生输出参数集,以便根据该输出参数集,向接收端点提供控制信息。
通过结合附图4-7,阅读说明书,本发明将变得更易理解。


图1示出了现有技术的点对点视频会议系统;图2示出了现有技术的多点视频会议系统;图3是显示了现有技术多点视频会议系统中的视频混合处理的示意性表示;图4是显示了根据本发明多点视频会议系统中的视频混合处理的框图;图5是描述了根据本发明的混合操作的流程图;图6是示出了根据本发明在发送端点、混合器和接收端点之间发送信号和启动过程中的事件序列的协议图;图7是显示了用于级联MU配置中视频流分解的系统的示意性表示。
具体实施例方式
在本发明的一个实施例中,使用视频混合器,将遵照ITU-TRec.H.264基线类(baseline profile)的多个输入视频位流混合成一个位流,该位流也遵照ITU-T Rec.H.264基线类。例如,参考图4,在三个不同位置,由三个不同端点401、402、403,独立地产生三个压缩视频流411、412、413。三个视频位流411、412、413的空间表示可以彼此不同。在这个例子中,第一端点401发送视频位流411,其中空间表示比其他端点412、412的视频位流412、413中的空间表示宽两倍。但是,每个位流411、412、413中的空间表示的高度相同。注意,视频位流可以根据例如ITU-T Rec.H.264基线类压缩。这样,空间表示的属性仅以压缩形式可用。三个视频位流411、412、413在压缩域中由视频混合器420混合,以形成输出压缩视频位流430。输出压缩视频位流430可以包含来自所有三个输入位流411、412、413的信息。例如,输入位流411的空间表示呈现在输出位流430的空间表示的下半部。为了在输出视频位流中获得这样的空间表示,输入视频位流的空间表示就应当具有这样的尺寸,即,它们空间地适合输出位流的空间表示。输出视频位流中分量空间表示的重叠是基于宏块的,而不是基于逐个像素确定的。这个实施例使用了ITU-T Rec.H.264基线类,其中宏块尺寸为16×16像素。这样,输入画面的每个空间区域置于可由16划分的像素位中。
根据这一实施例,视频混合需要对输入视频信号的产生和传输设置一些约束。这些约束中的一部分可在其他实施例中放宽,但是约束的放宽可能会增加实施和计算的复杂性。
应当理解,在这个实施例中,术语“遵照H.264的视频位流”意味着无差错传输。这样,在基线类中,对于从输入流接收的每个画面,frame_num增加一,并且每个画面的每个宏块恰好在一个片中显示。这一实施例进一步需要来自每个输入位流的固定的、不变的和相同的画面速率;并且,除了一个初始的瞬时解码器刷新(IDR)画面之外,在H.264的子目8.2.1和相关子目的意义上,输入位流不包括IDR画面。该初始IDR画面是在每个子画面中传输的第一画面。此外,这一实施例需要这种IDR画面以这样一种时间到达,即,它们能够混合成单个输出IDR画面。应当注意,对约束的这些要求通常例如可在基于高宽带、ISDN的视频会议的媒体中得到满足。
输入位流其他前提包括如下进一步的限定a)参数集信息A1)所有输入流的所有片头仅参考单个画面参数集,在所有的片头中使用相同的pic_parameter_set_idA2)参考的画面参数集在所有它们的值上都是相同的,附加的约束将在下面A3至A5中提及A3)在画面参数集中,pic_order_present_flag为OFFA4)在画面参数集中,num_slice_groups_minus 1为0A5)在画面参数集中,deblocking_filter_control_present_flag为ONA6)所参考的序列参数集是相同的,例外和约束将在下面A7至A9中提及A7)pic_order_cnt_type为2
A8)pic_widths_in_mbs_minus1设置为按照H.264的宏块单元中画面的宽度A9)pic_height_in_map_units_minus 1设置为按照H.264的宏块单元中画面的高度b)NAL(网络抽象层)单元头信息——以下将关注类型1的NAL单元在片头方面进行修改并转发,其他方面不改变。类型5的NAL单元(IDR)需要一些特别的信号发送,其他方面的处理与类型1的NAL单元相同。类型6至12的NAL单元由混合器截取并本地处理。这种处理过程的结果可以是在输出位流中产生类型6-12的NAL单元。在遵照H.264基线的流中所有其他的NAL单元类型都不会出现。
c)片头信息C1)first_mb_in_slice必须遵照H.264。应当注意,first_mb_in_slice在混合处理期间修改,用来参考在新产生的混合画面的片中第一宏块的位置。
C2)片类型必须是0、2、5或7。应当注意,在混合处理期间,将片类型5和7分别转换成片类型0和2。
C3)应当注意,在混合处理期间修改frame_num,使得混合画面的所有子画面都具有相同的frame_num。
C4)disable_deblocking_filter_idc必须为1(过滤器完全无效)或2(在片边界处过滤器无效)。注意,这意味着上面A5的情况。
d)底层(宏块)除了上述提及的那些,没有其他限制。
e)VUI(视频可用性信息)和HRD(假定参考解码器)参数(序列参数集扩展)输入位流可以将VUI和HRD信息包括在它们单个参考的序列参数集中。智能混合器的实施可以使用在这些数据结构中存在的一些值,但是在这一实施例中,由混合器产生的序列参数集不产生包含VUI和HRD信息的序列参数集扩展。
基本混合操作基本混合操作的以下描述假定,已经由混合器传输了参数集——后面将讨论参数集的产生和发送。图5中以流程图的形式描述了基本混合操作。
如流程图500中所示,每当来自输入位流之一的NAL单元到达混合器时(步骤501),如之前讨论的那样,混合器首先以特定的方式处理除1以外类型的NAL单元。如果nal_unit类型是1,那么到达的是正常片,应当处理。
首先,解析片头(步骤502)。存储值用于进一步处理。假设所使用的变量名与依照H.264的7.3.3节中的描述的句法元素的变量名是相同的。还储存不属于片头的第一句法元素的位精确位置。
如下计算first_mb_in_slice的新值(步骤503)令xsize_i为重建的输入流空间区域的水平尺寸,以宏块为单位测量(16像素)令xsize_o为所产生的混合流的空间区域的x水平尺寸,以宏块为单位测量(16像素)令xpos、ypos分别为输出流的空间表示中“窗口”的顶部、左侧宏块的x和y位置,输入流的空间表示将复制到其中。
令mbpos_i为输入位流中first_mb_in_slice之前的值。
下面,/符号表示截断除法,%符号表示取模运算,∥符号后的文本行表示注释(c++句法)first_mb_in_slice=ypos*xsize_o+∥“窗口”上方行中的宏块(mbpos_i/xsize_i)*xsize_o+ ∥“窗口”中的行xpos+ ∥“窗口”左边的宏块列(mbpos_i%xsize_i); ∥“窗口”中的列将pic_parameter_set_id设置为0(步骤504)。
可通过例如软件程序422(见图4)计算first_mb_in_slice的新值。
将frame_num设置为适当的值(步骤505)。在这一实施例中,不考虑网络层的定时信息和输入位流的编码器中最后的帧跳过。在这一实施例中,将frame_num设置为下一个输出画面的frame_num(在其他实施例中,frame_num可以设置为比输出画面的frame_num高的值;nal_unit可以在队列中延迟,直到该发送它时为止)。
片头的句法元素的所有其他值保持不变。
使用片头句法元素的(修改)值,产生遵照H.264规范的新片头(步骤506)。这个片头与NAL单元的非片头数据连结(步骤507)。在解析片头期间,存储这个非片头数据的开始。如果需要在新产生的片的尾处填充,则可以根据H.264的句法规范执行(见H.264规范中的rbsp_slice_trailing_bits())。
应当注意,这一连结处理需要面向比特的操作,不过那些操作比需要将位流重建到它的空间域的操作,计算强度要小得多。
新产生的片保存在缓存器中,直到其能够与带有相同frame_num的其他片一起发出(508)。
还可使用混合器420中的软件程序422(图4),在混合操作中执行一个或多个其他步骤。例如,软件程序422还具有伪码,用于解析片头,并存储片头字段中的值,用于进一步处理;设置frame_num并产生新的片头。可以使用相同的软件程序,将视频位流划分成片,修改头字段,并将多个输入视频流组合成输出视频流。信号发送、参数集的产生和操作为了符合这一实施例的位流的需要,除了点对点呼叫之外,还需要信号发送支持。此外,媒体流的启动过程与点对点情况中的一个略有不同。在图6中以协议图的形式描述了信号发送和启动过程,描述如下在信号发送数据路径中1.接收端点和混合器商定接收画面格式,使用例如offer-answer协议(步骤601)。
2.通过这个信息,以及来自用户接口或会议配置协议或应用(例如CPCP(发展中的会议策略控制协议,互联网草稿))的信息,混合器可以产生接收画面格式的布局,因此也产生了来自发送终端的所需的输入格式(步骤602)。使用普通的能力交换处理,将这些需要的画面格式传达到发送终端(步骤603)。注意,H.264需要发送者在最大支持格式下的支持画面格式方面非常灵活。在同一步骤中,还需要通知发送终端,它们必须遵照上述的“前提”产生流。这一步骤使与信号发送协议相关的启动结束。启动的剩余步骤在媒体级上处理,并仅在完成了信号发送级的操作之后才开始。
在媒体数据路径中3.发送终端开始发送单个画面和序列参数集(步骤604)。
4.根据接收的参数集和配置,混合器产生单个画面参数集和单个序列参数集,包含与配置信息一致的片组映射。这些参数集发送到接收端点(步骤605)。此外,与冻结画面请求(用于冻结标识,直到有意义的混合内容为可用)一起,要添加到混合画面上的标识可以在含有该标识作为内容的IDR画面中发送到接收端点(步骤605)。
5.如H.264所要求的那样,发送终端将单个IDR画面发送到混合器。IDR画面的内容可以是随机的——其不用于进一步的处理(步骤606)。
6.在虚拟IDR画面之后,发送端点开始将内部(Intra)画面发送到混合器(步骤607)。
7.一旦所有的端点都同步发送了内部画面(在任一启动或恒定网络延迟之后),混合器混合第一内部画面,并将它发送到接收终端,同时释放冻结画面(步骤608)。
8.在预定时间周期之后,端点切换到发送正常的中间编码画面(步骤609)。在这一实施例中,预定时间周期为五秒。但是,一旦网络条件的实验结果为可用,这一时间周期可以显著减少(也可以增加信号发送支持,使得端点向混合器报告它们已准备好了)。
9.混合器混合正常的中间编码画面,并将混合的正常画面发送到接收端点(步骤610)。
10.从这点开始,会议进行,直到发送端点之一停止发送画面,或者接收端点断开连接。在两种情况之一中,并在优选实施例中,混合器停止混合,会议终止。
第二实施例这一实施例与在可能有错误倾向的环境中非同步源的混合有关。当发送终端的帧速率不同时(例如,一些发送终端位于PAL(逐行倒相)域,而另一些位于NTSC(国家电视标准委员会)域),或者当帧可跳过时,或者当传输中帧损坏或丢失时,会存在这种情况。混合处理要更复杂。
在这种环境中,在会议启动期间,混合器必须将最大帧速率用信号通知接收终端,该帧速率等于或者高于由发送终端使用的速率中最高的帧速率。可替换地,在能力交换期间,混合器可以强制发送终端达到某一帧速率,该帧速率低于或者等于由接收端点支持的帧速率。
一旦建立起在帧速率方面,接收端点“快于”或者至少与“最快的”发送端点一样“快”,混合处理就以通常的方式操作,除非混合器确定一个或多个输入画面是不可及时用于混合。画面可能会遗失,因为a)画面故意没有由发送端点编码(跳过的画面);b)由于发送端点的较低的帧速率,画面没有及时到达;或者c)画面在传输中丢失了。通过混合器观察片头中的frame_num,可在输入位流中区分情况(a)和(b)与情况(c)。
在情况(a)或(b)中,混合器将单个片引入混合画面中,该混合画面整体由以SKIP模式编码的宏块构成。这就强迫接收端点重新显示与之前画面中相同的内容。应当理解,对具有跳过的宏块的单个片进行编码不构成译码步骤,并且计算简单。替代地,混合器只是省略了发送没有数据可用于其的宏块。实际上,该省略将导致不兼容的位流,并在接收端点中引发误差隐藏算法。通常在端点中实施误差隐藏算法。
在情况(c)中,必须通知接收端点,如从接收端点所见(混合器的输出画面),输入画面的一部分在传输中已丢失,并需要隐藏。当使用H.264作为视频压缩标准时,可以优选地如下执行,由混合器通过产生片,覆盖没有宏块数据的适当空间区域,并将NAL单元头中的forbidden_zero_bit设置为1。
为了补偿网络抖动,并处理不同的帧尺寸,混合器应当具有合理尺寸的缓存器。优选地,在连接期间以适当的方式选择这些缓存器的尺寸,至少要考虑所测量的网络抖动和所测量的画面尺寸中的变化。
非H.264视频压缩当使用除了H.264基线之外的视频压缩标准/技术时,根据本发明,视频混合方法仍然适用,只要●会议中的所有端点支持同样的视频压缩标准。
●视频压缩标准/技术必须支持允许适当形式的编码画面的空间分段的机制。
当前,包含对本发明的充分支持的另一视频压缩标准是ITU-TRec.H.263,其中支持Annex R,并支持Annex K、子模式矩形片。由此,可遵照H.263制成第一和第二视频位流,其中支持片结构模式(Annex K中定义的SSM)、子模式矩形片,并支持独立分段解码模式(Annex R中定义的ISM)。使用SSM机制,将所述多个第一位流中至少一个的多个片映射到所述重建的第二位流中多个不重叠矩形空间区域的至少一个中。
级联MCU中视频流的分解当一个MCU的混合器(“发送混合器”)的输出送入一个或多个其他MCU(“中间MCU”)的一个或多个输入中时,使用级联MCU。级联MCU通常用于有几十个参加者的大型会议。但是,希望保密的情况中也使用这一技术。使用级联MCU,一个公司的许多参加者可以共享他们保密的MCU(“中间MCU”),并且只有中间MCU的输出信号离开公司的管理域。
如图7中所示,MCU 720中的“发送混合器”730从两个发送端点701、702接收两个压缩视频位流711、712。混合器730的输出722通过网络740发送到中间MCU 750。MCU 750具有混合器770和分解器760。分解器760用作来自发送混合器730的压缩视频位流722的终结器。在MCU 750内,输入视频流722分解成两个视频流761、762,传送到混合器770。混合器770还从另一个发送端点703接收视频位流713。混合器770将视频流761、762、713混合成混合视频流771,传送到接收端点780。
如图7中所示,MCU 720的发送端点701、702在域A中,而发送端点703和MCU 750在不同的域B中。域A可为例如公司LAN。域B可为例如另一个公司的LAN。应当知道,可以使用在其他域中的带有分解器的一个或多个MCU来形成更深的级联。
通常,在级联MCU环境中,从另一个MCU接收它的视频信息的MCU没有标准化装置来分离混合画面中的各种子画面。本发明允许MCU在从另一MCU接收的混合视频流中提取子流。例如,由MCU 750接收的视频流722由通过MCU 720中混合器730的两个位流711、712组成。使用分解器760,MCU 750能够在压缩域中提取子流761、762。子流761、762分别相关于子流711、712。使用子流761、762,混合器770可以采用更灵活的方式,与输入流713一起,组成输出流771。
下面使用图7和H.264标准作为例子,解释分解处理。
1.分解器760从发送混合器730接收画面和序列参数集。画面参数集包括H.264片组映射,用来识别混合流722的空间区域,该混合流来源于连接到发送混合器730(或者其他级联的MCU)的各种端点701、702。信号发送支持还用来a)指示使用适当的混合器730产生了在分解器760处终结的流722,和b)在混合流722中识别每个子流711、712(如,提供实名、呼叫者ID,或者识别的类似手段)。信号发送支持的精确性能在本发明的范围之外。为了从提取的子流761、762产生自持H.264编码流,分解器760执行以下步骤如下为每个子流761、762产生序列参数集当从混合位流722接收时复制序列参数集,并改变a)seq_parameter_set_id为1,b)pic_width_in_mbs_minus 1为以宏块为单位(16像素)测量的子流761、762的空间表示的水平尺寸,和c)pic_height_in_map_units_minus 1为以宏块为单位测量的子流的空间表示的垂直尺寸。应当注意,每个子流的空间表示的尺寸可从输入画面的片组映射中提取。将产生的序列参数集发送到分解器760的输出流761、762。
2.如下为每个子流761、762产生画面参数集当从混合流722接收时复制在画面参数集中出现的句法元素的值,并改变a)pic_parameter_set_id为1,b)seq_parameter_set_id为1,和num_slice_groups_minus 1为0,然后产生新的画面参数集。将产生的画面参数集发送到分解器760的输出流761、762。
3.将含有例如标识的IDR画面发送到分解器的输出流。发出针对在分解器760的输出流761、762的冻结画面请求。
4.重复步骤5至8,直到连接终止从输入NAL单元中去除片头。将它的内容和编码宏块数据的开头存储在局部变量中。在下面的描述中,根据H.264句法元素的名字,选择局部变量的名字。
5.如下修改局部变量first_mb_in_slice令xsize_i为重建的输入混合流722的空间区域的水平尺寸,以宏块为单位(16像素)测量。令xsize_o为将要产生的混合流771的空间区域的x水平尺寸,以宏块为单位(16像素)测量。令xpos、ypos分别为输出流761、762的空间表示中“窗口”的顶部、左侧宏块的x和y位置,输入流722的空间表示将复制到其中。
令mbpos_i为输入混合位流722中first_mb_in_slice之前的值。
/符号表示截断除法,%符号表示取模运算,∥符号之后的一行文字表示注释(c++句法)first_mb_in_slice=(-ypos*xsize_o)+ ∥“窗口”上方行中的宏块(mbpos_i/xsize_i)*xsize_o+ ∥“窗口”中的行(-xpos)+ ∥“窗口”左方的宏块列(mbpos_i%xsize_i); ∥“窗口”中的列6.设置pic_parameter_set_id为17.使用修改的局部变量,产生新的片头,当在步骤5之前存储时,将它与宏块数据连结。将修改的片发送到分解器的输出。应当注意,在分解处理期间,局部变量frame_num不改变。这样有助于(在连接到分解器输出的设备上)识别在发送混合器与分解器之间的传输路径上混合流任一丢失的画面。
为了将输入视频722分解成子流761、762,分解器760可具有与混合器中软件程序422(见图4)类似的软件程序,来修改例如first_mb_in_slice的局部变量,并改变句法元素的值。此外,软件程序422还可以具有伪码,用于执行一个或多个信号发送步骤,如图6中所示。
对本领域技术人员来说,相当的处理可以用于基于H.362w/Annex R,K(矩形片子模块)的级联MCU。
这样,虽然本发明相关于其一个或多个实施例进行了描述,但是本领域技术人员将会理解,只要不脱离本发明的范围,可以在其形式和细节上,进行前述和各种其他的改变、省略和偏移。
权利要求
1.一种压缩域中视频混合的方法,用于将多个第一视频位流组合成至少一个具有多个帧的第二视频位流,每个第一位流具有多个相应的帧,所述方法的特征在于将每个第一视频位流划分成多个片,每个片具有包括多个头字段的片头;改变片头中多个头字段中的一个或多个,用于在至少一些片中提供改变的片头;为每个所述至少一些片提供改变的片;以及根据改变的片产生第二视频位流,其中第二视频位流中每帧中使用的改变的片对应于在第一视频位流中多个相应帧中的相同帧。
2.根据权利要求1所述的方法,其特征在于,所述多个头字段中的一个或多个包括frame_num头字段。
3.根据权利要求1所述的方法,其特征在于,所述多个头字段中的一个或多个包括first_mb_in_slice头字段,并且该first_mb_in_slice具有指示所述每个片在第一视频位流的空间表示中的空间区域中的位置的值。
4.根据权利要求3所述的方法,其特征在于,通过将所述first_mb_in_slice的值改变为新值来改变该first_mb_in_slice头字段,该新值指示相应的改变的片在第二视频位流的空间表示中的空间区域中的位置。
5.根据权利要求4所述的方法,其特征在于,所述first_mb_in_slice的新值如下计算first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i),其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中的空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中的空间区域的水平尺寸;xpos、ypos表示在第二视频位流的空间表示中的、用于放置第一视频位流的空间表示中所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
6.根据权利要求1所述的方法,其进一步的特征在于,转换第二视频位流,用于提供该第二视频位流的空间表示。
7.根据权利要求1所述的方法,其进一步的特征在于,识别第一视频位流中的片,以便允许将相同帧中改变的片组合成第二位流中的帧之一。
8.根据权利要求1所述的方法,其特征在于,一个或多个第一视频位流包括由多个另外的视频位流构成的混合位流,所述方法进一步的特征在于分解该混合位流,用于提供多个分量视频位流,每个分量视频位流对应于该另外的视频位流之一,以便允许分量视频位流与一个或多个其他第一视频位流组合,用于产生第二视频位流。
9.根据权利要求1所述的方法,其特征在于,所述产生包括将所述多个第一视频位流的至少一个的多个片映射到第二视频位流的空间表示中多个不重叠矩形区的至少一个。
10.根据权利要求9所述的方法,其特征在于,所述第一和第二视频位流遵照H.264。
11.根据权利要求9所述的方法,其特征在于,所述映射基于H.264的片组概念。
12.根据权利要求1所述的方法,其特征在于,所述第一和第二视频位流遵照H.263,其中支持片结构模块(SSM,在Annex K中定义)、子模式矩形片,并支持独立分段解码模式(ISM,在Annex R中定义)。
13.根据权利要求12所述的方法,其特征在于,使用SSM机构,将所述多个第一位流中至少一个的多个片映射到所述重建的第二位流中多个不重叠矩形空间区域的至少一个。
14.一种用于在压缩域中视频混合的方法,用于将多个第一视频位流组合成至少一个第二视频位流,每个第一视频位流和第二视频位流具有等同的空间表示,其中该第二视频位流包括多个第二片,每个第二片具有包括多个头字段的片头,并且其中每个第一视频位流包括多个第一片,每个第一片具有包括多个头字段的片头,所述方法的特征在于解析第一片的片头,用于获得多个头字段中的值,其中一个值指示相应的第一视频位流的空间表示中的空间区域;修改所述一个值,用于提供指示第二视频位流的空间表示中的空间区域的新值;根据新值产生新的片头,用于提供修改的第一片;以及将第一视频位流组合成所述一个第二视频位流,使得根据每个第一视频位流的修改的第一片,构成第二视频位流中的每个第二片。
15.根据权利要求14所述的方法,其特征在于,所述一个值是first_mb_in_slice,指示第一片在相应的第一视频流的空间表示中的空间区域中的位置。
16.根据权利要求15所述的方法,其特征在于,所述first_mb_in_slice的新值如下计算first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i),其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中的空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中的空间区域的水平尺寸;xpos、ypos表示在第二视频位流的空间表示中的、用于放置第一视频位流的空间表示中的所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
17.根据权利要求14所述的方法,其特征在于,一个或多个第一视频位流包括由多个另外的视频位流构成的混合位流,所述方法进一步的特征在于分解该混合位流,用于提供多个分量视频位流,每个分量视频位流对应于该另外的视频位流之一,以便允许该分量视频位流与一个或多个其他第一视频位流组合,用于产生第二视频位流。
18.一种视频混合器,可操作地连接到多个发送端点,以从其接收多个第一视频位流,用于在压缩域中将多个第一视频位流组合成至少一个具有多个帧的第二视频位流,每个第一位流具有在多个相应帧中的多个片,每个片具有包括多个头字段的片头,所述混合器特征在于用于改变片头中多个头字段中的一个或多个的机构,用于根据改变的一个或多个头字段,提供至少一些片中的改变的片;以及用于组合改变的片以提供第二视频位流的机构,其中在第二视频位流中每帧中使用的改变的片对应于在第一视频位流中多个相应帧中的相同帧。
19.根据权利要求18所述的视频混合器,其特征在于,所述多个头字段中的一个或多个包括first_mb_in_slice头字段,并且该first_mb_in_slice具有指示所述片在第一视频位流的空间表示中的空间区域中的位置的值。
20.根据权利要求19所述的视频混合器,其特征在于,通过将所述first_mb_in_slice的值改变为指示所述改变的片在第二视频位流的空间表示中的空间区域中的位置的新值,来改变first_mb_in_slice头字段。
21.根据权利要求20所述的视频混合器,其特征在于,所述first_mb_in_slice的新值如下计算first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize_o+xpos+(mbpos_i%xsize_i),其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中的空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中的空间区域的水平尺寸;xpos、ypos表示在第二视频位流的空间表示中的、用于放置第一视频位流的空间表示中所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
22.根据权利要求18所述的视频混合器,其特征在于,所述组合包括将所述多个第一视频位流中至少一个的多个片映射到第二视频位流的空间表示中多个不重叠矩形区域中的至少一个。
23.一种用于支持如权利要求1所主张的方法的通信网络的信号发送方法,其中该通信网络包括用于提供多个第一视频位流的多个发送端点以及用于接收所述至少一个第二视频位流的至少一个接收端点,所述信号发送方法的特征在于步骤1商定由接收端点和发送端点使用的画面格式;步骤2向接收端点发送控制信息,以使接收端点准备接收所述第二视频位流。
24.根据利要求23所述的信号发送方法,其特征在于,步骤1中的所述商定包括产生针对接收端点的画面格式布局;针对多个发送端点中每一个,根据所述布局,识别至少一个画面格式;以及将针对多个发送端点中每一个的所述识别的画面格式通知该多个发送端点。
25.根据权利要求24所述的信号发送方法,其特征在于,步骤1中的所述商定进一步包括响应于所述通知,从多个发送端点中的每一个接收一个商定的画面格式。
26.根据权利要求25所述的信号发送方法,其特征在于,多个发送端点中的每一个提供包括指示所述一个商定的画面格式的信息的参数集,并且其中步骤2中的所述发送进一步包括步骤根据由多个发送端点中的每一个提供的所述信息,产生输出参数集,以便根据输出参数集,向接收端点提供控制信息。
27.一种嵌入计算机可读介质中的软件产品,用于压缩域视频混合,用于将多个第一视频位流组合成至少一个具有多个帧的第二视频位流,每个第一位流具有多个相应的帧,其中每个第一视频位流划分成多个片,每个片具有包括多个头字段的片头,所述软件产品的特征在于用于执行以下内容的多个代码改变片头中多个头字段中的一个或多个,用于在至少一些片中提供改变的片头;为所述至少一些片中的每个提供改变的片;以及根据改变的片产生第二视频位流,其中在第二视频位流中的每帧中使用的改变的片对应于在第一视频位流中多个相应帧中的相同帧,并且其中所述多个头字段中的一个或多个包括first_mb_in_slice头字段,该字段具有指示所述每个片在第一视频位流的空间表示中的空间区域中的位置的值。
28.根据权利要求27所述的软件产品,其特征在于,通过将所述值改变为新值来改变first_mb_in_slice头字段,该新值指示相应的改变的片在第二视频位流的空间表示中的空间区域中的位置,所述软件产品进一步包括用于如下计算所述新值的代码first_mb_in_slice=ypos*xsize_o+(mbpos_i/xsize_i)*xsize o+xpos+(mbpos_i%Xsize_i),其中/表示截断除法;%表示取模运算符;xsize_i表示第一视频位流的空间表示中空间区域的水平尺寸;xsize_o表示第二视频位流的空间表示中空间区域的水平尺寸;xpos、ypos表示在第二视频位流的空间表示中、用于放置第一视频位流的空间表示中所述空间区域的位置的坐标;以及mbpos_i表示所述first_mb_in_slice的值。
29.根据权利要求27所述的软件产品,进一步包括用于以下内容的代码识别第一视频位流中的片,以便允许将相同帧中的改变的片组合到第二位流中的帧之一。
30.根据权利要求27所述的软件产品,其特征在于,在多点控制单元中执行所述压缩域视频混合,该多点控制单元可操作地连接到提供多个第一视频位流的多个发送端点,以及连接到接收第二视频位流的接收端点,所述软件产品进一步包括用于以下内容的代码产生用于接收端点的画面格式布局;根据该布局,为多个发送端点中的每个识别至少一个另外的画面格式;以及将用于多个发送端点中的每个的所述识别画面格式通知多个发送端点。
31.根据权利要求30所述的软件产品,其特征在于,多个发送端点中的每个响应于所述通知提供参数集,该参数集包括指示来自多个发送端点中的每个的一个商定的画面格式的信息,该软件产品进一步包括用于以下内容的代码根据由多个发送端点中的每个提供的所述信息,产生输出参数集,以便根据输出参数集,将控制信息提供给接收端点。
32.根据权利要求27的软件产品,其特征在于,一个或多个第一视频位流包括由多个另外的视频位流构成的混合位流,所述软件产品进一步包括用于以下内容的代码分解该混合位流,用于提供多个分量视频位流,每个分量视频位流对应于该另外的视频位流之一,以便允许分量视频位流与一个或多个其他第一视频位流组合,用于产生。
全文摘要
一种用于压缩域视频混合的方法和系统,用于将输入视频流空间组合成输出视频流。使用H.264作为例子,将每个输入流划分成多个片,每个片具有包含first mb in slice头字段的多个头字段。根据输出流中画面格式,修改每个输入流的first mb in slice,使得修改的first mb in slice头字段指示输出流的空间表示中的位置,在该位置放置输入流的片。使用H.264的片组机制,将片的第二和随后的宏块的空间位置映射到适当位置。如果输入流由上游混合器在先前混合,那么在将它们与其他输入流组合之前,可以使用分解器将这些混合流分离成分量流。
文档编号H04N5/265GK101095350SQ200580045841
公开日2007年12月26日 申请日期2005年12月20日 优先权日2005年1月4日
发明者S·文格尔, M·阿尼克瑟拉 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1