用于嵌入水印、视频帧的系统和方法以及用于检测嵌入的水印的系统和方法与流程

文档序号:12290118阅读:187来源:国知局
用于嵌入水印、视频帧的系统和方法以及用于检测嵌入的水印的系统和方法与流程

本公开一般涉及用于嵌入视频水印的系统和方法。



背景技术:

随着互联网内容分发的最新进展(包括对等网络和实时视频流送系统),为了防止未授权的内容分发,将数据嵌入到视频中来跟踪分发点变得重要起来。分发点通常是授权的观看者,例如电影院(在该处用摄影机制作盗版拷贝)或机顶盒TV解码器(其输出被捕获并被重编码成视频文件)。在对源进行跟踪之后,可以采取措施来防止进一步的未授权分发。

将信号嵌入到视频中在学术研究和商业发明中都是丰富的领域。视频中的隐性水印在本领域中是公知的,隐写水印以及表现为视频上的位图的显性水印也是公知的。

附图说明

根据以下的详细描述结合附图将更完全地理解和领会本发明,在附图中:

图1是根据本发明的实施例构造的和操作的视频数据嵌入系统的简化框图;

图2是图1的系统中所用的嵌入设备的框图;

图3是描绘图1的视频数据嵌入系统将数据嵌入到视频帧序列的视频数据嵌入系统的简化框图;

图4A和4B是对包括使用图1的系统嵌入的水印信息的两个视频帧的简化的图形示出;

图5A-5C是对用于图4A和4B的讨论的分别用一维、二维和三维颜色空间描绘的互相不同的调色板(palette)的描绘;

图6是对单个视频帧的简化描绘,在该视频帧中已经使用图1的系统编码有单位的有效载荷数据;

图7是对单个视频帧的简化描绘,在该视频帧中已经使用图1的系统编码四位的有效载荷数据;

图8是对图1的系统的操作的方法的简化流程图。

具体实施方式

概览

描述了用于嵌入和检测水印的方法、装置和系统。针对嵌入,在每帧中用固定颜色值替换最初具有低方差或低级别边缘(即,边缘度)(使用本领域公知的边缘检测处理来确定)中的一者的小型区域中的像素,该固定颜色值是根据要被嵌入的有效载荷位从两个具有多个颜色的调色板中的一者取出的、与这些像素的原始平均值最接近的值,并且然后对视频进行压缩。

针对检测水印,判定在每个小型区域的像素中所使用的是两个调色板中的哪一者。因为压缩,该确定可能会发生错误,但该方法、系统和装置被构建为用于克服这些错误。

示例实施例

现在参考图1,其是根据本发明的实施例构造的和操作的视频数据嵌入系统的简化框图。图1的系统包括嵌入设备10。嵌入设备10包括标记信息15和数据嵌入系统20。

现在参考图2,其是图1的系统中所用的嵌入设备200的框图。嵌入设备200包括硬件和软件组件,如本领域所公知的。

嵌入设备200包括至少一个处理器210,并且可以包括多于一个处理器210。处理器210之一可以是可操作来根据本文所描述的方法执行水印嵌入的专用处理器。此外,嵌入设备200包括非暂态计算机可读存储介质(即,存储器)220。存储器220可以存储处理器210中的至少一者可执行的指令,以便执行本文所描述的水印嵌入的方法。

要理解的是,也可将图1的检测设备90设计为具有与前述段落中所描绘的嵌入设备200的组件相同或相似的组件。

返回对图1的讨论,水印嵌入设备10可以是以下设备之一:

内容呈现设备,例如,供末端用户使用的设备。例如(并且不对前述内容的一般性进行限制),内容呈现设备可以是机顶盒、台式设备、平板设备、手持式设备、或具有计算容量和能力来对内容进行呈现的任何其它设备。要理解的是,在这种情况下,数据嵌入系统20将需要访问干净未压缩的视频(假设内容是视频)或访问经编码/经压缩的视频的解码/解压缩过程。还要理解的是,由内容呈现设备执行的处理中的一些处理可以由虚拟处理器(例如(通过示例的方式)位于云中的远程处理器)执行。

位于内容提供头端处的设备。

标记信息15包括任何适当的信息。在一些实施例中,标记信息15可以包括非取证(non-forensic)信息。也就是说,标记信息15可以不标识具体用户或设备,相反,可以标识其它信息,例如信道ID、电影ID、服务提供商ID等等。在这种情形中,通常将在头端处嵌入水印。

可替代地并且不对前述内容的一般性进行限制,标记信息15可以是标识以某种方式与内容唯一关联的用户(如以下将解释的)的信息(即,取证信息),并且标记信息15可以包括内容呈现设备或具有唯一的标识号码并且与用户相关联的某一其它设备(或“子设备”,例如智能卡)的唯一设备ID。可替代地,标记信息可以包括版权标记或其它访问权限数据,例如(并且不对前述内容的一般性进行限制),内容呈现设备要服从的播放/复制许可。本领域技术人员将理解的是,版权信息例如(并且不对前述内容的一般性进行限制)可以是单位的,其指示“受版权保护的内容”/“未受版权保护的内容”。可替代地,可以用多个位来指示版权,例如(并且不对前述内容的一般性进行限制),指示对可复制但不可烧录到CD的许可的多个位。假设授权的播放设备遵守这种信号,而未授权的播放设备被假定为不遵守这种信号。应理解的是,可以可替代地用适当类型的标识信息的组合作为标记信息15。

数据嵌入系统20可操作来将嵌入数据(在图1中被描绘为星号,*)注入到视频流60的帧30、40、50上。

现在描述图1的系统的操作。将视频流60描绘为包括三种不同类型的视频帧:

尚未包括嵌入数据的帧30;

当前正在被嵌入数据的帧40;以及

已经被嵌入数据的帧50。

数据嵌入系统20接收标记信息15作为输入、生成嵌入数据(在图中被描绘为星号,*)、并将水印注入到当前正在被嵌入数据的帧40。

可以上载包括视频流60(现在包括已经被嵌入数据的多个帧50)的内容或以其它方式使该内容在内容共享网络70上可用。内容共享网络70通常包括流送内容共享网络或对等内容共享网络。可替代地,内容共享网络70可以包括任何适当类型的线上和/或线下内容分发方案,例如(并且不对前述内容的一般性进行限制),盗版DVD的零售。能够对包括视频流60的内容进行呈现的第二设备80然后可以获得来自内容共享网络70的视频流60。

播送设备、内容所有者、或其它被适当地授权的代理也可以获得来自内容共享网络70的视频流60。一旦播送设备、内容所有者、或其它感兴趣的利益相关者获得来自内容共享网络70的视频流60,视频流60被输入到检测设备90。检测设备90从被包括在视频流60中的、已经被嵌入数据的帧50中的每一帧里检测并提取嵌入数据(被描绘为星号,*)。提取出的嵌入数据然后被输入到嵌入数据检测系统95。被嵌入数据检测系统95能够从输入的嵌入数据中确定被注入的标记信息。

现在参考图3,其是描绘图1视频数据嵌入系统将数据嵌入到视频帧序列的简化框图。图3在非常高的层次描绘嵌入设备200中发生的操作。描绘了多个视频帧300,并且箭头310指示图3的左侧描绘的帧300是在图3的右侧描绘的帧300之前的视频帧。描绘了位串320。位串320中的至少一位被编码在多个视频帧300的选定帧中。例如,可以在视频帧的每一帧中嵌入一个位。因此,10111001中的第一个1被嵌入到多个视频帧300的第一个视频帧中。第二位(0)被嵌入到多个视频帧300的第二个视频帧中。第三位(1)被嵌入到多个视频帧300的第三个视频帧中,等等。

可替代地,嵌入方案可能需要将若干位嵌入到单个视频帧中,或者每三个视频帧嵌入单个位,或者位和帧的任何其它变化和组合。以下将参考图4和图6讨论这种情况中的一些示例。

本领域技术人员将理解的是,在观看监视器或屏幕上将数字视频帧作为像素的有序排列呈现给观看者。可以对像素中的一个或多个像素进行某些改变,这种改变通常将不会被观看者察觉到。例如(并且不对前述内容的一般性进行限制),像素的颜色元素可以由红-绿-蓝值(通常被表示为范围从0到255的值)的三元组来表征。红-绿-蓝值的数值的微小变化(例如(并且不对前述内容的一般性进行限制),从179-221-18到184-220-20)通常将不会被观看者察觉到。

本领域技术人员将理解的是,替代地可以在任何适当的颜色空间(例如,公知的色度/亮度系统(例如,YCbCr、YPbPr、YDbDr)中的任一者或根据xvYCC标准(IEC 61966-2-4))中对像素颜色进行表达。为了讨论的简单起见,本文以非限制性的方式将像素颜色表示为RGB三元色。

现在参考图4A和4B,其是对包括使用图1的系统嵌入的水印信息的两个视频帧的简化的图形示出。图4A和4B示出两个非常相似的视频帧410、403,其中各个补丁(patch)410被描绘为具有粗黑边框的白色正方形。这些补丁表示视频的包括水印的部分。图4A和B中描绘的补丁显示在具有如本文所述的被嵌入的水印的典型帧中这种补丁可能会出现的地方。然而,要理解的是,以下所描述的用于在视频中嵌入水印的方法被设计为使得水印对视频的典型观看者应当是不不可见或接近不可见的。

应当理解的是,补丁被描绘为正方形。在实践中,补丁通常是正方形,例如,2x2像素、4x4像素或8x8像素的正方形。然而,补丁也可以是与以上正方形补丁相似的小尺寸的矩形,例如,2x3像素或4x6像素。

现在附加地参考图5A-5C,其是对用于图4A和4B的讨论的分别用一维、二维和三维颜色空间描绘的互相不同的调色板的描绘。因此,在适当的颜色空间(例如,RGB、YUV、或YCbCr)中,在整个空间内选择像素值的两个互不相同的集合(被标示为“调色板”)。转到图5A,描绘了一维颜色空间线435(例如,红或Y)(类似于数轴)。在等距离处两组垂直线交替地与一维的颜色空间线435相交。与一维颜色空间线435交叉的第一组线(即,下行线)被表示为P0。与一维颜色空间线435交叉的第二组线(即,上行线)被表示为P1。这些将对应于图4的讨论中的两组调色板P0和P1。一维颜色空间线435中要被编码为0的值例如将被修改为它与之最近的P0点的值。例如,如果一维颜色空间线435上的点X要被编码为0,则它将被修改为变成被表示为P0-X的点。

应当理解的是,虽然交替的两组线被描绘为是等间隔的,调色板中的点不需要是相互等距离的,虽然这样放置这些点是自然选择。还应理解的是,对下文在图5B和5C中给出的示例来说情况也是如此。

现在转到图5B,描绘了二维颜色空间平面445(例如,RG或YU)。在每个交替的方格的中心是图标P0或P1,这指示两个调色板P0和P1位于每个交替的方格的中心点。离P1点更近的点X因此将被修改为它与之最近的P1点,在此处被标记为P1-X。虽然图5B(以及以下的图5C)描绘了交替的方格,应理解的是每个这种调色板成员是点,不是方格。事实是,存在“影响方格”,这是一个区域,其中最近的调色板邻居将来自P0或P1。但是调色板成员只是一种颜色元组,因此是点。

现在转到图5C,描绘了三维颜色空间455(例如,RGB或YUV)。空间中的交替平面中的任一者由两个平面465、475中的一者组成,两个平面465、475具有不同的、交替的、P0/P1间隔图案。三维颜色空间455中所描绘的点X将被修改为三维颜色空间455中它与之最近的点P0或P1。

现在回到图4A和4B的讨论,所选调色板中的像素值被选择为是“密集的”。也就是说,针对颜色空间中的每个像素值,(一个或多个)调色板(的任一个)中存在(根据任何可接受的度量)该像素值在值上与之接近的成员。为了方便起见,下文中将一个调色板称为P0,并将第二调色板称为P1。例如,使P0={(16i,16j,16k)|i,j,k=0,..15并且i+j+k%2==0},P1={(16i,16j,16k)|i,j,k=0,..15并且i+j+k%2==1}。

要在每个视频帧中编码的数据位的数目是嵌入器10(图1)和检测器90(图1)随后使用的配置参数。该值在下文中被表示为BpF(每帧位数)。将要理解的是,随着BpF增大,水印的容量(即,每帧中编码的位数)增大,这是以水印的不可见性为代价的。通常BpF的范围例如为从1到4。(见下文参考图5和6的关于此的进一步讨论。)

在第一视频帧上均匀地选择N个小矩形像素(“补丁”)集合。通常这N个补丁被选择为不与宏块边界重叠。如果N个补丁不与宏块边界重叠,则补丁对由于视频转码的影响导致的像素颜色值的变化更有弹性。

应当理解的是,在典型实施例中,N的值提供水印的不可见性和稳健性之间的折衷。N的典型值可以被设置在11和15之间。然而,补丁也可以是小尺寸的矩形,类似于上述正方形补丁。应当理解的是,N的值11和15是奇数的,因此易于在检测期间使用多数表决运算,如下文所述。N当然也可以是其他值。然而,随着N增大,水印的稳健性提高,这是以水印的不可见性为代价的。

补丁的位置可能在所有的视频帧中是固定的,或者可能根据各种可能的补丁运动方案(这在本发明的范围之外)从帧到帧有所变化(与图4A和4B的帧401和403中的情形一样),只要在检测阶段期间可以基于(例如(并且不限制上述内容的一般性),补丁运动方案的可能的自同步特征和/或一些共享秘密)确定帧位置是什么。为简单起见,此后假设在所有的视频帧中补丁位于固定的位置,并且它们的位置在检测阶段期间是已知的。

根据BpF值,N个补丁的集合被分成补丁的子集。例如(并且不限制上述内容的一般性),如果BpF=1,则补丁的子集包括所有N个补丁。然而,如果BpF=2,假设N=15,则一个子集可包括9个补丁,而第二子集将包括6个补丁。类似地,如果BpF=3,假设N=11,则两个子集各自可包括4个补丁,并且第三子集将包括三个补丁。如果BpF=4,假设N=11,则可以存在两个各自有2个补丁的子集、一个有3个补丁的子集、以及一个有4个补丁的子集。

考虑由帧F_1、F_2、……、F_n(见例如图3中的多个视频帧300)组成的视频序列以及要编码的有效载荷(见例如图3的位串320),则针对视频帧F_i,与帧F_i相关联的BpF有效载荷位通过使用以下所述方法被编码。为便于描述,下文中假设BpF=1。如果BpF>1,针对视频帧内的补丁的每个子集重复编码过程,使用每个子集来对与帧相关联的BpF位之一进行编码。

针对要对其中的补丁进行编码的每个帧:

针对要被编码的补丁中的每一个补丁:

1.选择调色板P0或P1——如果要被编码的有效载荷位的值是j,则使用调色板Pj。应当理解的是,使用调色板Pj来对j进行编码的这种惯例是为方便起见,原则上使用P0来对1进行编码以及使用P1来对0进行编码是可能的。

2.通过被编码的补丁的位置或者可替代地通过更广区域(其中补丁的位置在该更广区域的中间)来计算方差和边缘度之一。应当理解的是,在本说明书和权利要求书中,术语“边缘度”被用于指示执行边缘检测的结果。具有大量边缘的区域将具有高级别边缘,即,将是“锐利的”。相反地,具有少量边缘的区域将具有低级别边缘,即,将是“不锐利的”。可替代地,具有高/低级别边缘的帧将被称为具有高/低边缘度。

为了本发明的目的,方差不需要通过像素三元色中单独的标量值(即,不是R和G和B,或者可替代地,Y和U和V)来确定(虽然可以这么做),而是通过将方差的三个坐标相加并将该和与标量阈值进行比较来确定。

3.如果方差和边缘度之一低于出于水印的稳健性和不可见性的折衷所选择的某一给定阈值,则:

a.使用像素值作为函数的输入来计算一值。用于计算该值的函数例如可以是加权平均数(即,平均值)、中位数、众数、或几何平均数。

b.从所选择的调色板中选择该调色板中与所计算出的数值最接近的值,其中距离是任何合理的距离测量(例如,像素值之间的几何距离L2)。应当理解的是,一旦选择一种度量作为要用的“合理的距离测量”,则在嵌入和检测过程中的所有计算中使用该相同的度量。

c.将补丁内的像素值替换为先前步骤中所选择的值。

4.如果方差和边缘度边缘检测之一高于给定阈值,包括所选补丁的像素不被替换。

在该阶段,水印被嵌入到视频帧中,并且视频帧的处理正常进行。

应当理解的是,从在帧内的补丁中“编码”位的意义上来说,术语“编码”要从“嵌入”具有来自与该位的值相对应的适当调色板的适当的值的补丁的意义上来理解。而在对帧进行“编码”的意义上来说,术语“编码”要被理解为意味着如本领域中该术语被理解的“视频编码”。

在上述方法的一些实施例中,如果被修改的补丁数低于最初由水印的嵌入器确定的某个阈值(表示为MinPatch),整个帧可以被完全跳过,不需要被用于对任何位进行编码。检测阶段将识别出该帧,如下所述。

应当理解的是,误差检测和校正码(例如,里德-所罗门码)可以并且应当被应用到原始的有效载荷上以创建经编码的码字,并且在以上描述中被用作有效载荷位的正是具有这些码字的位。

现在参考图6,其是对单个视频帧500的简化描绘,已经使用图1的系统在该视频帧中编码单位的有效载荷数据。图6示出单个视频帧500,其被划分为多个宏块501、502、503(等等——剩余的宏块未被编号,即使它们在图示中被指示)。

图标510指示哪些图案被用于指示经编码的0和经编码的1。视频帧500中示出7个补丁520,所有的补丁520被填充以显示经编码的零值。经编码的零可以对应于有效载荷位串320中的倒数第二位。如果在多个视频帧中仅编码有效载荷位串320的八位,则视频帧500然后将是第7帧,其包括表示经编码的位的补丁。

现在参考图7,其是对单个视频帧600的简化描绘,已经使用图1的系统在该视频帧600中编码四位的有效载荷数据。视频帧600被再分为四个象限,其被命名为象限600I、600II、600III、和600IV。视频帧600还被分为多个宏块601、602、603(等等——剩余的宏块未被编号,即使它们在图示中被指示)。

图标510指示哪些图案被用于指示经编码的0和经编码的1。在图7中描绘的示例中,有效载荷位串320的八位中的最后四位(即,位1001)被编码在嵌入在视频帧600中的补丁中。象限600I包括补丁620,其被编码为作为1,与串1001的第一位(1)相对应。象限600II包括补丁630,其被编码为作为0,与串1001的第二位(0)相对应。象限600III包括补丁640,其被编码为作为0,与串1001的第三位(0)相对应。象限600IV包括补丁650,其被编码为作为1,与串1001的第四位(1)相对应。

本领域技术人员将理解的是,可以采用类似的方法来嵌入水印,其中上文中所描述的水印(或本质上相似的水印)通过使用对于I帧的宏块或非I帧中的I类型宏块中的一些的离散余弦变换(DCT)因子的直接操作被嵌入。

还应当理解的是,DCT因子值可以被用作补丁的内部方差的充分逼近(即,如果存在例如许多非零的高阶DCT因子,则噪声到方差的比值高)。在这种情形中,通过仅留下与补丁区域匹配的低阶的DCT因子(称为DC因子)并使与补丁区域匹配的其余DCT因子归零,如上文所描述的“拉平”补丁(即,对补丁进行平均化)将是上述方法的良好逼近。

检测设备90及其组件在图1中被讨论,并且还在对图2中描述的嵌入设备进行讨论之后被讨论。现在转到对使用上述技术被嵌入的水印进行检测的方法,一旦要被分析的视频流60(图1)被获取并被输入到检测设备90(图1),则执行以下方法。

如上,假设BpF=1。如果BpF>1,则针对补丁的每个子集重复相同过程。

对其中可能存在有水印的补丁(候选补丁)的每个视频帧:

在每个补丁中执行以下操作:

1.计算候选补丁的方差和边缘度之一。

2.如果候选补丁的方差和边缘度之一低于某给定阈值,则

a.确定用于嵌入水印的函数(例如,加权平均数(即,平均值)、中位数、众数、或几何平均数)的输出在某种距离测量下更接近P0的成员还是P1的成员。该选择将是候选补丁的“输出位”。也就是说,假设Pj对位j进行编码,则如果距离调色板P0更近,则补丁的输出位将是0。类似地,如果距离调色板P1更近,则补丁的输出位将是1。

b.如果候选补丁的方差或边缘度之一高于给定阈值,则补丁被忽略。

3.在未被忽略的所有补丁中,把它们的输出位中的多数当作帧。该位是对于该帧的有效载荷位的猜测。

4.如果未被忽略的补丁的数目低于阈值MinPatch,这指示该帧在嵌入阶段期间被跳过,并且在这里也应当被跳过。

5.继续该过程以通过应用任何错误校正方法来恢复原始有效载荷的位,其中任何错误校正方法由被用于编码/重编码有水印的帧的错误校正码提供。

可以通过使用置信水平来增强检测方法。在检测期间,用于嵌入水印的函数(例如,加权平均数(即,平均值)、中位数、众数、或几何平均数)的输出(在下文中被称为被评估的候选补丁的“中心值”)到每个调色板中最近的邻居之间的距离可以用作补丁的值的置信水平。例如,如果两个调色板P0和P1的每一者中的最近的邻居近似等距离,则置信水平低。另一方面,如果P0或P1中的任一者的两个值之一比两个值中的另一个更接近该值,则置信水平高,两个值中更近的一个是正确的值。因此,如果v是候选补丁的中心值,最近的邻居是n0和n1,则置信水平将与1/[min(dist(v,n0),dist(v,n1))]成比例。

由于针对每个补丁的这种置信水平,例如可以将与P0更近的补丁的所有的置信水平(以下称为C0)以及与P1更近的补丁的所有的置信水平(以下称为C1)相加。然后可以通过看C0>C1还是C0<C1来估计被解码的位是0还是1。

现在提供应用上述方法的示例。在嵌入水印之前考虑单个帧中8x8像素补丁的RGB值:

(R,G,B)平均值是(104.1875,155.8125,216.75)。

R、G和B方差的和是2.241,低于阈值。因此,该补丁被置为活跃(即,被选择为具有水印嵌入)。在本示例中,期望嵌入位1,因此,调色板P1被使用。上文提供的示例性调色板P1是:P1={(16i,16j,16k),i,j,k=0,...,15|i+j+k%2==1}。

在该具体示例中,阈值是30。阈值被选择为允许足够的补丁维持活跃,但使得噪音更多(方差更高)的补丁不活跃。将要理解的是,阈值取决于所选择的补丁的大小、视频的类型,甚至有点取决于调色板本身的大小。

在调色板P1中,P1中几何距离上最近的邻居是(112,160,224).

在视频编码之前,嵌入该值之后补丁变为:

由于编码过程期间引入到像素值中的方差,像素值经历一些微小的改变,并且变为:

本领域技术人员将理解的是,这种微小的改变是编码过程的正常伪影。结果补丁的像素值(如上文所列举的)是将在水印检测阶段被分析的补丁的像素值。

检测阶段发现的平均值然后将是:(111.125,159.9357,222.96875),并且方差值现在是0.345,因此补丁被认为是活跃的。P0或P1中最近的邻居(使用几何距离被确定)是(112,160,224),其在P1中——因此,补丁编码位1,其与上文的嵌入步骤中位1的编码相匹配。

现在参考图8,其是对图1的系统的操作的方法的简化流程图。参考以上讨论,图8的方法被认为是清楚明白的。

应当理解的是,本发明的软件组件(如果需要的话)可以用ROM(只读存储器)形式来实现。软件组件一般地可以使用传统技术在硬件(如果需要的话)中被实现。还应当理解的是,软件组件例如可以被实例化为计算机程序产品或在有形介质上被实例化。在一些情形中,将软件组件实例化为适当的计算机可翻译的信号是可能的,虽然本发明的某些实施例中可能不包括这种实例化。

应当理解的是,还可以结合单个实施例提供本发明的各种特征(为清楚起见,其未在单独的实施例的上下文中被描述)。相反地,也可以单独地或在任何合适的子组合中提供本发明的各种特征(为简要起见,其在单个实施例的上下文中被描述)。

本领域技术人员将要理解的是,本发明不由上文中具体呈现并描述的内容来限制。相反,本发明的范围由所附权利要求书及其等同来定义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1