一种视频码流伽玛特性校正方法及多点控制单元转让专利

申请号 : CN200510124080.2

文献号 : CN1852414B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗忠

申请人 : 华为技术有限公司

摘要 :

本发明涉及多媒体通信,特别涉及一种视频通信中视频码流伽玛特性校正方法及多点控制单元,以解决现有多媒体通信中视频图像的伽玛失真问题。本发明所述方法通过在视频码流中携带发送终端的伽玛特性参数,使接收终端进行一次校正,或者多点控制单元和接收终端分步校正视频图像中的伽玛失真;本发明所述的多点控制单元中的多点处理器包括:伽玛特性参数存储模块,用于存储视频图像发送终端的伽玛特性参数;伽玛特性校正模块,连接所述伽玛特性参数存储模块,用于根据视频图像发送终端的伽玛特性参数校正所述视频图像中的伽玛特性。应用本发明所述方法可以在多媒体通信中实现了伽玛校正,提高了视频通信的质量和用户体验。

权利要求 :

1.一种视频通信中视频码流伽玛特性校正方法,其特征在于,包括如下步骤:A1、发送终端向接收终端发送视频码流,所述视频码流中包括根据发送终端视频图像生成的视频数据和发送终端的伽玛特性参数信息;所述发送终端的伽玛特性参数信息为所述视频图像在其采集、处理和形成视频码流的过程中,发送终端经过的每一个伽玛特性环节的伽玛特性环节的伽玛特性参数,以及各伽玛特性环节的级联顺序,或者为所述视频图像在其采集、处理和形成视频码流的过程中,发送终端经过的所有伽玛特性环节确定的等效伽玛特性参数;

A2、接收终端接收所述视频码流,根据所述视频数据还原所述视频图像,并根据本端伽玛特性参数信息和发送终端伽玛特性参数信息对该视频图像进行伽玛校正。

2.如权利要求1所述的方法,其特征在于,所述步骤A1中还包括:

A11、至少一个发送终端将所述视频码流发送给多点控制单元;

A12、多点控制单元将所述视频码流发送给接收终端。

3.如权利要求2所述的方法,其特征在于,所述步骤A12中:多点控制单元将来自至少两个发送终端的视频码流合成为一个多画面视频码流后发送给接收终端。

4.如权利要求3所述的方法,其特征在于,

所述步骤A12中,多点控制单元分别根据每一个发送终端的视频数据还原出对应的视频图像,将所述各个视频图像分别作为子画面并拼装成一个多画面图像,然后生成所述多画面图像的视频数据,并将该多画面图像的视频数据和每一个子画面对应的伽玛特性参数信息合成为一个多画面视频码流后发送给接收终端,其中,所述子画面的伽玛特性参数信息顺序根据子画面的拼装位置和顺序确定;以及所述步骤A2中,接收终端根据所述多画面图像的视频数据还原出所述多画面图像,并根据本端伽玛特性参数信息和每一个子画面对应的伽玛特性参数分别校正每一个子画面的视频图像。

5.如权利要求3所述的方法,其特征在于,

所述步骤A12中,多点控制单元分别提取每一个发送终端视频码流中的视频数据并根据子画面拼装顺序直接进行复合,然后将复合后的视频数据和每一个子画面对应的伽玛特性参数信息合成为一个多画面视频码流后发送给接收终端,其中,所述子画面的伽玛特性参数信息顺序根据子画面的拼装位置和顺序确定;以及所述步骤A2中,接收终端从复合后的视频数据中提取各子画面对应的视频数据并还原出各子画面的视频图像,然后根据本端伽玛特性参数信息和每一个子画面对应的伽玛特性参数分别校正每一个子画面的视频图像,再将校正后的各个子画面根据拼装顺序拼装为多画面图像。

6.如权利要求1~5任意之一所述的方法,其特征在于,在所述视频码流中还设置有标识视频图像存在伽玛失真的指示信息;以及所述步骤A2中,接收终端根据所述指示信息确认所述多画面视频码流中携带有所述伽玛特性参数信息。

7.如权利要求1~5任一所述的方法,其特征在于,所述方法中:

发送终端将本终端每一帧视频图像的伽玛特性参数信息分别对应该视频图像的视频数据携带在所述视频码流中发送给接收终端;或者发送终端将每隔一定周期将伽玛特性参数信息携带在所述视频码流中发送给接收终端,或者发送终端在通信开始时将初始伽玛特性参数信息携带在所述视频码流中发送给接收终端,并在通信过程中,当本端伽玛特性参数发生变化时,再将更新的伽玛特性参数信息携带在所述视频码流中发送给接收终端。

8.如权利要求1~5任一所述的方法,其特征在于,所述每一个伽玛环节的伽玛特性参数或等效伽玛特性参数包括对应设定等级的每一级输入亮度信号值的输出亮度值集合。

9.如权利要求8所述的方法,其特征在于,所述输入亮度信号值的设定级别是0-255级,亮度值的取值为整数。

10.如权利要求9所述的方法,其特征在于,在所述视频码流中扩展伽玛参数信息域,并将所述输入亮度信号值集合和/或输出亮度信号值集合组成二进制码流并携带在所述伽玛参数信息域中进行传送。

11.如权利要求10所述的方法,其特征在于,所述伽玛参数信息域分别包括伽玛参数信息和位于该伽玛参数信息两端的起始定界符和结束定界符,该起始定界符和结束定界符用于确定该信息域的范围。

12.如权利要求11所述的方法,其特征在于,当所述视频码流为采用H.264协议编码时,在H.264码流的补充增强信息SEI域中扩展用于携带所述伽玛参数信息的消息。

13.一种视频通信中视频码流伽玛校正方法,其特征在于,包括如下步骤:B1、视频码流发送终端向多点控制单元发送第一视频码流,所述第一视频码流中包括根据发送终端视频图像生成的视频数据和发送终端的伽玛特性参数信息;

B2、多点控制单元接收所述第一视频码流,根据所述视频数据还原所述视频图像,并根据发送终端的伽玛特性参数信息对于所述视频图像进行一次伽玛校正;然后B3、生成经过一次校正的视频图像的视频数据并携带在第二视频码流中发送给接收终端。

14.如权利要求13所述的方法,其特征在于,所述步骤B3之后还包括步骤B4、接收终端接收所述第二视频码流,还原校正后视频图像并根据本端伽玛特性参数再次进行校正。

15.如权利要求14所述的方法,其特征在于,

所述步骤B2中,多点控制单元将来自至少两个发送终端的第一视频码流并分别校正视频图像并拼装为多画面图像;以及所述步骤B3中,根据所述多画面图像生成多画面图像视频数据并携带在所述第二视频码流中发送给接收终端。

16.如权利要求15所述的方法,其特征在于,所述步骤B4中,接收终端根据所述多画面图像的视频数据还原出所述多画面图像,并分别根据本端伽玛特性参数再次校正每一个子画面的视频图像。

17.如权利要求13~16任意之一所述的方法,其特征在于,

所述第一视频码流中设置有标识视频图像存在伽玛失真的第一指示信息;和/或所述第二视频码流中设置有标识视频图像已经经过一次伽玛校正的第二指示信息。

18.如权利要求17所述的方法,其特征在于,多点控制单元根据所述第一指示信息确认所述第一视频码流中携带有发送终端的伽玛特性参数信息。

19.如权利要求13、14或15所述的方法,其特征在于,所述的发送终端伽玛特性参数信息为所述视频图像在其采集、处理和形成视频码流的过程中:在发送终端经过每一个伽玛特性环节的伽玛特性参数,以及各伽玛特性环节的级联顺序;或者发送终端根据经过的所有伽玛特性环节确定的等效伽玛特性参数。

20.如权利要求19所述的方法,其特征在于,所述方法中:

发送终端将每一个视频图像的伽玛特性参数信息分别对应该视频图像的视频数据携带在所述视频码流中发送给接收终端;或者发送终端将每隔一定周期将伽玛特性参数信息携带在所述视频码流中发送给接收终端,或者发送终端在通信开始时将初始伽玛特性参数信息携带在所述视频码流中发送给接收终端,并在通信过程中,当本端伽玛特性参数发生变化时,再将更新的伽玛特性参数信息携带在所述视频码流中发送给接收终端。

21.如权利要求19所述的方法,其特征在于,所述每一个伽玛环节的伽玛特性参数或等效伽玛特性参数包括对应设定等级的每一级输入亮度信号值的输出亮度值集合。

22.如权利要求21所述的方法,其特征在于,所述输入亮度信号值的设定级别是0-255级,亮度值的取值为整数。

23.如权利要求22所述的方法,其特征在于,在所述视频码流中扩展伽玛参数信息域,并将所述输入亮度信号值集合和/或输出亮度信号值集合组成二进制码流并携带在所述伽玛参数信息域中进行传送。

24.如权利要求23所述的方法,其特征在于,所述伽玛参数信息域分别包括伽玛参数信息和位于该伽玛参数信息两端的起始定界符和结束定界符,该起始定界符和结束定界符用于确定该伽玛参数信息域的范围。

25.如权利要求13、14或15所述的方法,其特征在于,当所述视频码流为采用H.264协议编码时,在H.264视频码流的补充增强信息SEI域中扩展用于携带所述伽玛参数信息的消息。

26.一种多点控制单元,包括多点处理器,其特征在于,所述多点处理器包括:伽玛特性参数存储模块,用于存储视频图像发送终端的伽玛特性参数;

伽玛特性校正模块,连接所述伽玛特性参数存储模块,用于根据视频图像发送终端的伽玛特性参数校正所述视频图像中的伽玛特性。

27.如权利要求26所述的多点控制单元,其特征在于,所述多点处理器还包括:视频码流收发模块,用于收发视频码流,所述视频码流中包含视频图像数据和该视频码流发送终端的伽玛特性参数信息;

视频数据编解码模块,连接在所述视频图像收发模块和伽玛特性校正模块之间,用于从所述视频码流中解码出视频数据并送入伽玛特性校正模块进行校正;或者,根据校正后的视频图像编码视频数据。

28.如权利要求27所述的多点控制单元,其特征在于,所述多点处理器还包括:伽玛特性参数信息提取及附加模块,连接在所述视频图像收发模块和视频数据编解码模块之间,用于从收到的视频码流中提取发送终端的伽玛特性参数信息并存入伽玛特性参数存储模块;或者,从伽玛特性参数存储模块提取伽玛特性参数信息并附加到待发送的视频码流中.

29.如权利要求28所述的多点控制单元,其特征在于,所述多点处理器还包括:多画面拼装模块,连接所述伽玛特性校正模块,用于将收到的至少两个终端的视频图像拼装为一个多画面图像,并将该多画面图像送入视频数据编解码模块或伽玛特性参数信息提取及附加模块。

30.如权利要求26所述的多点控制单元,其特征在于,所述伽玛特性校正模块中包括:等效伽玛特性参数计算子模块,用于根据发送终端的单伽玛环节特性参数计算等效伽玛特性参数并输入伽玛校正发生子模块;

伽玛校正发生子模块,用于根据等效伽玛特性参数校正视频图像的伽玛特性。

31.如权利要求26所述的多点控制单元,其特征在于,所述多点控制单元还包括:多点控制器,连接所述多点处理器,用于向多点处理器发送进行伽玛特性校正的控制信号。

32.如权利要求27~31任意之一所述的多点控制单元,其特征在于,所述多点处理器并行设置为多个。

说明书 :

技术领域

本发明涉及多媒体通信,特别涉及一种视频通信中视频码流伽玛特性校正方法及多点控制单元。

背景技术

视频通信目前正在随着宽带网络的迅速发展而得到日益广泛的应用,在国内和国际上,视频会议和可视电话业务正在成为NGN(Next GenerationNetwork,下一代网络)上的基本业务。各国的电信运营商也非常重视这个市场机会,可以预期在未来几年中,视频通信业务将成为运营商重要的业务增长点。发展此类业务的一个关键问题是提高端到端(End-to-end)的用户体验(UserExperience,或者叫做Quality of Experience)。用户体验中除了网络的QoS(丢包,延迟,抖动,R因子等)参数外,对于视频,因为各个环节引起的Gamma非线性问题,造成对于亮度信号的畸变(Distortion),也是影响最终用户体验的重要因素。但是目前,提高端到端用户体验的方法和技术主要集中在保证网络QoS和视频压缩编码相关的前后处理(Pre-processing,Post-processing)方面,而对于Gamma特性引起的亮度畸变问题缺乏关注和系统的解决方法,但是该问题的严重性已经引起了一些国际大电信运营商的关注。法国电信(FranceTelecom)在国际电信联盟ITU-T近期就提出了要在视频通信中考虑Gamma特性对于通信用户体验的影响,并建议解决此类问题。
视频通信过程中,在一个视频通信终端(以下简称终端)中,从需要被传送的场景(人物、背景、文件等)的光信号进入到摄像机/摄像头,经过A/D转换成数字图像信号,再经过压缩编码,传送出去到达对方终端经过去压缩(Decompression)解码还原为数字图像信号,然后再在显示设备上显示出来,最终又变成光信号被人眼感知。这个过程中图像亮度信号(Luminance,这里是一种广义的亮度信号,即一开始的光信号,到电信号,再到数字化的图像亮度/灰度信号,每个阶段的信号都含有亮度信号的信息,因此广义来说,亮度信号经过了多个环节)经过了多个环节。
如图1所示,图1为环节Gamma特性的模型示意图,Gamma特性就是一个环节的亮度信号输入-输出关系不是线性的,而是一种非线性。Gamma非线性环节畸变的影响如图2所示,上面的一行灰度方块亮度是线性递增的,从0.1到1.0,下面一行是经过Gamma非线性环节畸变的,亮度是按照幂函数规律递增的。
在实际中,Gamma非线性是由不同原因引起的,例如:CRT(Cathode RayTube,阴极射线管)显示器的Gamma特性在理想状况下满足公式1:
Lout=Lin2.2    (1)
而对应的摄像机/摄像头的理想Gamma满足公式2:
Lout=Lin0.45    (2)
从Gamma问题的起源来看,起源于CRT显示器,因为其Gamma值是2.2,为了补偿掉这个非线性,在摄像机中人为引入了Gamma值0.45.如果在系统中只存在两个Gamma环节:CRT显示器和摄像机,那么可以实现完全的Gamma校正.需要说明的是,这里的输入和输出亮度信号都是在各自的坐标空间中进行了规一化(Normalized),即0≤Lout≤1,0≤Lin≤1。而其它类型的显示器,比如液晶显示器的Gamma函数形式或者不同、或者虽然形式上也是幂函数但是参数不同。
如图3所示,图3为多个环节级联(Cascading或者叫做串联)起来环节Gamma特性的模型示意图,总的Gamma特性等于各个环节Gamma函数的复合(Composition),满足公式3:
GCT(.)=G(1)(.)oG(2)(.)oG(3)(.)........G(n-1)(.)oG(n)(.)
lout=GCT(lin)=G(n)(G(n-1)(G(n-2)(.......G(2)(G(1)(lin)))))    (3)
“。”表示函数的复合运算。CT表示Cascaded Total,即级联总Gamma的意思。
理想的情况是输入光信号从进入摄像头到最终在显示屏上显示输出光信号,输入和输出亮度信号之间存在线性关系,即:Lout=Lin,这样人看到的景物才和原来的完全一样,用户体验最好。
要获得线性关系,必须对于具有非线性Gamma特性环节进行Gamma校正(Gamma Correction)。如图4所示,对于一个环节来说,其Gamma特性给定,那么可以用另外一个校正环节和它进行级联,来使得级联后总的Gamma特性称为真正的线性关系,从而达到了补偿掉给定环节非线性的目的,校正环节的模型为Gamma特性等效模型的逆模型,如果等效模型可以用函数关系式表示,则逆模型的函数关系式为其反函数。显然,Gg(.)和Gc(.)互为反函数。一般情况下,对于一个函数,要获得其反函数不一定有解(或者即使解存在,也无法用计算的方法获得)。
实际应用中更多的情况如图5所示,校正环节需要插入到前后两个给定环节之间,此时Gc(.)情况更加复杂,Gc(.)和Ga(.)或者Gp(.)不再是简单的反函数关系。
视频通信中,终端内部存在多个环节,每个环节都有其Gamma特性,它们之间级联起来,目前还没有一般性的方法来实现从光信号进入摄像机/摄像头到显示器显示图像的Gamma校正方法。因此,因为Gamma问题引起的视频质量下降还没有一般性的方法。同时,不同终端之间的Gamma特性参数相互是不知道的,那么视频从终端A发送到终端B后,如何实现Gamma校正,也是一个没有解决的问题。在多方视频通信中,情况更加复杂,因为涉及到MCU(MultipointControl Unit,多点控制单元)对于多个终端来视频进行混合,然后发给各个终端,多画面图像中各个子图像的Gmma特性都不同,要实现Gamma正更加困难。
MCU的主要功能是多点控制MC(Multipoint Control)和多点处理(MPMultipoint Processing),MC包括通信过程控制、会议控制等,MP包括媒体处理、视频码流的转发或者多画面合成、音频的混合等。与本发明相关的主要是MP功能,更严格来说,是MP中视频处理的功能。在视频方面,MCU可以工作在如下状态,其中前两种也被称为视频转发模式:
1、会场自由观看状态
在这种状态下,参加一个会议中的每个终端都可以自由选择观看任何其它终端的会场视频,MCU负责将被收看的终端视频转发给接收终端。当然有多少终端能够选择观看其它会场受到多点控制单元能够支持最大的自由观看会场数决定的(取决于设备能力或者运营控制系统的设定)。比如终端A可以选择观看终端B的会场视频,终端B又可以选择终端C来观看等;
2、会场指定观看(即会场广播)状态
由会议中的主席终端(如果存在的话)或者会议组织者通过运营控制系统指定会议中的所有终端都观看某个终端会场的视频,MCU负责将被收看的终端视频,即被指定会场的视频广播出去。比如终端X被选择,那么其它终端都观看X的会场视频;
3、多画面状态
MCU将多个终端会场的视频合成为多画面,多画面的布局(包含多少个会场,这些会场图像如何排列和相对大小等)由会议主席终端(如果存在的话)或者会议组织者通过运营控制系统来指定的。如果被选择的终端会场为X1、X2、X3......XC,那么一种可能的布局如图6所示。
MCU合成多画面的主要方法有如下两类:
第一类为先解码再编码的合成模式,MCU将来自各个终端的视频码流首先进行去压缩解码,恢复成为未压缩的数字视频格式,然后再按照某种多画面的具体布局组合拼装成多画面图像,再对多画面图像进行压缩编码形成新的多画面视频码流;
第二类为直接合成模式,MCU将各种终端的视频码流按照一定符合标准的语法组合成新的码流。比如H.261、H.263、H.264协议在语法上都允许这样的组合。一般来说,直接合成有一个问题就是,终端需要首先降低视频图像的分辨率,比如正常图像是CIF(Common Interchange Format),而为了合成一个包含4个子画面的多画面(2×2布局),则需要在终端把分辨率降低到原来的1/4,即QCIF(Quarter CIF)格式。这种情况局限了来自该终端的图像只能用于合成多画面,而不能以正常分辨率被其他终端观看。当然这种限制在具体应用环境中并不造成很大的问题,而直接合成模式带来的好处也是显然,直接合成减少了解码和重新编码带来的问题,例如需要高的处理能力和损伤图像质量等问题,可以降低MCU成本并提高通信容量和通信质量,因此现在也广泛被采用。
因为MCU要进行处理和计算,因此一个MCU能够控制的终端是有限的,为了组成更大的通信网络,支持更多的终端,可以采用如图7所示的多个MCU级联的方式,例如最上层的MCU1控制下面的第二层的MCU2.1至2.m(共m个),而后者分别控制若干个第三层的MCU(共n个)。每一层的MCU可以直接控制一定数量的终端,也可以同时通过其所控制的下层MCU间接控制一定数量的终端。
如图8所示,每一个MCU从功能上在内部可以进行如下分解:一个多点控制器(Multipoint Controller)和多个多点处理器(Multipoint Processor)。这种分解模型(Decomposed Model)目前非常流行,这样可以在产品的实现上更加灵活,提供更多类型的MCU类的电信设备。通过将多个多点处理器进行堆叠(Stack)扩大处理能力,也能够达到支持更大多媒体通信网络组网的目的。
目前的技术都是基于如下假设,在每个终端上来进行Gamma校正:
1、每个终端的显示设备和摄像机/摄像头都是按照标准的Gamma特性要求设计和制造,即显示器的Gamma参数为2.2,而摄像机/摄像头的Gamma参数为0.45;
2、在摄像机/摄像头和显示设备中间没有其它的Gamma环节;
3、每个终端发送出去的视频码流数据都经过了Gamma校正,并且这种校正是基于能够和对方终端的显示设备配合来实现的。
在以上假设下,每个终端在本地实现Gamma校正,校正方法如图4所示,现有校正方法的缺点是显然的,因为所要求的三个假设在目前情况下已经越来越不能成立了.现有技术中,高端的摄像机一般都能够提供Gamma校正功能,但是大量低端的摄像头却不能提供.如果摄像机能够提供Gamma校正功能,则意味着摄像机作为一个整体,对外的Gamma特性由公式2给出.而现实情况是目前电信运营商都在大力推动面向公众的视频通信,必然要提供非常便宜的终端才能吸引广大公众,这样使用廉价的摄像头是不可避免的.这类廉价摄像头可能存在非线性的Gamma特性,但不是公式2给出的形式,甚至根本不具有幂函数的形式.根据实际的测试结果,发现了很多基于CCD(Charge CoupledDevice)的廉价摄像头的Gamma特性,最接近的幂函数是Lout=Lin0.22左右,并且很多数据点偏离这条曲线,因此很难说是一个幂函数曲线。另外,因为在终端系统中,完全可能存在其它的Gamma环节,因此即使摄像机具有了由公式2给出的标准的Gamma特性,也可能无法达到完全Gamma校正的效果。
如果要进行Gamma校正,必须使用伽玛环节的Gamma特性参数,高端设备符合理想的Gamma特性,可以利用例如公式1或2的幂函数,包括纯幂函数和带有偏移的幂函数形式。但是大多数中端或低端设备的Gamma特性只能采用如表1所示的查表(LUT=Look-Up Table)表示方法。
因为Gamma函数的定义域和值域都是[0,1]区间,因此,可以采用离散化的方式来表示这种函数关系。如表1所示,该表的形式是两列N行,左边是Lin的N个离散值,右边是对应的Lout的N的离散值。因此,要根据Lin的数值来计算对应的Lout,只要查表就可以完成了。如果Lin的数值不在左列中,可以采用插值的方法来计算对应的Lout值。
表1.Gamma参数的查表表示方法
  Lin(输入)离散值   Lout(输出)对应值   Lin(0)   Lout(0)   Lin(1)   Lout(1)   Lin(2)   Lout(2)  .............  ............. Lin(N-1) Lout(N-1)
Gamma特性参数的两种方式相比来说,有各自的优点和不足。函数表示简洁,传递参数量很少。但是计算麻烦,尤其计算浮点数的非整数次方是非常耗时的。采用查表表示,计算简洁,并且可以适应任意函数形式,通用性好,但是需要传递参数较多。
理想状态是很难获得的,因此用纯幂函数形式,或者带有偏移的幂函数形式来表示Gamma特性,在有些情况下可能是很不精确的。比如如果摄像头是廉价的摄像头,可能其Gamma特性就不是幂函数形式。这种情况下,函数表示方式就失效了。目前,电信运营商都在大力推动面向公众的视频通信,必然要提供非常便宜的终端才能吸引广大公众,这样使用廉价的摄像头是不可避免的。
在现有技术一中,函数表示都不够精确,过于简单化和理想化,处于简化的需要,在对于Gamma校正精度要求不高的情况下是可以使用。但是,在一些对于质量要求很高的应用场景下,采用了满足公式4和公式5分段函数模型:
Lout=4.5Linif0Lin0.0181.099Lin0.45-0.099if0.018<Lin1---(4)
Lout=14.5Linif0Lin0.08111.099(Lin+0.099)2.2if0.018<Lin1---(5)
其中,公式4是摄像机的Gamma特性表示,公式5是CRT显示器的Gamma特性表示。分段函数的表述虽然比较精确,但是适用范围狭窄,只能适合高端(所谓广播级)设备,对于大量中端和低端的设备,尤其是摄像头无法很好使用。

发明内容

本发明提供一种视频通信中视频码流伽玛特性校正方法及多点控制单元,以解决现有多媒体通信中视频图像的伽玛失真问题。
一种视频通信中视频码流伽玛特性校正方法,包括如下步骤:
A1、发送终端向接收终端发送视频码流,所述视频码流中包括根据发送终端视频图像生成的视频数据和发送终端的伽玛特性参数信息;所述发送终端的伽玛特性参数信息为所述视频图像在其采集、处理和形成视频码流的过程中,发送终端经过的每一个伽玛特性环节的伽玛特性环节的伽玛特性参数,以及各伽玛特性环节的级联顺序,或者为所述视频图像在其采集、处理和形成视频码流的过程中,发送终端经过的所有伽玛特性环节确定的等效伽玛特性参数;
A2、接收终端接收所述视频码流,根据所述视频数据还原所述视频图像,并根据本端伽玛特性参数信息和发送终端伽玛特性参数信息对该视频图像进行伽玛校正。
所述步骤A1中还包括:
A11、至少一个发送终端将所述视频码流发送给多点控制单元;
A12、多点控制单元将所述视频码流发送给接收终端。
所述步骤A12中:多点控制单元将来自至少两个发送终端的视频码流合成为一个多画面视频码流后发送给接收终端。
其中:所述步骤A12中,多点控制单元分别根据每一个发送终端的视频数据还原出对应的视频图像,将所述各个视频图像分别作为子画面并拼装成一个多画面图像,然后生成所述多画面图像的视频数据,并将该多画面图像的视频数据和每一个子画面对应的伽玛特性参数信息合成为一个多画面视频码流后发送给接收终端,其中,所述子画面的伽玛特性参数信息顺序根据子画面的拼装位置和顺序确定;以及所述步骤A2中,接收终端根据所述多画面图像的视频数据还原出所述多画面图像,并根据本端伽玛特性参数信息和每一个子画面对应的伽玛特性参数分别校正每一个子画面的视频图像。
其中:所述步骤A12中,多点控制单元分别提取每一个发送终端视频码流中的视频数据并根据子画面拼装顺序直接进行复合,然后将复合后的视频数据和每一个子画面对应的伽玛特性参数信息合成为一个多画面视频码流后发送给接收终端,其中,所述子画面的伽玛特性参数信息顺序根据子画面的拼装位置和顺序确定;以及所述步骤A2中,接收终端从复合后的视频数据中提取各子画面对应的视频数据并还原出各子画面的视频图像,然后根据本端伽玛特性参数信息和每一个子画面对应的伽玛特性参数分别校正每一个子画面的视频图像,再将校正后的各个子画面根据拼装顺序拼装为多画面图像.
在所述视频码流中还设置有标识视频图像存在伽玛失真的指示信息;以及所述步骤A2中,接收终端根据所述指示信息确认所述多画面视频码流中携带有所述伽玛特性参数信息。
本发明所述另一种视频通信中视频码流伽玛特性校正方法,包括如下步骤:
B1、视频码流发送终端向多点控制单元发送第一视频码流,所述第一视频码流中包括根据发送终端视频图像生成的视频数据和发送终端的伽玛特性参数信息;
B2、多点控制单元接收所述第一视频码流,根据所述视频数据还原所述视频图像,并根据发送终端的伽玛特性参数信息对于所述视频图像进行一次伽玛校正;然后
B3、生成经过一次校正的视频图像的视频数据并携带在第二视频码流中发送给接收终端。
所述步骤B3之后还包括步骤B4、接收终端接收所述第二视频码流,还原校正后视频图像并根据本端伽玛特性参数再次进行校正。
其中:所述步骤B2中,多点控制单元将来自至少两个发送终端的第一视频码流并分别校正视频图像并拼装为多画面图像;以及所述步骤B3中,根据所述多画面图像生成多画面图像视频数据并携带在所述第二视频码流中发送给接收终端。
其中:所述步骤B4中,接收终端根据所述多画面图像的视频数据还原出所述多画面图像,并分别根据本端伽玛特性参数再次校正每一个子画面的视频图像。
所述第一视频码流中设置有标识视频图像存在伽玛失真的第一指示信息;和/或,所述第二视频码流中设置有标识视频图像已经经过一次伽玛校正的第二指示信息。
多点控制单元根据所述第一指示信息确认所述第一视频码流中携带有发送终端的伽玛特性参数信息。
所述的发送终端伽玛特性参数信息为所述视频图像在其采集、处理和形成视频码流的过程中:在发送终端经过每一个伽玛特性环节的伽玛特性参数,以及各伽玛特性环节的级联顺序;或者发送终端根据经过的所有伽玛特性环节确定的等效伽玛特性参数。
所述方法中:发送终端将本终端每一帧视频图像的伽玛特性参数信息分别对应该视频图像的视频数据携带在所述视频码流中发送给接收终端;或者,发送终端将每隔一定周期将伽玛特性参数信息携带在所述视频码流中发送给接收终端;或者,发送终端在通信开始时将初始伽玛特性参数信息携带在所述视频码流中发送给接收终端,并在通信过程中,当本端伽玛特性参数发生变化时,再将更新的伽玛特性参数信息携带在所述视频码流中发送给接收终端。
所述每一个伽玛环节的伽玛特性参数或等效伽玛特性参数包括对应设定等级的每一级输入亮度信号值的输出亮度值集合。其中,所述输入亮度信号值的设定级别是0-255级,亮度值的取值为整数。
根据所述方法,在所述视频码流中扩展伽玛参数信息域,并将所述输入亮度信号值集合和/或输出亮度信号值集合组成二进制码流并携带在所述伽玛参数信息域中进行传送.
其中,所述伽玛参数信息域分别包括伽玛参数信息和位于该伽玛参数信息两端的起始定界符和结束定界符,该起始定界符和结束定界符用于确定该信息域的范围。
当所述视频码流为采用H.264协议编码时,在H.264码流的补充增强信息SEI域中扩展用于携带所述伽玛参数信息的消息。
本发明还提供一种多点控制单元,包括多点处理器,所述多点处理器包括:
伽玛特性参数存储模块,用于存储视频图像发送终端的伽玛特性参数;
伽玛特性校正模块,连接所述伽玛特性参数存储模块,用于根据视频图像发送终端的伽玛特性参数校正所述视频图像中的伽玛特性。
所述多点处理器还包括:
视频码流收发模块,用于收发视频码流,所述视频码流中包含视频图像数据和该视频码流发送终端的伽玛特性参数信息;
视频数据编解码模块,连接在所述视频图像收发模块和伽玛特性校正模块之间,用于从所述视频码流中解码出视频数据并送入伽玛特性校正模块进行校正;或者,根据校正后的视频图像编码视频数据;
伽玛特性参数信息提取及附加模块,连接在所述视频图像收发模块和视频数据编解码模块之间,用于从收到的视频码流中提取发送终端的伽玛特性参数信息并存入伽玛特性参数存储模块;或者,从伽玛特性参数存储模块提取伽玛特性参数信息并附加到待发送的视频码流中;
多画面拼装模块,连接所述伽玛特性校正模块,用于将收到的至少两个终端的视频图像拼装为一个多画面图像,并将该多画面图像送入视频数据编解码模块或伽玛特性参数信息提取及附加模块。
其中,所述伽玛特性校正模块中包括:
等效伽玛特性参数计算子模块,用于根据发送终端的单伽玛环节特性参数计算等效伽玛特性参数并输入伽玛校正发生子模块;
伽玛校正发生子模块,用于根据等效伽玛特性参数校正视频图像的伽玛特性。
所述多点控制单元还包括:多点控制器,连接所述多点处理器,用于向多点处理器发送进行伽玛特性校正的控制信号。
根据本发明,所述多点处理器并行设置为多个。
本发明的有益效果如下:
本发明所述方法通过在视频码流中携带发送终端的伽玛特性参数,使接收终端对收到的视频图像根据发送终端的伽玛特性参数和本端的伽玛特性参数进行一次校正,或者,由多点控制单元根据发送终端的伽玛特性参数对视频图像进行一次校正后,再由接收终端根据本地伽玛特性参数进行再次校正,可以在接收终端校正视频图像中的伽玛失真,本发明所述方法适用于视频通信中的各种场景,从而在多媒体通信中实现了伽玛校正,提高了通信的质量和用户体验;
为实现本发明所述方法,本发明还提供一种具有伽玛特性校正功能的多点控制单元,该多点控制单元可以根据控制指令对转发的视频图像进行校正或再转发,并兼容现有直接转发的功能.

附图说明

图1为环节Gamma特性的一般模型;
图2为环节Gamma特性引起的亮度信号畸变的示意图;
图3为多环节级联Gamma特性的一般模型;
图4为校正单个环节的Gamma特性示意图;
图5为校正多个给定环节的Gamma特性示意图;
图6多画面布局的一种示例;
图7为MCU通过级联增大控制功能的示意图;
图8为现有MCU的结构示意图;
图9为多个Gamma环节级联时,可能校正点的示意图;
图10为多个Gamma环节级联时,通用Gamma特性校正方法示意图;
图11为本发明所述实施例一,会场自由观看状态下的Gamma校正方法原理示意图;
图12为本发明所述实施例二,会场指定观看(即会场广播)状态下的Gamma校正方法原理示意;
图13为本发明所述实施例三,多画面状态下的Gamma校正时,多点控制单元对视频图像先解码再编码合成为多画面的原理示意图;
图14为本发明实施例六所述具有视频图像伽玛特性校正功能的多点控制单元的结构示意图;
图15为本发明定义的Gamma参数信息区域二进制格式示意图。

具体实施方式

作为本发明实施的基础,这里首先介绍一种利用Gamma路径校正多环节Gamma特性的通用方法,请参阅图9所示,假设视频信号从采集到输出经过的Gamma路径包括Nt个级联的Gamma环节,可以选择任意两个环节之间进行校正点,校正环节将图像经过的Gamma路径分为前后两段,校正点之前包括Na个环节,校正点之后包括Np个环节,如图10所示,先分别确定Na个环节和Np个环节的等效综合Gamma特性,然后分别构造等效Gamma特性的校正子环节,然后将两个校正子环节进行复合后插入校正点,校正环节实际上是两个校正子环节的复合,具体包括如下步骤:
1、确定与信号相关的Gamma特性环节的级联路径,以及该级联路径包括的环节数目为Nt;
2、在所述路径中确定一个校正点,该校正点将所述Nt个环节划分为级联在该校正点之前的Na个环节和级联在该校正点之后的Np个环节,其中:Na≥0、Np≥0、Na+Np=Nt;
3、分别根据每一个环节的Gamma特性等效模型及其参数构造所述Na个环节的第一综合等效模型和所述Np个环节的第二综合等效模型;
4、确定所述第一综合等效模型的第一逆模型和第二综合等效模型的第二逆模型;
5、根据所述第一逆模型和所述第二逆模型构造校正环节模型,利用该校正环节模型确定所述Na个环节最后输出信号的校正信号并将该校正信号输入所述Np个环节。
根据本方法,校正环节模型的构造方法包括下列之一:
直接计算法:实时利用第一逆模型的函数关系式和第二逆模型的函数关系式的复合函数关系式计算Na个环节的最后输出信号的校正信号;
两步计算法:实时利用第一逆模型的函数关系式计算Na个环节的最后输出信号的一次校正信号,利用第二逆模型的函数关系式计算该一次校正信号的二次校正信号,将该二次校正信号作为所述校正信号;
查表法:预先根据所述直接计算法或两步计算法,计算出所述Na个环节的最后输出信号的取值区间中的多个采样值对应的校正值,并将对应关系保存在一个数据表中,然后通过实时查询该数据表确定任意待校正值的校正值。
对于采用数据表形式的模型,等效模型本身没有解析形式(比如采用查表方法实现的,当然其反函数也就没有解析形式了),那么其逆模型就是该数据表的逆表,一个表存在两列,很多行,左列(输入列)是输入信号的采样值,即待校正的信号值,右列(输出列)是对应的输出信号值,即校正后的信号值,行数取决于采样点数,行数越多越精确,逆表就是把左右两列对调得到的新数据表。并且对于数据量大的视频数据,进行实时计算的计算量很大,查表是最实际的方法。
利用上述方法的前提是终端必须能够确定出本终端上所有Gamma特性环节,当等效模型采用函数表示形式时,发送终端或接收终端通过下述方法分别确定本端每一个Gamma特性环节的等效模型及其参数,或者直接确定级联的多个Gamma特性环节的综合等效模型及其参数。
本发明还在此介绍一种确定每一个Gamma特性环节等效模型及其参数的检测方法,包括如下步骤:
首先,选择一组单环节Gamma特性的通用等效模型,例如:
第一类Gamma模型满足公式6:Lout=pLinα+(1-p)  0<p≤1,α≥1    (6)
其中:公式6所示函数的定义域(即自变量取值范围)为区间[0,1],值域(函数值的取值范围)为区间[(1-p),1]。
第二类Gamma模型满足公式7:Lout=(qLin+(1-q))1βq≥1,β≥1    (7)
其中:公式7所示函数的定义域(即自变量取值范围)为区间[1-1/q,1],值域(函数值的取值范围)为区间[(0,1]。
然后将其中的一个作为待测模型进行下列步骤:
1、在输入亮度信号Lin在[0,1]区间上选择间隔均匀的N个采样点:Lin(0)、Lin(1)、Lin(2)......Lin(i)......Lin(N-2)、Lin(N-1);
2、将亮度信号N个采样值分别输入环节中,并测量实际输出亮度信号N个对应的值:LPout(0)、LPout(1)、LPout(2)......LPout(i)......LPout(N-2)、LPout(N-1);
3、构造拟合的目标函数,目标函数和实际检测的输出亮度信号与通过Gamma特性模型确定的理论输出亮度信号之间的差值相关,而且,差值越小,说明模型的等效效果越接近实际情况。
目标函数的构造方法很多,较为常用的是下述公式8或公式9:
FT1(p.α)=Σi=0N-1(LoutP(i)-pLin(i)a-(1-p))2---(8)或者,
FT2(q,β)=Σi=0N-1(LoutP(i)-(qLin(i)+(1-q))1β)2---(9)
4、设定目标函数值的门限T和最大迭代次数M,利用数学优化法寻找最适合的参数组;
首先对于第一类的代价函数采用某种数学优化技术,例如:爬山法、0.618法(华罗庚优选法)、最速下降法或共轭梯度法等求取其最小值;
这个过程其实是一个迭代过程,在这个过程中不断调整参数p和α,函数值F在不断下降,当函数值下降到小于给定门限T后,则认为已经找到了最小点。此时对应的参数p和α,就认为是本次应用环境模型的真正参数。
如果对于经过M次迭代,还不能使得函数下降到门限T以下,则认为模型选择不对。应该选择第二类模型,于是对于重复上述步骤4,得到对应的模型参数q和β,应当注意的是,参数q和β的取值范围分别是:q≥1、β≥1。
如果想要得到更精确的参数,可以在目标函数值F下降到门限T以下后,仍然再迭代几次,如果目标函数值F持续下降,或下降后又上升,或直接上升,不管目标函数值F是何种变化情况,则选择其中的最小值对应的参数作为测量结果会在一定程度上提高参数测量的精度。
可以看到,模型类型的确定和参数的测量是同时进行的,实际中,等效模型的类型不只这两种形式,通过上述方法可以在相关的所有等效模型通过测量参数的方法找到最合适的一个。
同样可以利用上述方法测量多环节综合Gamma特性模型及其参数,测量方法步骤完全相同,需要指出,从形式上看,多个Gamma环节级联的综合Gamma特性模型的函数关系式仍然可以采用公式6和公式7所示的两类,但是第一类综合特性模型中,根据定性分析结果和实际测量的经验值,指数α取值范围变成α>0,而第二类综合特性模型中,指数β取值范围变成β>0。
因此,确定了Gamma特性模型及其参数后,可以根据前述方法进行校正模型的确定,如图4所示,对于单个给定环节,只要Gg(.)满足一定条件,就可以找到Gc(.)对Gg(.)进行Gamma校正;如图5所示,对于多给定环节,只要Ga(.)、Gp(.)满足一定条件,就可以找到Gc(.)对Ga(.)和Gp(.)进行Gamma校正。
对于一个多媒体通信终端来说,从外部光信号进入摄像机/头,经过各个环节处理,最终到本端的显示器显示转换成光信号;或者经过压缩编码环节在经过通信网络传送到达对方终端,再经过去压缩解码恢复成图像,再到多方终端显示器上显示出来转换成光信号;或者经过光信号从摄像机/头进入后,转换成电信号,然后经过一定的处理,被写入到文件,保存在硬盘等存储设备上.每一个视频信号经过的途径多可以看作如图7所示的Gamma路径,可以利用上述通用方法进行Gamma特性的校正.
基于上述确定每一个Gamma特性环节等效模型及其参数的检测方法,每一个终端都可以检测到本地各Gamma环节的等效模型及其参数,由此,本发明提出以下技术构思:
1、在视频码流编码压缩或者传送承载协议中提供一种Gamma特性参数信息传递和交换的机制,具体方式可以是:
发送终端将视频图像经过的每一个伽玛特性环节的单环节伽玛特性参数,以及各伽玛特性环节的级联顺序携带在视频码流中发送;或者发送终端根据所述视频图像经过的所有伽玛特性环节计算出等效伽玛特性参数再携带在视频码流中发送。
发送终端可以为每一个视频图像的携带对应的伽玛特性参数信息;或者,发送终端将每隔一定周期(周期可以用时间来度量,也可以用每隔一定图像帧数来度量)将伽玛特性参数信息携带在所述视频码流中发送给接收终端;或者,在通信开始时将初始伽玛特性参数信息携带在所述视频码流中发送给接收终端,并在通信过程中,当本端伽玛特性参数发生变化时,再将更新的伽玛特性参数信息携带在所述视频码流中发送给接收终端。
2、基于1,在交互Gamma特性参数的基础上,利用上述通用校正方法进行校正,校正可以在多点控制单元或者具有类似功能的多点通信服务器中进行,校正也可以由视频数据接收终端执行,因此同样适用于两点通信的情况,或者没有多点控制单元参加的多点通信情况。
并适用于多点控制单元的如下两种主要工作模式:
1)、多画面模式,该多画面模式包括:先解码再编码的合成模式和直接合成模式(俗称软件多画面);
2)、视频转发模式。
并适用于多个多点控制单元级联以及多点控制单元的MC和MP分离的情况。
首先为描述方便,本发明定义如下概念:
1、Gamma失真:Gamma是一种非线性失真(Distortion,或者叫做扭曲),指信号经过一个或者多个Gamma环节的相继作用,形成Gamma失真;
2、无Gamma失真:信号没有任何Gamma失真的状态;
3、完全Gamma校正状态:存在Gamma失真的信号经过Gamma校正后达到了和无失真状态完全相同的状态,叫做完全Gamma校正状态;
4、Gamma轨道(Gamma Track):在视频码流中用于携带传送Gamma信息的数据部分。
需要说明的是,以上定义建立在理想状态下,实际上对视频图像的校正只能看作近似的无Gamma失真或完全Gamma校正状态。
下面以具体实施例进行详细说明:
实施例一、会场自由观看状态下的Gamma校正
这种情况下,MCU并不处理来自终端的视频码流,只是进行转发。假设终端A选择自由观看终端B的视频,则终端B加入视频会议后向MCU发送本地视频码流,该视频码流中携带终端B的Gamma特性参数,假定终端B有NB个Gamma环节;MCU将来自终端B的视频码流转发给终端A;
终端A接收并分析来自终端B的视频码流,从视频码流中提取出所携带的Gamma特性参数和数字视频数据,并结合终端A自身的Gamma特性参数进行校正,具体校正方法为前述的通用校正方法,校正原理如图11所示,校正过程包括如下步骤:
1、终端A从终端B的视频码流中通过去压缩解码获得数字视频数据;
2、终端A从终端B的视频码流中提取出NB个Gamma环节的Gamma参数;
3、终端A根据公式3计算NB个Gamma环节级联形成等效Gamma环节GBEQ的Gamma参数,其中EQ表示等效(Equivalent);
同时,终端A根据公式3计算出本身多个Gamma环节的等效环节GAEQ的Gamma参数;
4、终端A根据GBEQ和GAEQ计算校正环节GCor的Gamma参数;
5、终端A根据GCor的Gamma参数校正来自终端B的视频后通过本地显示器显示;
具体校正可以采用基于函数表示的直接计算方法或基于查表表示的查表方法,详细情况参见前述的通用校正方法,这里不再赘述。
上述实施例中,如果终端A和终端B之间直接通信或者当前通信系统中没有MCU时,终端A和终端B之间直接交互视频数据流。
实施例二、会场指定观看(即会场广播)状态下的Gamma校正
和实施例一相同,MCU也仅仅是对于来自被指定观看终端的视频码流向所有参见会议的终端进行广播,而不进行其他任何处理。
如图12所示,假定被广播的会场终端为X,其它终端收到的都是X的视频,其它任何一个终端Y1、Y2......Ym,都要根据来自X的视频码流携带的Gamma参数信息,提取Gamma参数,然后进行校正,其校正过程和实施例一相同。
与实施例一不同之处在于,每个观看X终端视频的终端同步校正并收看,就实现了会场指定观看(即会场广播)状态下的Gamma校正。
实施例三、多画面状态,MCU工作在先解码再编码的合成模式下的Gamma校正方法一
如图13所示,MCU首先要对来自终端X1、X2.....XC的C(多画面布局中子画面的总数)个子画面视频进行去压缩解码,还原成未压缩(Uncompressed)数字视频格式,然后拼成多画面图像后,再编码压缩。在这个过程中,MCU可以对于已经还原出来的未压缩数字视频格式进行一些处理和Gamma特性校正。具体做法是:
1、MCU对于来自终端Xi(1≤i≤C)的视频进行去压缩解码,形成未压缩数字视频格式;
2、MCU从来自Xi的视频码流中提取所携带的Gamma参数信息;
3、MCU根据所述提取出的Gamma参数,按照级联的法则形成等效环节G(i)XEQ,计算出相应的Gamma特性参数;
4、MCU根据G(i)XEQ和相应的Gamma特性参数来进行校正,校正的结果,形成了完全校正状态。即经过校正的视频是出于无Gamma失真状态的;
MCU重复以上步骤1~4,直到把来自C个终端的视频都校正完毕;
5、MCU按照指定的多画面布局由C个子画面组合拼出多画面图像;
6、MCU对于所述组合拼出的多画面图像进行压缩编码;
7、MCU为新生成的多画面视频码流填写携带Gamma信息的Gamma轨道信息。
因为这个时候多画面的每个子画面都是无Gamma失真的,所以整个多画面也是无Gamma失真的。因此Gamma轨道实际上不含有任何Gamma参数。只是需要在Gamma轨道中设置一个校正标志,表明视频是否为无Gamma失真。校正标志的设置方法很多,例如:设置该校正标志表明视频码流是存在Gamma失真的,不设置时表明无Gamma失真;或者校正标志设置为1表明存在Gamma失真,设置为0表明无Gamma失真。显然该标志应该位于GammaTrack的最前面,这样当MCU或者终端在读到标志后,首先判别校正标志,如果是无Gamma失真,意味着后面没有Gamma参数,不用向后继续读数据了,反之则要继续读数据。
8、MCU把新生成的多画面视频码流发送给多个终端。
在多个接收到多画面视频码流的终端中,每一个接收终端的处理过程相同,仍如图13所示,具体做法如下:
1、终端Y计算出本身多个Gamma环节的等效环节GYEQ的Gamma参数;
终端Y首先根据校正标志判断接收到的多画面视频是否存在Gamma失真,本实施例中终端Y收到的多画面视频为无Gamma失真,因此终端Y只需要在校正的时候考虑自身的Gamma特性即可。
2、终端Y根据GYEQ计算校正环节GCor的Gamma参数;
其中GYEQ为终端Y的等效Gamma特性。
3、终端Y对于来自MCU的多画面视频进行校正。
具体校正可以采用基于函数表示的直接计算方法或基于查表表示的查表方法,详细情况参见如前所述的伽玛特性的校正通用方法。
实施例四、多画面状态,MCU工作在先解码再编码的合成模式下的Gamma校正方法二
MCU在把来自各个终端X1、X2.....XC的子画面视频去压缩解码还原到未压缩格式后,并不进行Gamma校正,直接组合拼出多画面图像,再进行编码压缩,形成多画面视频码流。然后在视频码流的Gamma轨道上设置表明Gamma失真的校正标志后,按照所指定多画面布局给定的各个子画面的排列顺序,依次将原来各个终端视频码流Gamma轨道携带的Gamma参数信息复制到与子画面对应的位置,形成多画面视频码流的Gamma轨道。
参见图11所示的终端处理示意图,终端Y接收到多画面视频后,处理方法如下:
1、终端Y将多画面视频码流去压缩解码还原为未压缩格式,从而获得各个子画面的未压缩格式;
2、终端Y从多画面视频码流的Gamma轨道中提取每个子画面对应的Gamma参数信息;
3、假设取出的子画面i(1≤i≤C)Gamma参数,其中有N1个Gamma环节,这些Gamma环节级联形成一个等效Gamma环节G(i)XEQ,终端Y根据公式2计算出等效环节G(i)XEQ的Gamma参数;
同时终端Y计算出本身多个Gamma环节的等效环节GYEQ的Gamma参数。
4、终端Y根据G(i)XEQ和GYEQ计算校正环节GCor的Gamma参数;
5、终端Y根据GCor的Gamma参数对子画面i的视频进行校正后显示。
终端Y重复以上步骤3~5,直到所有的子画面都校正完毕。
具体校正方法可以基于函数表示的直接计算方法或基于查表表示的查表方法,详细情况参见如前所述的伽玛特性的校正通用方法。
实施例五、多画面状态,MCU工作在直接合成模式下的Gamma校正
在直接合成模式下,MCU对于来自终端Xi(1≤i≤C)的视频码流不进行处理,只是按照符合具体视频压缩编码协议语法的方式进行码流合成,形成一个复合码流。复合码流同样有一个Gamma轨道,对于该Gamma轨道,首先MCU要设置有校正标志,校正标志表明该视频码流存在Gamma失真。
终端Y接收到多画面视频后,处理方法如下:
1、终端Y从多画面视频码流的Gamma轨道中提取每个子画面对应的Gamma参数信息;
2、假设取出的子画面i(1≤i≤C)Gamma参数,其中有N1个Gamma环节,这些Gamma环节级联形成一个等效Gamma环节G(i)XEQ,终端Y根据公式2计算出等效环节G(i)XEQ的Gamma参数;
同时终端Y计算出本身多个Gamma环节的等效环节GYEQ的Gamma参数;
3、终端Y从复合码流中定位并提取出子画面i对应的视频码流然后进行去压缩解码还原到未压缩格式;
4、终端Y根据G(i)XEQ和GYEQ计算校正环节GCor的Gamma参数;
5、终端Y根据校正环节GCor的Gamma参数对子画面i的视频进行校正。
终端Y重复以上步骤1~5,直到所有的子画面都校正完毕。
具体校正方法可以基于函数表示的直接计算方法或基于查表表示的查表方法,详细情况参见如前所述的伽玛特性的校正通用方法。
实施例六、具有Gamma校正功能的MCU
为实现在MCU侧进行视频图像伽玛特性的一次校正,本发明还提供一种具有Gamma校正功能的MCU,与现有技术的MCU结构相比,本发明所述的具有Gamma校正功能的MCU主要在多点处理器上进行了改进,如图14所示,多点处理器包括如下功能模块:
伽玛特性参数存储模块,用于存储视频图像发送终端的伽玛特性参数;
伽玛特性校正模块,连接所述伽玛特性参数存储模块,用于根据视频图像发送终端的伽玛特性参数校正所述视频图像中的伽玛特性。
视频码流收发模块,用于收发视频码流,所述视频码流中包含视频图像数据和该视频码流发送终端的伽玛特性参数信息;
视频数据编解码模块,连接在所述视频图像收发模块和伽玛特性校正模块之间,用于从所述视频码流中解码出视频数据并送入伽玛特性校正模块进行校正;或者,根据校正后的视频图像编码视频数据。
伽玛特性参数信息提取/附加模块,连接在所述视频图像收发模块和视频数据编解码模块之间,用于从收到的视频码流中提取发送终端的伽玛特性参数信息并存入伽玛特性参数存储模块;或者,从伽玛特性参数存储模块提取伽玛特性参数信息并附加到待发送的视频码流中。
多画面拼装模块,连接所述伽玛特性校正模块,用于将收到的至少两个终端的视频图像拼装为一个多画面图像,并将该多画面图像送入视频数据编解码模块.
如果不需要进行多画面合成,则校正模块将校正后的视频图像直接发送给视频数据编解码模块。
同时,多画面拼装模块伽玛特性参数信息提取/附加模块之间直接连接,当采用直接合成模式时,不需要对视频码流进行编解码的处理。
多画面拼装的各种模式预先设定在多画面拼装模块和伽玛特性参数信息提取/附加模块中,用于根据对应的拼装模式进行多画面拼装并确定在视频码流中附加各子画面伽玛特性参数信息的顺序。
其中:伽玛特性校正模块中包括:
等效伽玛特性参数计算子模块,用于根据发送终端的单伽玛环节特性参数计算等效伽玛特性参数并输入伽玛校正发生子模块;
伽玛校正发生子模块,用于根据等效伽玛特性参数校正视频图像的伽玛特性。
多点处理器连接多点控制器,根据多点控制器的指令对接收的视频图像进行伽玛特性校正。
和现有技术相同,在一个多点控制单元中,可以并行设置多个多点处理器,可以控制更多的多媒体通信终端之间的通信。
如果不需要进行校正,则视频收发模块根据多点控制器的指令直接转发视频码流。
下面详细说明如何在终端之间、终端与多点控制单元之间交互Gamma参数信息的方法,因为查表法的优势比较明显,所以本发明采用查表表示方法交互Gamma参数。
首先,提供一种和具体协议无关的Gamma参数信息表示的二进制格式,因为Gamma特性作为一个函数,其定义域(Lin的取值范围)和值域(Lout的取值范围)都是区间[0,1]或者其某个子区间,比如[0.1,0.9]。
前面已经说过,查表法的关键是两个集合(或者叫做序列){Lin(i)|0≤i≤N-1}和{Lout(i)|0≤i≤N-1},以及它们的元素之间的对应关系。我们定义{Lin(i)|0≤i≤N-1}为输入亮度离散值集合(Set of Discrete Values of Input Luminance);{Lout(i)|0≤i≤N-1}为输出亮度离散值集合(Set of Discrete Values of Output Luminance)。虽然从Gamma特性作为一个函数的定义域和值域的要求来说,Lin、Lout取值必须在[0,1]区间上。但是,在实际应用中,每个Gamma环节的输入和输出亮度的取制范围可能并不是[0,1]区间。这样为了保持和Gamma定义的一致,实际上对于基于函数形式的Gamma特性,在处理的时候要首先把输入亮度值进行规一化处理。将取值在[0,1]区间上的亮度信号叫做规一化亮度Lnin,上标n表示Normalized“规一化”,而取值在0-MaxLain之间的亮度信号叫做实际亮度Lain,上标a表示Actual“实际”。而把实际的亮度映射到[0,1]区间,采用的方法如公式10所示:
Lnin=Lina/MaxLain    (10)
相应地,输出的亮度信号要从规一化的值还原到实际的值(逆规一化)。计算如公式11所示:
Lnout=Louta/MaxLaout    (11)
目前摄像机/摄像头,显示器和中间的数字视频交换格式比如CIF(CommonInterchange Format)采用的都是256级亮度,即实际的输入输出亮度取值都是0-255的整数,即
MaxLain=MaxLaout=255,一般情况下MaxLain≠MaxLaout。考虑到以后技术的进步的可能,摄像机、显示器的发展和人类感官对于更高亮度等级分辨率的需要,亮度等级可能会增加,从技术实现角度来说,一般会增加为2的整数次方,比如512甚至1024,一般形式是2D,D为自然数。那么如公式12、公式13所示:
Lnin=Lina/2D      (12)
Lnout=Louta/2D    (13)
但是在构造{Lin(i)|0≤i≤N-1}和{Lout(i)|0≤i≤N-1}的时候,必须考虑实际的应用场景,在当前的视频通信技术中,亮度信号的等级为256级,亮度值为0-255,每一个亮度值可以用8比特表示(一个字节)。
于是,集合{Lin(i)|0≤i≤N-1}={0,1,2,3,4......254,255},而集合{Lout(i)|0≤i≤N-1}中的每个数值也都属于{0,1,2,3,4......254,255}。
在以上假设下,适用于目前视频通信技术的Gamma特性查表表示数据结构仍如表1所示,进一步分析发现,表1的左列(Left Column)的数值都是固定的,必然是{0,1,2,3,4......254,255}的顺序,通信双方都知道这个集合和顺序,则在通信中不需要传送左列数值。
在通信协议中传送Gamma参数信息,不论是什么协议,一般方法就是在通信协议允许扩展和自定义内容的数据区内定义一个块(Block或者Region),用于连续存放Gamma参数的二进制码流表示。然后该块被封装在协议的码流中传送。这个区域叫做Gamma参数信息区域。
多媒体通信终端中可能有包括摄像机/摄像头和显示设备在内的多个Gamma环节。因此,对于一个终端要把自己的全部Gamma参数信息传送给其它通信终端或者网络上其它设备比如多点控制单元等,那么就应该把自身的全部Gamma环节,按照它们从前到后(或反方向)的级联顺序,将其Gamma特性参数写入到Gamma参数信息区域。而接收的终端或者其它网络设备就可以从用于承载Gamma参数的信息区域中按顺序提取出Gamma参数信息。因此定义Gamma参数信息区域的具体格式如图15所示,包括以下部分:
开始标志:16比特(2字节),取值为0x0FF0;
结束标志:16比特(2字节),取值为0xF00F;
区域总长度:16比特(2字节),以字节为单位的Gamma参数信息区域的总长度(包含开始标志和结束标志在内)。
以上三者结合起来,可以定位出在码流中Gamma信息区域的位置。
Gamma环节总数:8比特(1字节)以T表示。最多可以有256个Gamma环节,在实际应用中是足够的。
环节1~T参数子区域:这样的子区域共有T个,分别对应于T个Gamma环节。
每个子区域的结构是这样定义的:
子区域长度:16比特(2个字节),以字节为单位的子区域长度(包含传送模式字节在内)。
连续参数:Lout(0),Lout(1)......Lout(Ni-3),其中:i=1,2......T。
需要说明的是,上述定义方式仅是本发明的一种实施例,并不限定本发明的保护范围。
上面定义了不依赖具体承载协议的Gamma参数信息区域的格式,如果视频码流采用H.264协议编码方式,则本发明还结合H.264协议给出利用H.264消息扩展机制承载Gamma参数信息的方法。
H.264中提供了多种可以进行消息扩展的机制,其中比较适合本发明使用的是H.264中定义的补充增强信息SEI(Supplement Enhancement Information),SEI的数据表示区域与视频编码数据独立,使用方法在H.264协议中NAL(Network Abstraction Layer网络抽象层)的描述中给出。H.264码流的基本单位是NALU(NAL Unit,即网络抽象层单元),NALU可以承载各种H.264数据类型,比如视频序列参数(Sequence parameters),图像参数(Pictureparameters),Slice数据(即具体图像数据),以及SEI消息数据。SEI用于传递各种消息,支持消息扩展。因此SEI域内用于传送为特定目的而自定义的消息,而不会影响基于H.264视频通信系统的兼容性。承载SEI消息的NALU叫做SEI NALU。一个SEI NALU含有一个或多个SEI消息。每个SEI消息含有一些变量,主要是Payload Type和Payload Size,这些变量指明了消息载荷的类型和大小。在H.264 Annex D.8,D.9中定义了一些常用的H.264 SEI消息的文法和语意。
NALU中包含的载荷叫做RBSP(Raw-Byte Sequence Payload),SEI是RBSP的一种类型。按照H.2647.3的定义,SEI RBSP的文法如表2所示:
表2.SEI RBSP文法
  sei_rbsp(){  C   Descriptor   Do   sei_message()  5   while(more_rbsp_data())   rbsp_trailing_bits()  5   }
可见,一个NALU中的SEI RBSP是可以包含多个SEI消息的。一个SEI消息的结构如表3所示:
表3.SEI消息的结构
  sei_message(){   C   Descriptor   payloadType=0
  sei_message(){   C   Descriptor   while(next_bits(8)==0xFF){   ff_byte/*equal to 0xFF*/   5   f(8)   payloadType+=255   }   last_payload_type_byte   5   u(8)
 payloadType+=last_payload_type_byte  payloadSize=0  while(next_bits(8)==0xFF){  ff_byte/*equal to 0xFF*/   5   f(8)  payloadSize+=255  }  last_payload_size_byte   5   u(8)  payloadSize+=last_payload_size_byte  sei_payload(payloadType,payloadSize)   5  }
H.264 Annex D.8定义了保留用于今后扩展的SEI消息的文法消息结构如表4所示:
表4.可扩展的SEI消息结构
reserved_sei_message(payloadSize){   C   Descriptor for(i=0;i<payloadSize;i++)
reserved_sei_message(payloadSize){   C   Descriptor reserved_sei_message_payload_byte   5   b(8) }
在本发明的描述中将SEI的数据表示区域简称为SEI域,每个SEI域包含一个或多个SEI消息,而SEI消息又由SEI头信息和SEI有效载荷组成。SEI头信息包括两个码字:一个码字给出SEI消息中载荷的类型,另一个码字给出载荷的大小。当载荷类型在0到255之间时用一个字节0x00到0xFE表示,当类型在256到511之间时用两个字节0xFF00到0xFFFF表示,当类型大于511时表示方法以此类推,这样用户可以自定义任意多种载荷类型。其中类型0到类型18标准中已定义为特定的信息如缓存周期、图像定时等。对于本发明所述技术方案,要承载Gamma参数信息区域类型可以定义为任何现有没有被定义的SEI载荷类型,因为目前很可能有很多其他目的的扩展消息类型,为避免冲突,可以定义为0xFFFF(511),0xFFFF是理论上的最大值。然后将根据定义填写的Gamma参数信息区域直接放入到SEI载荷中去,就实现了利用SEI消息扩展机制承载和传送Gamma参数信息的目的。
应该说明,将SEI载荷类型取值为0xFFFF,只是本发明的一个实施例,对于其他的取值,也在本发明保护范围内。
综上所述,本发明提供两种多媒体通信中的伽玛特性校正方法:
其一是在视频图像接收终端侧进行,由视频图像接收终端根据本端的伽玛特性参数和发送终端的伽玛特性参数进行一次校正;
其二是在多点控制单元和视频接收终端分步进行校正,先由多点控制单元根据发送终端的伽玛特性参数校正发送终端的伽玛环节引入的伽玛失真,然后由视频接收终端根据本端的伽玛特性参数校正接收终端的伽玛环节引入的伽玛失真。
上述方法可以根据多媒体通信的具体场景选择使用,可以很好的校正视频图像从采集、发送、接收到显示的各个环节中引入的伽玛失真。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。