专利名称:在图像信号中嵌入水印的制作方法
技术领域:
本发明涉及用于把水印嵌入在包括被编码为可变长度码字的信号取样的媒体信号中的方法和设备,包括以下步骤把可变长度码字解码成所述的信号取样;根据将要被嵌入的水印的各个取样修改选择的信号取样;和重新编码修改的信号取样。
背景技术:
如引言段落中所述的把水印嵌入在媒体信号中的一种已知方法在F.Hartung和B.Girod文章″Digital Watermarking of MPEG-2 CodedVideo in the Bitstream Domain″中公开,该文章刊登在ICASSP,1997年卷4的2621-2624页上。在此已有技术的出版物中,该媒体信号是MPEG压缩的视频信号。该媒体信号的信号取样是通过使图像像素经历离散余弦变换获得的DCT系数。该水即是DCT变换的伪噪声序列。通过把这种变换的噪声序列的取样添加到相应DCT系数而嵌入水印。该MPEG编码信号的零系数将不受影响。
该已有技术的水印嵌入方案的一个问题是DCT系数的修改通常改变比特流的比特率,因为DCT系数是由可变长度码字表示的。通常较高的比特率是不可接受的。因此,该已有技术的嵌入器检测修改的系数的发送是否增加了比特率,并且在增加了比特率的情况下发送原始系数。不期望降低该比特率。例如,在MPEG系统中,该比特率的改变可能导致解码器中的缓存器的上溢或下溢,并且改变在该比特流中定时信息的位置。
发明内容
本发明的一个目的是提供一种减轻上述缺陷的嵌入水印的方法。
为此目的,根据本发明的方法的特征在于把修改步骤应用到利用可变长度码字表示的信号取样,其中对于具有相同的幅值但具有不同的符号的信号取样,这些可变长度码字具有相同长度;并且如果反相所述的信号取样的符号将使得信号取样按照由水印的各个取样的规定增加或减少,则修改步骤包括反相所述的信号取样的符号的步骤。
通过仅更改信号取样的符号并且留下幅值不受影响,可变长度码字的长度将不被水印嵌入处理而改变。因此利用本发明实现比特率保持不受影响。
通过反相其符号修改信号取样的量等于其幅值的两倍。这样的一种修改可能是太大的修改。因此,在本方法的一个实施例中,该反相步骤取决于该信号取样的幅值。
在压缩方案中,例如在使用具有表示信号取样的符号的一个符号位和该信号取样的可变长度编码幅值的可变长度码的MPEG压缩方案中,本发明尤其有益。因此能省却单独的重新编码的步骤。反相该可变长度码字的符号位就足够了。
图1示出根据本发明的用于在媒体信号中嵌入水印的设备的示意图。
图2A-2D示出说明图1所示设备的操作的波形。
图3示出由图1示出的设备执行的操作的流程图。
图4A-4C示出说明图1所示设备的可选操作的波形。
图5示出根据本发明的用于在媒体信号中嵌入水印的设备的另一图6A-6C和7A-7G示出说明图5示出的设备的操作的示意图。
图8示出由图5示出的设备执行的操作的流程图。
图9示出水印检测过程。
具体实施例方式
图1示出根据本发明的用于在媒体信号中嵌入水印的设备的示意图。该设备包括可变长度解码器1、水印嵌入级2、可变长度编码器3和水印缓存器4。该设备接收可变长度码字VLC(x(n))形式的媒体信号,每一个可变长度码字表示该媒体信号的一个取样x(n)。这些取样可以是音频、视频或数据信号的DPCM取样或付立叶或DCT系数。如通过可变长度解码器1解码的信号取样x(n)的系列x(0)...x(12)的一个示例在图2A中示出(索引n示出在图2A的顶部)。
将要嵌入的水印W是一系列水印取样w(n),它被存储在水印缓存器4中。图2B示出一系列水印取样w(0)...w(12)的一个实例。在这一实例中假设该设备执行附加的水印嵌入。这意味着水印取样w(n)被加到相应系列的信号取样x(n),如图2C中所示。在数学表示中
x′(n)=x(n)+w(n)。
应该注意,水印取样在实践中要比信号取样小得多。
随后通过可变长度编码器3把加上水印的信号取样x′(n)重新编码成可变长度码字VLC(x′(n))。这种无条件附加水印嵌入处理的一个问题是输出的可变长度码字VLC(x′(n))将通常具有不同于相应输入的可变长度码字VLC(x(n))的长度LEN。输出比特率因而通常不同于输入比特率,而这是不期望的。在上文提到的Hartung和Girod的文章提供了对此问题的一种解决方案,即如果其修改增加相应可变长度码字的长度,则保留信号取样x(n)不受影响。
根据本发明,信号取样的修改被限制到利用可变长度码字表示的那些信号取样,其中对于具有相同的幅度但具有不同符号的信号取样,这些可变长度码字具有相同的长度。为了方便起见,在此示例中将假设对于全部可变长度码来说满足这一条件,即,针对所有的x(n)LEN{VLC(x(n))}=LEN{VLC(-x(n))}如果信号取样x(n)的符号的反相的确使得信号取样被按照水印的各个取样规定的那样增加或减少,此时通过反相信号取样x(n)的符号来执行水印嵌入。此操作通过嵌入级2来执行。图3示出由这嵌入级的一个实施例执行的操作的流程图。在步骤31中,检查把水印取样w(n)加到信号取样x(n)的结果是否具有与反相该信号取样的符号实际上相同的效果。“实际上”可以定义为意味着在x(n)+w(n)和-x(n)之间的差值小于一个给定阈值,或x(n)+w(n)至少具有与-x(n)相同的符号。如果情况如此,则执行步骤32,其中确实把x(n)的符号反向。否则,在步骤33中,取样x(n)保持不受影响。
图2D示出如此获得的加了水印的媒体信号的信号取样x′(n)。在此图中已经圈出了反相的信号取样。其值实质上对应于图2C示出的“规定”值。因为不满足条件31,所以其它信号取样没有被修改。
利用上述通过符号反相(也称作“符号位反转(flip)”)的水印嵌入实现在输出比特流中的每一可变长度码字VLC(x′(n))都具有与输入比特流中的相应可变长度码字VLC(x(n))相同的长度。不仅实现平均比特率保持不变,而且甚至实现比特率不瞬间改变。该比特流的每个码字都保持其原来的位置,并且没有在比特流中的其它信息的定时关键位置(例如,时间标记的位置)被更改的危险。
图4A-4C示出说明图1所示设备的一个可选实施例的操作的示意图。在本实施例中,水印缓存器4仅存储各个水印取样w(n)的符号s(n)。本实施例的优势在于,其只要求每水印取样的一比特被存储在缓存器4中。如图4B所示,符号s(n)仅表示是否对应信号取样将被增加(+)或减小(-)。在本实施例中,如果所述的反相使得信号取样按照该水印取样的规定而被增加或减少,则该嵌入级2反相信号取样x(n)的符号。由于修改信号取样的量不再被规定并且此量值可以是太大的量(即两倍于其幅值),所以最好仅针对小幅值(例如小于阈值d)执行反相。图4C示出这样一个实施例的加上水印的信号x′(n)。与图2D相似,该反相的信号取样被圈出表示。与图2D比较仅有轻微的性能减小。由于对应水印取样w(9)非常大,在图2D中被反相的信号取样x(9)在图4C中没有被反相,因为其幅值高于阈值d。
现参照把水印嵌入在根据MPEG2标准压缩的一个视频信号中来描述该设备的一个实际实施例。注意,该媒体信号可能已经具有一个嵌入的水印。在这种情况下,嵌入附加水印。对已经加了水印的信号加水印的处理通常被称作″重新标记(remark)″。
图5示出执行根据本发明方法的一个最佳实施例的示意图。该设备包括MPEG语法分析单元51、可变长度解码器52、处理单元53、输出单元54和水印缓存器55。
该设备接收表示视频图像序列的MPEG视频流MP。图6A中以举例的方式示出这样一种视频图像。这些视频图像已经被分成8×8像素的块,图6A中以61表示一个这样的块。像素块由各个8×8DCT系数块来表示。这样的一个DCT块的左上方的变换系数表示对应像素块的平均亮度并且通常称作DC系数。其他系数表示空间频率,并且被称为AC系数。左上方的AC系数表示图像的粗略细节,而右下方的系数表示精确细节。这些AC系数被量化。这一量化过程使得许多DCT块的AC系数被假定为零值。图7A示出表示图6A中的图像块61的一个DCT块71的典型实例。
该DCT块的系数已经根据一个Z形(zigzag)扫描方案(图7A中的79)被顺序扫描以及被可变长度编码。由MPEG采用的可变长度编码方案是霍夫曼编码和游程长度编码的组合。更具体地说,零AC系数和一个随后的非零AC系数的每个游程构成一个(游程,等级)(run,level)对儿。在每一(游程,等级)对儿中,″游程″表示零系数的数量,而″等级″表示非零系数的值。一个块结束码(EOB)(End-Of-Block code)表示在该DCT块中的其它非零系数的缺乏。图7B示出表示DCT块71的(游程,等级)对儿的序列。
(游程,等级)对儿利用可变长度码字来表示。由MPEG采用的这种可变长度编码方案的一个特性是具有相同幅值但不同符号的系数将利用等长度码字来表示。例如,(游程,等级)对儿(1,-1)和(1,1)被分别编码为等长码字0111和0110。图7C表示由图5所示设备接收的表示DCT块71的可变长度码字。
在一个MPEG2视频流中,四个DCT亮度块和两个DCT彩色块构成一个宏块,若干宏块构成一个数据片(slice),若干数据片构成一个图像(场或帧),并且一系列图像构成一个视频序列。一些图像被自主编码(I图像),其它图像利用运动补偿而被预测编码(P和B图像)。在后一种情况中,DCT系数表示当前图像的像素和基准图像的像素之间的差值,而不是像素本身。
MPEG2视频流MP被加到语法分析单元51(图5)。这一语法分析单元局部地解释该MPEG比特流,并且把表示亮度DCT系数的可变长度码字(VLC)加到可变长度解码器52。语法分析单元51还收集信息,例如数据块的坐标、编码类型(场或帧)、扫描类型(Z形或交替)。该可变长度解码器52把表示视频图像的可变长度码字解码成(游程,等级)对儿,并且以Z形扫描的次序把(游程,等级)对儿变换成一系列DCT系数x(0)..x(63)。
将要嵌入的水印是像素域中的一个伪随机噪声序列。在本设备的实施例中,一个128×128水印图案将被“平铺(tile)”在该图像范围之上。这一平铺操作在图6B中示出。128×128伪随机水印图案在此被示出为用于更好显像的一个符号W。水印W的空间噪声值被变换为与在MPEG流中的视频内容相同的表示。为此目的,该128×128水印图案被同样地分成8×8块,其中的一个块在图6B中表示为62。这些块被离散余弦变换。如此计算的系数的符号s(n)被存储在该设备的128×128水印缓存器55中。这些符号表示该视频信号的对应DCT系数是否将要被增加或减小。只有一个图像块的最重要的AC系数才被候选用于修改,以避免嵌入的水印破坏精细图像细节。因此,只有Z形序列中的符号s(1)..s(32)被存储在该缓存器中。图7D示出如此获得的在水印缓存器55中的一个块72的实例。注意,这些操作仅需要完成一次并且能够离线操作。
AC系数x(n)和水印取样s(n)被加到处理单元53。此处理单元确定系数x(n)的哪个将被反相,以嵌入该水印。更具体地说,如果引起该系数按照对应水印取样s(n)的规定增加或减小,则反相系数x(n)的符号。为避免系数被修改太大的量(例如图7A中系数x(2)=3被变成x′(2)=-3),该嵌入操作仅对于小幅度进行。对于MPEG编码的视频,下列规则在实践中显然是可行的如果(x(n)=-1&&s(n)=+1),则 x(n)=-x(n)如果(x(n)=+1&&s(n)=-1),则x(n)=-x(n)图5所示的该设计还利用MPEG可变长度编码方案的特性,即每一个可变长度码字都包括表示非零系数的符号的一个比特以及表示其幅值的一个可变数目的比特。反相各个可变长度码字的符号就足够了,这通过输出单元54响应处理单元53的一个信号INV来执行,这能够省却修改系数的实际的重新编码。
图8示出由处理单元53进行的操作的流程图。在步骤81中,检测系数x(n)的幅值是否大于1。如果大于1,则通知输出单元不反相对应可变长度码字的符号位(步骤82)。如果在步骤83中推断不能通过反相其符号来实现需要的操作(该系数的增加或减小),则不反相符号位。只在相关条件被满足时,才把信号INV=1加到输出单元53,以指令这单元反相在MPEG视频比特流中各个可变长度码字的符号位。
图7E示出把水印嵌入在DCT块71中的结果。在此实例中仅一系数(图中加阴影的x(4))已经被修改,因为此系数是负值,具有小幅值,并且将要被增加。零系数不受影响。系数x(2)=3和x(5)=2不被改变,因为它们幅值太大。系数x(5)=2和x(7)=1不被修改,因为不能通过反相符号位来实现规定的修改(增加)。图7F示出新的(游程,等级)对儿。图7G示出可变长度码字的对应系列。
图6C示出加了水印的图像。如已经试图在此图中表示的那样,水印嵌入的量从数据块到数据块而变化。而在DCT块63中只有一个DCT系数已经被修改,更多的和其它的系数将通常已经在其它DCT块中被修改。更具体地说,利用不同于对应于同一水印块64的图像块65的嵌入“强度”或“深度”将加上水印的图像块63嵌入在该图像的不同位置中。加上水印的量还随着平铺的不同而改变。这在水印的检测过程期间被补偿,其中平铺被相加(“折叠(fold)”)在128×128视频缓冲器中,如图9所示。水印在此缓存器中有强存在,并且能够容易地通过例如国际专利申请WO99/45705中公开的相关技术来检测。
在上述用于把水印嵌入在一个MPEG编码信号中的设备中,该(游程,等级)对儿的“等级”部分被改变。但是,一个等级不是AC系数的一实际值,而是AC系数的量化型式。例如,图7A中的等级x(4)=-1可以事实上表示一个系数X(4)=-104。在比特反转操作之后,新值是X′(4)=+104。在另一数据块中,根据该量化器步长,同一个x(4)=-1可以表示一个系数X(4)=-6。显然,AC系数从-104到+104的反转效果在该嵌入水印的感知能力(perceptibility)上将通常具有不同于把相一AC系数从-6变换成+6的效果。
因而,可能需要以降低对可见性影响的方式来控制水印嵌入过程。为此目的,本嵌入方法的一个进一步的实施例包含根据该量化器步长而控制正被修改的系数的数量和/或位置的步骤。
在一个MPEG解码器中,通过把接收的等级x(n)与量化器步长相乘来实现逆量化。量化器步长利用加权因子W(n)以及比例因子QS来控制,其中加权因子W(n)修改在一个数据块中的步长,而比例因子QS从(宏)块到(宏)块地修改该步长。下列方程式说明从解码的等级x(n)中重构AC系数X(n)的MPEG算法X(n)=x(n)×W(n)×QS具有各种方式来对于被允许修改的系数的数量产生上边界。在一个实施例中,如果对应量化步长Q(n)=W(n)×QS小于一个预定门限值,则仅可能修改一个等级x(n)。因此不同的阈值可被用于不同的数据块位置(即用于不同的索引n)。
在另一个实施例中,在一个块中被允许修改的系数的最大数目N是量化器比例因子QS的一个函数,使得N随着QS的增加而减小。如果认识到该比例因子事实上表示一个已经量化的DCT数据块的强劲情况,则能够容易地理解本实施例的可行性。比例因子越大,即量化步长越大,则为了使该效果不能感知而可被改变的系数就越少。这种函数的一个实例是N=cQS]]>
其中c是一个给定的常量值。
量化器比例因子QS容纳于MPEG比特流中作为参数quantizer_scale_code(量化器比例码)和参数q_scale_type(量化比例类型)的组合。参数quantizer_scale_code是一个5比特码。参数q_scale_type指示所述的码是否表示在2和62之间的QS值的一个线性范围,或在1和112之间的值的一个指数范围。在两种情况中该码都是指示该步长。因此,在上述函数中的项QS也可以利用参数quantizer_scale_code来替代。
这对于根据该量化器步长控制利用水印处理修改的系数的位置同样是有益的。量化器步长越大,在Z形扫描中期望的修改完成就越迟。这将使得低频系数不受影响,并且限制了水印嵌入到较高频系数的处理的可见性。
根据该量化器步长控制可修正系数的最大数量和/或位置的特征只要求该方案较小的修改。为此目的,图5中的语法分析单元51用于从比特流MP读出有关的参数quantizer_scale_code与q_scale_type和/或加权矩阵W(n)(在图5中一起表示Q),并且通过虚线55把它们加到处理单元53。图8示出的说明所述的处理单元的操作的流程图现在包括一个步骤(没示出),以测试系数的最大数量N是否已经被修改。
应该指出,根据该量化器步长限制在一个给定信号取样的序列中被修改的信号取样的数目和/或位置的构思不局限于比特反转加水印算法,其也可被使用在其它的加水印算法中,例如在申请人专利申请EP 01200277.0中建议的那样,其中信号取样被调零以便嵌入该水印。限制修改信号取样的数量的构思甚至可以应用到加水印之外的其它信号处理算法中。
本发明可以总结如下。公开了一种方法和设备,用于把水印(W)嵌入在包括被编码为可变长度码字(VLC)的信号取样(x(n))的媒体信号(MP)中。MPEG2视频信号的可变长度编码的系数构成这样的一种媒体信号。通过反相AC系数的符号来嵌入水印,只要这样的反相使得这些系数按照将被嵌入的水印的规定(s(n))增加或减小。本发明的执行简单,不需要该信号的重新编码并且不影响比特流的比特率。
权利要求
1.用于把水印嵌入在包括被编码为可变长度码字的信号取样的媒体信号中的一种方法,该方法包括以下步骤-把可变长度码字解码成所述的信号取样;-根据将要被嵌入的水印的各个取样来修改选择的信号取样;-重新编码修改的信号取样;其特征在于,所述的修改步骤被应用到利用可变长度码字表示的信号取样,其中对于具有相同的幅值但具有不同的符号的信号取样,所述的可变长度码字具有相同的长度,并且如果反相所述信号取样的符号使所述信号取样按照水印的各个取样的规定增加或减少,则所述修改步骤包括反相所述的信号取样的符号的步骤。
2.权利要求1的方法,其中所述的反相步骤取决于信号取样的幅值。
3.权利要求1的方法,其中可变长度码字包括表示信号取样的符号的符号位和信号取样的可变长度编码幅值,其特征在于,通过反相各个可变长度码字的符号位来执行反相和重新编码信号取样的步骤。
4.权利要求1的方法,其中所述的媒体信号是变换编码的信号,利用变换系数来形成信号取样。
5.权利要求1的方法,其中该媒体信号包括利用量化器步长量化的信号取样系列,该方法包括以下步骤根据所述的量化器步长,控制在每一系列中可以被修改的信号取样的数目和/或位置。
6.一种用于把水印(w(n))嵌入在包括被编码为可变长度码字(VLC(x(n)))的信号取样(x(n))的媒体信号中的设备,该设备包括-用于把可变长度码字解码成所述信号取样的装置(1;52);-用于根据将要被嵌入的水印的各个取样来修改选择的信号取样的装置(2;54);-用于重新编码修改的信号取样的装置(3;54);其特征在于,所述的修改装置被用于把所述的修改步骤应用到利用可变长度码字表示的信号取样,其中对于具有相同的幅值但具有不同的符号的信号取样,所述的可变长度码字具有相同的长度,并且所述的修改装置包括用于在反相所述信号取样的符号使所述信号取样按照水印的各个取样的规定增加或减少时反相所述信号取样的符号的装置(2)。
7.如权利要求6的设备,其中可变长度码字包括表示信号取样的符号的符号位和信号取样的可变长度编码幅值,其特征在于,利用用于反相各个可变长度码字的符号位的装置(54)来执行用于反相和重新编码信号取样的装置。
8.如权利要求6的设备,其中媒体信号包括利用量化器步长量化的信号取样系列,该设备包括用于根据所述的量化器步长(Q)控制在每一系列中可以被修改的信号取样的数目和/或位置的装置(53)。
全文摘要
公开了一种方法和设备,用于把水印(W)嵌入在包括被编码为可变长度码字(VLC)的信号取样(x(n))的媒体信号(MP)中。MPEG2视频信号的可变长度编码的DCT系数构成这样的一种媒体信号。通过反相AC系数的符号来嵌入水印,只要这样的反相确实使得这些系数按照将被嵌入的水印的规定(s(n))增加或减小。本发明的实施简单,不需要重新编码信号并且不影响比特流的比特率。
文档编号H04N7/08GK1600033SQ02824228
公开日2005年3月23日 申请日期2002年11月13日 优先权日2001年12月5日
发明者G·C·兰格拉亚 申请人:皇家飞利浦电子股份有限公司