公开/公告号CN1756340A
专利类型发明专利
公开/公告日2006-04-05
原文格式PDF
申请/专利权人 朗迅科技公司;
申请/专利号CN200510107571.6
发明设计人 莫罕莫德·H.·扎拉比扎德罕;
申请日2005-09-29
分类号
代理机构中国国际贸易促进委员会专利商标事务所;
代理人董莘
地址 美国新泽西州
入库时间 2023-12-17 17:08:02
法律状态公告日
法律状态信息
法律状态
2013-11-20
未缴年费专利权终止 IPC(主分类):H04N7/08 授权公告日:20100825 终止日期:20120929 申请日:20050929
专利权的终止
2010-08-25
授权
授权
2007-09-12
实质审查的生效
实质审查的生效
2006-04-05
公开
公开
技术领域
本发明涉及对作为模拟信号发送的视频加水印的技术领域,并且尤其涉及在视频信息内包括附加信息。
背景技术
对视频信号加水印通常是在视频本身内包括附加信息。这可以用来提供视频源的嵌入标识,跟踪视频在何地播放以及播放了多久,并且通过视频将信息传递给辅助装置。用于视频信号水印的现有技术典型地使用视频的亮度以模拟格式将附加信息编码在视频本身内,以携带附加信息。然而,人类视觉系统对亮度信号非常敏感,因此当试图将附加信息的比特率增加到超过某一点,例如超过120比特每秒时,查看加水印后的信号的人容易觉察到由于对视频信号进行改变以传递附加信息而产生的失真。于是,虽然现有技术的视频信号水印技术在某些应用中取得了成功,但是这种成功受到了在查看携带附加信息的视频信号的人觉察不到失真的情况下可以实现的比特率非常小的局限。
在以前申请的美国专利申请号SN 10/342704中,其全部内容在此引做参考,本人以及本人的共同发明人认识到,人类视觉系统对色度的敏感度远不如对亮度的敏感度。因此,我们开发了一种用于对视频信号进行数字水印的系统,其将水印信号的附加信息插入到视频信号的色度成分上,而不是其亮度信号上。于是,附加信息被“印”到视频信号的色度成分上。有利地,虽然可能存在色度成分的显著失真,特别是当附加信息具有的比特率比通过现有技术可以得到的、觉察不到失真的比特率更高时,但是这种失真不会被人类视觉系统察觉到,假设对其进行适当的管理。于是,相比于现有技术可以得到的比特率,附加信息可以具有更高的比特率,例如可以得到超过150比特每秒的比特率。进一步更加有利地,即使在使用运动图像专家组(MPEG)-1和MPEG-2编码系统对被水印有附加数据的视频信号进行压缩之后,也能够从视频信号中恢复附加数据。
然而,现在以及在可预见的将来所使用的最普通的视频传输格式还是模拟视频。用于传输模拟视频的一些视频标准包括NTSC、PAL和SECAM。虽然我们讨论的用于附加信息加印的许多现有概念可以用于模拟视频,例如向色度成分添加附加信息,以及颜色选择以确定色度成分的哪一部分将携带附加信息,因为传播模拟视频信号的各种信道的特征所导致的失真,我们先前所公开的技术不足以保证精确地接收所传输的任何水印数据。
发明内容
本人已经认识到,可以改进要以模拟形式,例如NTSC、PAL或SECAM,传输的视频的水印,根据本发明的原理,通过处理模拟信号的数字版本,以向至少一些色度成分——其作为用于至少部分地携带所印附加数据的比特的视频的线的段的一部分——中每一个添加下列之积:a)周期性变化的对映(antipodal)波形的值;b)表示所印的附加水印数据比特的值;以及c)可选地,表示添加附加水印数据的点处图像的本地商业的加权值。
每一段典型地由与连续编号的线像素对应的色度成分组组成。表示比特的线的分段并不必由相同数目的色度成分组成。例如,如果在线上可以使用720个像素,并且视频为4-2-2格式,那么第一个比特可以通过该线上的一组前112个色度成分表示,第二比特可以通过线上接下来的一组128个色度成分表示,并且第三比特可以再次通过线上接下来的一组128个色度成分表示。可以是这样的,存在不属于任何组的、剩下的色度成分。如果是这样,不将这些色度成分用于水印目的。例如,使用前述组,忽略线的最后8个色度成分。
每一组色度成分被分成子组。每一子组在时间上对应于周期性变化的对映波形的一个循环的周期。上面的范例特别适用于周期与显示16个色度成分的时间一样长的、周期性变化的对映波形,其对应于4-2-2表示中的32个像素。印到一组112个色度成分上的每一比特对应于周期性变化的对映波形的7个循环,而印到一组128个色度成分上的中间比特对应于周期性变化的对映波形的8个循环。虽然附加循环可以用在线上的任何点,或者可以完全不使用,但是优选地使用靠近图像中间的额外循环,其趋于具有最大活动性,并且因此具有最小的图像相关性,因而其受益于额外循环所提供的附加稳健性。
对于每一色度成分,颜色选择处理确定哪一色度部分,即U还是V,更好地携带附加水印数据。在美国专利申请号NO.10/673893中公开了一种这样的选择处理,其全部内容在此引做参考。指定多数时间被选择作为为子组更好地携带附加数据的色度部分来携带附加数据。更具体地,修改选择处理为其选择多数选择的色度部分作为更好地携带附加水印数据的子组的那些色度成分,来携带附加水印数据。因此,每一这种色度成分已经向其添加了通过下列之积表示的值:a)表示被印到色度部分上的附加水印数据比特的值;b)用于特定色度成分位置的周期性变化的对映波形的值;以及c)可选地,在该值被添加的位置附近的图像的商业功能,例如局部变量。如果可能,其余的色度成分保持不变。这样做有助于确保附加数据不成为可见的。
被修改的信号然后被转换回为模拟NTSC表示,用于传输或存储。
附加水印数据的比特可以重复地印在多个线上的相同段位置。例如,附加水印数据的比特可以被印在连续线上相同位置处多组色度成分上。而且,用于在其上重复数据的每一线上的分段的数据表示并不必是相同的。
在用于NTSC视频的示范实施例中,视频每一线的“活动”部分被分为720个亮度像素。每一线的“活动”部分是携带想要显示给观看者的内容的线部分。注意到,存在NTSC扫描线的附加部分不是活动的,并且在该实施例中不使用。在NTSC视频中,每一帧具有525视频线。这些线在NTSC中作为两个隔行扫描场处理,并且所谓的“奇”场具有263线,而所谓的“偶”场具有262线。在本发明的示范实施例中,只使用480线。它们对应于所谓的“活动”线,即它们是携带要显示给观看者的内容的线。
优选地,使用4-2-2表示中的视频执行本发明。注意到,当以YUV格式表示视频时,每一色度成分中典型地存在两个色度部分,例如U和V。当以4-2-2表示视频时,存在360个色度成分,即对于线的活动部分,存在360个U色度部分,其每个与各自V色度部分相关联。
在示范实施例中,线携带3个比特,每一比特由三个分段中的各自一个携带,因此线上的色度成分被分成三组,每一组对应于分段,并且表示一个比特。印在线上的第一比特通过线的一组前112个色度成分表示,印在线上的下一比特通过线上接下来的128个色度成分组成的组表示,并且印在线上的最后一个比特通过线上接下来的112个色度成分组成的组表示。每一线上的后8个色度成分不用于水印。112个色度成分由7个1616色度成分的子组组成,并且128个色度成分由8个16色度成分的子组组成。
在示范实施例中,周期性变化的对映波形是正弦曲线信号。可选功能是可以向其添加表示附加水印数据的值的特定色度成分的位置附近的图像亮度的商业措施。商业功能的范围例如可以从1至20。概念性地,通过将所印的比特表示与色度部分时的正弦曲线值、以及与色度部分位置处所确定的局部亮度变量的值相乘,确定被添加到所修改的任何色度部分的值。
在示范实施例中,在多条线上重复数据,例如在设置为3对的6条线上。对于一对中的每一条线,使用与在该对中另一线中所使用的表示相反的表示来表示数据。例如,如果在一对的第一线上,1表示1并且-1表示0,那么在该对的另一线上,例如帧的下一连续线上,-1表示1,并且1表示0。于是,场的每一线使用相同的数据表示,并且帧的每一场使用与同一帧的另一场相反的表示。
根据本发明的一个方面,在本发明的示范实施例中,为组成一个或多个规定序列的一组比特,例如9个比特,分配帧的区域,例如靠近顶部。可以使用这种序列来确定帧中是否有任何水印数据。如果在帧中有水印数据,则序列可以用作标识信号,从而用户能够知道帧的水印数据是否是该用户的。于是,这种序列可以用作预约号,以将用户彼此隔离。有利地,如果帧不是正被监视的用户的,那么可以忽略该帧,从而减少功率消耗和所需要的处理能力。表示这样的9个比特的规定序列可能需要使用3组6线,共18线,其中每一组6线表示3个比特,以上述方式。
接收器使用所接收的加水印的模拟信号的数字化版本。更具体地,数字化处理应该将数字版本处理成为在对信号进行水印中所使用的相同格式,例如每线720像素,480线,4-2-2表示。然而,应该逐步设置视频,即与所接收的场去交错(deinterlace),例如使用常规技术。
使用线对,例如使用连续线对进行处理。对于每一线,色度成分的样本按照与发射机相同的方式分组。对第一线的每一子组执行颜色选择,并且为每一子组识别多数选择的颜色。每一子组的U色度部分与对映周期性变化波形相关,以产生子组的U相关值,而每一子组的V色度部分相似地与对映周期性变化波形相关,以产生子组的V相关值。对每一各自线中每一各自组的每一子组的多数选择的色度部分的相关值积分,即相加在一起。于是,产生了每一线上每一组的积分值。从第一线的各自相同位置组的积分值中减去第二线的每一组的积分值。使用可变加权组合器将所得到的差与从在其上印有附加水印数据相同比特的其它线对为相同组位置产生的差组合。可变加权组合器的输出用作提供给维特比解码器的软比特,其中每一输出对应于水印数据的一个比特,维特比解码器提供水印数据的最终硬比特版本。
优选地,当3组成对线携带相同的被印数据时,只处理中间线对,并且忽略其它4个线。这样做对应于在可变加权组合器中将0加权用于第一对和最后一对,而将1加权用于中间对。仍然得到良好的性能,因为这样印并且恢复的数据在构建NTSC信号,并且从其恢复视频信号,包括各种滤波操作,的处理以后仍然存在。可替换地,可以将不同加权赋予每一线对,并且对软比特应用加权。优选地,中间组的线具有的加权比可以被相等地加权的其它组高。
如果使用前同步码序列,则得到的差不必送往维特比解码器。作为替代,可以将差,即软比特值,相对于对应于特定用户的已知模式进行相关。如果存在匹配,就处理其余帧。处理可以是简单地将帧标识为属于特定用户的帧。否则,就忽略其余帧。
附图说明
其中:
图1所示为用于根据本发明的原理对将以模拟形式传输的视频加水印的示范发射机的基本组件;
图2所示为根据本发明的原理,用于从已经被加水印的模拟视频信号中恢复附加数据的示范接收器;
图3A和3B在结合在一起作为图3时所示为在根据本发明的原理用附加数据对一个色度部分加水印时所使用的示范处理;
图4A和4B在结合在一起作为图4时所示为根据本发明的原理,用于从被数字水印的视频信号中提取附加信息的示范处理,在该被数字水印的视频信号中,组成视频信号内水印信号的附加信息已经被印在色度成分上;
图5所示为图1的对映比特映射器的更详细的视图;
图6所示为用于确定哪一特定色度部分更适合、并因此应该选择、来包含色度成分的水印信息的示范处理;
图7所示为示范分割色彩空间的部分的剖面图(cutaway view);
图8所示为另一示范处理,通过其选择特定色度部分来包含像素的水印信息;和
图9所示为来自图1和5中所示几个元件的示范输出。
具体实施方式
下面仅仅描述本发明的原理。应该认识到,本领域的熟练技术人员能够设计实现本发明原理的多种设备,虽然其在这里没有明确描述或示出,并且其被包括在本发明的精神和范围内。而且,这里所引述的所有范例和条件语言主要是只用于教学说明目的的表述,以帮助读者理解本发明的原理以及发明人改进现有技术所贡献的概念,并且应该理解为不被限定到这里所引述的范例和条件。而且,这里说明原理、方面以及本发明实施例及其特定范例的所有表述意欲包括其结构和功能等同物。另外,这种等同物应该包括当前所知道的等同物以及未来开发的等同物,即所开发的执行相同功能的任何元件,而不管其结构。
于是,例如,本领域的熟练技术人员会理解的是,这里的任何方框图表示实施本发明原理的说明电路的概念性视图。类似地,应该理解的是,任何流程图、流程框图、状态转换图、伪代码等表示各种处理,其基本上可以在计算机可读介质中表示,并且通过计算机或处理器这样执行,而不管这种计算机或处理器是否在这里明确示出。
附图中所示的各种元件的功能,包括标记为“处理器”的任何功能方框,可以通过使用专用硬件以及能够与适当的软件相关联的、执行软件的硬件提供。当通过处理器提供时,功能可以通过单个专用处理器、通过单个共享处理器、或通过其中某些可以共享的多个单独处理器提供。而且,明确使用的词语“处理器”或“控制器”不应该理解为排它性地指代能够执行软件的硬件,并且可以隐含地包括数字信号处理器(DSP)硬件、网络处理器、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)以及非易失性存储器,但并不仅限于此。也可以包括其它常规和/或定制的硬件。类似地,图中所示的任何切换只是概念性的。可以通过操作编程逻辑、通过专用逻辑、通过程序控制和专用逻辑的交互、或者甚至手动执行它们的功能,实施者可以选择的特定技术可以从上下文更加具体地理解。
在其权利要求中,任何表述为用于执行特定功能的装置的元件意欲包括执行该功能的任何方式,例如包括:a)执行该功能的电路元件的组合,或b)与用于执行该软件以执行该功能的适当电路相结合的任何形式的软件,因此包括固件、微代码等。这些权利要求定义的发明在于将各种所述装置提供的功能组合起来,并且通过权利要求所要求的方式一起进行。于是,应用将能够提供这些功能的任何装置当作这里所示的等同物。
软件模块、或者隐含地为软件的简单模块,在这里可以表示为流程图元件或者指示处理步骤执行的其它元件和/或文字描述的任何组合。这种模块可以通过明确或隐含示出的硬件执行。
除非这里有其它明确说明,所示附图并不按照比例。
在本说明书中,不同附图中相同编号的组件表示相同的组件。
图1所示为根据本发明的原理,用于通过处理模拟信号的数字版本以向视频线的分段的色度成分添加下列之积,从而对将以模拟形式,例如NTSC、PAL或SECAM,传输的视频加水印的示范发射机101的基本组件:a)周期性变化的对映波形;b)表示要印的附加水印数据比特的值;以及c)可选地,表示添加附加水印数据的点处图像的本地商业的加权值。
图1中所示为:a)YUV解复用器(demux)和抽取器103,b)颜色选择105,c)双极双掷(double-throw)切换109,d)纹理掩蔽单元111,e)乘法器113,f)加法器115,g)复用器(mux)117,h)对映比特映射器123,i)全国电视系统委员会制式(NTSC)转换器125,和i)延迟129。图1中也示出了可选的k)信道编码器119和1)块交织器121。
YUV解复用器和抽取器103接收要被加水印的视频信号,即要向其添加附加信息。YUV解复用器和抽取器103可以以数字视频工作,例如根据串行数字接口(SDI)标准格式的视频。如本领域普通技术人员会理解的,可以使用常规技术将开始不处于适当数字格式的任何视频信号转换为其。可以在开始处理之前将模拟视频转换成为数字的。
YUV解复用器和抽取器103解复用视频的亮度(Y)成分和其色度成分。视频信号的色度成分具有两个部分U和V,其中U是差分蓝部分,V是差分红部分。
优选地,将附加数据嵌入在色度成分上的很多处理是使用所谓“4-2-2”格式的视频进行,即亮度成分是全解析,而色度成分是a)只垂直为全解析和b)水平为半解析。这是SDI输入所提供的格式。在4-2-2格式中,对于线上亮度的每两个像素,存在一个色度分量。然而,对于某些处理操作,需要亮度和色度在相同速率上,即对于每一色度成分,只有一个亮度成分值。因此,YUV解复用器和抽取器103垂直抽取亮度成分,其作为信号Y被输出。将所抽取的亮度信号和色度部分作为输出提供给颜色选择105。
其它输入格式,例如4-4-4,可以作为视频输入信号提供给YUV解复用器和抽取器103,其然后将其抽取到上述适当的格式。它们应该选择这么做,本领域普通技术人员能够设计它们自己的方法,以产生适当的抽取信号。可替换地,在某些区域可以使用4-4-4格式执行处理,但是垂直方向上的附加色度需要说明。本领域普通技术人员可以很容易理解该如何做。
在可以将不同格式提供给发射机101的情况下,为了知道原始视频信号的格式,a)操作者可以向YUV解复用器和抽取器103指示提供给发射机101的视频的特定格式,b)可以使用常规技术直接从视频检测视频的格式,或者c)可以从正提供输入视频信号的更高层处理器提供信息。
YUV解复用器和抽取器103也以原始输入视频信号格式将Y、U和V输出提供给延迟129,优选地以4-2-2格式。延迟129将其接收到的Y、U和V信号延迟色度成分一个子组的时间,即对映波形的一个周期的时间,并且将所接收到的U和V信号的延迟版提供给双极双掷切换109。Y信号的延迟版本被提供给纹理掩蔽单元111和复用器117。
颜色选择105从YUV解复用器和抽取器103接收每一未延迟版的U、V和亮度信号Y。注意到,每一相关的U和V值组成单个色度成分,并且连同它们对应的Y值,它们对应于两个水平相邻的4-2-2像素。对于任何组的Y、U和V值,颜色选择105确定在色度成分上的哪一部分上,即U部分还是V部分上,如果需要,值的改变可以被更好地调节,而不会引入可见的非自然信号(artiface)。在本发明的一个实施例中,颜色选择105的操作是基于如下所述的查找表。可替换地,颜色选择105的操作可以全部或部分地基于各种计算,诸如在美国专利申请No.10/342704中公开的,其全部内容在此引作参考。将所得到的判定被存储到成分颜色存储器131中。成分颜色存储器131将用于色度成分的判定存储在一个子组中。例如,如果颜色选择105确定U应该是为色度成分选择的色度部分,那么将1存储在成分颜色存储器131中。类似地,如果颜色选择105确定V应该是为色度成分选择的色度部分,就将0存储在成分颜色存储器131中。成分颜色存储器131可以被实施为移位寄存器,以在将所选择的色度部分的指示作为输出COMPONENT COLOR提供之前,提供具有持续期为一个子组时间周期,即对映波形一个循环的时间期间,的延迟。
一旦已经由颜色选择105评估了子组的所有色度成分,就确定了选择U还是V用于子组的大多数色度成分。所选择的用于子组大多数色度成分的特定色度部分的指示被存储在子组多数存储器133中经过下一个子组的持续时间,并作为输出SUBGROUP MAJORITY被提供。
颜色选择105的输出COMPONENT COLOR也用来控制双极双掷切换109的位置。更具体地,COMPNENT COLOR控制双极双掷切换109,使得其:1)向加法器115提供已经被选择用来携带该水印数据的色度成分部分;2)向YUV复用器117提供未被选择的色度成分部分。COMPONENT COLOR也被提供给复用器117和对映比特映射器123,用于如下所述的使用。
在被延迟129延迟之后,纹理掩蔽单元111分析作为YUV解复用器和抽取器103的输出而提供的被抽取格式的每一相关色度成分和亮度成分周围的纹理,以确定在不引入可见非自然信号的情况下色度成分可以被调节的值的最大变化,并且将指示其的加权作为输出提供。加权值可以被编码,例如将从1至20的、用于10比特色度部分值的值进行积分。虽然纹理掩蔽单元111可以使用特定色度成分周围的所有像素位置来计算其纹理,但是这样做需要存储图像的多条线。根据本发明的一个方面,纹理掩蔽单元111可以简单地根据与当前色度成分相关的像素的亮度值以及与紧接着当前线上当前色度成分之前和之后的色度成分相关的像素的亮度值来确定纹理。有利地,根据本发明的一个方面,可以得到足够的精度,而不会让处理过于复杂。将加权提供给乘法器113。
注意到,所使用的特定值至少部分地取决于用来表示每一Y、U和V值的比特的数目。本领域的普通技术人员可以很容易认识到,所采用的值可以与所使用的比特数目成比例。
乘法器113将从纹理掩蔽单元111接收到的加权乘以与要作为该色度成分的部分而被传输的信息相关的值,其由对映比特映射器123提供。例如,由对映比特映射器123提供的值可以是正弦曲线值,例如sin(x)或-sin(x),对于其被选择的色度部分与子组的被选择的色度部分相同,即与信号SUBGROUP MAJORITY相同,的那些色度成分,其范围在-1与1之间。对于其被选择的色度部分与子组的被选择的色度部分不同的那些色度成分,如SUBGROUPMAJORITY信号所指示的,对映比特映射器123提供零。将乘法器113所产生的乘积提供给加法器115。
加法器115通过将乘法器113所提供的值与被颜色选择105选择用来为携带色度成分附加信息的色度成分部分的值相加,产生修改的色度部分。如所指示的,被颜色选择105选择用来携带附加信息的色度部分被双极双掷切换109传送到加法器115。将由加法器115提供的修改后的色度部分提供给复用器117。
复用器117接收每一延迟的原始亮度成分Y以及通过双极双掷切换109从延迟129提供的延迟的未修改的色度部分。复用器117也接收来自加法器115的修改后的色度部分。复用器117然后将原始亮度成分、未修改的色度部分以及修改后的色度部分复用在一起。复用器117借助于接收颜色选择105的输出,知道其在哪一引线上接收色度成分的修改部分,以及在哪一引线上接收色度成分的未修改部分。根据本发明的一个方面,所得到的视频信号被复用器117作为加水印的输出视频信号VIDEO OUT而提供。
注意到,原始亮度成分可以与色度成分不同的速率改变。例如,当原始视频是4-2-2格式时,每一像素由亮度值以及对应于被至少一个其它像素共享的色度成分的时间组成。由于两个相邻像素的组共享色度成分,而具有它们各自的Y值,所以亮度成分Y改变的速率是色度成分的两倍。本领域的普通技术人员可以很容易理解如何设计系统计时来考虑这一点。例如,YUV解复用器和抽取器103、延迟129和复用器117可以以其它组件速率的两倍工作。
如上所述,可以直接将要为每一组传输的附加信息的二进制数据值,即1或0,提供给对映比特映射器123,以作为水印数据使用,或者可以首先对其进行处理,以有利于在接收器中处理和恢复信息。可以通过可选的信道编码器119和块交织器121执行这种示范处理。
信道编码器119接收希望被嵌入到视频流中的附加数据。然后,例如使用前向纠错编码方案,对数据进行编码。这种前向纠错编码方案可以是任何常规前向纠错方案,诸如卷积编码,例如维特比编码或turbo编码,或者其可以是任何新开发的编码方案。在本发明的一个示范实施例中,使用速率四分之一的维特比编码。作为这种编码的结果,为原始比特流的每一比特产生四个比特。信道编码的比特流作为输出由信道编码器119提供给块交织单元121.
块交织器121重新设置信道编码的比特流的比特顺序,以随机地分布数据。这样做有助于减少丢失信道编码比特流的相邻部分的机会,例如由于噪声脉冲串或其它因素,那样就使得难以在接收器中根据剩余的实际接收的数据恢复这种数据。在本发明的示范实施例中,被交织作为单元的比特的数目等于帧中比特的数目。可以通过将数据顺序地从左向右写到块的行上--其中在每一行结束时,从下一行最左端的位置重新开始--,并然后通过从块的最左上端位置开始并向下读取一列,直至到达列的末端,--在那点上读取继续在下一列的顶部--,来读取数据,从而实现块交织器。已经证明,14行乘以16列的块交织器对于720乘以480像素的图像大小有效。对于不同的分辨率,本领域的普通技术人员可以很容易开发可比较的编码器。被交织的信道编码比特流作为比特交织器121的输出被提供给对映比特映射器123。
根据本发明的一个方面,在对映比特映射器123的控制下,将块交织器121提供的数据比特作为水印数据印到原始视频信号的至少一帧的至少一组线上。根据本发明的原理,对映比特映射器123提供的值表示所印的数据,其然后通过纹理掩蔽111的输出进行加权,并被加到所选择的色度部分的值上。
图5所示为对映比特映射器123的详细视图。图5中所示为a)双极切换501,b)乘法器507,c)对映正弦发生器509,d)乘法器513,e)比较器515,和f)控制器517。
控制器517控制对映比特映射器123的整体操作。特别地,控制器517控制如何表示从块交织器121接收到的数据的比特。注意到,多个色度成分被指定用来携带相同的附加数据。因此,例如在示范实施例中,色度成分的线的色度成分值被分为三组,其中每一组被分配给一个比特的表示。线上第一比特可以通过112个色度成分值表示,线上下一比特可以通过128个色度成分值表示,并且线上最后一个比特可以通过112个色度成分值表示。每一线上最后8个色度成分值不用于水印。112个色度成分值对应于7个子组的16色度成分,并且128个色度成分值对应于8个子组的16色度成分。
而且,在多个线,例如设置为3对的6个线,上相同组色度成分中携带相同的数据。对于一对中的每一条线,使用相反的表示来表示数据,例如,在一对的第一线上,由1表示1并且由-1表示0,那么在该对的另一线上,例如帧的下一个连续线上,用-1表示1,并且用1表示0。于是,场的每一线使用相同的数据表示,并且帧的每一场使用与相同帧的另一场相反的表示。
在控制器517的控制下,当该色度成分将要被包括在加水印的输出视频信号中时,对映比特映射器123提供来自交织的信道编码比特流的比特的适当表示,其要在原始视频信号的子组的每一色度成分的适当时间上为原始视频信号的每一线的每一子组被传输。于是,对映比特映射器123考虑这样的事实,即视频信号的处理时基于线的,即处理在线上是从左向右的,然后到下一行,再次从左向右,使得将要携带来自比特流的相同比特的相邻色度成分不必顺序地位于视频流中,并且因此并非都要在时间上直接相继地被处理。在任何时间作为对映比特映射器123的输出而提供的特定数据比特被作为输入提供给乘法器113。
控制器517接收来自块交织器121的数据。控制器517也接收关于图像的哪个扫描线正被处理的指示,作为输入。控制器517对作为线数目的函数的数据值进行补码运算。例如,仅对于偶扫描线,对数据值进行补码,即1变为0并且0变为1。
控制器517控制双极切换501的位置。如上所提到的,在本发明的一个实施例中,用于每一顺序线上数据的表示变为相反。于是,对于奇场,使用第一表示,对于偶场,使用相反的表示。
适当地转换从块交织器121接收到的数据以后,双掷切换501已经被耦合到与常数值1耦合的第一输入,和与常数值-1耦合的第二输入。当来自控制器517的输出是1时,双掷切换501的输出与常数值1耦合。当控制器517的输出是0时,双掷切换501的输出与常数值-1耦合。于是,双掷切换501将1、0数据表示有效地转换为1、-1数据表示。
双掷切换501的输出被提供给乘法器507。在图9中示出了来自双掷切换501的、对于由块交织器121提供的示范信号的示范输出。
乘法器507也接收对映波形,诸如正弦信号。在本发明的一个实施例中,对映波形是常规的正弦波,其范围在1与-1之间,由对映正弦发生器509产生。正弦信号的周期等于一个子组时间,即等于在显示器,例如电视,上显示与一个子组中色度成分的数目相对应数目的像素的时间,例如32个像素,其包含4-2-2表示中的16个色度成分。正弦通过多个相等空间间隔的样本进行数字表示。所使用的相等空间间隔的样本的数目与子组中色度成分的数目相等,例如为16。这对应于样本之间22.5度的空间间隔。例如参见表1。在图9中示出了来自对映正弦发生器509的、用于由块交织器121提供的示范信号的示范输出。
表1
色度 正弦值
位置
1 0
2 0.382683
3 0.707107
4 0.92388
5 1
6 0.92388
7 0.707107
8 0.382683
9 0
10 -0.38268
11 -0.70711
12 -0.92388
13 -1
14 -0.92388
15 -0.70711
16 -0.38268
将由乘法器507产生的、双掷切换501和对映正弦发生器509的输出的乘积提供给乘法器513。在图9中示出了来自乘法器507的、用于由块交织器121提供的示范信号的示范输出。
比较器515将颜色选择105当前所提供的信号值COMPONENTCOLOR与当前所提供的信号值SUBGROUP MAJORITY进行比较,其也由颜色选择105提供。如果值相等,则比较器515向乘法器513输出1。否则,比较器515向乘法器513输出0。于是,比较器513例如可以通过“异或非”门实施。于是,比较器515输出的1表示,当前色度成分已经选择为其子组中大多数色度成分选择被修改的相同色度成分来被修改。比较器515输出的0表示,当前色度成分已经选择对于其子组中大多数色度成分没有选择以修改的色度成分来修改,因此应该对色度成分不执行修改。
将作为来自乘法器513的输出而提供的、所得到的乘积提供给乘法器113(图1)。结果,不向为其选择以携带附加信息的色度部分与为色度成分的相同子组中多数色度成分所选择的色度部分不同的任何色度成分添加值。在图9中示出了来自乘法器513的、用于由块交织器121提供的示范信号的示范输出。
使用诸如图1中所示的编码器,当视频帧大小为720×480像素时,对于信道编码器119所提供的附加信息,已经达到了大约每秒1480比特的比特率,基本上没有错误。
本领域的普通技术人员可以很容易认识到,虽然图1中所示基本上为本发明的流水线实施方式,但是也可以有其它设置。在本发明的一个实施例中,为了方便,对整个线进行缓冲,并然后以更大的平行度进行处理。
根据本发明的一个方面,可以使用特定的已知数据序列,例如Barker序列,而不是编码用户所提供的数据,嵌入帧的具体比特位置。这通过可选的序列添加器127执行。可选的序列添加器127提供特定的已知数据序列,例如Barker序列。对映比特映射器123将序列的比特放置在帧的具体比特位置中,数据序列代替编码的用户数据,例如代替将来自块交织器121的数据放置在这些位置中。虽然优选地放置在帧的顶部附近,但是在其中对数据序列进行编码的比特位置可以分散在帧可用的各种比特位置上。嵌入这种序列的一种使用是将帧标识为加水印的帧。这种嵌入序列的另一种使用是标识特定的帧属于哪一用户,其可以通过为不同用户的帧使用不同的编码来实现。
图2所示为根据本发明的原理,用于恢复在其色度信号上包含数字水印的视频信号的附加数据的示范接收器201。图2中示出了:a)YUV解复用器(demux)和抽取器203,b)颜色选择单元207,c)双极双掷切换209,d)子组上的V相关器213,e)子组上的U相关器215,f)去交织器219,g)信道编码器221,h)组积分器231,i)线缓冲器233,j)双掷切换239,k)线延迟241,1)减法器243,m)多掷切换245和249,和n)可变加权组合器247-1至247-N,这里统称为可变加权组合器247。
YUV解复用器和抽取器203可以类似于发射机101的YUV解复用器和抽取器103(图1),其接收根据本发明的原理,通过向信号的色度成分添加附近信息而已经被数字加水印的视频信号。YUV解复用器和抽取器203可以以数字视频工作,例如根据串行数字接口(SDI)标准格式的视频。如本领域所普通技术人员会理解的,可以使用常规技术将开始不处于适当数字格式的任何视频信号,例如所接收的模拟NTSC信号,向其转换。
优选地,从色度成分恢复附加数据的很多处理是使用4-2-2格式的视频进行。然而,对于某些处理操作,需要亮度和色度具有相同的速率,即对于每一色度成分,只有一个亮度。因此,YUV解复用器和抽取器203垂直地抽取亮度成分,其被输出为信号Y。为了知道所接收的视频的格式,a)操作者需要向YUV解复用器和抽取器203指示输入视频的特定格式,b)可以使用常规技术从视频直接检测视频的格式,或者c)可以从正在提供输入视频信号的更高层处理器提供该信息。
将解复用的色度和抽取的亮度成分提供给颜色选择207。另外,将V色度部分提供给子组上的V相关器213,并且将U色度部分提供给子组上的U相关器215。与YUV解复用器和抽取器103不同,YUV解复用器和抽取器203也不需要提供原始输入视频信号的全格式的YUV输出。
作为子组内各种色度成分Y、U和V的函数,颜色选择单元207为每一子组确定在色度成分的哪一部分上,即在U部分还是V部分上,有可能为该子组嵌入附加信息。因此,颜色选择单元207主要重复由颜色选择105(图1)执行的、确定信号SUBGROUP MAJORITY所需要的计算。颜色选择单元207(图2)的输出用来控制双掷切换209的位置,使得双掷切换209向组上的积分器231提供由对应于多数选择颜色的相关器213和215其中之一所提供的相关值。在本发明的一个实施例中,颜色选择单元207是基于查找表的,如下更详细所述。这样做简化了处理,因为其不需要将YUV转换为RGB,否则这个转换是必需的。
子组上的V相关器213将子组上的V值与对映正弦的完整循环,诸如通过对映正弦发生器509所产生的,相关。因此,将每一V色度部分的值乘以相似位置的正弦值,并且将所有的乘积相加在一起产生单个值。类似地,子组上的U相关器215将子组上的U值与对映正弦的完整循环,诸如通过对映正弦发生器509所产生的,相关。因此,将每一U色度部分的值乘以相似位置的正弦值,并且将所有的乘积相加在一起产生单个值。
通过与对映正弦的完整循环相关,抵消了用于所选择部分的U或V部分的实际值,该实际值可以被看作循环上只少量变化,并且因此基本上对应于DC电平。这是因为,通过相关的乘法定律,所得到的乘积可以认为是与DC电平相乘的对映正弦,其是色度部分值加上与在DC电平为0时所印的正弦相乘的对映正弦。关于对映正弦与DC电平相乘,对于在正半周期的对映波形期间产生的每一正乘积值,存在对应的在负半周期的对映波形期间产生的负乘积值。当将对应的正乘积与负乘积相加时,它们就抵消了。然而,对映正弦乘以DC电平为0处所印的正弦的乘积通常产生正值或负值,除了在对映正弦为0的位置之外。于是,将这些值相加就产生总的正或负值。总值为正还是负取决于所印的正弦的极性。
由相关器为未选择色度部分产生的结果是不相关的,虽然其通常应该比较小,并且其反映色度部分的变化与对映正弦之间的内在相关性。
组积分器231将为组内每一子组的每一选择色度部分产生的值相加。注意到,如上所述,每一组中子组的数目不必相同,并且某些色度成分可以不属于任何组。进一步记住,每一组是特定比特的传输的部分。将所得到的结果提供给双掷切换239。
在图2中所示的本发明的实施例中,对于奇线,双掷切换239将来自组积分器231的组积分值路由到线延迟241,例如每线3个值。对于偶线的情况,双掷切换239将来自组积分器231的组积分值直接路由到减法器243。来自奇线的值在线延迟241中存储一个线周期,并然后将它们提供给减法器243。减法器243从奇线的对应位置各值中减去偶线的组积分值。
由切换245将每一组两个线的差值路由到其中一个可变加权组合器247。例如,当在每一线上印有3个比特时,就有三个可变加权组合器247,并且N=3。这样进行路由,使得第一可变加权组合器247接收对应于第一组两个线的积分差值,下一个可变加权组合器247接收对应于下一组两个线的积分差值,等等。每一可变加权组合器具有用于规定数目的积分差值的存储器位置,一个用于其上印有相同比特的每一对线。例如,当所印的数据在6个线上重复时,在每一可变加权组合器247中就有三个存储器位置,一个用于每一对线。
在处理其上已经重复被印数据比特的所有线之后,将加权乘以每一可变加权组合器247中存储值中的每一个。将加权后的值相加,并且将所得到的输出作为比特的软比特提供。通过切换249顺序地路由软比特,例如按照它们的对应组出现在视频信号的线上的顺序。
在本发明的一个实施例中,当所印的数据在6个线上重复时,用于中间两个线的加权为1,而用于前两个和后两个的加权为0。然后有效地,只需要处理中间两个线,简化了计算。已经发现,使用这种设置,即使使用3线梳状滤波器来处理图像,也可以成功地接收水印数据。
去交织器219重新设置软比特的顺序,以还原发射机101的块交织器121(图1)的效果。然后将重新排序的值提供给信道解码器221(图2),其对使用发射机101(图1)的信道编码器119所采用的编码类型进行编码的信号执行适当的解码,并且将软比特转换为最终的硬比特有效载荷。通过信道解码器221(图2)将所得到的解码值作为附加数据信号的重构版本提供。为了更加稳健,信道解码器221可以是所谓的“顺序解码器”,例如turbo解码器。
在一个示范应用中,可以监视视频信号内销售商的各种商业。可以将嵌入在其商业的每一帧中的唯一代码分配给销售商。接收器知道特定的唯一代码以及加水印的帧的哪一比特位置应该包含代码。通过检测在加水印的帧中代码的出现,接收器可以将帧标识为属于其中一个销售商商业的帧。一旦检测到具有代码的帧,就可以对包括代码的顺序帧的数目计数,以确定商业的长度。如果所计数的帧的数目少于帧的预期数目,则基于当其被初始水印时商业的已知长度,可以假定商业由于删除了对应于帧的预期数目与帧的计数数目之差的数目的帧,而被不适当的缩短了。本领域的普通技术人员可以认识到,也可以使用其它用于避免错误匹配以及处理由于误差丢失第一帧的常规技术。
可以使用唯一标识符,例如帧或组编号,来对商业的每一帧、或商业内的帧组进行水印处理,唯一标识符是帧上的离散序列的部分。当由于一个或多个丢失的帧而检测到预期序列中的间隙时,当每一帧具有唯一标识符时,就可以具体地识别这些丢失的帧。当将标识符只分配给组,并且每一组中帧数目是已知的时候,与丢失多少帧的计数一起,只可以识别任何丢失帧所属于的特定组。
如果销售商具有不同的商业,则每一商业可以具有嵌入在其帧的至少一个中的进一步序列,以标识正被接收的、该销售商的特定商业。
如果多个销售商具有加水印的商业,只要将唯一代码分配给每一销售商,则用于监视具有第一唯一代码的第一销售商商业的出现的系统就会忽略具有第二唯一代码的第二销售商商业。可替换地,单个系统可以监视用于来自分别具有唯一代码的不同销售商的商业的出现的视频信号,并且可以通过销售商根据它们的代码将这些结果隔离。
当多个销售商具有加水印的商业时,每一销售商使用相同的代码,并且代码甚至可以在用于每一销售商的帧中相同的比特位置上。然而,使用用于每一销售商的唯一密钥对包含在帧内的所有顺序数据进行加密,并且每一销售商具有只知道用于该销售商的密钥的接收器。因此,每一销售商只能够解密和接收来自其自己商业的数据。可替换地,可以通过对帧的比特位置上的数据进行扰频,对用于每一销售商的数据进行加密。每一接收器只知道其相关销售商的扰频模式。
在一个示范应用中,可以连续地、或者在希望播放商业的时间窗内,监视指示商业开始的代码的首次出现。
当出现时,可选的序列处理器223可以被定位,使得能够操作,以检测在帧中是否出现用户的唯一代码,并且剥离对应于这种代码的软比特。序列处理器223通过直接将其与软比特相关,从而检测用户的唯一代码。如果存在代码的匹配,就将其余的软比特提供给去交织器219。
图3A和3B在结合在一起表示为图3时,所示为根据本发明的原理,用于以附加数据对色度部分加水印的示范处理。图3的处理可以全部在软件中,或者结合诸如图1中所示的设置中执行。
当子组的所有色度成分都可用时,处理可以从步骤301开始。图3的部分处理是基于子组进行的,并且部分基于逐个色度成分,并且部分甚至在像素级进行。使用指针i标引线的色度成分。如上所述,对于该示范实施例,每一色度成分对应于两个亮度成分。
在进入步骤301的处理之后,在步骤303中对在处理中所使用的几个变量初始化,例如countU(i)=0并且countV(i)=0。countU是子组内多少色度成分被颜色选择处理选择作为适合于在U色度部分上进行水印的运行总数,而countV是子组内多少色度成分被颜色选择处理选择作为适合于在V色度部分上进行水印的运行总数。
此后,条件分支点307进行测试,以确定哪一特定色度部分,即U或者V,将包含用于子组的水印信息。这是通过评估用于子组内每一色度成分的颜色选择、并且计算子组内被选择用于每一色度部分的色度成分的数目来完成的。换言之,对于子组内的每一色度成分,根据被选择用来携带该色度成分的附加数据的色度部分,countU(i)和countV(i)其中适当的一个增加。可以使用查找表确定所选择的用于色度成分的色度部分,如下所述。选择被最多选择用于子组内色度成分的色度部分用于水印,即选择countU(i)和countV(i)其中较大者。
确定选择用来被为每一色度成分加水印的颜色的特定方法由实施者任意选择。在本发明的一个实施例中,选择具有最小值的色度成分的色度部分。在本发明的另一个实施例中,采用如下所述的颜色选择设置。
如果步骤307中的测试结果是V色度部分被选择被加水印,即countV(i)>countU(i),则控制前进到步骤309,其中设置变量SUBGROUP MAJORITY等于V。此后,控制前进到步骤313。如果步骤307中的测试结果是U色度部分被选择被加水印,即countU(i)≥countV(i),则控制前进到步骤311,其中设置变量SUBGROUP MAJORITY等于U。此后,控制前进到步骤313。
在步骤313中,得到子组的第一色度成分。然后,在步骤315中,确定为所得到的色度成分加水印所应该使用的特定色度部分。可以使用如下所述的查找表确定用于色度成分的被选择色度部分。此后,条件分支点317进行测试,以确定应该用于为所得到的色度成分加水印的特定色度部分是否与SUBGROUP MAJORITY所指示的色度部分相同。如果步骤317中的测试结果为YES,表示应该用于为所得到的色度成分加水印的特定色度部分与SUBGROUP MAJORITY所指示的色度部分相同,表示确实应该对该色度部分加水印,则控制前进到步骤319,其中计算var(i),用于与色度部分相关联的亮度值的商业指示,例如变量。有可能使用环绕色度部分的某些或全部亮度值。根据本发明的一个方面,已经发现,只使用与当前色度成分以及紧接着之前和之后的色度成分相关联的亮度值就足以计算var(i),如下:
其中色度成分及其相关联的两个亮度成分在线上设置为Y1UY2V;i是指向当前色度成分的附标;i-1是指向前一色度成分的附标,并且其相关的亮度值类似地设置;并且i+1是指向下一色度成分的附标,并且其相关的亮度值类似地设置。使用var(i)的这种计算的优点在于,其避免包括大的值来表示在用于不具有纹理的环绕区域的边缘上的水印数据。在这种边缘处,存在亮度与色度之间非常大的变化,但是环绕区域基本上具有不变的亮度和色度。如果边缘的差异(variance)值将确定为边缘上的色度成分所要添加的量,那么这种边缘上的水印可能产生可见非自然信号。因此,既然因为在边缘的每一侧上存在非常小的纹理,所以在边缘的每一侧上,差异非常小,从而通过使用最小变化作为差异的指示器,至多为水印数据添加小的值。换言之,上述用于var(i)的公式过滤出反映非纹理区域之间的边界的差异变化。
而且,对于在线开始处的、并因此在线上没有紧靠其前的色度部分,或者紧靠其前的色度部分没有显示出来的那些色度部分,这种紧靠其前的色度部分的值可以认为是0。虽然这里已经描述了某些色度部分在线上的不使用,因为它们不属于任何子组,并且那些色度部分已经被指示为位于线的末端,但是有可能让部分或全部初始色度部分作为未被使用的色度部分。这样做就允许使用在其前面的色度部分的实际值计算线上首先使用的色度部分的差异,并且也允许使用在其后面的色度部分的实际值计算线上最后使用的色度部分的差异。
条件分支点321接着进行测试,确定变量SUBGROUPMAJORITY是否等于U。如果步骤321中的测试结果为NO,说明该变量SUBGROUP MAJORITY等于V,使得要被加水印的是当前色度成分的V色度部分,则控制前进到条件分支点323,其进行测试,以确定与色度成分相关联的差异var(i)是否大于作为最大V阈值的第一规定V阈值t1v。基于var(i)公式的t1v的范例值为20。
注意到,结合图3和4用于U和V的特定阈值不仅取决于用于计算var(i)的公式,而且至少部分地取决于用来表示每一Y值的比特的数目。例如,这里所建议的阈值对于Y是10比特值。本领域的普通技术人员容易认识到,用于8比特的值通过除以4可以被比例变化到8比特,例如将值向右移位两次。同样的,可以类似地调节用于Y、U和V的比特数目。
在本发明的其它实施例中,不是使用亮度的差异用于各种比较,而是可以计算和使用差(different)平均差异,例如子组上的平均V差异。
如果步骤323中的测试结果是YES,说明var(i)的值大于t1v,即大于20,则差异足够大,从而可以使用最大编码值,表示为m1,例如16,来编码附加数据,控制前进到步骤325,其中将变量m设置为等于m1,例如16。
如果步骤323中的测试结果是NO,说明差异不够大,从而附加数据还不能使用最大编码值进行编码,则控制前进到条件分支点329,其进行测试,以确定差异是否大于第二规定阈值t2v,其是第二大阈值。t2v的范例值为10。
如果步骤329中的测试结果是YES,说明var(i)的值大于t2v,即差异足够大,从而可以使用第二大编码值,表示为m2,例如12,编码附加数据,则控制前进到步骤331,其中变量m设置为等于m2,例如12。
如果步骤329中的测试结果是NO,说明差异不够大,从而附加数据不能使用第二大编码值进行编码,则控制前进到条件分支点333,其进行测试,以确定色度成分的差异var(i)是否大于第三规定V阈值t3v,其是最小的V阈值。t3v的范例值为5。
如果步骤333中的测试结果是YES,说明var(i)的值大于t3v,即差异足够大,从而可以使用第三大编码值,表示为m3,例如8,编码附加数据,则控制前进到步骤335,其中变量m设置为等于m3,例如8。
如果步骤333中的测试结果是NO,说明差异不够大,附加数据不能使用第三大编码值进行编码,则控制前进到步骤337,其中将变量m设置为等于m4,例如4。
如果步骤321中的测试结果为YES,说明变量SUBGROUPMAJORITY等于U,使得所被加水印的是当前色度成分的U色度部分,则控制前进到条件分支点343,其进行测试,以确定与色度成分相关联的差异var(i)是否大于第一规定U阈值t1u,其是最大U阈值。基于var(i)的公式的t1u范例值为20。
如果步骤343中的测试结果是YES,说明var(i)的值大于t1u,即差异足够大,从而可以使用最大编码值,表示为m1,例如16,编码附加数据,则控制前进到步骤345,其中将变量m设置为等于m1,例如16。
如果步骤343中的测试结果是NO,说明差异不够大,附加数据还不能使用最大编码值进行编码,则控制前进到条件分支点349,其进行测试,以确定差异是否大于第二规定阈值t2u,其是第二大U阈值。t2u的范例值为10。
如果步骤349中的测试结果是YES,说明var(i)的值大于t2u,即差异足够大,从而可以使用第二大编码值,表示为m2,例如12,编码附加数据,则控制前进到步骤351,其中变量m设置为等于m2,例如12。
如果步骤349中的测试结果是NO,说明差异不够大,附加数据不能使用第二大编码值进行编码,则控制前进到条件分支点353,其进行测试,以确定色度成分的差异var(i)是否大于第三规定U阈值t3u,其是最小U阈值。t3u的范例值为5。
如果步骤353中的测试结果是YES,说明var(i)的值大于t3u,即差异足够大,从而可以使用第三大编码值,表示为m3,例如8,编码附加数据,则控制前进到步骤355,其中变量m设置为等于m3,例如8。
如果步骤353中的测试结果是NO,说明差异不够大,附加数据不能使用第三大编码值进行编码,则控制前进到步骤357,其中将变量m设置为等于m4,例如4。
本领域的普通技术人员可以容易认识到,虽然为U和V提供单独路径,这样使得能够为U和V使用不同的阈值和/或不同编码值。如这里的范例中,当用于U和V的阈值和编码值相同时,两个路径可以合并为单个路径。
一旦步骤325、331、335、337、345、351、355和357中任何一个结束了,控制前进到条件分支点361,如果当前处理的线是帧的奇线,其将变量oddline的值设置为1。这可以通过设置oddline等于当前线数目除以2的模数来实现。条件分支点363然后进行测试,以确定oddline的值是否等于1。如果步骤323中的测试结果是YES,说明当前线确实是帧的奇线,则控制前进到步骤367。如果步骤323中的测试结果是NO,说明oddline的值为0,因为当前线是帧的偶线,则控制前进到步骤365,其中将oddline的值设置为-1。控制然后前进到步骤367。
条件分支点367进行测试,以确定要添加到当前色度位置的数据是否等于1。如果步骤367中的测试结果是YES,说明为当前色度成分位置添加的数据是1,则控制前进到步骤369,其中将watermarkadd的值设置为m、oddline、和用于被加水印的色度成分位置的对映波形的值的乘积。换言之,watermarkadd=m×oddline×sin(2πi/16),其中i是当前色度成分位置。
如果步骤367中的测试结果是NO,说明为当前色度成分位置添加的数据是0,则控制前进到步骤371,其中将watermarkadd的值设置为m、-1、oddline、和用于被加水印的色度部分位置的对映波形的值的乘积。换言之,watermarkadd=-m×oddline×sin(2πi/16),其中i是当前色度位置。
在结束步骤369或371之后,控制前进到步骤373,其中将watermarkadd的值加到通过SUBGROUP MAJORITY表示的当前色度成分的色度部分的值。控制然后返回到步骤375。
在结束步骤373之后,或者如果步骤317中的测试结果为NO,控制前进到条件分支点375,其进行测试,以确定刚刚处理的色度成分是否是子组的最后一个色度成分。如果步骤375中的测试结果是YES,则控制前进到步骤379,并退出处理。如果步骤375中的测试结果是NO,则控制前进到步骤337,其获取要处理的子组下一个色度成分。控制然后返回到步骤315,并且处理按照如上所述继续。
图4A和4B在结合表示为图4时,所示为根据本发明的原理,用于从数字水印的视频信号中提取附加信息的示范处理,其中组成视频信号内水印信号的附加信息已经被印在色度成分上。这种处理可以通过本发明的范例软件实施例实施。本领域的普通技术人员可以容易理解,这种处理如何与图2中所示本发明的实施例相关。
当已经接收并存储了共同表示附加数据单个比特的色度成分时,例如用于6条线的相同组的色度成分位置,处理进入步骤401(图4)。注意到,为了教学的目的,这里假定通过按照它们所表示的比特进行分组来将色度成分提供,以进行图4过程的处理,使得在处理用于下一比特的任何色度成分之前,处理比特的所有色度成分。然而,在设计实际的系统中,本领域的普通技术人员会容易认识到,色度成分可以以与它们被扫描相同的顺序处理,并且可以使用适当的存储器位置和控制结构,以有效地按照比特单独地处理色度成分。
在进入步骤401之后,在步骤402中将处理中所使用到的几个变量初始化为0,例如k和bit。变量bit是比特位置的最终软比特输出,并且k是线计数,其可以通过取实际帧线数目的模6的余数并且加1而得到,其中线被编号为从1值525。注意到,如此上所述,线上可以有3个比特位置。
接下来,在步骤403中,表示在线k的组上的整体积分的变量,Integ(k)被设置为0。在图2中,通过组积分器231得到Integ(k)。变量j,子组附标也被设置为1。
在步骤405中,将用于第j子组的U相关值CorrU(j)设置为0。而且,将CntU也设置为0,其计数U被选择作为子组内可能被加水印的色度部分的次数。另外,将子组内的色度成分附标i设置为1,色度成分附标i的范围从1至16。类似地,将用于第j子组的V相关值CorrV(i)设置为0。而且将CntV也设置为0,其计数子组内V被选择作为可能被加水印的色度部分的次数。
在步骤407中,对于当前线k,读取当前色度成分,即U(i,j)和V(i,j),并且得到与色度成分相关联的Y(i,j)的值。Y(i,j)例如可以作为与当前色度成分相关联的两个Y值的平均值得到,或者其可以简单地是其中一个Y值,而丢弃另一个值。
在步骤409中,计算每一色度成分的值与对映波形的当前值之间的相关性,并且将所得到的值添加到当前子组的相关性的适当运行总数。也就是说,计算:
CorrU(j)=CorrU(j)+U(i,j)×sin(2πi/16);和
CorrV(j)=CorrV(j)+V(i,j)×sin(2πi/16)。
接下来,条件分支点411进行测试,以确定当前色度成分的哪一色度部分,U或V,可能已经被加水印了。其可以被确定,例如在图2中使用颜色选择207。作为Y、U和V的函数,主要通过重复由颜色选择105(图1)所执行的、确定信号SUBGROUP MAJORITY所需要的计算来确定特定色度部分。在本发明第一个实施例中,颜色选择单元207(图2)是基于查找表的,如下所述。
如果步骤411中的测试结果为V,说明对于当前色度成分,可能选择V来携带附加数据,则控制前进到步骤413,其中CntV增1。如果步骤411中的测试结果是U,说明对于当前色度成分,可能选择U来携带附加数据,则控制前进到步骤415,其中CntU增1。
在步骤413或者415结束之后,控制前进到步骤417,其测试以确定当前正被处理的色度成分是否是当前子组中的最后一个色度成分,即对应于对映波形当前循环的最后一个色度成分。如果步骤417中的测试结果为NO,说明在当前子组中还有其余色度成分,则控制前进到步骤419,其中将色度成分附标i增1。控制然后返回到步骤407,并且处理如上所述继续。
如果步骤417中的测试结果为YES,说明当前色度成分是当前子组的最后一个,则控制前进到条件分支点421,其进行测试,以确定CntU是否大于等于CntV。如果步骤421中的测试结果为YES,说明在刚刚被处理的子组内,U被选择的次数如果不超过V,至少与其一样多,则控制前进到步骤423,其中将Integ(k)设置为等于Integ(k)+CorrU(j),即将子组上U的相关加到组上的整体积分。类似地,如果步骤421中的测试结果为NO,说明在刚刚被处理子组内,V被选择的次数多于U,则控制前进到步骤425,其中将Integ(k)设置为等于Integ(k)+CorrV(j),即将子组上V的相关性加入到组上的整体积分。
在步骤423或者425结束之后,控制前进到条件分支点427,其进行测试,以确定当前正处理的子组是否是当前组的最后一个子组。如果步骤427中的测试结果为NO,则控制前进到步骤428,其中将子组附标j增1,以指向下一个子组。
如果步骤427中的测试结果为YES,说明已经为当前线处理了全部组,则控制前进到条件分支点429,其进行测试,以确定当前线计数k的值是否是偶数。如果步骤429中的测试结果为NO,说明当前线是奇数编号的线,并因此在能够确定当前比特之前有多个线要被处理,则控制前进到步骤431,其中将当前线计数k增1。控制然后返回到步骤403,并且处理按照如上所述继续。
如果步骤429中的测试结果为YES,说明在能够确定当前比特之前没有更多的线要被处理,则控制前进到步骤433,其中通过向其加入加权因子乘以前一线的组上积分值Integ(k-1)与当前线的组上积分值Integ(k)之间的差的乘积,更新bit(k)的值,其是比特位置的最终软比特输出。换言之,步骤433例如计算bit=bit+w(k/2)×(Integ(k-1)-Integ(k))。注意到,当为一个比特使用6个线时,将会有3个加权值。在本发明的一个实施例中,加权为(0,1,0)。于是,有效地,在确定比特的值中只使用中间两个线。然而,在6个线上重复数据有助于中间两个线上的数据通过滤波,NTSC信号以足够高的可能性被正确检测到地经过滤波。
条件分支点435进行测试,以确定是否已经到达比特的最后一个线,即k是否已经到达其最大值,例如6。如果步骤435中的测试结果为NO,说明在能够确定当前比特之前还有其它线需要处理,则控制返回到步骤431,并且处理按照如上所述继续。如果步骤435中的测试结果为YES,说明已经处理了用于当前比特的所有线,则控制前进到步骤437,其中将比特的值作为软数据输出提供。处理然后在步骤439中退出。
注意到,不是视频信号的帧的所有比特位置都需要印有附加信息。
图6所示为用于确定哪一特定色度部分更适合、并应该被选择来包含色度成分的水印信息的示范处理。当需要选择色度部分来包含水印信息时,处理进入步骤601。为了讨论图6的目的,假定以YUV格式表示色度成分。而且,对于每一色度成分,只需要一个Y值。因此,可以对与4-2-2分辨率的线上每一色度部分相关联的两个Y值平均,或者可以选择它们其中的一个,并丢弃另一个,例如可以将YUV解复用器和抽取器103作为输出而提供的Y值用作下面附图描述中的Y。
概念性地,假定可以取Y、U和V值的整个范围,例如根据试验观察,将对应于可能的Y、U和V组合的三维YUV色彩空间中的每一位置分配一个色度部分,其更适合进行水印,由于如果其被加水印则不太可能引入可见的非自然信号。如果要使用Y、U和V值的每一可能组的整个表的版本,其中每一Y、U和V具有完整范围8比特,则需要存储至少16M比特的信息,假定为每一位置存储一个比特,以表示所选择的色度部分。
图7中示出了要为三维YUV色彩空间中每一可能的Y、U和V组合选择的色度部分的示范分配的部分的剖面图。注意到,提供图7只是用于说明目的,作为概念性的视觉辅助,并且不表示实际数据。
为了减少存储要求,YUV色彩空间可以被考虑为是一组区域,定义每一区域以包括对应于至少一组,并且典型地为多组,Y、U和V值的位置,即色彩空间中的位置对应于每一区域,并且因此映射到该区域的每一Y、U和V组合被分配一个色度部分,例如根据试验观察,其是为落入范围内的任何组Y、U和V值所要选择的。考虑分组到区域的一种方式是量化,其可以是线性或非线性的。
表1为示范色彩空间选择表的列表,其中每一区域对应于4个Y值、4个U值和4个V值,并且因此对应于任何像素的8比特值的64个可能组合。使用这种表就将需要存储的信息减少到256K比特,假定为每一位置只存储一个比特。表1可以存储在任何计算机可读介质中,例如ROM、RAM、磁性存储器,诸如硬盘或磁带驱动器,光学存储器,诸如CD-ROM或DVD-ROM等。
本领域的普通技术人员会很容易认识到,通过除以4,例如将每一10比特值向右移位两次,用于具有8比特全部范围的每一Y、U和V的、表1中所使用的值是可以被比例变化,以用于10比特的Y、U和V值,诸如在图1的其余元件中使用。同样地,可以类似地采用用于Y、U和V的其它数目的比特。
为了有效地设置和访问表1的数据,这样设置,使得用于具有相同U和V量化值但是具有不同顺序量化Y值的8个相邻区域的指定U或V选择被分组在一起形成字节,其中1表示选择U,而0表示选择V。于是,对于每一U和V值,有8个字节,每一字节对应于具有相同U和V量化值但是具有不同量化Y值的区域。
设置表1,以使用具有对应于U值的最高有效位、对应于V值的次最低有效值、以及对应于Y值的最低有效值的地址进行寻址。换言之,字节的地址可以形成如下:
U7|U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
其中U7、U6、U5、U4、U3和U2是U值的第8至第3最低有效位的值,V7、V6、V5、V4、V3和V2是V值的第8至第3最低有效位的值,U7、U6和U5是Y值的第8至第6最低有效位的值。然后,通过使用Y值的第5至第2最低有效位,例如Y4、Y3和Y2,来指定字节内的特定比特。
诸如表1的表格反映了这样的事实:人类的视觉系统a)对蓝色不敏感,以及b)对更低的亮度值更敏感。可以通过反复试验来开发这种表格,通常如下。
在部分(section)中检查颜色空间,每一部分通过亮度值定义,并且一维中的范围对应于第一色度部分从其最小值变化到其最大值,并且二维中的范围对应于第二色度部分从其最小值变化到其最大值。例如可以使用8比特值的6个最高有效位来量化任何或全部的亮度和色度部分。这样做就产生一组具有在显示为不同颜色的盒时出现的色度部分值的检测板的平面,一个平面用于每一亮度值。例如,进行量化,以使用亮度和色度部分的8比特值中6个最高有效位,就产生对应于每一可能的量化亮度值的64个平面,并且每一平面具有彩色盒的检测板图案,对于每个平面总共4096个盒,其中64个盒垂直,64个盒水平。
单独地检查每一平面。为多个帧开发随机数据,足以确信随机数据在帧随着时间推移的相似位置盒中具有不同的值,并且对于检查闪烁的观察者,其应该出现。已经证明30秒或更长的是有用的。随机数据被印到包含平面的帧上,但是只在第一色度部分上。显示并观察所得到版本的帧。
观察不到闪烁的任何盒在表格中表示,其亮度和色度部分的组合应该使用当前携带水印数据的色度部分作为所选择的用于该组合的色度部分。观察到闪烁的任何盒在表格中表示,其亮度和色度部分的组合应该使用当前没有携带水印数据的色度部分作为所选择的用于该组合的色度部分。对于平面,重复该处理,但是改变已经将数据加入到其中的色度部分。
对于两个色度部分都出现闪烁的平面的任何盒,如可能发生的那样,实施者可以选择应该选择的哪个色度部分。例如,可以选择U,因为人类视觉系统通常对蓝色不敏感。可替换地,可以使用能够提供所得到的表格的更好数据压缩的色度部分。类似地,在盒上都没有闪烁出现的地方,对所要使用的色度部分的选择就由实施者随意选择。
对于每一平面,重复该处理,直至整个表格被填充。
表格1
当这样设置时,步骤603开始访问信息的处理。更具体地,在步骤603中,为当前色度部分计算:
y=Y>>5,
u=U>>2,以及
v=V>>2
其中“>>”是右移操作。这样做就只剩下U值的想要的第8至第3最低有效位、V值的第8至第3最低有效位,以及Y值的第8至第6最低有效位。此后,在步骤605中,查找表地址被计算为LUT_Address=u<<9+v<<3+y,其中“<<”是左移操作。
这样做就将所提取的比特组合到组合地址中,并且指向对应于所提供的Y、U和V值的一个字节。此后,在步骤607中,通过使用由Y值的第2至第5最低有效位组成的值作为比特中的附标,确定对应于所提供的Y、U和V值的字节内的特定比特。因此,步骤607计算b=mod(Y<<2,8),其中mod是取模函数。
在步骤609中,提取所计算的查找表地址处的字节的第b个比特位置的值,分配作为变量m的值,其被提供为输出。再次,在该示范实施例中,如果所提取的比特是1,则U是所选择的色度部分,而如果所提取的比特是0,则V是所选择的色度部分。
处理然后在步骤611中退出。
本领域的普通技术人员可以容易认识到,如何将前述适用于其它格式的像素,诸如RGB或YIQ。
注意到,如果希望对表格进行Huffman编码,则以下可能是有利的,即选择U为1而选择V为0的前述对应关系应该反向,假定,如已经从实验性地看到,为多数像素组合选择U。
图8所示为另一示范处理,通过其,选择特定色度部分来包含像素的水印信息。当需要选择适合于包含水印信息的色度部分时,处理进入步骤801。为了描述图8的目的,假定对于每一色度成分只有一个Y值。
为了相比于图6的实施例,进一步减少图8的实施例中的存储要求,根据本发明的一个方面,不仅将YUV色彩空间划分成区域,其中每一区域包括对应于至少一组Y、U和V值的位置,并且例如根据试验观察,每一区域被分配要为其Y、U和V值落入该区域内的任何像素选择的色度部分,如结合图6中所述,而且具有的U值小于预定值,例如最大值一半,的任何像素将U色度部分选择用于水印。于是,对于8比特的Y、U和V值,如果U值小于128,那么总是选择U色度部分用于水印,而不管V或Y值。这是因为人类视觉系统对蓝色成分U比对V成分更不敏感。
通过具有最高有效地址,色度部分选择表格的比特对应于地址的U值推导的(U-value-derived)比特,有利地,可以将表格的大小减少高大一半。这是通过以下方式实现的,即添加测试,以在形成表格地址之前确定U值是否小于最大值的一半,并且如果测试结果为YES,简单地指示选择U色度部分并且跳过访问表格的其余处理,并且也通过在计算地址的U值推导的比特之前从实际U值中减去最大U值的一半。于是,消除了图6所使用的、对应于最高有效U位为0的表格部分,并且只保留最高有效U位为1的表格部分。然而,在形成U值推导的比特之前,通过从U值中减去最大U值的一半,到表格其余部分中的索引被移位。
于是设置表格,以使用具有对应于U值的最高有效位、对应于V值的次最低有效位、以及对应于Y值的最低有效位的地址进行寻址。换言之,字节的地址可以形成如下:
U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
其中U6、U5、U4、U3和U2是U值的第7至第3最低有效位,V7、V6、V5、V4、V3和V2是V值的第8至第3最低有效位,并且Y7、Y6和Y5是Y值的第8至第6不重要的比特有效位。然后,通过使用Y值的第5至第2最低有效位,例如Y4、Y3和Y2,来指定字节内的特定比特。
因此,条件分支点802进行测试,以确定是否U<predefined_value,其中predefined_value例如是最大U值的一半。注意到,为了节省比特,并且将表格减半,predefined_value优选地应该是2的幂。如果步骤802中的测试结果为NO,说明U值小于预定值,例如U的最大值的一半,例如128,并且因此所要选择的色度部分是Y、U和V的函数,从而必须访问表格,则控制前进到步骤803,以开始访问表格的处理。在步骤803中,为当前色度成分计算:
y=Y>>5,
u=(U-predefined value)>>2,例如u=(U-128)>>2,以及
v=V>>2
其中“>>”是右移操作。这样做就只剩下希望的U值的第7至第3最低有效位、V值的第8至第3最低有效位、以及Y值的第8至第6最低有效位。此后,在步骤805中,用于当前像素的查找表地址被计算为LUT_Address=u<<9+v<<3+y,其中“<<”是左移操作。
这样做就将所提取的比特组合到一个组合地址中,并且指向对应于像素的一个字节。此后,在步骤807中,通过使用由Y值的第5至第2最低有效位组成的值作为到字节的索引,来确定对应于像素的字节内的特定比特。因此,步骤807计算b=mod(Y<<2,8),其中mod是取模函数。
在步骤809中,提取在所计算的查找表地址处字节的第b个比特位置的值,并将其存储在变量m中。变量m的值在步骤811中作为输出提供。再次,如果输出比特是1,则U是所选择的色度部分,而如果所提取的比特是0,则V是所选择的色度部分。处理然后在步骤813中退出。
如果步骤802中的测试结果为YES,说明应该选择U色度部分,因为像素颜色并非主要为蓝色,并且因此改变像素的蓝色不会被人类视觉系统检测到,则控制前进到步骤815,其中将变量m设置为等于1。这样做就确保选择U。控制然后前进到步骤811,并且处理按照如上所述继续。
机译: 模拟视频水印方案
机译: 模拟视频水印方案
机译: 模拟视频水印方案