著录项信息
专利名称 | 一种给视频添加水印的方法和系统 |
申请号 | CN201410064837.2 | 申请日期 | 2014-02-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-05-28 | 公开/公告号 | CN103826168A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N21/8358 | IPC分类号 | H;0;4;N;2;1;/;8;3;5;8查看分类表>
|
申请人 | 深圳市掌网立体时代视讯技术有限公司 | 申请人地址 | 广东省深圳市南山区高新区中区科研路9号比克科技大厦1501-B室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳市掌网科技股份有限公司 | 当前权利人 | 深圳市掌网科技股份有限公司 |
发明人 | 李炜;谭昌贤 |
代理机构 | 深圳市顺天达专利商标代理有限公司 | 代理人 | 郭伟刚 |
摘要
本发明涉及一种给视频添加水印的方法和系统,所述给视频添加水印的方法包括如下步骤:S1、获取当前帧图像的数据起始地址;S2、获取所述当前帧图像的宽度和高度;S3、确定水印在所述当前帧图像上待添加的位置;S4、根据当前帧图像的数据起始地址、当前帧图像的宽度和高度以及水印在当前帧图像上待添加的位置得到水印的待存储数据地址;S5、获取水印的点阵信息;S6、以所述水印的点阵信息更改所述待存储数据地址内的视频数据。本发明中水印的添加在拍摄视频信号的过程中完成,水印完全真实记录了拍摄时的信息,准确记录的实时信息包括拍摄人、拍摄时间、拍摄设备、拍摄地点等,确保水印信息的准确性和真实性。
1.一种给视频添加水印的方法,其特征在于,包括如下步骤:
S1、在硬件抽象层的数据流缓冲队列中获取当前帧图像的数据起始地址;
S2、获取所述当前帧图像的宽度和高度;
S3、确定水印在所述当前帧图像上待添加的位置;
S4、根据当前帧图像的数据起始地址、当前帧图像的宽度和高度以及水印在当前帧图像上待添加的位置得到水印的待存储数据地址;
S5、获取水印的点阵信息;
S6、以所述水印的点阵信息更改所述待存储数据地址内的视频数据,从所述水印的待存储数据地址的起始地址开始,将全部待存储数据地址内的视频数据更改为所述点阵信息内的信息。
2.根据权利要求1所述的给视频添加水印的方法,其特征在于,所述步骤S2中“获取所述当前帧图像的宽度和高度”进一步包括:从视频拍摄设备的配置信息中获取所述当前帧图像的宽度和高度。
3.根据权利要求1所述的给视频添加水印的方法,其特征在于,所述步骤S5进一步包括:将所述水印格式化为字符串,确定所述字符串的点阵信息。
4.根据权利要求1所述的给视频添加水印的方法,其特征在于,所述点阵信息包括字符串的格式和每个字符的字体、大小、颜色。
5.一种给视频添加水印的系统,其特征在于,包括视频采集模块、存储模块、中央数据处理模块、设置模块、执行模块,中央数据处理模块分别与所述视频采集模块、存储模块、设置模块、执行模块连接,其中,
所述视频采集模块用于采集图像信息;
所述设置模块用于接收预设信息以供所述中央数据处理模块调用,所述预设信息包括水印在当前帧图像上待添加的位置;
所述中央数据处理模块用于获取当前帧图像的数据起始地址和获取所述当前帧图像的宽度和高度,并根据当前帧图像的数据起始地址、当前帧图像的宽度和高度以及水印在当前帧图像上待添加的位置得到水印的待存储数据地址;所述中央数据处理模块从所述视频采集模块的硬件抽象层的数据流缓冲队列中获取所述当前帧图像的数据起始地址;
所述执行模块用于获取水印的点阵信息,并根据所述水印的点阵信息更改所述待存储数据地址内的视频数据,从所述水印的待存储数据地址的起始地址开始,将全部待存储数据地址内的视频数据更改为所述点阵信息内的信息;
所述存储模块用于存储视频数据。
6.根据权利要求5所述的给视频添加水印的系统,其特征在于,所述设置模块的预设信息包括水印字符串的格式和每个字符的字体、大小、颜色。
一种给视频添加水印的方法和系统\n技术领域\n[0001] 本发明涉及数字图像处理技术,更具体地说,涉及一种给视频添加水印的方法和系统。\n背景技术\n[0002] 对视频信号添加水印是在视频信号内嵌入某种可识别的代码、模式或者特征的技术,添加了水印的视频信号在识别视频信号来源、调查视频信号处理历史等方面具有重要作用,例如在对版权保护,根据嵌入在电影信号中的水印来判断电影来源是否合法。\n[0003] 现有多种给视频添加水印的方法,例如20088000814.6号专利公开了一种对视频信号进行印水印的方法,该方法包括:利用多个编码参数来编码所述视频信号;以及在所述编码期间,根据印水印模式随时间改变所述参数中的至少一个选定参数的值,该选定参数是至少影响在编码信号时丢失的信息的类型或量的参数。适合参数的示例是用于编码视频信号的量化因子。量化因子可以对应于用于编码视频信号的变换的特定系数,并且例如可以是与块DCT变换的特定系数对应的量化矩阵元。该方法可以借助于软件更新而被便利地实施在带有有限处理资源的装置比如现有的DVD中,然后使得那些装置能够给它们编码的信号加印有鲁棒水印,所述鲁棒水印可以幸免于后继的解压缩和再压缩。在另一方面,通过以根据印水印模式而随时间改变的方式修改至少一个选定非dc空间频率分量的大小,对视频信号进行印水印。200410082618.3号专利公开了一种用于选择将要加水印的像素的色度部分的方法,应用基于感知的表确定将要加水印的色度部分,该表为各个像素值指示,如有的话,应该选择哪一色度部件加水印。只需要像素的Y、U和V值来访问该表,确定应该选择哪一色度部分。但是,可以这样表示该表以便仅仅使用R、G和B值就能访问它。可以修改该表以便它指示应该选择哪一个U或V,或者哪一个都不选择,这表示该像素完全不应该加水印。有利地,通过应用一些处理可以简化该表,因为该表的大部分可以通过对像素值进行简单的测试,例如U<128,以确定所选的色度部分来代替。\n[0004] 上述视频添加水印的方法都是对已经拍摄好的视频的后续处理,现有的数码照相机和摄像机在拍照和录像时没有添加水印的功能,安装第三方的应用软件可以给拍的照片追加水印显示,但是无法在录像过程中添加水印显示。\n发明内容\n[0005] 本发明所要解决的技术问题在于,提供了一种给视频添加水印的方法,解决现有技术不能在拍摄视频信号的过程中实时添加水印的问题。\n[0006] 本发明解决上述问题的技术方案在于,提供一种给视频添加水印的方法,包括如下步骤:\n[0007] S1、获取当前帧图像的数据起始地址;\n[0008] S2、获取所述当前帧图像的宽度和高度;\n[0009] S3、确定水印在所述当前帧图像上待添加的位置;\n[0010] S4、得到水印的待存储数据地址;\n[0011] S5、获取水印的点阵信息;\n[0012] S6、更改所述待存储数据地址内的视频数据。\n[0013] 在本发明的给视频添加水印的方法中,所述步骤S1中所述“获取当前帧图像的数据起始地址”具体为在硬件抽象层的数据流缓冲队列中获取当前帧图像的数据起始地址。\n[0014] 在本发明的给视频添加水印的方法中,所述步骤S2中所述“获取所述当前帧图像的宽度和高度”具体为从视频拍摄设备的配置信息中获取所述当前帧图像的宽度和高度。\n[0015] 在本发明的给视频添加水印的方法中,所述步骤S5具体为:将所述水印格式化为字符串,确定所述字符串的点阵信息。\n[0016] 在本发明的给视频添加水印的方法中,所述点阵信息包括字符串的格式和每个字符的字体、大小、颜色。\n[0017] 在本发明的给视频添加水印的方法中,所述步骤S6具体为:从所述水印的待存储数据地址的起始地址开始,将全部待存储数据地址内的视频数据更改为所述点阵信息内的信息。\n[0018] 本发明还提供了一种给视频添加水印的系统,包括视频采集模块、存储模块、中央数据处理模块、设置模块、执行模块,中央数据处理模块分别与所述视频采集模块、存储模块、设置模块、执行模块连接,其中,\n[0019] 所述中央数据处理模块用于获取当前帧图像的数据起始地址;\n[0020] 所述中央数据处理模块用于从所述视频采集模块获取所述当前帧图像的宽度和高度;\n[0021] 所述中央数据处理模块用于从所述设置模块的预设信息确定水印在所述当前帧图像上待添加的位置;\n[0022] 所述中央数据处理模块用于从所述设置模块的预设信息得到水印在存储模块中的待存储数据地址;\n[0023] 所述中央数据处理模块用于从所述设置模块的预设信息获取水印的点阵信息;\n[0024] 所述执行模块用于更改所述存储模块中的所述待存储数据地址内的视频数据。\n[0025] 在本发明的给视频添加水印的系统中,所述中央数据处理模块从所述视频采集模块的硬件抽象层的数据流缓冲队列中获取所述当前帧图像的数据起始地址。\n[0026] 在本发明的给视频添加水印的系统中,所述设置模块的预设信息包括水印字符串的格式和每个字符的字体、大小、颜色。\n[0027] 本发明的有益效果在于,水印的添加在拍摄视频信号的过程中完成,水印完全真实记录了拍摄时的信息,准确记录的实时信息包括拍摄人、拍摄时间、拍摄设备、拍摄地点等,确保水印信息的准确性和真实性。\n附图说明\n[0028] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:\n[0029] 图1为本发明视频添加水印的方法的一较佳实施例的流程图;\n[0030] 图2为本发明视频添加水印的方法的一较佳实施例的采样数据格式;\n[0031] 图3为本发明的给视频添加水印的系统的逻辑结构框图。\n具体实施方式\n[0032] 下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0033] 现有技术中的水印添加技术都是在图像或者视频信号采集完成后添加,使得水印中的信息很难反应拍摄视频信号时的真实情况,例如信号采集完成后添加的时间水印一般为添加水印时的时间而不是信号采集时的时间,即使通过拍摄软件添加的时间水印也与真实拍摄时间有数秒钟的差异,因为拍摄软件也是在信号采集完成后才将时间水印添加上去。为解决上述水印中的信息与拍摄视频信号时的真实情况不相符的问题,本发明提供了一种给视频添加水印的方法。本发明的主要创新点在于:实时的对信号采集过程中当前帧图像的数据进行更改,而不是更改已存储的数据,准确记录拍摄时的实时信息,确保水印信息的准确性和真实性。\n[0034] 图1示出了本发明视频添加水印的方法的一较佳实施例的流程图。如图1所示,该方法包括如下步骤:;\n[0035] S1、获取当前帧图像的数据起始地址。优选的,步骤S1进一步包括,在硬件抽象层(HAL层)的数据流缓冲队列中获取当前帧图像的数据起始地址。硬件抽象层的作用包括对设备寄存器的访问、总线独立的设备寻址、中断处理和复位、DMA传输(是一种不经过CPU而直接从内存存取数据的数据交换模式)、定时器和实时时钟的控制、底层的自旋锁(Spin Lock)和多处理机同步、BIOS接口以及CMOS(互补金属氧化物半导体)配置内存。直接通过视频数据在HAL层中的数据流缓冲队列,获取当前帧图像的数据起始地址,实时信息实施调取,准确、快速。\n[0036] S2、获取所述当前帧图像的宽度和高度。视频采集设备会根据配置信息而采集视频,所述配置信息包括分辨率、光圈大小、曝光时间、焦距等,调取配置信息中的当前分辨率,便可以获取所述当前帧图像的宽度(width)和高度(height),并以宽度(width)为横轴,高度(height)为纵轴,设定当前帧图像的坐标平面。\n[0037] S3、确定水印在当前帧图像上待添加的位置。水印可以添加在当前帧图像的任何位置。一个实施例中,本发明添加的水印信息为可见信息,为了不遮挡图像的主体部分,一般添加在图像的四个角落,例如水印信息为时间信息时将其设置在右下角,水印信息为设备型号时将其设置在左上角,水印信息为摄影人姓名或者编号时设置在左上角等。当然,这些设定都只是示例性而不是限制性的,通过同样的方式可以将水印设置在图像的任何位置。因此在添加水印前需要通过默认设定或者人为预设确定添加水印的位置,并将其转化为在当前帧图像中的坐标,设定水印信息在当前帧图像上的起始位置为(startX,startY),显然,起始位置(startX,startY)与所述当前帧图像的宽度(width)和高度(height)具有直接关系,startX≤width,startY≤height。\n[0038] S4、根据当前帧图像的数据起始地址、当前帧图像的宽度和高度、以及水印在当前帧图像上待添加的位置得到水印的待存储数据地址。综合前述三个步骤获得的数据,得到水印的待存储数据地址,将水印的待存储数据地址设定为(ppY,ppU,ppV),其中,[0039] ppY=pStart+width*startY+startX;\n[0040] ppU=pStart+width*height+startX+startY*width/2;\n[0041] ppV=ppU+1。\n[0042] 在此,需要特别指出的是,上述步骤中当前帧图像的采样数据格式为YUV4:1:1,具体如图2所示,每个点的增量都为单个点字符的宽度,每个U值和V值的地址设定0行0列开始,偶数行并且偶数列时增2。每个点保存一个亮度值(也就是Y值),每4个点共同保存一个U值和V值,图2中Y0、Y1、Y8、Y9为点0、1、8、9的Y值地址,U0、V8为点0、1、8、9的U值地址和V值地址;Y2、Y3、Y10、Y11为点2、3、10、11的Y值地址,U2、V10为点2、3、10、11的U值地址和V值地址。\n其它的以此类推,不一一说明。此种方式图像在肉眼中的感觉不会起太大的变化,例如,原来用RGB(R,G,B都是8bitunsigned)模型,1个点需要8x3=24bits,(全采样后,YUV仍各占\n8bit)。按4:1:1采样后,而现在平均仅需要8+(8/4)+(8/4)=12bits(4个点,8*4(Y)+8(U)+8(V)=48bits),平均每个点占12bits。这样就把图像的数据压缩了一半。\n[0043] 除上述YUV4:1:1的采样格式外,现在主要的采样格式还包括YUV4:2:0、YUV4:2:2和YUV4:4:4,依其各自采样格式的特点得到待存储数据地址,由于得到待存储数据地址方式与上述方式基本相同,在此不再赘述。\n[0044] S5、获取水印的点阵信息。如前所述,水印的内容为多种,需要通过默认设定或者人为预设确定添加水印的格式,例如,水印信息为时间信息时将其设定为“2013-12-2711:\n22:33”,具体为“年-月-日时-分-秒”,格式选定“Times New Roman四号字黑色”;水印信息为设备型号时将其设定为“NIKON D100”,具体为“设备型号”,格式选定“宋体五号字蓝色”。\n[0045] 优选的,上述格式包括但是不限于字体、大小、颜色,其它格式内容如字间距、加粗等也可以为格式的一部分添加。对于水印的内容可以根据需要具体调整,在此不一一列举。\n将水印的内容固定格式化为上述格式的字符串后,确定所述字符串的点阵信息,所述点阵信息的确定可以直接在系统字库中查找,或者通过自带程序生成,将所述字符串映射为点阵信息。\n[0046] 由于上述视频数据采用YUV格式,点阵信息的常规格式为RGB格式,当两者格式不统一时需要做格式转化,具体为,\n[0047] Y=0.299*R+0.587*G+0.114*B;\n[0048] U=-0.1687*R-0.3313*G+0.5*B+128;\n[0049] V=0.5*R-0.4187*G-0.0813*B+128。\n[0050] S6、以所述水印的点阵信息更改所述待存储数据地址内的视频数据。根据获得的点阵信息,更改所述待存储数据地址内的视频数据,最优选为按照点阵顺序逐个更改。前述中水印信息在当前帧图像上的起始位置为(startX,startY),该点图像信息为(Y,U,V)对应的待存储数据地址为(ppY,ppU,ppV),在视频数据中存储数据地址(ppY,ppU,ppV)的数据全部更改为该点的图像信息(Y,U,V),然后转入下一点(startX’,startY’);(startX’,startY’)的图像信息为(Y’,U’,V’)对应的待存储数据地址为(ppY’,ppU’,ppV’),在视频数据中存储数据地址(ppY’,ppU’,ppV’)的数据全部更改为该点的图像信息(Y’,U’,V’),然后转入下一点(startX’’,startY’’)。按照点阵顺序逐个更改,直至全部更改完毕为止。\n[0051] 通过上述方式添加的水印,可以实现拍照和录像添加水印功能,而且可以保证拍照或录像每一帧图像上的水印信息的准确性和真实性,例如,水印信息为时间信息时,视频采集的时间可以从视频采集设备上直接调取,通过本发明中所述的添加水印的方法,时间水印被实时的添加到视频数据上,每一秒钟的时间变化均被记录在时间水印上并且成为视频数据的一部分,时间水印上记录的时间即为拍摄时间。由于时间会随时变化,时间水印在每一秒甚至每一毫秒均可以变化,但是其它水印信息可以不需变化的这么频繁,例如,摄影人的姓名或者编号,只需要在开始一段新拍照和录像时,录入需要的信息,以确定该段拍照和录像为录入信息的人所完成。\n[0052] 本发明还提供了一种给视频添加水印的系统。如3示出了本发明的给视频添加水印的系统的一较佳实施例的逻辑结构框图。如图3所示,该系统包括视频采集模块100、存储模块200、中央数据处理模块300、设置模块400、执行模块500,中央数据处理模块300分别与所述视频采集模块100、存储模块200、设置模块400、执行模块500连接,本发明的给视频添加水印的系统使用了上述给视频添加水印的方法,其中,\n[0053] 所述视频采集模块100用于采集图像信息。\n[0054] 所述设置模块400用于接收预设信息以供所述中央数据处理模块100调用,所述预设信息包括水印在所述当前帧图像上待添加的位置,例如用水印信息在当前帧图像上的起始位置为(startX,startY)。\n[0055] 所述中央数据处理模块100用于获取当前帧图像的数据起始地址和获取所述当前帧图像的宽度(width)和高度(height),并根据当前帧图像的数据起始地址、当前帧图像的宽度和高度以及水印在当前帧图像上待添加的位置得到水印的待存储数据地址。以当前帧图像的采样数据格式为YUV4:1:1为例(其它采样格式如YUV4:2:0、YUV4:2:2和YUV4:4:4得到待存储数据地址方式基本相同),将水印的待存储数据地址设定为(ppY,ppU,ppV),则,[0056] ppY=pStart+width*startY+startX;\n[0057] ppU=pStart+width*height+startX+startY*width/2;\n[0058] ppV=ppU+1。\n[0059] 所述执行模块500用于获取水印的点阵信息,并根据所述水印的点阵信息更改所述待存储数据地址内的视频数据。水印为字符串,例如2013-12-2711:22:33,水印在图像上需要以点阵的形式显示,因此需要所述执行模块500将水印字符串映射为点阵信息,由于上述视频数据一般采用YUV格式,点阵信息的常规格式为RGB格式,当两者格式不统一时需要做格式转化,具体为,\n[0060] Y=0.299*R+0.587*G+0.114*B;\n[0061] U=-0.1687*R-0.3313*G+0.5*B+128;\n[0062] V=0.5*R-0.4187*G-0.0813*B+128。\n[0063] 所述执行模块500随后根据所述水印的点阵信息更改所述待存储数据地址内的视频数据,最优选为按照点阵顺序逐个更改。前述中水印信息在当前帧图像上的起始位置为(startX,startY),该点图像信息为(Y,U,V)对应的待存储数据地址为(ppY,ppU,ppV),在视频数据中存储数据地址(ppY,ppU,ppV)的数据全部更改为该点的图像信息(Y,U,V),然后转入下一点(startX’,startY’);(startX’,startY’)的图像信息为(Y’,U’,V’)对应的待存储数据地址为(ppY’,ppU’,ppV’),在视频数据中存储数据地址(ppY’,ppU’,ppV’)的数据全部更改为该点的图像信息(Y’,U’,V’),然后转入下一点(startX’’,startY’’)。按照点阵顺序逐个更改,直至全部更改完毕为止。;\n[0064] 所述存储模块200用于存储视频数据。\n[0065] 优选的,中央数据处理模块300从视频采集模块100的硬件抽象层的数据流缓冲队列中获取当前帧图像的数据起始地址。所述设置模块400的预设信息包括水印字符串的格式和每个字符的字体、大小、颜色。
法律信息
- 2017-11-24
- 2017-01-18
著录事项变更
申请人由深圳市掌网立体时代视讯技术有限公司变更为深圳市掌网科技股份有限公司
地址由518054 广东省深圳市南山区南海大道粤海路(深圳动漫城)7栋3楼变更为518054 广东省深圳市南山区高新区中区科研路9号比克科技大厦1501-B室
- 2014-06-25
实质审查的生效
IPC(主分类): H04N 21/8358
专利申请号: 201410064837.2
申请日: 2014.02.25
- 2014-05-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-09-10
|
2008-03-25
| | |
2
| |
2008-08-27
|
2008-04-02
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |