用于对流进行水印处理的方法及设备转让专利

申请号 : CN200680046793.4

文献号 : CN101331514B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 菲利普·源塞韦里尼·鲍德利科琳娜·奈特里

申请人 : 汤姆森许可贸易公司

摘要 :

本发明具体涉及一种用于与所使用的压缩参数(例如,变换类型)无关的逐个流的水印处理方法,以便读取与接收到的数据格式无关地插入的水印。根据本发明的水印处理方法在于:在变换空间T1中产生贡献矩阵MT1,将贡献矩阵MT1投影至另一个域T2,以及基于投影的矩阵MT1对域T2中的数据进行水印处理,以便作用于变换后的变换空间T1的水印读取器能够读取出在变换空间T2中插入的水印。该贡献矩阵MT1表示通过在同一个域中插入水印处理记号而对变换空间T1中的系数所引起的修正。

权利要求 :

1.一种对数据集进行水印处理的方法,包括:

-第一变换步骤(11),通过第一变换(T1)将所述数据集中的至少一组数据变换为第一变换空间中的第一组系数;

-第一水印处理步骤(12),用于根据预定的水印处理过程对所述第一组系数进行水印处理;

其特征在于,所述方法还包括:

-产生步骤(13),用于产生第一组水印处理数据,所述第一组水印处理数据表示所述第一水印处理步骤(12)对所述第一组系数中的系数所引起的修正;

-第一投影步骤(14),用于将所述第一组水印处理数据投影至第二变换空间,所述第一投影步骤(14)产生第二组水印处理数据;

-第二变换步骤(17),通过第二变换(T2)将所述至少一组数据变换为所述第二变换空间中的第二组系数;以及-第二水印处理步骤(18),利用所述第二组水印处理数据对所述第二组系数进行水印处理。

2.根据权利要求1所述的方法,其特征在于,所述第一组水印处理数据是通过针对所述第一组系数中的每一个所述系数来计算第一水印处理步骤(12)之后的所述第一组系数中的系数与第一水印处理步骤之前的所述第一组系数中的系数之差而产生(13)的。

3.根据权利要求2所述的方法,其特征在于,在所述第一水印处理步骤(12)所修正的系数已知的情况下,仅针对这些系数来计算所述差,将其他的差设置为零。

4.根据权利要求1至3之一所述的方法,其特征在于,对所述第二组系数的第二水印处理步骤(18)在于:给所述第二组系数中的每一个所述系数添加所述第二组水印处理数据中的相应数据。

5.根据权利要求1至3之一所述的方法,其特征在于,所述数据集包括图像序列的编码数据,所述至少一个数据组包括所述序列中的所述图像之一中的像素块的编码数据,以及在解码之后,将所述方法 中的步骤应用于所述至少一个数据组。

6.根据权利要求5所述的方法,其特征在于,所述数据集包括根据属于下列标准集的编码标准之一所编码的数据,所述标准集包括:-H.264;

-MPEG-2;以及

-VC1。

7.根据权利要求5所述的方法,其特征在于,所述方法中的步骤仅应用于包括像素块的编码数据的数据组,所述像素块属于所述序列中的与所述序列中的其他图像无关地编码的图像。

8.根据权利要求5所述的方法,其特征在于,所述第一变换(T1)是作用于大小为8乘

8个像素的像素块的离散余弦变换。

9.根据权利要求5所述的方法,其特征在于,第二变换(T2)是与作用于大小为4乘4个像素的像素块的离散余弦变换近似的整数变换。

10.根据权利要求1至3之一所述的方法,其特征在于,所述投影步骤之后紧接着以下步骤:在最大化相关联的水印处理能量的同时,使所述第二组水印处理数据中的最大数目的水印处理数据归零,所述归零步骤产生稀疏的水印处理数据组。

11.根据权利要求10所述的方法,其特征在于,与所述第二组水印处理数据相关联的水印处理能量与所述第二组水印处理数据中的数据的平方和的平方根成比例。

12.根据权利要求10所述的方法,其特征在于,如果预定的水印处理过程修正了所述第一组系数中的单个系数的值,则使所述第二组水印处理数据中的最大数目的水印处理数据归零的步骤之后紧接着步骤:修正所述稀疏的水印数据组中的非零数据的值,以便以下列方式产生预加重的稀疏的水印处理数据组:在将所述预加重的稀疏的水印处理数据组投影到所述第一变换空间时,所述第一组水印处理数据中的非零数据与投影到所述第一变换空间之后的所述预加重的稀疏的水印处理数据组的相应数据具有相同的值。

13.根据权利要求1至3之一所述的方法,其特征在于,所述预 定的水印处理过程在于:针对与水印处理比特bi相关联的第一组系数,修正所述第一组系数中的至少两个系数Γ1和Γ2的值,以便下列次序关系成立:|Γ′1|=|Γ′2|+d*Bi

其中:Γ′1和Γ′2是两个修正后的系数;

d是被称为标记距离的标记参数;以及

Bi是其值如下定义的系数:如果bi=0,则Bi=1,以及如果bi=1,则Bi=-1。

14.根据权利要求13所述的方法,其特征在于,如果预定的水印处理过程修正了所述第一组系数中的N个系数的值,则投影到第二变换空间的步骤是连同下列步骤一起执行的,这些步骤包括:使所述第二组水印处理数据中的一些数据归零;以及,修正所述第二组非零水印处理数据中的M个数据的值,由此产生预加重的稀疏的水印处理数据组,以及确定M个非零数据的值和位置,以使得与所述预加重的稀疏的水印处理数据组相关联的二次能量最小化,以及在将所述预加重的稀疏的水印处理数据组投影到所述第一变换空间时,所述第一组水印处理数据中的N个非零数据中的每一个都与投影到第一变换空间之后的所述预加重的稀疏的水印处理数据组中的相应数据具有相同的值,其中N≥1及M≥1。

15.根据权利要求14所述的方法,其特征在于,N=M=2。

16.根据权利要求14所述的方法,其特征在于,与所述预加重的稀疏的水印处理数据组相关联的二次能量等于所述预加重的稀疏的水印处理数据组的系数的平方和的平方根。

17.根据权利要求1至3之一所述的方法,其特征在于,所述投影步骤在于:向所述第一组水印处理数据应用所述第一变换(T1)的逆变换,然后在利用所述逆变换进行的变换之后,向所述第一组水印处理数据应用所述第二变换(T2)。

18.根据权利要求1至3之一所述的方法,其特征在于,所述数据集属于包括下列数据的组:-图像序列类型的数据;

-音频类型的数据;以及

-3D类型的数据。

19.一种用于对数据集进行水印处理的设备,包括:

-第一变换装置(61),将所述数据集中的至少一个数据组变换为第一变换空间中的第一组系数;

-第一预定水印处理装置(62),用于对所述第一组系数进行水印处理;

其特征在于,所述设备还包括:

-产生装置(73),用于产生第一组水印处理数据,所述第一组水印处理数据表示所述第一水印处理装置(62)对所述第一组系数中的系数所引起的修正;

-投影装置(63),用于将所述第一组水印处理数据投影至第二变换空间,所述投影装置产生第二组水印处理数据;

-第二变换装置(65),将所述至少一个数据组变换为所述第二变换空间中的第二组系数;以及-第一水印处理装置(66),利用所述第二组水印处理数据对所述第二组系数进行水印处理。

说明书 :

用于对流进行水印处理的方法及设备

技术背景

[0001] 本发明涉及一种用于进行水印处理(watermarking)的设备及方法,或者更具体地,用于将指纹插入压缩数字数据流中。

背景技术

[0002] 本发明涉及对数字数据进行水印处理的一般领域。更具体地,本发明涉及将指纹插入数字数据的水印处理的特殊应用。随后在文档中,术语“指纹”和“水印”可互换地用于指定被插入压缩数字数据的数字代码。为了保护数字内容(例如,视频、音频或3D数据等),已知将唯一指纹插入所分发的每一个数据流,以识别已经授权传送所述内容的人或主体,而不用授权。因此,在电影的宣传期间,将借助于不同指纹进行水印处理的DVD派送给选定的人。在出现泄漏的情况下,可以通过重构指纹来识别泄漏的源。可以存在其他应用:插入水印,使得可以识别作品或受益者,或者可以通过水印传送辅助数据(元数据)。通常,由于经济原因,同时也由于计算能力和时间制约,逐个流执行水印处理(即,在熵编码之前,对压缩数据进行水印处理)。这样经水印处理的视频将经历多次变换,例如代码转换。
但是当前的大多数水印处理技术都是根据压缩参数(例如,所使用的变换类型)产生插入的水印,因此在视频内容已经经历变换时,不允许随后对水印处理信息进行解码。

发明内容

[0003] 本发明旨在缓解现有技术的至少一个缺点。更具体地,本发明提出了一种与所使用的压缩参数(例如,变换类型)无关的逐个流的水印处理方法,以便可以与接收到的数据格式无关地读取插入的水印。
[0004] 本发明具体涉及一种对数据集进行水印处理的方法,该方法包括:
[0005] -第一变换步骤,通过第一变换T1将数据集中的至少一组数据变换为第一变换空间中的第一组系数;
[0006] -第一水印处理步骤,用于根据预定的水印处理过程对第一组系数进行水印处理;
[0007] -产生步骤,用于产生第一组水印处理数据,该数据表示通过该第一水印处理步骤对第一组系数中的系数所引起的修正;
[0008] -第一投影步骤,用于将第一组水印处理数据投影至第二变换空间,该第一投影步骤产生第二组水印处理数据;
[0009] -第二变换步骤,通过第二变换将数据组变换为第二变换空间中的第二组系数;以及
[0010] -第二水印处理步骤,利用第二组水印处理数据对第二组系数进行水印处理。
[0011] 优选地,该投影步骤在于:向第一组水印处理数据应用第一变换T1的逆变换,然后在通过逆变换进行变换之后,向第一组水印处理数据应用第二变换T2。
[0012] 优选地,第一组水印处理数据是通过针对第一组系数中的每一个系数来计算第一水印处理步骤之后的第一组系数中的系数与第一水印处理步骤之前的第一组系数中的系数之差而产生的。在第一水印处理步骤所修正的系数已知的情况下,仅针对这些系数计算所述差,将其他的差设置为零。
[0013] 根据优选实施例,对第二组系数的第二水印处理步骤在于:给第二组系数中的每一个系数添加第二组水印处理数据的相应数据。
[0014] 根据特定实施例,该数据集包括图像序列的编码数据,该数据集中的数据组包括序列中的一个图像中的像素块的编码数据,并且在解码之后,将该方法的步骤应用于该数据集中的数据组。
[0015] 优选地,该数据集包括根据属于下列标准集的编码标准之一所编码的数据,该标准集包括:
[0016] -H.264;
[0017] -MPEG-2;以及
[0018] -VC1。
[0019] 有利地,该方法中的步骤仅应用于包括像素块的编码数据的数据组,该像素块属于序列中的与序列中的其他图像无关地编码的图像。
[0020] 根据特定特性,第一变换T1是作用于大小为8乘8个像素的像素块的离散余弦变换。
[0021] 根据另一特性,第二变换T2是作用于大小为4乘4个像素的像素块的近似离散余弦变换的整数变换。
[0022] 根据有利实施例,投影步骤之后紧接着以下步骤:在最大化关联水印处理能量的同时,使第二组水印处理数据中的最大数目的水印处理数据归零,这个归零步骤产生稀疏的水印处理数据组。与第二组水印处理数据相关联的水印处理的能量与第二组水印处理数据中的数据的平方和的平方根成比例。
[0023] 优选地,如果预定的水印处理过程修正了第一组系数中的单个系数的值,则使第二组水印处理数据中的最大数目的水印处理数据归零的步骤之后紧接着修正该稀疏的水印数据组中的非零数据的值的步骤,以便以下列方式来产生预加重的稀疏的水印处理数据组:在将预加重的稀疏水印处理数据组投影到第一变换空间时,第一组水印处理数据中的非零数据与投影到第一变换空间之后的预加重的稀疏的水印处理数据组的相应数据具有相同的值。
[0024] 根据有利特性,预定的水印处理过程在于:针对与水印处理比特bi相关联的第一组系数,修正第一组系数中的至少两个系数Γ1和Γ2的值,以便下列次序关系成立:
[0025] |Γ′1|=|Γ′2|+d*Bi
[0026] 其中:Γ′1和Γ′2是两个修正后的系数;
[0027] d是被称为标记距离的标记参数;以及
[0028] Bi是其值如下定义的系数:如果bi=0,则Bi=1,以及如果bi=1,则Bi=-1。
[0029] 根据另一有利实施例,如果预定水印处理过程修正了第一组系数中的N个系数的值,则投影到第二变换空间的步骤是连同下列步骤一起执行的,这些步骤包括:使第二组水印处理数据中的一些数据归零的步骤;以及修正第二组非零水印处理数据中的M个数据的值,由此产生预加重的稀疏的水印处理数据组。确定M个非零数据的值和位置,以使得与预加重的稀疏的水印处理数据组相关联的二次能量最小化,并且因此在将预加重的稀疏的水印处理数据组投影到第一变换空间时,第一组水印处理数据中的N个非零数据中的每一个都与投影到第一变换空间之后的预加重的稀疏的水印处理数据组中的相应数据具有相同的值,其中N≥2及M≥2。优选地,N=M=2,并且与预加重的稀疏的水印处理数据组相关联的二次能量等于预加重的稀疏的水印处理数据组的系数的平方和的平方根。
[0030] 有利地,数据集属于包括下列数据的组:
[0031] -图像序列类型的数据;
[0032] -音频类型的数据;以及
[0033] -3D类型的数据。
[0034] 本发明还涉及一种用于对数据集进行水印处理的设备,该设备包括:
[0035] -第一变换装置,将数据集中的至少一个数据组变换为第一变换空间中的第一组系数;
[0036] -第一预定水印处理装置,用于对第一组系数进行水印处理;
[0037] -产生装置,用于产生第一组水印处理数据,该数据表示该第一水印处理装置对第一组系数中的系数所引起的修正;
[0038] -投影装置,用于将第一组水印处理数据投影至第二变换空间,该投影装置产生第二组水印处理数据;
[0039] -第二变换装置,将数据组变换为第二变换空间中的第二组系数;以及[0040] -第一水印处理装置,利用第二组水印处理数据对第二组系数进行水印处理。
[0041] 本发明还涉及一种包括程序代码指令的计算机程序产品,当所述程序在计算机上执行时,所述程序代码指令用于执行根据本发明的方法中的步骤。

附图说明

[0042] 参考附图,通过完全非限制的有利示例性实施例及实现模式,将更好地理解并例证本发明,在附图中:
[0043] -图1示出了根据本发明的水印处理方法;
[0044] -图2表示DCT和H变换空间中的各个贡献矩阵;
[0045] -图3示出了根据本发明的水印处理方法的特定实施例;
[0046] -图4表示根据本发明的特定实施例的预加重的H空间中的稀疏的贡献矩阵;
[0047] -图5示出了操作于DCT变换空间的水印读取过程;以及
[0048] -图6示出了根据本发明的水印处理设备。

具体实施方式

[0049] 本发明涉及一种对图像或视频序列进行水印处理的方法,其与用于对所述图像进行压缩的压缩参数无关。序列中的每一个图像都包括像素,其中的每一个像素都与至少一个亮度值相关联。当将两个像素块相加时,这表示将与块中的坐标为(i,j)的像素相关联的值同与另一个块中的坐标为(i,j)的像素相关联的值相加。当两个像素相减时,这表示将与块中的坐标为(i,j)的像素相关联的值从与另一个块中的坐标为(i,j)的像素相关联的值中减去。同样地,可以向像素块加上或者从该像素块减去具有同样大小的系数矩阵M,即向矩阵中位置为(i,j)的系数的值(表示为M(i,j))加上或者从中减去与块中的坐标为(i,j)的像素相关联的值。通常,矩阵可以使用系数块来标识。更具体地,本发明是针对根据诸如在文献ISO/IEC14496-10(名为“Information technology--Coding of audio-visualobjects--Part 10:Advanced Video Coding”)中所描述的MPEG-4AVC视频编码标准所编码的视频流描述的。根据传统的视频压缩标准(例如,MPEG-2、MPEG-4、和H.264),图像序列中的图像可以是帧内类型(I图像),即不参考序列中的其他图像进行编码的,或者可以是帧间类型(即,P和B图像),即通过基于序列中的其他图像进行预测而编码的。通常将图像划分为宏块,宏块自身划分为大小为N个像素×P个像素的不相交的像素块(被称为N×P块)。这些宏块自身根据帧内或帧间编码模式进行编码。更具体地,I图像中的所有宏块是根据帧内模式进行编码的,而P图像中的宏块可以根据帧间或帧内模式进行编码。其后,通过使用变换(例如,标记为DCT的离散余弦编码或者Hadamard变换),逐块地对可能预测出的宏块进行变换。对由此变换的块进行量化,然后通常使用可变长度代码对其进行编码。在MPEG-2标准的具体情况下,大小为16×16像素的宏块被划分为8×8的块,8×8的块自身使用8×8DCT变换为变换后的8×8块。在H.264的情况下,可以根据intra4×4模式或者根据intra16×16模式对与亮度分量有关的帧内类型的宏块进行编码。将根据intra4×4模式编码的帧内宏块划分为16个不相交的4×4的块。每一个4×4的块是在空间上相对于位于因果邻域中的特定相邻块预测的,即每一个4×4的块都与基于所述相邻块所产生的4×4的预测块相关联。通过从每一个4×4的块中减去关联的
4×4的预测块,产生4×4的残余块。通过近似于4×4DCT的4×4整数H变换,对由此产生的16个残余块进行变换。在空间上相对于位于因果邻域中的特定相邻宏块来预测根据intra16×16模式编码的帧内宏块,即基于所述相邻宏块产生16×16的预测块。通过从帧内宏块中减去关联的预测宏块来产生残余宏块。将该残余宏块划分为16个不相交的4×4块,然后通过H变换对这些4×4的块进行变换。通过4×4的Hadamard变换,对由此所获得的16个低频系数(被称为DC系数)按照顺序进行变换。随后在文档中,如果宏块是以intra4×4编码的,则应用于宏块的变换H指示应用于宏块中的每一个4×4块的4×4的H变换,如果宏块是以intra16×16编码的,则先将4×4的H变换应用于宏块中的每一个
4×4的块,随后将Hadamard变换应用于DC系数。
[0050] 存在操作于DCT变换空间中的8×8块的水印读取过程。具体地,这些读取过程使得可以通过各个过程读取插入DCT变换空间中的水印。
[0051] 例如,应用于DCT变换空间中的要经过水印处理的图像中的表示为 的8×8变换块的第一水印处理过程在于:针对每一个块 修正可能存在于其两个DCT系数(表示为Γ1和Γ2)的绝对值之间的次序关系。通常,借助于私钥,针对给定块来选择这两个系数。通过修正存在于两个系数Γ1和Γ2的绝对值之间的次序关系,将与块 相关联的指纹的比特bi插入这个块中。为了检查水印的可见性,只有在下列关系成立的情况下才修正块中的系数:
[0052] ||Γ1|-|Γ2||<S
[0053] 其中S是可参数化的阈值。修正系数Γ1和Γ2,以使得下列次序关系成立:|Γ′1|=|Γ′2|+d*Bi (1)
[0054] 其中,-Γ′1和Γ′2是两个修正后的系数,
[0055] -d是被称为标记距离的标记参数;以及
[0056] -Bi是其值如下定义的系数:如果bi=0,则Bi=1,以及如果bi=1,则Bi=-1。
[0057] 如果该次序关系已经成立,则不对这两个系数进行修正。可以以不同方式来修正Γ1和Γ2,以确保先前所定义的关系。定义e1=Γ′1-Γ1及e2=Γ′2-Γ2,按照下列方式,针对每一个块 定义e1和e2的值:
[0058] e1=-Γ1+sign(Γ1)*(f1(Γ1,Γ2)+d1),e2=-Γ2+sign(Γ2)*(f2(Γ1,Γ2)+d2)[0059] 任意选择函数f1,例如可以选择f1(Γ1,Γ2)=f2(Γ1,Γ2)=|Γ2|。例如,在bi=0的情况下,选择d2=-|Γ2|和d1=-|Γ2|+d,因此次序关系(1)实际上不成立。在bi=1的情况下,选择d1=-|Γ2|和d2=-|Γ2|-d,因此次序关系(1)仍成立。d和S的值根据应用而变化,具体根据发生盗版的风险而变化。具体地,d的值越高,则水印越强健,但是水印越可见。因此,为了保持图像序列的良好的视觉质量,必须限制标记力度(marking force)。
[0060] 根据应用于例如DCT变换空间的第二水印处理过程,每一个块 修正一个系数Γ1,因此如果bi=0,则|Γ1′|=λ,如果bi=1,则|Γ1′|=μ。λ或μ值表示水印读取器实际上必须读取的系数Γ1的值,以便能够识别水印处理比特bi。这样的水印处理过程以及由此用于读取水印的过程已经发展为在DCT变换空间中对8×8的变换块起作用。
[0061] 本发明提出了一种基于诸如先前所描述的两个水印处理过程之一之类(但不局限于这两个过程)的预定水印处理过程的逐个流的方法。根据本发明的水印处理方法与所使用的压缩参数无关。该水印处理方法尤其与变换类型无关。因此,本发明的水印处理方法使得可以在特定的变换域(例如DCT)中读取插入另一变换域(例如H)的水印,而与接收到的数据的格式无关。根据特定实施例,本发明使得可以对根据MPEG-4AVC标准编码的图像序列进行水印处理。可以通过在DCT变换空间中作用于8×8块的水印读取器来读取出根据本发明所插入的水印。
[0062] 图1示出了本发明的第一实施例。仅对图像序列中的帧内图像(称为I图像),更具体地说是这些图像中的亮度分量,进行水印处理。根据本发明的方法是针对标记为M16×16的16×16宏块而描述的,并且优选地应用于I图像中的所有16×16宏块。
[0063] 步骤10在于:对编码数据中与宏块MB16×16相对应的流的部分进行解码(例如,熵解码、逆量化、逆变换以及在H.264标准的情况下空间预测的加法),以重构所述宏块。该方法的其余部分是针对所重构的宏块MB16×16中的8×8块(标记为B8x8)而描述的,并应用于该宏块中的所有8×8的块。
[0064] 步骤11在于:通过8×8DCT变换将块B8x8变换为8×8的变换块(标记为 )。
[0065] 步骤12在于:根据诸如先前所描述的第一或第二水印处理过程之类的预定水印处理过程对块 进行水印处理,或者任意其他水印处理过程,使得可以在DCT变换空间中对图像进行水印处理。通过要被插入块 所属的I图像的指纹来确定分配给块 的水印处理比特。这个步骤使得可以产生经水印处理后的块,表示为
[0066] 在步骤13中,从块 中减去块 以产生被称为贡献矩阵并表示为MDCT的第一数据组或水印处理系数。根据另一实施例,仅针对与水印处理有关的块的系数(即,通过水印处理所修正的块的系数)来计算上述二者的差。
[0067] 步骤14在于:在基础(basis)H中表示矩阵MDCT,即将矩阵MDCT投影到H空间中,以产生也被称为贡献矩阵且被表示为MH的第二组数据或水印处理系数。为此,向矩阵MDCT应用DCT逆变换,以产生矩阵 其后,将H变换应用于矩阵 中的每一个4×4的块,以便在H空间中产生贡献矩阵MH。基础的改变产生了将在DCT基础中的、集中于一个或两个系数的水印处理所导致的修正分布在若干个系数上的效果。图2示出了在其中预定水印处理过程修正DCT空间中的单个系数的情况,矩阵MH中的多个系数非零,而其他系数为零。在图2中,非零系数由十字表示。
[0068] 当产生与宏块MB16×16中的每一个8×8的块相关联的四个贡献矩阵MH时,在步骤15中将四个贡献矩阵MH集合在一起,以构成大小为16×16的贡献超级矩阵SMH,以便每一个矩阵MH在超级矩阵SMH中具有与宏块MB16×16中的与其相关联的8×8块相同的位置。如果宏块MB16×16是根据intra16×16模式进行编码的,则将4×4Hadamard变换应用于超级矩阵SMH的16个DC系数。如果没有一个宏块MB16×16是根据intra16×16模式进行编码的,则该步骤可以省略。
[0069] 在步骤16中,从宏块MB16×16中减去在步骤22中产生的空间预测,以产生残余宏块,在步骤17中根据MPEG-4AVC、通过H变换以及可能通过4×4Hadamard变换对该残余宏块进行变换。由此产生的宏块表示为
[0070] 然后,在H变换空间(也称为写入空间)中进行水印处理的步骤18在于:将贡献超级矩阵SMH添加到宏块 中,以产生经水印处理后的宏块(表示为 )。然后,在步骤19中,对在MPEG-4AVC的变换空间中进行水印处理的宏块 进行量化,然后在步骤20中通过熵编码对其进行编码。
[0071] 当所有与要被进行水印处理的I图像相关的数据都被处理了时,将这些数据与未解码的数字数据的初始流中的其他数据进行多路复用,未解码的数字数据具体包括与序列中的其他图像有关的数据。
[0072] 在步骤21中,向在步骤19中量化的宏块 应用逆量化和逆变换(对应于H逆变换,并且可能考虑了4×4Hadamard变换)。给由此产生的宏块添加在步骤16中用于对宏块MB16×16进行空间预测的空间预测宏块。将由此产生的宏块存储在存储器中,以用于对未来宏块的空间预测。
[0073] 根据图3所示的另一实施例,在步骤18中执行的水印处理之前,在步骤141期间使矩阵MH变稀疏,即矩阵MH的一些系数归零,以便在限制由于水印处理而引起的修正的同时限制与水印处理的插入有关的比特速率。由此产生的稀疏矩阵在图2中表示为MCH。图2示出了在其中预定的水印处理过程每一8×8的块仅修正单个DCT系数的特定情况。矩阵MH越稀疏,在DCT变换空间中产生的水印将具有越大的变形,并且它的能量将具有更大幅度的减少。为了最小化这些影响,所选择的稀疏矩阵MCH是最大化稀疏矩阵的能量EMC与矩阵MCH的稀疏度TC的乘积的矩阵。与DCT变换空间中的水印处理能量成比例的能量EMC定义如下:
[0074]
[0075] TC等于矩阵中的零系数的数目与矩阵MCH的系数总数目的比率。例如,稀疏矩阵MCH是通过在根据MH创建的稀疏矩阵中的表示为 的集合之中以穷举方式搜索最大化EMC与TC的乘积的矩阵而选定的。为此,针对集合 中的每一个矩阵计算乘积EMC*TC,并将其存储在存储器中。选择集合 中的最大化乘积EMC*TC的矩阵。
[0076] 根据变体,水印处理能量的最小值是固定的。该值与稀疏矩阵的能量的最小值(等于 )相对应。所选择的稀疏矩阵MCH是约束最优化问题的解,约束最优化问题在于:确定集合 中具有最大数目的零系数、且能量大于或等于 的稀疏矩阵。约束最优化可以通过Lagrangian过程来执行。根据变体,可以以不同方式定义用于表征水印处理能量的稀疏矩阵的能量,例如通过按照系数的空间频率对前面的表达式(2)进行加权。为此,系数的频率越高,则分配给该系数的权重越低。
[0077] 根据特定实施例,在步骤18中执行水印处理之前,预加重或预先补偿矩阵MCH,以便考虑下列步骤所引入DCT变换空间的偏差:使矩阵MH变稀疏,这扰乱了DCT空间中对水印的读取。将预加重的稀疏矩阵表示为MCAH。预加重步骤142在于:修正稀疏矩阵MCH中的非零系数,以便产生矩阵MCAH,使得该矩阵在读取空间(即,在其中执行对由水印处理所引入的修正的读取的空间,在本实例中为DCT空间)中尽可能地最接近期望的读取结果,以2
便例如最小化均方误差||MCAH-MH||。图2所示的实施例使得可以例如:当用于对8×8的变换块进行水印处理的预定水印处理过程仅修正单一系数Γ1(如在文献的开始处描述的第二水印处理过程)时,预加重矩阵MCH。假设修正系数Γ1位于块 的(i0,j0)处,并且|Γ1′|=λ。在通过将MCH投影到DCT变换空间所获得的矩阵M′DCT中,在位置(i0,j0)处的系数具有值α,而不是仅仅允许正确读取水印处理比特bi的值Δ=λ-|Γ1|。因此,预加重矩阵MCH,易产生预加重的稀疏矩阵(表示为MCAH),因此在MCAH投影到DCT变换空间中得到的矩阵M′DCT中的位置(i0,j0)处的系数的值等于Δ。在根据本发明的实施例中,按照下列方式定义矩阵MCAH:
[0078] 对于矩阵MCH中的所有零系数,MCAH(i,j)=0,以及对于矩阵MCH中的其他系数,其中 α≠0,以及α是稀疏矩阵MCH的在DCT空间中的位置(i0,j0)处的系数。该预加重使得可以保证通过水印处理而修正的贡献矩阵M″DCT中的位置(i0,j0)处的系数实际上具有值λ-|Γ1|,因此通过水印处理而修正的系数Γ1的值实际上具有值λ。
[0079] 根据优选实施例,矩阵MH变稀疏,并被联合预加重。如果预定的水印处理过程如在本文献的开始处所描述的第一水印处理过程一样地修正了两个系数Γ1和Γ2,则在与块B8x8相关联的贡献矩阵MDCT中,仅有两个系数e1和e2为非零。然后,直接根据MDCT确定矩阵MCAH。作为仅具有两个非零系数的矩阵的MCAH是由下列关系定义的:MCAH=γ1M(X1)+γ2M(X2),其中M(Xi)是除了在位置Xi(xi,yi)处的系数值等于1以外其所有系数均为零的矩阵。图4中示出了这样的矩阵MCAH。矩阵MCAH在DCT变换空间中的投影表示为的系数位于e′2=g(γ1,γ2,X1,X2)。值γ1和γ2是下列系统的解:f(γ1,γ2,X1,X2)=e1以及g(γ1,γ2,X1,X2)=e2。因此确定的值γ1和γ2是根据值X1,和X2的。最后这两个值是通过对矩阵MCAH中的所有可能的位置对的穷尽遍历(exhaustive traversal)确定的。对于每一个对(X1,X2),连同相应的二次能量E(γ1,γ2).一起计算产生的值γ1和γ2。所选择的X1和X2的值最小化了E(γ1,γ2),以降低水印的视觉冲击。针对两个系数所描述的实施例可应用于N个系数,|N|[AL1]≥1。
[0080] 根据另一实施例,修正用于量化I图像中的每一个4×4块所定义的量化参数。允许对水印处理信号的最大变形阈值。对变形的测量是如下所计算的量化的经水印处理的信号与经水印处理的信号之间的均方误差(MSE):
[0081] 其中,-SH(i,j)是空间预测和变换之后的初始信号的与坐标为(i,j)的像素相关联的值,
[0082] -S′H(i,j)是经水印处理的信号SH(i,j)的与坐标为(i,j)的像素相关联的值,[0083] 是量化之后的信号S′H(i,j)的与坐标为(i,j)的像素相关联的值。
[0084] 根据选定的变形测量函数来定义最大的水印处理阈值ST。根据特定特性,在引入的变形低于阈值ST之前,针对给定的4×4块的量化参数减小。
[0085] 图5表示作用于DCT变换空间的传统水印读取过程,在所使用的预定水印处理过程是已描述的修正两个系数Γ1和Γ2的第一过程时,传统水印读取过程可以读取根据本发明在H变换空间中进行水印处理的数据流中的水印。在步骤50中,通过8×8DCT对解码图像中的8×8块进行变换。水印读取步骤51对图像中的每一个宏块进行处理,并读取出关联的水印处理比特bi。有利地,根据本发明,这样的读取过程可以被重复用于读取根据本发明的水印处理方法所插入的水印,即使这样的水印处理是在与DCT域不同的表示域中执行的。
[0086] 本发明还涉及一种如图6所示的水印处理设备6,该水印处理设备6接收根据MPEG-4AVC语法编码的数字数据流作为输入。该设备能够实现根据本发明的方法。在图6中,所表示出的模块是功能单元,这些功能单元可以对应于或可以不对应物理上可区分的单元。例如,这些模块或其中的一些模块可以集合到单个组件中,或者构成同一个软件的功能。相反,特定模块可能由分离的物理实体构成。根据特定实施例,随后通过模块60来对与I图像相关的数据流的一部分进行解码,用于对宏块进行重构(即,熵解码、逆量化、逆变换、以及可能在根据MPEG-4AVC语法对流进行编码的情况下添加对宏块的空间预测)。随后,通过模块61对由此重构的像素块进行变换。水印处理模块62可以对通过变换T1(例如DCT)变换的像素块进行水印处理。该水印处理设备还包括模块73,模块73可以从由此经水印处理的块中的每一个块中减去相应的未经水印处理的块,以产生第一水印处理记号(cue),也称之为贡献矩阵MDCT。模块63可以将矩阵MDCT投影到H变换空间,或者更一般地,投影到变换空间T2,以便针对每一个8×8的块,产生被称为贡献矩阵MH的第二水印处理记号。如果有必要,该模块还可以产生诸如先前已定义的贡献超级矩阵。该设备还包括可选的空间预测模块64和进行H变换(或更一般地说是变换T2)的模块65。模块66可以通过向第二变换空间中的经模块65变换的数据添加模块63所产生的第二水印处理记号,而对该数据进行水印处理。模块67可以对经水印处理的宏块进行量化。该设备还包括进行逆量化的模块68以及进行逆变换的模块69。该设备还包括存储器70,可以存储经水印处理且解码的宏块。最后,该设备包括用于进行熵编码的模块71以及多路复用器72,多路复用器72可以将根据本发明而进行水印处理的数据与编码的初始流中的其他数据进行多路复用。模块64、68、69和70是可选的。特别地,并非所有编码标准都必须在对数据进行解码之前对其进行空间预测。
[0087] 当然,本发明不局限于上述示例性实施例。具体地,本领域的技术人员可以将任意变体并入所提出的实施例中,并将它们结合以便受益于它们的不同优点。具体地,在基于H.264标准的视频编码的框架内描述的本发明可以扩展至任何类型的支持数据(音频、3D数据)。针对DCT变换和H变换的实施例可以扩展至任意类型的变换。一般情况下,根据本发明的水印处理方法在于:对第一变换空间T1中的数字数据进行水印处理,在该空间T1中产生与先前所描述的实施例中的贡献矩阵MDCT相对应的第一组系数MT1,将其投影到另一变换空间T2,以产生与先前所描述的实施例中的贡献矩阵MH相对应的第二组系数,以及在变换空间T2中对数据进行水印处理。然后,操作于变换空间T1中的水印读取器可以读取出在变换空间T2中插入的水印。具体地,本发明可应用于其他视频编码标准,例如在名为“proposedSMPTE Standard for Television:VC 1Compressed Video BitstreamFormat and Decoding Process”、并标记为SMPTE 421M的SMPTE文献中所描述的VC1标准。当不使用空间预测的编码标准使用本发明时,不采用根据本发明的方法中的步骤16、21和22。同样地,当第二变换T2仅作用于具有单一大小的块(例如8×8的块)时,不必采用步骤15。
[0088] 本发明不局限于先前所描述的水印处理过程。此外,本发明是关于帧内图像的水印处理而描述的,但本发明也可以应用于预测图像。