一种视频伽玛特性参数传送方法和装置的制作方法

文档序号:7952960阅读:147来源:国知局
专利名称:一种视频伽玛特性参数传送方法和装置的制作方法
技术领域
本发明涉及视频通信技术,特别涉及视频通信中的视频伽玛特性参数的传送方法和装置。
背景技术
视频通信目前正在随着宽带网络的迅速发展而得到日益广泛的应用,在国内和国际上,视频会议和可视电话业务正在成为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特性在理想状况下满足公式1Lout=Lin2.2(1)而对应的摄像机/摄像头的理想Gamma满足公式2Lout=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),满足公式3GCT(.)=G(1)(.)。G(2)(.)。G(3)(.)........G(n-1)(.)。G(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特性校正需要涉及到两个以上的通信终端。比如在一个两方视频通信中,终端A的视频传送到终端B,那么这路视频的校正就同时涉及到终端A上的Gamma环节和终端B上的Gamma环节。实现以上所述的Gamma校正方法,前提是需要在参加多媒体通信的终端之间相互传递Gamma环节的Gamma参数。
现有的技术中,一般采用函数表示方法表示Gamma参数,表示Gamma非线性函数的形式大致有如下这些1、纯指数函数Lout=Linγ(4)2、带有偏移量(bias)的指数函数
Lout=Linγ+b(5)理想状态是很难获得的,因此用纯指数形式,或者带有偏移的指数形式来表示Gamma特性,在有些情况下可能是很不精确的。比如如果摄像头是廉价的摄像头,可能其Gamma特性就不是指数形式。这种情况下,函数表示方式就失效了。目前,电信运营商都在大力推动面向公众的视频通信,必然要提供非常便宜的终端才能吸引广大公众,这样使用廉价的摄像头是不可避免的。
因为Gamma函数的定义域和值域都是
区间,因此,还可以采用离散化的方式来表示这种函数关系。如表1所示,该表的形式是两列N行。左边是Lin的N个离散值,右边是对应的Lout的N的离散值。因此,要根据Lin的数值来计算对应的Lout,只要查表就可以完成了。如果Lin的数值不在左列中,可以采用插值的方法来计算对应的Lout值。
表1.Gamma参数的查表表示方法

函数表示都不够精确,过于简单化和理想化,出于简化的需要,在对于Gamma校正精度要求不高的情况下是可以用的。但是,在一些对于质量要求很高的应用场景下,比如广播电视(尤其是高清晰度电视HDTV)中的节目制作和交换,就不能满足要求了。因此,ITU-R的BT.709标准定义了以下的分段函数模型Lout=4.5Linif0≤Lin≤0.0181.099Lin0.45-0.099if0.018<Lin≤1---(6)]]>Lout=14.5Linif0≤Lin≤0.08111.099(Lin+0.099)2.2if0.081<Lin≤1---(7)]]>
其中,公式(6)是摄像机的Gamma特性表示,公式(7)是CRT显示器的Gamma特性表示。
分段表示方法虽然比较精确,但是适用范围狭窄,只能适合高端(所谓广播级)设备,对于大量终端和低端的设备,尤其是摄像头无法很好使用。

发明内容
本发明提供一种视频伽玛特性参数的传送方法和装置,以解决现有技术中无法获得高精度Gamma参数并在通信终端之间进行传送的问题。
一种视频伽玛特性参数传送方法,包括如下步骤A、根据视频的亮度的离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;B、分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;C、将选取的输入亮度离散值和输出亮度离散值对应写入视频码流传送。
所述步骤A中,所述亮度离散值为大于等于0小于等于2D-1的整数,D为自然数;所述的离散亮度概率分布密度函数为视频的亮度直方图,该亮度直方图在给定范围a-b内的亮度分布概率是 其中整数a、b为给定范围的两个端点,a<b,LH为视频像素亮度的离散概率分布密度函数,i为求和指标,i为大于等于a并且小于等于b的整数。
所述步骤A具体包括如下步骤A1、确定需要选取的输入亮度离散值总点数N,N为大于零小于2D-1的整数;A2、确定第一个输入亮度离散值lin(0)从0开始,逐次扫描0-255中的整数,将第一个满足等式Σi=0kLH(i)=1N-1]]>的整数k作为lin(0);否则将第一个满足不等式Σi=0kLH(i)≤1N-1≤Σi=0k+1LH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k+1LH(i)-1N-1|]]>的整数k作为lin(0)、或者将第一个满足不等式Σi=0k-1LH(i)≤1N-1≤Σi=0kLH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k-1LH(i)-1N-1|]]>的整数k作为lin(0);A3、分别确定第二个输入亮度离散值lin(1)至第N个输入亮度离散值lin(N-1)的任意一个输入亮度离散值lin(p-1),其中2≤p≤N从lin(p-2)+1开始,逐次扫描lin(p-2)+1至255的整数,将第一个满足等式Σi=lin(p-2)+1kLH(i)=1N-1]]>的整数k作为lin(p-1);否则将第一个满足不等式Σi=lin(p-2)+1kLH(i)≤1N-1≤Σi=lin(p-2)+1k+1LH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k+1LH(i)-1N-1|]]>的整数k作为lin(p-1)、或者将满足不等式Σi=lin(p-2)+1k-1LH(i)≤1N-1≤Σi=lin(p-2)+1kLH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k-1LH(i)-1N-1|]]>的整数k作为1in(p-1)。
当视频经过至少两个伽玛环节时,所述步骤B中,所述的输入亮度离散值和输出亮度离散值分别根据每一个伽玛环节确定;以及所述步骤C中,将每一个伽玛环节的输入亮度离散值和输出亮度离散值分别对应写入视频码流中传送;或者所述步骤B中,所述的输出亮度离散值根据所有伽玛环节的级联伽玛环节确定。
所述方法还包括在视频码流中扩展伽玛参数信息域,将所述输入亮度信号离散值和输出亮度信号离散值组成二进制码流并携带在所述伽玛参数信息域中进行传送。
所述伽玛参数信息域分别包括伽玛参数信息和位于该伽玛参数信息两端的起始定界符和结束定界符,该起始定界符和结束定界符用于确定该信息域的范围。
当所述视频码流为采用H.264协议编码时,在H.264码流的补充增强信息SEI域中扩展用于携带所述伽玛参数信息的消息。
所述的方法中,所述D等于8。
所述视频的亮度直方图的获取方法为下述之一或任意组合根据视频中的每一帧图像进行实时统计并计算;选择视频中具有代表性的图像进行统计并计算;用统计特性上可以归为同一类视频中的典型视频数据或其它视频数据的亮度直方图替代。
基于同一技术构思,本发明还提供一种视频伽玛特性参数传送装置,包括输入亮度离散值确定模块,用于根据视频的亮度离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;输出亮度离散值确定模块,连接所述输入亮度离散值选取模块,用于分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;视频码流传送模块,连接所述输出亮度离散值选取模块,用于将选取的输入亮度离散值和输出亮度离散值对应写入视频码流中传送。
所述输入亮度离散值确定模块中还包括视频亮度直方图获取子模块,用于获取视频的视频亮度直方图;输入亮度离散值选取条件存储子模块,用于存储输入亮度离散值的选取条件;和输入亮度离散值选择子模块,用于从所有等级的输入亮度离散值中选择出满足所述选取条件的输入亮度离散值。
所述输出亮度离散值确定模块中还包括输入亮度离散值输入子模块,用于生成输入亮度离散值并输出;和输出亮度离散值检测子模块,用于检测输入亮度离散值对应输出亮度离散值。
本发明的有益效果如下本发明根据视频的亮度的离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比,充分利用了视频内容的相关统计信息,使选取的Gamma参数全部为有效参数,节省了传输数据量,提高了Gamma参数的传输效率和重构时的精度,从而提高Gamma校正的精度;本发明通过在视频码流中定义Gamma参数信息区域用于携带Gamma参数,提供了与具体承载协议无关的Gamma参数传送方法;还基于H.264协议,提供了利用H.264消息扩展机制承载Gamma参数的传送方法,实现了Gamma参数在通信终端之间的传送,为通信终端之间实现Gamma校正提供基础,从而提高了多媒体通信的用户体验质量,提高多媒体通信业务对于公众的吸引力,提升设备厂家终端设备的市场竞争力,创造很好的经济效益。


图1为环节Gamma特性的一般模型;图2为环节Gamma特性引起的亮度信号畸变的示意图;图3为多环节级联Gamma特性的一般模型;图4为校正单个环节的Gamma特性示意图;图5为校正多个给定环节的Gamma特性示意图;图6为亮度直方图分布概率示意图;图7、图8为本发明所述Gamma参数传送方法流程图;图9为Gamma参数信息区域二进制格式示意图;图10为本发明所述Gamma参数传送装置结构示意图。
具体实施例方式
尽管函数表示简洁,传递参数量很少,但是计算麻烦,尤其计算浮点数的非整数次方是非常耗时的。而采用查表表示,计算简洁,并且可以适应任意函数形式,通用性好。
因为Gamma特性作为一个函数,其定义域(Lin的取值范围)和值域(Lout的取值范围)都是区间
或者其某个子区间,比如
。查表法的关键是两个集合(或者叫做序列){Lin(i)|0≤i≤N-1}和{Lout(i)|0≤i≤N-1},以及它们的元素之间的对应关系。我们定义{Lin(i)|0≤i≤N-1}叫做输入亮度离散值集合(Set ofDiscrete Values of input Luminance);{Lout(i)|0≤i≤N-1}叫做输出亮度离散值集合(Set of Discrete Values of out Luminance)。虽然从Gamma特性作为一个函数的定义域和值域的要求来说,Lin,Lout取值必须在
区间上。但是,在实际应用中,每个Gamma环节的输入和输出亮度的取制范围可能并不是
区间。这样为了保持和Gamma定义的一致,实际上对于基于函数形式的Gamma特性,在处理的时候是要首先把输入进行规一化处理。把取值在
区间上的亮度信号叫做规一化亮度Lnin,上标n表示规一化(Normalized),而取值在0-MaxLain之间的亮度信号叫做实际亮度Lain,上标a表示实际(Actual)。而把实际的亮度映射到
区间,采用的方法是Lnin=Lina/MaxLain(8)相应地,输出的亮度信号要从规一化的值还原到实际的值(逆规一化)。计算公式如下Lnout=Louta/MaxLaout(9)目前摄像机/摄像头,显示器和中间的数字视频交换格式比如CIF(CommonInterchange Format)采用的都是256级亮度,即实际的输入输出亮度取值都是0-255的整数,即MaxLain=MaxLaout=255。考虑到以后技术的进步的可能,摄像机,显示器的发展,和人类感官对于更高亮度等级分辨率的需要,亮度等级可能会增加,从技术实现角度来说,一般会增加为2的整数次方,比如512甚至1024。一般形式是2D,D为自然数。那么Lnin=Lina/2D(10)Lnout=Louta/2D(11)但是在构造{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特性是Lout=Lin),并且不是{0,1,2,3,4,......,254,255}中的每个数值都能取到(原因是第一,原来的Gamma特性函数值域就是
的一个子区间,比如
,这样有些
上的值是无法取到的;第二,逆规一化过程中引入的舍入误差,破坏了原来Gamma特性函数一一对应的特性,导致可能多个Lin离散值对应同一个Lout离散值,而有些{0,1,2,3,4,......,254,255}上的离散值Lout却取不到。
因此,在以上假设下,适用于目前亮度信号等级为256级的视频通信技术的Gamma特性查表表示数据结构如表2所示表2.适用于当前视频通信技术的Gamma参数的查表表示

具体的计算机程序实现采用的数据结构,最简单就是线性表(Linear Table)来实现上面的表示,也就是数组(Array)。
进一步分析发现,因为表2的左列(Left Column)的数值都是固定的,必然是{0,1,2,3,4,.....,254,255}的顺序,那么在通信中是不需要传送的。因为通信双方都知道这个集合和顺序。
以上描述的是一般情况,即假设我们能够测量得到0-255级的Gamma特性参数查表,并且有必要将所有级的Gamma特性参数列表表项都进行传送。而实际中,测量仪器测量的Gamma特性参数,可能只有不到256级,比如16、32、64级等,或者为了节省传送数据量,也没有必要把全部表项都传送,而是在接收端通过插值等方法从有限的表象来获得全部0-255级表项。在这种情况下,可能需要传送很少的表项就够了,那么{Lin(i)|0≤i≤N-1}的内容和顺序通信接收端是事先不知道的,需要传送。
为方便描述,本发明将0-255级都要传送的模式定义为正常模式,将传送少于256级(一般少于128级)表项的模式定义为稀疏模式。稀疏模式下的数据结构如表3所示表3.稀疏模式下的Gamma参数的查表表示

在稀疏模式下,输入亮度离散值集合和输出亮度值集合都必须传送,如果亮度值为256级,则当传输的输入亮度值点数N<128时输入输出离散值参数总数小于256,可以达到比正常模式更高的效率。
在稀疏模式下,不是每个0-255之间的整数都被列入输入亮度离散值集合{Lin(i)|0≤i≤N-1},一般均匀间隔选取,就是在0-255范围内,每间隔大约[256/(N-1)](函数[x]表示对于实数变量x,返回小于或等于x的最大整数,比如[5.3]=5)选取一个离散值,比如N=17,那么[256/(N-1)]=16,因此均匀间隔的选取方法给出的输入亮度离散值集合是{0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,255},集合中共17个离散点。
这种方法计算简单直观,但是有一个严重的缺点没有充分利用视频内容相关的统计信息。比如视频的亮度值主要分布在某个范围内,比如95%以上的像素亮度都在64-192范围内,那么上述例子中,0、16、32、48、208、224、240、255这些亮度离散值实际上是没有用的。因此如果按照均匀间隔选取方法构造的输入亮度离散值集合将造成有效信息的不足和无效信息的浪费。
视频像素亮度的概率分布密度函数(PDF=Probability Density Function)离散化形式定义为该视频的亮度直方图。亮度直方图用函数LH(LuminanceHistogram)表示,LH函数的自变量取值范围(定义域)是0-255的整数,函数值的取值范围(值域)为
区间,对于任何图像或视频的亮度直方图都满足规一化条件Σi=0255LH(i)=1,]]>比如(针对上面的例子)LH(0)=0LH(1)=0LH(64)=0.005LH(65)=0.006LH(96)=0.1LH(128)=0.15LH(190)=0.006LH(191)=0.005LH(192)=0.001LH(193)=0LH(255)=0。
亮度直方图分布曲线示例如图6所示,图中绘制了亮度值为96和128的亮度直方图。本发明基于视频的亮度直方图提供一种计算Gamma参数表示的优化方法,采用稀疏模式,优化的原则是在0-255范围内,任意一个范围a-b(0<=a<b<=255,a、b为整数)内被选取的输入亮度离散值的点数占全部输入亮度离散值点数的比例(百分比)基本和视频亮度直方图在这个范围内的亮度分布概率成正比,输入亮度离散值在范围a-b内的亮度分布概率是
假设离散点数为N,因为要选的对称,一般N=2n+1,指数n要相应小于等于6,比如N=1、3、5、9、17、33、65、129等,根据上述技术构思,输入亮度离散值的具体选取方法包括如下步骤1、寻找第一个离散值lin(0)的方法如下从0开始,逐次扫描0-255中的整数,第一个满足公式(12)、(13)或(14)的整数k就是lin(0)Σi=0kLH(i)=1N-1---(12)]]>或者Σi=0kLH(i)≤1N-1≤Σi=0k+1LH(i)]]>并且|Σi=0kLH(i)-1N-1|≤|Σi=0k+1LH(i)-1N-1|---(13)]]>或者Σi=0k-1LH(i)≤1N-1≤Σi=0kLH(i)]]>并且|Σi=0kLH(i)-1N-1|≤|Σi=0k-1LH(i)-1N-1|---(14)]]>以上三个关系是互斥的,不可能同时满足两个或者两个以上,只要满足其中任意一个就可以,首先应判断是否存在满足公式(12)的整数k,如果没有,再判断是否满足公式(13)或(14)的整数k。
2、寻找第p(p>=2)个离散值lin(p-1)的方法如下从lin(p-2)+1开始,逐次扫描lin(p-2)+1-255中的整数,第一个满足如下关系的整数k就是lin(p-1)Σi=lin(p-2)+1kLH(i)=1N-1---(15)]]>或者Σi=lin(p-2)+1kLH(i)≤1N-1≤Σi=lin(p-2)+1k+1LH(i)]]>并且|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k+1LH(i)-1N-1|---(16)]]>或者
Σi=lin(p-2)+1k-1LH(i)≤1N-1≤Σi=lin(p-2)+1kLH(i)]]>并且|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k-1LH(i)-1N-1|---(17)]]>以上三个关系是互斥的,不可能同时满足两个或者两个以上,只要满足其中任意一个就行,首先应判断是否存在满足公式(15)的整数k,如果没有,再判断是否满足公式(16)或(17)的整数k。重复进行该步骤,直到所有的N个输入亮度离散值都找到后,构成稀疏模式的输入亮度离散值集合。
当视频经过至少两个伽玛环节时,可以分别确定每一个伽玛环节的输出亮度离散值,然后将每一个伽玛环节的输入亮度离散值和输出亮度离散值分别对应写入视频码流中传送;或者根据所有伽玛环节的级联伽玛环节确定一组输出亮度离散值。
本发明需要使用的视频亮度直方图的获取属于已有技术,这里不再赘述,本发明在利用亮度直方图的具体方法上,有如下说明1、利用现有技术,对于当前被编码压缩和传送的图像或视频,实时统计计算获得其亮度直方图;2、根据图像和视频的类别,比如头肩图像,自然风景图像等等,来直接使用这类图像有代表性的亮度直方图。这样可以不用对于每一幅图像或者每段视频进行实时的统计计算,节省计算时间。其实,每一类视频,在统计特性上都存在相似性,因此这种近似代替方法是可行的;3、另外,在相同的场景下,即使其中部分图像发生了变化,比如前景对象(物体或者人)运动,但是整个图像的亮度直方图不会有显著变化。因此,这个特性是可以加以利用的。在通信过程中,尤其是视频通信中,场景是每一段时间变化一次的,而在通信过程中,因此运动估计等计算是能够感知到场景显著变化的。因此,可以在每次场景显著变化后,重新统计计算当前场景的亮度直方图,然后使用这个直方图数据直到下次场景再发生变化。
上述三种方法可以单独使用,也可以混合使用。
如图7所示,基于以上构思,本发明的所述视频Gamma特性参数传输方法包括如下步骤S100、根据视频亮度直方图分布概率选择输入亮度离散值并构造为输入亮度离散值集合,使任意给定范围中分布的输入亮度离散值点数与亮度直方图分布概率基本成正比;S200、确定每一个输入亮度离散值对应的输出亮度离散值并构造为输出亮度离散值集合;S300、将输入亮度离散值集合和输出亮度离散值集合对应写入视频码流中发送。
如图8所示,步骤S100进一步包括S101、确定需要选取的输入亮度离散值总点数N,N为大于零小于2D-1的整数;S102、确定第一个输入亮度离散值lin(0)从0开始,逐次扫描0-255中的整数,将第一个满足等式Σi=0kLH(i)=1N-1]]>的整数k作为lin(0);否则将第一个满足不等式Σi=0kLH(i)≤1N-1≤Σi=0k+1LH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k+1LH(i)-1N-1|]]>的整数k作为lin(0)、或者将第一个满足不等式Σi=0k-1LH(i)≤1N-1≤Σi=0kLH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k-1LH(i)-1N-1|]]>的整数k作为lin(0);S103、分别确定第二个输入亮度离散值lin(1)至第N个输入亮度离散值1in(N-1)之间的任意一个输入亮度离散值1in(p-1),其中2≤p≤N从lin(p-2)+1开始,逐次扫描1in(p-2)+1到255中的整数,将第一个满足等式Σi=lin(p-2)+1kLH(i)=1N-1]]>的整数k作为1in(p-1);否则将第一个满足不等式Σi=lin(p-2)+1kLH(i)≤1N-1≤Σi=lin(p-2)+1k+1LH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k+1LH(i)-1N-1|]]>的整数k作为1in(p-1)、或者满足不等式Σi=lin(p-2)+1k-1LH(i)≤1N-1≤Σi=lin(p-2)+1kLH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k-1LH(i)-1N-1|]]>的整数k作为lin(p-1)。
为实现步骤300,本发明在此提供基于查表法Gamma参数化的二进制码流表示格式。在通信协议中传送Gamma参数信息,不论是什么协议,一般方法就是在通信协议允许扩展和自定义内容的数据区内定义一个块(Block或者Region),用于连续存放Gamma参数的二进制码流表示。然后该块被封装在协议的码流中传送。这个区域叫做Gamma参数信息区域。因此,这里提出的其实是一种和具体协议无关的Gamma参数信息表示的二进制格式。
多媒体通信终端中可能有包括摄像机/摄像头和显示设备在内的多个Gamma环节。因此,对于一个终端要把自己的全部Gamma参数信息传送给其它通信终端或者网络上其它设备比如多点控制单元等,那么就应该把自身的全部Gamma环节,按照它们从前到后级联的顺序,将其Gamma特性参数写入到Gamma参数信息区域。而接收的终端或者其它网络设备就可以从用于承载Gamma参数信息的特定协议的Gamma参数信息区域中按顺序提取出Gamma参数信息。携带Gamma参数信息区域可以定义为如图9所示的格式,包括开始标志16比特(2字节),取值为0x0FF0;结束标志16比特(2字节),取值为0xF00F;区域总长度16比特(2字节),以字节为单位的Gamma参数信息区域的总长度(包含开始标志和结束标志在内)。
以上三者结合起来,可以定位出在码流中Gamma信息区域的位置。
Gamma环节总数8比特(1字节)以T表示。最多可以有256个Gamma环节,在实际应用中是足够的。
环节1~T参数子区域这样的子区域共有T个,分别对应于T个Gamma环节,每个子区域的结构是这样定义的传送模式8比特(1字节),0x00表示正常模式;0x01表示稀疏模式;其他值为非法;子区域长度16比特(2个字节),以字节为单位的子区域长度(包含传送模式字节在内)。
如果传送模式=0x00,即为正常模式的话,后面的参数连续存放Lout(0)、Lout(1)、....、Lout(Ni-4),i=1、2、....、T,因为在正常模式下,有256个表项,因此,Ni此时等于259。
如果传送模式=0x01,即为稀疏模式的话,后面的参数连续存放Lin(0)、Lin(1)、....、Lin((Ni-5)/2);Lout(0)、Lout(1)、....、Lout((Ni-5)/2),i=1、2、....、T。
上面定义了不依赖具体承载协议的Gamma参数信息区域的格式。下面本发明结合H.264协议给出利用H.264消息扩展机制承载Gamma参数信息的方法。
H.264中提供了多种可以进行消息扩展的机制,其中比较适合本发明使用的是SEI。H.264中定义了SEI(Supplement Enhancement Information,补充增强信息),它的数据表示区域与视频编码数据独立,它的使用方法在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叫做SEINALU。一个SEI NALU含有一个或多个SEI消息。每个SEI消息含有一些变量,主要是Payload Type和Payload Size,这些变量指明了消息载荷的类型和大小。在H.264 Annex D.8,D.9中定义了一些常用的H.264 SEI消息的文法和语意。
NALU中包含的载荷叫做Raw-Byte Sequence Payload(RBSP),SEI是RBSP的一种类型。按照H.264 7.3的定义,SEI RBSP的文法结构如表4所示表4.H.264 SEI RBSP文法结构示意

可见,一个NALU中的SEI RBSP是可以包含多个SEI消息的,其中一个SEI消息的结构如表5所示表5.H.264 SEI消息文法结构示意

H.264 Annex D.8定义了保留用于今后扩展的SEI消息的文法消息结构如表6所示表6.H.264预留SEI消息payload部分文法结构示意

在本发明的描述中,将SEI的数据表示区域简称为SEI域。每个SEI域包含一个或多个SEI消息,而SEI消息又由SEI头信息和SEI有效载荷组成。SEI头信息包括两个码字一个码字给出SEI消息中载荷的类型,另一个码字给出载荷的大小。当载荷类型在0到255之间时用一个字节0x00到0xFE表示,当类型在256到511之间时用两个字节0xFF00到0xFFFF表示,当类型大于511时表示方法以此类推,这样用户可以自定义任意多种载荷类型。其中类型0到类型18标准中已定义为特定的信息如缓存周期、图像定时等。对于本发明,我们要承载Gamma参数信息区域,我们定义类型为0xFFFF(511)。这样做是为了保险,因为很可能有很多其他目的的扩展消息类型,已经用了很多可能的取值,我们取0xFFFF是理论上的最大值,这样可能和其他已经存在的扩展“撞车”可能性最小。然后Gamma参数信息区域直接放入到SEI载荷中去。这样就完成了利用SEI消息扩展机制实现Gamma参数信息区域的承载和传送。
应该说明,将SEI载荷类型取值为0xFFFF,只是本发明的一个实施例。对于其他的取值,也在本发明保护范围内。
如果采用稀疏传送模式,接收方的终端在从承载协议(不一定是H.264)中提取出Gamma参数后,需要对于那些采用稀疏传送模式的环节的Gamma参数进行重构,形成256级完整的查表,才能在后面的Gamma校正中应用。
重构的目的是利用Gamma参数查表的已有表项来构造出缺少的表项。缺少的表项位于相邻的两个已有表项之间。
一般采用插值(Interpolation)法进行重构,可以采用的插值方法有1、线性插值;2、双线性插值;3、双三次插值;4、一般化的拉格朗日插值;5、样条插值等。
本发明解决了多媒体通信中Gamma校正的一些基本问题,这些问题是实现校正的前提条件。解决了Gamma参数信息的表示问题,和不依赖具体承载协议的Gamma参数信息区域二进制格式问题,以及基于H.264 SEI扩展消息机制的Gamma参数信息传送问题。能够直接利用H.264的“带内”机制,而不需要依赖其它协议。如果通过扩展其他协议,虽然也能做,但是可能要涉及到额外的通信过程。而随着H.264扩展消息来传送Gamma参数信息,通信过程最为简单。本发明提出的基于视频统计特性的优化Gamma参数表示方法,能够在节省传输数据量的前提下,提供最优的Gamma参数表示,从而提高Gamma校正的精度。
本发明提供的更加高效的参数化方法,是采用稀疏的传送模式。这个时候,{Lin(i)|0≤i≤N-1}和{Lout(i)|0≤i≤N-1}中离散值的个数可能远远少于256,比如16、32、64等。此时传送{Lin(i)|0≤i≤N-1}和{Lout(i)|0≤i≤N-1}需要占用的空间是2N字节,稀疏模式为了比正常模式节省空间,因此必须2N<256,也就是N<128。否则就没有意义。另外,也可能是在对于Gamma环节测量过程中,仪器只能测量Gamma曲线上较少的一些点,每个点的坐标是一对对应的Lin和Lout数值。
因此,本发明提供了简洁高效的Gamma参数传送方法,可以实现Gamma校正,从而提高多媒体通信的用户体验质量,提高多媒体通信业务对于公众的吸引力,提升设备厂家终端设备的市场竞争力,创造很好的经济效益。
需要说明的是本文所述的视频不仅仅包括运动图像序列(Motion PictureSequence,即视频的狭义定义),还包括静止图像、计算机图形,动画(如Flash动画,GIF动画等)等。
如图10所示,实现本发明上述视频伽玛参数传送方法的装置包括输入亮度离散值确定模块,用于根据视频的亮度离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;输出亮度离散值确定模块,连接所述输入亮度离散值选取模块,用于分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;视频码流传送模块,连接所述输出亮度离散值选取模块,用于将选取的输入亮度离散值和输出亮度离散值对应写入视频码流中传送。
其中,输入亮度离散值确定模块中还包括视频亮度直方图获取子模块,用于获取视频的视频亮度直方图;输入亮度离散值选取条件存储子模块,用于存储输入亮度离散值的选取条件;和输入亮度离散值选择子模块,用于从所有等级的输入亮度离散值中选择出满足所述选取条件的输入亮度离散值。
对于本发明所述方法,公式(12)至公式(17)确定的条件可以直接写入输入亮度离散值选择子模块中的判断程序中,如果允许用户根据需要自行设定条件,则用户可以将相关条件的表达式写入输入亮度离散值选取条件存储子模块,由输入亮度离散值选择子模块读入判断程序进行选择。
并且,输出亮度离散值确定模块连接视频流经过的各个伽玛环节,用于检测输出亮度离散值,因此该输出亮度离散值确定模块进一步还可以包括输入亮度离散值输入子模块,用于生成输入亮度离散值并输出;和输出亮度离散值检测子模块,用于检测输入亮度离散值对应输出亮度离散值。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种视频伽玛特性参数传送方法,其特征在于,包括如下步骤A、根据视频亮度的离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;B、分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;C、将选取的输入亮度离散值和输出亮度离散值对应写入视频码流中传送。
2.如权利要求1所述的方法,其特征在于,所述步骤A中,所述亮度离散值为大于等于0小于等于2D-1的整数,D为自然数;所述的离散亮度概率分布密度函数为视频的亮度直方图,该亮度直方图在给定范围a-b内的亮度分布概率是 ,其中整数a、b为给定范围的两个端点,a<b,LH为视频像素亮度的离散概率分布密度函数,i为求和指标,i为大于等于a并且小于等于b的整数。
3.如权利要求2所述的方法,其特征在于,所述步骤A具体包括如下步骤A1、确定需要选取的输入亮度离散值总点数N,N为大于零小于2D-1的整数;A2、确定第一个输入亮度离散值lin(0)从0开始,逐次扫描0-255中的整数,将第一个满足等式Σi=0kLH(i)=1N-1]]>的整数k作为lin(0);否则将第一个满足不等式Σi=0kLH(i)≤1N-1≤Σi=0k+1LH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k+1LH(i)-1N-1|]]>的整数k作为lin(0)、或者将第一个满足不等式Σi=0k-1LH(i)≤1N-1≤Σi=0kLH(i)]]>和|Σi=0kLH(i)-1N-1|≤|Σi=0k-1LH(i)-1N-1|]]>的整数k作为lin(0);A3、分别确定第二个输入亮度离散值lin(1)至第N个输入亮度离散值lin(N-1)的任意一个输入亮度离散值lin(p-1),其中2≤p≤N从lin(p-2)+1开始,逐次扫描lin(p-2)+1至255的整数,将第一个满足等式Σi=lin(p-2)+1kLH(i)=1N-1]]>的整数k作为lin(p-1);否则将第一个满足不等式Σi=lin(p-2)+1kLH(i)≤1N-1≤Σi=lin(p-2)+1k+1LH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k+1LH(i)-1N-1|]]>的整数k作为lin(p-1)、或者将满足不等式Σi=lin(p-2)+1k-1LH(i)≤1N-1≤Σi=lin(p-2)+1kLH(i)]]>和|Σi=lin(p-2)+1kLH(i)-1N-1|≤|Σi=lin(p-2)+1k-1LH(i)-1N-1|]]>的整数k作为lin(p-1)。
4.如权利要求1所述的方法,其特征在于,当视频经过至少两个伽玛环节时,所述步骤B中,所述的输入亮度离散值和输出亮度离散值分别根据每一个伽玛环节确定;以及所述步骤C中,将每一个伽玛环节的输入亮度离散值和输出亮度离散值分别对应写入视频码流中传送;或者所述步骤B中,所述的输出亮度离散值根据所有伽玛环节的级联伽玛环节确定。
5.如权利要求1所述的方法,其特征在于,所述方法还包括在视频码流中扩展伽玛参数信息域,将所述输入亮度信号离散值和输出亮度信号离散值组成二进制码流并携带在所述伽玛参数信息域中进行传送。
6.如权利要求5所述的方法,其特征在于,所述伽玛参数信息域分别包括伽玛参数信息和位于该伽玛参数信息两端的起始定界符和结束定界符,该起始定界符和结束定界符用于确定该信息域的范围。
7.如权利要求1所述的方法,其特征在于,当所述视频码流为采用H.264协议编码时,在H.264码流的补充增强信息SEI域中扩展用于携带所述伽玛参数信息的消息。
8.如权利要求2所述的方法,其特征在于,所述D等于8。
9.如权利要求1所述的方法,其特征在于,所述视频亮度直方图的获取方法为下述之一或任意组合根据视频中的每一帧图像进行实时统计并计算;选择视频中具有代表性的图像进行统计并计算;用统计特性上可以归为同一类视频中的典型视频数据或其它视频数据的亮度直方图替代。
10.一种视频伽玛特性参数传送装置,其特征在于,包括输入亮度离散值确定模块,用于根据视频的亮度离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;输出亮度离散值确定模块,连接所述输入亮度离散值选取模块,用于分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;视频码流传送模块,连接所述输出亮度离散值选取模块,用于将选取的输入亮度离散值和输出亮度离散值对应写入视频码流中传送。
11.如权利要求10所述的传送装置,其特征在于,所述输入亮度离散值确定模块中还包括视频亮度直方图获取子模块,用于获取视频的视频亮度直方图;输入亮度离散值选取条件存储子模块,用于存储输入亮度离散值的选取条件;和输入亮度离散值选择子模块,用于从所有等级的输入亮度离散值中选择出满足所述选取条件的输入亮度离散值。
12.如权利要求10所述的传送装置,其特征在于,所述输出亮度离散值确定模块中还包括输入亮度离散值输入子模块,用于生成输入亮度离散值并输出;和输出亮度离散值检测子模块,用于检测输入亮度离散值对应输出亮度离散值。
全文摘要
本发明涉及视频通信技术,特别涉及视频通信中的视频伽玛特性参数的传送方法和装置,以解决现有技术中无法获得高精度Gamma参数并在通信终端之间进行传送的问题。所述传送方法包括根据视频的亮度的离散概率分布密度函数选择输入亮度离散值,使任意给定范围中选取的输入亮度离散值点数占全部输入亮度离散值点数的比例与该范围内视频的亮度分布概率基本成正比;分别确定选取的每一个输入亮度离散值对应的输出亮度离散值;将选取的输入亮度离散值和输出亮度离散值对应写入视频码流传送。所述传送装置包括输入亮度离散值确定模块、输出亮度离散值确定模块和视频码流传送模块。
文档编号H04N9/64GK101026773SQ20061000919
公开日2007年8月29日 申请日期2006年2月20日 优先权日2006年2月20日
发明者罗忠 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1