向一个压缩信息信号加水印的制作方法

文档序号:6466900阅读:369来源:国知局
专利名称:向一个压缩信息信号加水印的制作方法
技术领域
本发明有关一种将水印嵌入一个信息信号中的方法,该信号被压缩以使其包含具有一个给定第一值的第一信号样本和具有一个不同值的其它信号样本。这样一个压缩信息信号的典型例子是一个MPEG2视频信号,其中,视频图像由变换系数代表,相当一部分系数具有第一值零。
以前技术的水印嵌入方案有一些缺点。在应用到动作补偿编码,例如MPEG2中时,变换系数的改变会在时间上传播。来自前面帧的水印会积聚在当前帧上,引起图像失真。为避免这一点,以前技术的水印嵌入器要求漂移补偿。另外,一个已压缩比特流中DCT系数的修改会影响比特率。因此,以前技术的水印嵌入器检查已加水印系数的传输是否会使比特率增加,若是,则发射原始系数。
为做到这一点,按照本发明的方法的特点在于,只有对某个信号样本进行所述修改后,已修改信号样本呈现第一值,才对该信号采样执行该修改步骤。从而,具有第一值的信号样本数增加了,这通常能够导致一个更低的比特率。没有必要真正去检测一个样本修改对比特数的影响。
有资格被修改的信号采样最好是具有最小非零值的样本(即,被量化为+1或-1的MPEG视频系数)。这是因为这些系数代表类噪声信息并且变化非常小(±量化步长),不需要漂移补偿,并且,所嵌入的水印感觉不到但能检测到。
图2A-2C和3A-3G举例说明了

图1所示装置的操作。
最佳实例详述以下,将参照一个用于将水印嵌入一个视频信号中的装置描述本发明,该视频信号按MPEG2标准压缩,不过,本发明并不局限于视频信号,也不局限于一个特定的压缩标准。注意,该压缩信号可以已经具有了一个嵌入水印。在这种情况下,在该信号中嵌入另外一个水印。向一个已有水印的信号嵌入水印的这一过程被称为“再标记”。
图1概略显示了执行本发明方法的一个装置。该装置包含一个分解单元110,一个VLC处理单元120,一个输出级130,一个水印缓冲器140。其操作将在以下参照图2A-2C和3A-3G描述。
该装置接收一个MPEG基础视频信号流Mpin,它代表一个视频图像序列。在图2中,借助于一个例子显示了这样一个视频图像。该视频图像被划分为8×8像素的块,在图2A中,其中之一被记为201。像素块由各自的8×8 DCT(离散余弦变换)系数块表示。这样一个DCT块的上部左侧变换系数代表的是相应像素块的平均亮度,一般被称为DC系数。其它系数代表空间频率并被称为AC系数。上部左侧的AC系数代表图像的粗细节,而下部右侧的系数代表细微的细节。AC系数已被量化。该量化过程使一个DCT块的许多AC系数都表现为一个零值。图3A显示了一个DCT块300的典型例子,对应于图2A中的像素块201。
DCT块的系数已按照一个锯齿型模式持续扫描并已进行可变长度编码。该可变长度编码方案是Huffman编码和run-length编码的组合。更具体的,每一串零AC系数的行程(即连续的零AC系数的数量)与一个随后的非零AC系数构成一个run-level对,该run-level对被编码为一个单独的可变长度代码字。图3B显示了DCT块300的run-level对。一个块结束代码(EOB)代表在DCT块中再没有非零系数了。图3C显示了代表由该装置接收的DCT块300的可变长度代码字系列。
在一个MPEG2基本视频流中,四个这种DCT亮度块和两个DCT色度块构成一个宏块,一些宏块构成一个片断,一些片断构成一个图片(域或帧),一系列图片构成一个视频序列。一些图片被自动编码(I图片),其它图片被预示利用动作补偿编码(P-和B-图片)。在后一种情况下,DCT系数代表的是当前图片的像素和基准图片的像素之间的差别,而非代表像素本身。
MPEG2基本视频流Mpin被输入分解单元110(图1)。该分解单元部分地解释该MPEG比特流,并将该流分解为代表亮度DCT系数(以下称为VLCs)的可变长度代码字和其它MPEG代码。该单元还收集诸如块的坐标,编码类型(域或帧),扫描类型(锯齿型或交替型)之类的信息。VLCs和相关信息被送入VLC处理单元120。其它MPEG代码被直接送给输出级130。
要嵌入的水印是空间域中的伪随机噪声序列。在该方案的这一实例中,一个128×128基本水印模式被“平铺”在整个图像范围内。在图2B中例证了这一操作。为了便于观察,此处用符号W代表该128×128基本伪随机水印模式。
该基本水印的空间像素值被变换为与MPEG流中的视频内容相同的表达方式。为此,该128×128基本水印模式被划分为8×8的块,在图2B中将其中之一记为202。对该块进行离散余弦变换和量化。应指出,该变换和量化操作只需进行一次。所计算出的DCT系数被存入该装置的128×128水印缓冲器140中。
水印缓冲器140与VLC处理单元120相连,在其中进行实际的水印嵌入。VLC处理单元将代表视频图像的选定可变长度代码字译码(121)为run-level对,并将一系列run-level对转换(122)为二维的8×8DCT系数阵列。在修改级123中嵌入水印,其做法是,向每个视频DCT块加入空间上相对应的水印DCT块。代表图2B中的水印块202的DCT块被加到代表图2A中的图像块201的DCT块中。不过,按本发明的一个推荐实例,只有被这一操作转换为零系数的DCT系数才被选中用于加水印。例如,只有在与图3A中值为2的AC系数相对应的水印系数值为-2时,该AC系数才被修改。用数学符号表示if cin(i,j)+w(i,j)=0then cout(i,j)=0else cout(i,j)=cin(i,j)这里,cin是一个视频DCT块的一个系数,w是空间上与之对应的水印DCT块的系数,cout是加水印视频DCT块的一个系数。
可以认识到通过该操作可增加DCT块中零系数的数量,从而,与原始DCT块相比,加水印视频DCT块能被更有效地编码。对于MPEG压缩信号来说更是这种情况,这是因为,新的零系数将被包含在其它run-level对的行程中(行程合并)。由一个可变长度编码器124(图1)执行一个再编码。加水印的块被送入输出级130,输出级130拷贝分解单元110提供的MPEG代码并向其中插入VLC处理单元120提供的再生成VLCs,从而重新生成MPEG流。另外,输出级130还插入填充位以使输出比特率等于原始视频比特率。
在本发明的一个优越的实例中,在水印缓冲器140中只存储水印模式的DCT系数的符号,因此,在该缓冲器中只存储+1和-1值。这就将缓冲器的存储容量降低到了每个系数一比特(共128×128比特)。另外,试验表明,只将水印嵌入最重要的DCT系数中就足够了(最重要的系数值的是在锯齿型扫描中第一个出现的系数)。这进一步减小了所需要的存储空间。图3D显示了与图2B中的空间水印块202相对应的一个水印DCT块302的典型例子。
图3E显示了将水印DCT块302与视频DCT块300相加得到的加水印视频DCT块303。在这个具体的实例中,非零系数之一(图3A中值为-1的系数)变成了一个零系数,这是因为,其空间上相对应的水印系数的值为+1。图3F显示了加水印DCT块的运行-电平(run-level)对。注意,原来的运行-电平对(1,-1)和(0,2)被一个运行-电平对(2,2)代替。图3G显示了相应的输出比特流。在该例中,行程合并操作节省了一个比特。
图2C显示了由该装置的输出信号Mpout代表的加水印图像。该图中的像素块203对应与图3E中的加水印视频DCT块303。如在图2C中所要表示的,片与片之间及块与块之间所嵌入水印的数量都不同。
在以上描述的例子中,只修改最小的系数(+1和-1)。这能避免对漂移补偿的需要,并能够不被察觉地提供水印,特别是在将被修改系数的数量限定在一个给定最大值(例如3)范围内的时候。
应指出,上面例子中的水印系数值+1和-1可用于表示相应的图像系数要被修改的方向(分别表示正和负)。例如,可以规定一个给定范围内的负DCT系数(例如-2和-1)被水印系数值+1变为0,而一个范围内的正DCT系数(例如+2和+1)被水印系数值-1变为0。
还应指出的是,一个MPEG基础视频流可以包含按域编码的DCT块和按帧编码的DCT块。因此,水印缓冲器140可以包含两种水印模式,一种用于按域编码的DCT块,一种用于按帧编码的DCT块。可以根据输入视频流中包含的域/帧选择标志信号选择要使用哪种模式的水印。
在上述用于在一个MPEG编码信号中嵌入水印的装置中,运行-电平对的“电平”部分被改变了。不过,一个电平并非是一个AC系数的实际值,而是其一个量化的版本。例如,图3B中的运行-电平对(1,-1)实际上代表的是一个系数X=-104。在另一个块中,根据量化器的步长,同样的对(1,-1)可能代表一个系数X=-6。不用说,将一个AC系数从-104变为0和将同样的AC系数从-6变为0对所嵌入水印的可察觉性的影响是不同的。
因此,需要控制该水印嵌入过程以降低其对可见度的影响。为此,该嵌入方法的另一个实例包括这样一个步骤,即,根据量化器步长,控制被修改系数的数量和/或位置。
在一个MPEG译码器中,通过将所接收的电平x(n)与量化器步长相乘获得反量化。量化器步长由一个加权矩阵W(n)和一个比例因子QS控制,加权矩阵W(n)修改一个块中的步长,比例因子QS修改从(macro-)块到(macro-)块的步长。以下公式指出了由译码level x(n)重构一个AC系数X(n)的MPEG算法X(n)=x(n)×W(n)×QS这里,n是锯齿型扫描时的索引号。
存在有各种方法来生成允许修改系数数量的上界。在一个实例中,只有在相应的量化步长Q(n)=W(n)×QS小于一个预定阈值时,才修改一个level x(n)。因此,可以对一个DCT块中的不同位置(即对不同的索引号n)使用不同的阈值。
在另一个实例中,一个块中允许被修改系数的最大数量N是量化器比例因子QS的一个函数,因此,N随着QS的增加而减小。该实例是可行的,因为比例因子事实上表示的是一个DCT块被量化的强度。比例因子越大,即,量化步长越大,被修改的系数越少,以便呈现不易察觉的效果。这样一个函数的例子是N=cQS]]>其中c是一个给定的恒定值。
在MPEG比特流中提供有量化器比例因子QS,它是参数quantizer_scale_code和参数q_scale_type的组合。参数quantizer_scale_code是一个5位代码。参数q_scale_type表示所述代码代表的是QS值在2和62之间的一个线性范围,还是在1和112之间的一个指数范围。在这两种情况下,该代码都表明步长。因此,在上面函数中提到的术语QS可由参数quantizer_scale_code代替。
也可以根据量化器步长控制水印过程修改的系数的位置。量化器步长越大,所期望修改在锯齿型扫描时执行的次序越靠后。这就使得低频系数不被影响。并将水印嵌入过程的可见性限制到较高频率的系数。
根据量化器步长控制可修改系数的最大数量和/或位置的特性只要求该设备的较小修改。这种修改很容易由本技术专业人员执行,此处不再描述。
此处描述了一种用于在一个MPEG压缩视频流中嵌入水印的方法和装置。通过选择性地丢弃最小量化DCT系数来嵌入该水印(一个空间噪声模式)。随后,被丢弃的系数并入剩余系数的行程中。一个系数的丢弃与否取决于一个预计算水印缓冲器和每个8×8 DCT块中已丢弃系数的数量。这种方法的好处是(i)一个非常简单的比特率控制系统和(ii)不需漂移补偿。从存储要求和计算复杂度的角度考虑,本算法可以一种非常有效的方法执行。
权利要求
1.一种将一个水印嵌入一个信息信号中的方法,该信号被压缩以使其包含具有一个给定第一值的第一信号样本和具有一个不同值的其它信号样本,该方法包含根据一个水印模式修改信号样本的步骤,其特点在于,若所述修改能使一个信号样本呈现第一值,则对该信号样本执行所述修改步骤。
2.权利要求1所描述的方法,其中该第一值是0且有资格被修改的信号样本是那些具有最小非零值的信号样本。
3.权利要求1所描述的方法,其中信号样本已经用一个量化器步长量化,且有资格被修改的信号样本是那些量化步长小于一个预定阈值的样本。
4.权利要求1所描述的方法,其中信号样本被划分为若干部分,每部分中有资格被修改的信号样本数被限制了一个预定最大数量。
5.权利要求4所描述的方法,其中一个部分的信号样本已按照一个量化器步长尺度量化,该方法包括根据所述量化器步长尺度控制已修改信号样本最大数量的步骤。
6.权利要求1所描述的方法,其中信号样本被划分为若干部分,一个部分的信号样本已按照一个量化器步长尺度量化,该方法包括根据所述量化器步长尺度控制有资格被修改的信号样本的位置的步骤。
7.权利要求1-6中任一个所描述的方法,其中压缩信号包括可变长度代码字,每个可变长度代码字都确定一个第一信号样本的行程和一个随后或之前的其它信号样本。该方法还包括以下步骤-在所述修改步骤之前,将该可变长度代码字译码为相应的第一和其它信号样本;-将已修改信号样本与随后或之前的第一信号样本合并,获得第一信号样本的一个新的行程,并-将第一信号样本的新行程和一个随后或之前的其它样本编码,形成一个新的可变长度代码字。
8.一种用于将一个水印嵌入一个信息信号中的装置,该信号被压缩以使其包含具有一个给定第一值的第一信号样本和具有一个不同值的其它信号样本,该装置包含根据一个水印模式修改信号样本的装置,其特点在于,若所述修改使一个信号样本呈现第一值,则该修改装置对该样本进行所述修改。
全文摘要
本文描述了一种用于在一个MPEG压缩视频流嵌入水印的方法和装置。通过选择性地丢弃最小量化DCT系数的方法嵌入该水印(一个空间噪声模式)。随后,被丢弃的系数并入剩余系数的行程中。一个系数的丢弃与否取决于一个预计算水印缓冲器和每个8×8DCT块中已丢弃系数的数量。这种方法的好处是(i)一个非常简单的比特率控制系统和(ii)不需漂移补偿。从存储要求和计算复杂度的角度考虑,本算法可以一种非常有效的方法执行。
文档编号G06T1/00GK1419786SQ01806962
公开日2003年5月21日 申请日期2001年12月21日 优先权日2001年1月23日
发明者G·C·兰格拉尔 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1