CN112004148B - 视频处理方法、装置、计算机设备及存储介质 - Google Patents
视频处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112004148B CN112004148B CN202010910582.2A CN202010910582A CN112004148B CN 112004148 B CN112004148 B CN 112004148B CN 202010910582 A CN202010910582 A CN 202010910582A CN 112004148 B CN112004148 B CN 112004148B
- Authority
- CN
- China
- Prior art keywords
- video
- pixel value
- image
- range
- binary data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 38
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000008859 change Effects 0.000 claims abstract description 53
- 238000006243 chemical reaction Methods 0.000 claims abstract description 21
- 238000009826 distribution Methods 0.000 claims description 41
- 238000000605 extraction Methods 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 29
- 230000002452 interceptive effect Effects 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 51
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010422 painting Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/467—Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8358—Generation of protective data, e.g. certificates involving watermark
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种视频处理方法、装置、计算机设备及存储介质,属于图像处理技术领域。所述方法包括:响应于对第一视频的水印添加指令,获取水印信息,对水印信息中的至少一个字符进行二进制转换,得到字符对应的二进制数据;基于二进制数据,对第一视频中第一图像的像素值进行调整,其中,调整后的第一图像的像素值对应的频数变化趋势与二进制数据相对应;基于调整后的第一图像,生成添加水印信息后的第二视频。本申请以像素值对应的频数变化趋势来对水印信息进行表示,在视频遭到攻击后,频数变化趋势不易被破坏,仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
Description
技术领域
本申请涉及图像处理技术领域,特别涉及一种视频处理方法、装置、计算机设备及存储介质。
背景技术
数字水印技术是版权保护的一种有效方法,能够用来对视频进行版权保护,比如通过水印技术对一些游戏视频进行保护。通过数字水印技术,能够将视频的版权信息作为数字水印,嵌入到该视频中。嵌入到视频中的数字水印能够对该视频的版权归属方进行标识,并且,数字水印隐藏在视频中,不易被探知和察觉。通过与在视频中嵌入数字水印相对应的方式,能够从视频中提取出数字水印,来证明该视频的版权归属方,从而实现版权保护。
嵌入数字水印的视频在传播过程中可能会遭到缩放、旋转、平移、扭曲、压缩等攻击,以破坏视频和数字水印的同步性。虽然遭到攻击的视频中仍存在数字水印,但数字水印已错位,从遭到攻击的视频中提取出来的数字水印会存在误差,不够准确。数字水印不能有效抵抗攻击,鲁棒性较弱。
发明内容
本申请实施例提供了一种视频处理方法、装置、计算机设备及存储介质,能够在添加水印信息后的视频遭到攻击后,准确的从视频中提取出水印信息,使得水印信息能够有效抵抗攻击,增强了鲁棒性。所述技术方案如下:
一方面,提供了一种视频处理方法,所述方法包括:
响应于对第一视频的水印添加指令,获取水印信息,对所述水印信息中的至少一个字符进行二进制转换,得到所述字符对应的二进制数据;
基于所述二进制数据,对所述第一视频中第一图像的像素值进行调整,其中,调整后的所述第一图像的像素值对应的频数变化趋势与所述二进制数据相对应;
基于调整后的第一图像,生成添加所述水印信息后的第二视频。
在一种可选的实现方式中,所述基于所述二进制数据,对所述第一视频中第一图像的像素值进行调整,包括:
基于所述第一图像,提取目标颜色通道的单通道图像;
基于所述二进制数据,对所述单通道图像的像素值进行调整。
在另一种可选的实现方式中,所述根据所述第一图像的像素值分布和所述二进制数据的位数,确定多个目标宽度的像素值范围,包括:
根据所述第一图像的像素值分布,确定所述第一图像的像素值的平均值;
以所述平均值为中心,分别从所述平均值两侧确定所述目标宽度的像素值范围,得到多个像素值范围,所述多个像素值范围的数量与所述二进制数据的位数相同。
在另一种可选的实现方式中,所述根据所述第一图像的像素值分布和所述二进制数据的位数,确定多个目标宽度的像素值范围之后,所述方法还包括:
响应于所确定的像素值范围的边界值超出像素值参考范围,将所述第一图像添加到所述第二视频中。
一方面,提供了一种视频处理方法,所述方法包括:
响应于水印提取指令,获取已添加水印信息的第三视频;
基于所述第三视频中第二图像的像素值对应的频数变化趋势,确定所述第二图像对应的二进制数据,所述第二图像的像素值对应的频数变化趋势与所述第二图像对应的二进制数据相对应;
基于所述二进制数据,确定所述第三视频的水印信息。
在一种可选的实现方式中,所述获取所述第二图像的直方图,包括:
基于所述第二图像,提取目标颜色通道的单通道图像;
对所述单通道图像中各个像素值的频数进行统计,得到所述第二图像的直方图。
在另一种可选的实现方式中,所述根据所述第二图像的像素值分布,确定多个像素值范围,包括:
根据所述第二图像的像素值分布,确定所述多个像素值范围的最小边界;
以所述最小边界为起点,确定多个目标宽度的像素值范围。
在另一种可选的实现方式中,所述根据所述第二图像的像素值分布,确定所述多个像素值范围的最小边界,包括:
根据所述第二图像的像素值分布,确定所述第二图像的像素值的平均值;
基于所述平均值、所述目标宽度以及所述二进制数据的位数,确定范围划分的最小参考边界;
基于所述最小参考边界和搜索宽度,确定所述最小边界对应的搜索范围;
将所述搜索范围内的多个数值分别作为所述最小边界。
一方面,提供了一种视频处理装置,所述装置包括:
水印信息获取模块,用于响应于对第一视频的水印添加指令,获取水印信息;
二进制转换模块,用于对所述水印信息中的至少一个字符进行二进制转换,得到所述字符对应的二进制数据;
像素调整模块,用于基于所述二进制数据,对所述第一视频中第一图像的像素值进行调整,其中,调整后的所述第一图像的像素值对应的频数变化趋势与所述二进制数据相对应;
视频生成模块,用于基于调整后的第一图像,生成添加所述水印信息后的第二视频。
在一种可选的实现方式中,所述像素调整模块,包括:
像素范围获取单元,用于获取所述二进制数据中的数值对应的像素值范围;
像素调整单元,用于根据所述数值,对所述第一图像中的目标像素点的像素值进行调整,所述目标像素点的原像素值位于所述数值对应的像素值范围内。
在另一种可选的实现方式中,所述数值对应的像素值范围包括第一子范围和第二子范围,所述第一子范围内的像素值大于所述第二子范围内的像素值;
所述像素调整单元,用于:
响应于所述数值为1,将所述第一图像中的第一目标像素点的像素值减少第一数值,所述第一目标像素点的原像素值位于所述第一子范围内,所述第一数值为所述第一子范围的宽度;
响应于所述数值为0,将所述第一图像中的第二目标像素点的像素值增加第二数值,所述第二目标像素点的原像素值位于所述第二子范围内,所述第二数值为所述第二子范围的宽度。
在另一种可选的实现方式中,所述像素调整模块,用于:
基于所述第一图像,提取目标颜色通道的单通道图像;
基于所述二进制数据,对所述单通道图像的像素值进行调整。
在另一种可选的实现方式中,所述像素范围获取单元,包括:
第一确定单元,用于根据所述第一图像的像素值分布和所述二进制数据的位数,确定多个目标宽度的像素值范围;
第二确定单元,用于根据所述二进制数据中的数值在所述二进制数据中的位置,确定所述数值对应的像素值范围。
在另一种可选的实现方式中,所述第一确定单元,用于:
根据所述第一图像的像素值分布,确定所述第一图像的像素值的平均值;
以所述平均值为中心,分别从所述平均值两侧确定所述目标宽度的像素值范围,得到多个像素值范围,所述多个像素值范围的数量与所述二进制数据的位数相同。
在另一种可选的实现方式中,所述视频生成模块,还用于:
响应于所确定的像素值范围的边界值超出像素值参考范围,将所述第一图像添加到所述第二视频中。
在另一种可选的实现方式中,所述二进制转换模块,包括:
编码转换单元,用于将所述水印信息中的字符转换为二进制的编码数据;
位置转换单元,用于根据所述字符在所述水印信息中的位置,确定所述字符对应的二进制的位置数据;
二进制生成单元,用于根据所述编码数据和所述位置数据,生成所述字符对应的二进制数据。
在另一种可选的实现方式中,所述二进制生成单元,用于:
根据所述编码数据和所述位置数据所包括的1的个数,确定校验位数据;
将所述编码数据、所述位置数据和所述校验位数据组成所述字符对应的二进制数据。
在另一种可选的实现方式中,所述装置还包括:
显示模块,用于显示水印添加界面,所述水印添加界面包括视频选择控件和水印添加控件;
第一视频获取模块,用于响应于对所述视频选择控件的交互操作,获取第一视频;
指令生成模块,用于响应于对所述水印添加控件的交互操作,生成对所述第一视频的水印添加指令。
一方面,提供了一种视频处理装置,所述装置包括:
第二视频获取模块,用于响应于水印提取指令,获取已添加水印信息的第三视频;
二进制数据确定模块,用于基于所述第三视频中第二图像的像素值对应的频数变化趋势,确定所述第二图像对应的二进制数据,所述第二图像的像素值对应的频数变化趋势与所述第二图像对应的二进制数据相对应;
水印信息确定模块,用于基于所述二进制数据,确定所述第三视频的水印信息。
在一种可选的实现方式中,所述二进制数据确定模块,包括:
第三确定单元,用于根据所述第二图像的像素值分布,确定多个像素值范围;
第四确定单元,用于根据所述像素值范围中像素值对应的频数变化趋势,确定所述像素值范围对应的数值;
二进制数据确定单元,用于将所述多个像素值范围对应的数值组成所述二进制数据。
在另一种可选的实现方式中,所述像素值范围包括第一子范围和第二子范围,所述第一子范围内的像素值大于所述第二子范围内的像素值;所述第四确定单元,用于:
响应于所述第二子范围中像素值的频数大于所述第一子范围中像素值的频数,确定所述像素值范围对应的数值为1;
响应于所述第二子范围中像素值的频数小于或等于所述第一子范围中像素值的频数,确定所述像素值范围对应的数值为0。
在另一种可选的实现方式中,所述装置还包括:
直方图获取模块,用于获取所述第二图像的直方图,所述直方图用于表示所述第二图像中各个像素值的频数分布;
趋势确定模块,用于根据所述直方图,确定所述像素值范围中像素值对应的频数变化趋势。
在另一种可选的实现方式中,所述直方图获取模块,用于:
基于所述第二图像,提取目标颜色通道的单通道图像;
对所述单通道图像中各个像素值的频数进行统计,得到所述第二图像的直方图。
在另一种可选的实现方式中,所述第三确定单元,包括:
边界确定子单元,用于根据所述第二图像的像素值分布,确定所述多个像素值范围的最小边界;
范围确定子单元,用于以所述最小边界为起点,确定多个目标宽度的像素值范围。
在另一种可选的实现方式中,所述边界确定子单元,用于:
根据所述第二图像的像素值分布,确定所述第二图像的像素值的平均值;
基于所述平均值、所述目标宽度以及所述二进制数据的位数,确定范围划分的最小参考边界;
基于所述最小参考边界和搜索宽度,确定所述最小边界对应的搜索范围;
将所述搜索范围内的多个数值分别作为所述最小边界。
在另一种可选的实现方式中,所述水印信息确定模块,用于:
基于所述二进制数据,确定所述二进制数据对应的字符以及所述字符在所述水印信息中的位置;
从基于多个第二图像所确定的同一位置上的多个字符中,确定数量最多的一种字符,作为所述位置上的目标字符;
由所述水印信息的多个位置上的目标字符组成所述水印信息。
一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一可选的实现方式所述的视频处理方法。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一可选的实现方式所述的视频处理方法。
一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述任一可选的实现方式所述的视频处理方法。
本申请实施例提供的技术方案,通过将水印信息中的字符转换为由0和1表示的二进制数据,基于二进制数据取值为0或1的情况,对视频中图像的像素值进行调整,使调整后的图像的像素值对应的频数变化表现为0或1相对应的趋势,从而以像素值对应的频数变化趋势来对水印信息进行表示,将水印信息嵌入到视频的图像中。在视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种视频处理方法的流程图;
图3是本申请实施例提供的一种视频处理方法的流程图;
图4是本申请实施例提供的一种视频处理方法的流程图;
图5是本申请实施例提供的一种水印添加界面的示意图;
图6是本申请实施例提供的一种水印添加界面的示意图;
图7是本申请实施例提供的一种水印添加过程的示意图;
图8是本申请实施例提供的一种视频处理方法的流程图;
图9是本申请实施例提供的一种水印提取过程的示意图;
图10是本申请实施例提供的一种视频处理装置的框图;
图11是本申请实施例提供的一种视频处理装置的框图;
图12是本申请实施例提供的一种终端的框图;
图13是本申请实施例提供的一种服务器的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本申请中的“多个”指两个或两个以上。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
为了方便理解,下面对本申请实施例中涉及的名词进行解释说明。
水印:水印也称为数字水印(Digital Watermark),是一种应用计算机算法嵌入载体文件的保护信息。数字水印是保护信息安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。数字水印具有隐蔽性和鲁棒性。以载体文件为视频为例,隐蔽性是指数字水印嵌入到视频中之后,不易被感知和察觉,不影响视频的观感。鲁棒性是指在视频经历无意或有意的信号处理过程后,仍能从视频中准确提取出数字水印。可能的信号处理过程包括尺寸变化、压缩编码、平移、裁剪、扭曲、噪声、涂画等。
视频盲水印:按水印的提取过程将数字水印划分为盲水印和非盲水印。非盲水印需要借助原始的视频进行水印提取。盲水印不需要借助原始的视频,直接基于添加水印后的视频即可提取出水印。
直方图:以[0,255]为区间,统计图像中各个像素值的频数,以像素值为横坐标,频数为纵坐标,得到的统计图即为直方图。其中,任一像素值的频数表示图像中像素值为该像素值的像素点的数量。
几何攻击:对已添加水印的视频进行尺寸变化、裁剪、扭曲等影响到视频几何形状的修改。
JPEG(Joint Photographic Experts Group,联合图像专家组)压缩攻击:JPEG是一种文件压缩格式,具有极高压缩率且能保持很高的图像质量的特点。对已添加水印的视频,采用JPEG格式压缩保存后,如果依然能够提取出大部分水印信息,则表示水印信息能够抵抗JPEG压缩攻击。
本申请涉及的视频处理方法是一种视频盲水印方法,具体通过如下实施例进行说明。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101。
可选地,终端101是台式计算机、笔记本电脑、平板电脑或者智能手机等,但并不局限于此。终端101上设有水印管理应用,水印管理应用至少提供有水印添加功能,用户能够通过终端101上的水印管理应用在视频中添加水印。可选地,水印管理应用还提供有水印提取功能,用户能够通过终端101上的水印管理应用从已添加水印的视频中提取出水印。
在一种可选的实现方式中,水印的添加和提取由终端101执行,以水印添加为例,终端101响应于水印添加指令,获取需要添加水印的视频;基于需要添加水印的视频,在终端101本地执行水印添加的过程。
在另一种可选的实现方式中,水印的添加和提取由终端101指示服务器102执行。该实施环境还包括服务器102。以水印添加为例,终端101响应于水印添加指令,获取需要添加水印的视频;向服务器102发送水印添加指令以及需要添加水印的视频;服务器102基于接收到的水印添加指令以及需要添加水印的视频,在服务器102上执行水印添加的过程。
可选地,终端101以及服务器102通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。可选地,服务器102是独立的物理服务器;或者,服务器102是多个物理服务器构成的服务器集群或者分布式***;或者服务器102是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选地,本申请实施例提供的技术方案由终端或者服务器作为执行主体来实施;或者,本申请实施例提供的技术方案通过终端和服务器之间的交互来实施,本申请对此不加以限定。在本申请实施例中,以技术方案的执行主体是终端为例进行说明。
图2是本申请实施例提供的一种视频处理方法的流程图。参见图2,本申请实施例以在视频中添加水印信息为例进行说明,该实施例包括:
201、终端响应于对第一视频的水印添加指令,获取水印信息,对水印信息中的至少一个字符进行二进制转换,得到字符对应的二进制数据。
水印添加指令用于指示在第一视频中添加水印信息。水印信息用于标识第一视频的版权归属方,可选地,水印信息为用于标识第一视频的版权归属方的字符串。
水印信息包括至少一个字符,终端对水印信息中的每个字符进行二进制转换,得到每个字符对应的二进制数据。一个二进制数据用于表示一个字符,一个二进制数据包括多个数值,二进制数据中的数值为0或1。例如,水印信息包括的一个字符为“a”,该字符对应的二进制数据为“000011100001”;水印信息包括的另一个字符为“b”,该字符对应的二进制数据为“000101100010”。
202、终端基于二进制数据,对第一视频中第一图像的像素值进行调整,其中,调整后的第一图像的像素值对应的频数变化趋势与二进制数据相对应。
第一图像为第一视频中的一帧图像。像素值对应的频数为第一图像中像素值为该像素值的像素点的数量。例如,第一图像中像素值为100的像素点有10个,则像素值100对应的频数为10。
第一图像中各个像素值对应的频数不同,按照像素值从小到大的顺序,形成像素值对应的频数变化趋势。终端基于二进制数据中的数值0或1,对第一图像的像素值进行调整,以使调整后的第一图像的像素值对应的频数变化趋势与二进制数据相对应。例如,若二进制数据中的数值为1,则以一段下降的频数变化趋势来表示数值1;若二进制数据中的数值为0,则以一段上升的频数变化趋势来表示数值0。
可选地,终端基于一个字符对应的二进制数据,对一个第一图像进行调整,以将水印信息中的一个字符嵌入到一帧图像中。相应的,第一视频中的多帧图像分别嵌入水印信息中的一个字符。或者,终端基于多个字符对应的二进制数据,对一个第一图像进行调整,以将水印信息中的多个字符嵌入到一帧图像中。相应的,第一视频中的多帧图像分别嵌入水印信息中的多个字符。
需要说明的是,本申请实施例以终端对视频中的一帧图像进行处理为例进行说明。终端在添加水印的过程中,还对视频中的其他帧的图像进行处理,以使水印信息嵌入到多帧图像中。终端对视频中的其他帧的图像进行处理的过程与上述终端对一帧图像进行处理的过程同理。
203、终端基于调整后的第一图像,生成添加水印信息后的第二视频。
终端基于水印信息对应的至少一个二进制数据,对第一视频中的多个第一图像进行了调整。终端按照图像在第一视频的帧序列中的位置,将调整后的多个第一图像以及未进行调整的多个其他图像重新组成帧序列,编码成添加水印信息后的第二视频。
本申请实施例提供的技术方案,通过将水印信息中的字符转换为由0和1表示的二进制数据,基于二进制数据取值为0或1的情况,对视频中图像的像素值进行调整,使调整后的图像的像素值对应的频数变化表现为0或1相对应的趋势,从而以像素值对应的频数变化趋势来对水印信息进行表示,将水印信息嵌入到视频的图像中。在视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
图3是本申请实施例提供的一种视频处理方法的流程图。参见图3,本申请实施例以从第三视频中提取出水印信息为例进行说明,水印信息的提取过程是上述水印信息的添加过程的逆过程,该实施例包括:
301、终端响应于水印提取指令,获取已添加水印信息的第三视频。
水印提取指令用于指示对已添加水印信息的第三视频进行水印提取。终端基于水印提取指令,获取水印提取指令所指示的第三视频。
302、终端基于第三视频中第二图像的像素值对应的频数变化趋势,确定第二图像对应的二进制数据,第二图像的像素值对应的频数变化趋势与第二图像对应的二进制数据相对应。
可选地,第二图像为第三视频中的任一帧图像;或者,第二图像为第三视频中已嵌入水印信息的图像。第二图像中各个像素值对应的频数不同,按照像素值从小到大的顺序,形成像素值对应的频数变化趋势。终端基于像素值对应的频数变化趋势,确定第二图像对应的二进制数据。例如,若一段频数变化趋势为下降,则该频数变化趋势对应的二进制数据中的数值为1;若一段频数变化趋势为上升,则该频数变化趋势对应的二进制数据中的数值为0。
需要说明的是,第三视频中的多个第二图像中嵌入有水印信息中的至少一个字符,则终端分别基于每个第二图像,确定出至少一个用于表示水印信息中字符的二进制数据,从而基于多个第二图像,确定出多个二进制数据。其中,每个二进制数据用于表示水印信息中的一个字符。
303、终端基于二进制数据,确定第三视频的水印信息。
终端将每个二进制数据转换为一个字符,将多个二进制数据转换成的字符组成第三视频的水印信息。
本申请实施例提供的技术方案,以视频中图像的像素值对应的频数变化趋势来对水印信息中字符对应的二进制数据进行表示,从而基于视频中图像的像素值对应的频数变化趋势,来确定视频中嵌入的水印信息。在添加水印信息后的视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
图4是本申请实施例提供的一种视频处理方法的流程图。参见图4,在本申请实施例中,以在视频中添加水印信息为例进行说明,该实施例包括:
401、终端显示水印添加界面,该水印添加界面包括视频选择控件和水印添加控件。
可选地,终端上设有水印管理应用,终端基于该水印管理应用,显示水印添加界面。该水印添加界面用于提供对视频的水印添加功能。其中,水印添加界面中的视频选择控件用于指示选择需要添加水印的视频;水印添加控件用于指示开始在所选择的视频中添加水印。
图5是本申请实施例提供的一种水印添加界面的示意图,参见图5,该水印添加界面包括视频选择控件501和水印添加控件502。可选地,水印添加界面还包括附加属性编辑区503。附加属性编辑区503用于编辑所选择的视频的附加属性信息。例如,附加属性信息包括视频名称、视频集数、视频的版权归属方、视频用途等。附加属性编辑区503包括视频名称的输入控件、视频集数的选择控件、视频的版权归属方的选择控件、视频用途的选择控件。
可选地,水印添加界面还包括位置选择控件504,位置选择控件504用于支持用户自定义添加水印信息后的视频的存储位置。
可选地,水印添加界面还包括明水印设置控件505以及内容输入控件506。明水印设置控件505用于设置是否在视频中添加明水印。内容输入控件506用于设置明水印的内容。其中,明水印为显示在视频中肉眼可见的水印。可选地,若通过明水印设置控件505设置在视频中添加明水印,则将明水印显示于视频的左上角;若通过明水印设置控件505设置不在视频中添加明水印,则视频中不显示明水印。可选地,终端还支持用户设置明水印的具体内容,终端在明水印设置控件505用于指示在视频中添加明水印条件下,响应于对内容输入控件506的交互操作,获取被输入的文字内容;将被输入的文字内容作为明水印的内容。
402、终端响应于对视频选择控件的交互操作,获取第一视频。
第一视频为需要添加水印信息的视频。终端支持对一个第一视频进行处理。用户能够通过在水印添加界面中进行界面交互,选择一个视频进行处理,相应的,终端响应于对视频选择控件的交互操作,获取一个第一视频。可选地,终端还支持同时对多个第一视频进行批量处理,用户能够通过在水印添加界面中进行界面交互,批量选择多个视频进行处理,相应的,终端响应于对视频选择控件的交互操作,获取多个第一视频。可选地,视频选择控件包括视频选择按钮和视频拖拽区域中的至少一个。
在一种可选的实现方式中,终端响应于对视频选择按钮的交互操作,显示文件选择窗口;响应于对文件选择窗口中的视频的选中操作,将被选中的视频作为需要添加水印信息的第一视频。
在另一种可选的实现方式中,终端将拖拽到视频拖拽区域中的视频作为需要添加水印信息的第一视频。
图6是本申请实施例提供的一种水印添加界面的示意图,参见图6,终端将被选择的至少一个第一视频显示在水印添加界面中。可选地,终端通过在水印添加界面中显示第一视频的封面来表示第一视频。可选地,终端还显示有第一视频对应的删除控件507。终端响应于对删除控件507的交互操作,不再将删除控件507对应的视频作为需要添加水印信息的第一视频,以及,从水印添加界面中删除该删除控件507对应的视频封面。可选地,显示第一视频后的水印添加界面还包括视频选择控件,以便于用户继续选择需要添加水印信息的视频。
可选地,终端支持用户在附加属性编辑区503对视频的附加属性信息进行编辑。例如,用户选择对“一二三”电视剧的第1集至第10集的视频添加水印信息,在附加属性编辑区中输入视频名称为“一二三”;选择视频集数为1至10集;选择视频的版权归属方为“A视频平台”;视频用途为宣传使用。可选地,终端通过位置选择控件504支持用户自定义添加水印信息后的视频的存储位置,例如,用户通过位置选择控件504选择的存储位置为“D\一二三”。可选地,终端通过明水印设置控件505以及内容输入控件506支持在视频中添加明水印,例如,用户通过明水印设置控件505设置在视频中添加明水印,并通过内容输入控件506设置明水印的内容为“A视频”。
403、终端响应于对水印添加控件的交互操作,生成对第一视频的水印添加指令。
水印添加控件用于指示开始在所选择的视频中添加水印。终端响应于对水印添加控件的交互操作,生成水印添加指令,以通过水印添加指令指示终端开始在第一视频中添加水印信息。例如,继续参见图6,终端响应于对水印添加控件502的交互操作,生成水印添加指令。
在一种可选的实现方式中,终端响应于对水印添加控件的交互操作之前,获取到一个第一视频,则终端生成对该第一视频的水印添加指令。
在另一种可选的实现方式中,终端响应于对水印添加控件的交互操作之前,获取到多个第一视频,则终端生成对该多个第一视频的水印添加指令。
404、终端响应于对第一视频的水印添加指令,获取水印信息。
水印信息用于标识第一视频的版权归属方,可选地,水印信息为用于标识第一视频的版权归属方的字符串。本申请实施例通过将标识版权的水印信息隐蔽的加入到视频中,使得标识版权的水印信息能够从加入水印信息后的视频中提取出来,从而确定该视频所来源的版权归属方,实现版权保护。
在一种可选的实现方式中,水印添加指令用于指示对一个第一视频添加水印信息,则终端为该第一视频生成一个水印信息。可选地,上述步骤404包括:终端响应于对第一视频的水印添加指令,获取第一视频的附加属性信息;基于第一视频的附加属性信息,生成第一视频对应的水印信息。例如,终端基于第一视频的视频名称和视频的版权归属方等附加属性信息,通过消息摘要算法,生成第一视频对应的水印信息。
在另一种可选的实现方式中,水印添加指令用于指示对多个第一视频添加水印信息,终端为多个第一视频生成相同的水印信息。相应的,上述步骤404包括:终端响应于水印添加指令,获取多个第一视频相同的附加属性信息;基于多个第一视频相同的附加属性信息,生成第一视频对应的水印信息。例如,多个第一视频的相同的附加属性信息为视频的版权归属方,则终端基于视频的版权归属方,生成水印信息。
在另一种可选的实现方式中,水印添加指令用于指示对多个第一视频添加水印信息,终端分别为每个第一视频生成一个水印信息。终端为每个第一视频生成一个水印信息的过程与上述终端为一个第一视频生成一个水印信息的过程同理,在此不再赘述。
需要说明的一点是,可选地,终端不根据第一视频的附加属性信息,生成水印信息。终端获取版权归属方与水印信息的对应关系,从版权归属方与水印信息的对应关系中,获取第一视频的版权归属方对应的水印信息。可选地,终端本地存储有版权归属方与水印信息的对应关系,终端从本地存储的对应关系中,获取第一视频的版权归属方对应的水印信息;或者,版权归属方与水印信息的对应关系存储在服务器中,终端通过向服务器发送水印信息获取请求,获取第一视频的版权归属方对应的水印信息。
需要说明的另一点是,终端能够通过上述任一种可选的实现方式获取第一视频对应的水印信息。可选地,终端还能够通过其他获取水印信息的方式获取第一视频对应的水印信息,在本申请实施例中,对水印信息的内容以及获取水印信息的方式不加以限定。
405、终端对水印信息中的至少一个字符进行二进制转换,得到字符对应的二进制数据。
需要说明的是,若水印信息包括一个字符,则终端得到该字符对应的二进制数据,该二进制数据用于对该字符进行表示。若水印信息包括多个字符,则终端对多个字符中的每个字符进行二进制转换,得到每个字符对应的二进制数据,其中,每个字符对应的二进制数据用于表示该字符以及该字符在水印信息中的位置。在本申请实施例中,以水印信息包括多个字符为例进行说明。
终端对多个字符中的每个字符进行二进制转换,得到每个字符对应的二进制数据的过程同理。以下以终端对一个字符进行二进制转换,得到该字符对应的二进制数据为例进行说明。终端对水印信息中的字符进行二进制转换,得到该字符对应的二进制数据的步骤包括以下步骤4051至步骤4053。
4051、终端将水印信息中的字符转换为二进制的编码数据。
可选地,终端按照字符对应的编码格式,将该字符转化为二进制的编码数据。若字符为英文字符或者数字字符,该字符对应的编码格式为ASCII(American Standard Codefor Information Interchange,美国信息交换标准代码)编码。终端获取该字符对应的ASCII码值,将该字符的ASCII码值转换为二进制数据。例如,该字符为“a”,“a”对应的ASCII码值为“97”,转换为二进制的编码为“1100001”。若字符为中文字符,则按照中文字符对应的编码格式,将字符转换为二进制的编码数据。例如,按照UTF-8(8-bitUnicodeTransformation Format,针对Unicode(统一的字符编码标准)的可变长度字符编码)或者GB2312(信息交换用汉字编码字符集),转换为二进制的编码数据。在本申请实施例中,以水印信息中的字符为英文字符或者数字字符为例进行说明。
4052、终端根据字符在水印信息中的位置,确定字符对应的二进制的位置数据。
多个字符在水印信息中按照位置顺序进行排列。例如,水印信息为“abcd1”,则“a”在水印信息中的第1个位置,“b”在水印信息中的第2个位置,以此类推。每个字符的二进制的位置数据用于表示该字符在水印信息中的位置。例如,“a”对应的二进制的位置数据为“0000”,“b”对应的二进制的位置数据为“0001”,“c”对应的二进制的位置数据为“0010”,“d”对应的二进制的位置数据为“0011”,“1”对应的二进制的位置数据为“0100”。
需要说明的一点是,水印信息包括多个字符,表现为字符串的形式。水印信息对应的位置数据的位数与水印信息的最大长度相关,水印信息的最大长度为水印信息所包括的字符的最大数量。由于n位的二进制数据能够表示2n个位置,终端能够根据水印信息的最大长度,确定位置数据的位数,其中,n用于表示二进制数据的位数,n为正整数。相应的,终端根据水印信息的最大长度,确定位置数据的位数的步骤包括:终端确定目标数量的2的乘积;响应于目标数量的2的乘积大于或等于水印信息的最大长度,将目标数量确定为位置数据的位数。例如,若水印信息的最大长度为16,则位置数据的位数为4;若水印信息的最大长度为128,则位置数据的位数为7。
4053、终端根据编码数据和位置数据,生成字符对应的二进制数据。
在一种可选的实现方式中,终端将编码数据和位置数据组成字符对应的二进制数据。例如,水印信息为“abcd1”,则“a”对应的二进制数据为“00001100001”。
本申请实施例提供的技术方案,基于表示字符的编码数据以及表示字符在水印信息中位置的位置数据,生成每个字符对应的二进制数据,从而使得所生成的二进制数据能够代表字符,并且能够代表该字符在水印信息中的位置,从而保证水印提取时,也能够基于多个二进制数据,反向确定出水印信息,提高水印提取的准确性,进而实现有效的版权保护。
在另一种可选的实现方式中,终端在编码数据和位置数据的基础上,得到校验位,将编码数据、位置数据以及校验位组成字符对应的二进制数据。相应的,上述步骤4053包括:终端根据编码数据和位置数据所包括的1的个数,确定校验位数据;终端将编码数据、位置数据和校验位数据组成字符对应的二进制数据。
可选地,终端响应于编码数据和位置数据所包括的1的个数为奇数,将校验位数据确定为1;响应于编码数据和位置数据所包括的1的个数为偶数,将校验位数据确定为0。例如,水印信息为“abcd1”,“a”的编码数据为“1100001”,位置数据为“0000”,“1100001”和“0000”中共包括3个1,则校验位数据为1。可选地,终端按照位置数据、校验位数据和编码数据的顺序生成字符对应的二进制数据,则“a”对应的二进制数据为“000011100001”。
上述技术方案,还基于字符的编码数据和位置数据,生成校验位数据,将编码数据、位置数据和校验位数据三者组成二进制数据。由于校验位数据是表示编码数据和位置数据中1的个数是奇数还是偶数的二进制数,校验位数据针对1的个数是奇数或者偶数的情况,表现为0或者1,因此,加入校验位数据后的二进制数据中1的个数固定为奇数或者固定为偶数。从而在水印提取过程中,能够通过对二进制数据中1的个数的校验,来保证需要进一步处理的二进制数据的合法性,提高水印提取的准确性,进而实现有效的版权保护。
终端得到每个字符对应的二进制数据之后,分别基于一个二进制数据对第一视频中的一个第一图像的像素值进行调整,以在第一视频的一帧图像中嵌入一个字符。需要说明的是,可选地,终端将水印信息中的每个字符分别嵌入到第一视频的一帧图像中;或者,终端将水印信息中的每个字符分别嵌入到第一视频的多帧图像中;或者,终端将水印信息中的多个字符依次循环嵌入到第一视频的每帧图像中。在本申请实施例中,对第一视频中所调整的第一图像的数量和比例,不加以限定。本申请实施例以终端将同一个字符分别嵌入到第一视频的多帧图像中,来保证水印提取的准确性为例进行说明。终端将同一个字符分别嵌入到多帧图像的过程与终端将一个字符嵌入到一帧图像中的过程同理,以下以终端将一个字符嵌入到一帧图像中为例进行说明。
可选地,终端分别基于二进制数据中的每个数值,对每个数值对应的像素值范围内的像素值进行调整。终端通过以下步骤406至步骤407获取二进制数据中的数值对应的像素值范围。
406、终端根据第一图像的像素值分布和二进制数据的位数,确定多个目标宽度的像素值范围。
像素值分布用于表示图像中各个像素点的像素值的分布范围。可选地,终端通过获取第一图像的直方图来表示第一图像的像素值分布。二进制数据由多个数值组成,组成二进制数据的多个数值的数量即为二进制数据的位数。例如,二进制数据为“000011100001”,该二进制数据的位数为12。终端以目标宽度为单位,分别为二进制数据中的多个数值划分多个像素值范围,像素值范围的宽度为目标宽度。例如,目标宽度为6、8、10等数值。例如,目标宽度为6,像素值范围为[84,90)。
在一种可选的实现方式中,终端以第一图像的像素值的平均值为基准,获取多个像素值范围。相应的,上述步骤406通过以下步骤4061至步骤4062实现。
4061、终端根据第一图像的像素值分布,确定第一图像的像素值的平均值。
终端根据第一图像的像素值分布,将第一图像中像素点的像素值的和值与第一图像中像素点的数量相除,得到第一图像的像素值的平均值。
4062、终端以平均值为中心,分别从平均值两侧确定目标宽度的像素值范围,得到多个像素值范围,多个像素值范围的数量与二进制数据的位数相同。
例如,平均值记为avg,目标宽度记为w,二进制数据的位数记为N,则多个像素值范围中的最小边界值为avg-N×w/2,多个像素值范围中的最大边界值为avg+N×w/2。多个像素值范围分别为[avg-N×w/2,avg-N×w/2+w),[avg-N×w/2+w,avg-N×w/2+2×w),[avg-N×w/2+2×w,avg-N×w/2+3×w),以此类推。其中,avg为0至255之间的任一数值;w为大于0的任一数值;N为正整数。
上述技术方案,以第一图像的像素值的平均值为中心,分别从平均值两侧确定出多个目标宽度的像素值范围。由于平均值周围的像素值所覆盖的像素点较多,进而对所覆盖的多个像素点的像素值进行调整,能够使调整后的第一图像的像素值对应的频数变化趋势更加显著,进而在水印提取过程中,基于更加显著的频数变化趋势,进行水印提取,能够提高水印提取的准确性。
需要说明的一点是,可选地,终端以第一图像的最小像素值为基准,从最小像素值的右侧分别确定多个目标宽度的像素值范围;或者,终端以第一图像的最大像素值为基准,从最大像素值的左侧分别确定多个目标宽度的像素值范围;或者,终端以第一图像的任一像素值为基准,从该像素值的两侧,或者从该像素值的一侧分别确定多个目标宽度的像素值范围。在本申请实施例中,对确定多个目标宽度的像素值范围的方式,不加以限定。
需要说明的另一点是,如果基于第一图像的像素值分布所确定的像素值范围的边界值超出像素值的正常取值范围,则不再对该第一图像的像素值进行调整,直接基于未调整的第一图像生成第二视频。相应的,终端在确定多个像素值范围之后,还执行以下步骤:终端响应于所确定的像素值范围的边界值超出像素值参考范围,将第一图像添加到第二视频中。其中,像素值参考范围为[0,255]。若像素值范围的边界值小于0或者大于255,则将第一图像添加到第二视频中。
上述技术方案,超出像素值的正常范围内的像素值不存在,如果仍基于二进制数据对该像素值范围内的像素值进行调整,会导致二进制数据不能有效嵌入到第一图像中,造成水印信息的丢失。因此,在第一图像对应的像素值范围的边界值超出像素值的正常取值范围的情况下,不再对该第一图像进行调整,直接将该第一图像添加到第二视频中,并且,将二进制数据嵌入到重新提取的另一帧图像中,保证所添加的水印信息的完整性,从而提高版权保护的有效性。
需要说明的另一点是,可选地,终端对第一图像的一个单通道图像的像素值进行调整,相应的,终端根据第一图像的一个单通道图像的像素值分布,确定多个目标宽度的像素值范围。相应的,上述第一图像的像素值分布为该第一图像的一个单通道图像的像素值分布。终端根据第一图像的像素值分布和二进制数据的位数,确定多个目标宽度的像素值范围之前,还基于第一图像,提取目标颜色通道的单通道图像;获取该单通道图像的像素值分布。可选地,终端将第一图像转换到目标颜色空间;从转换到目标颜色空间的第一图像中,提取目标颜色通道的单通道图像。例如,终端将第一图像转换到YUV(一种颜色编码方法)颜色空间,从转换到YUV颜色空间的第一图像中提取Y通道图像。
407、终端根据二进制数据中的数值在二进制数据中的位置,确定该数值对应的像素值范围。
二进制数据中的数值对应的像素值范围与该数值在二进制数据中的位置相关。可选地,二进制数据以数组的形式表示,二进制数据中的数值在二进制数据中的位置以代表该数值的元素的下标来表示。例如,数值在二进制数据中的位置表示为第i位,i即为代表该数值的元素的下标,其中,i为非负整数。例如,二进制数据为“000011100001”,则二进制数据表示为数组为a0=0,a1=0,a2=0,a3=0,a4=1,a5=1,以此类推,对应的数值依次为第0位,第1位,第2位,第3位,以此类推。终端根据数值对应的i,确定该数值对应的像素值范围为[avg-N×w/2+i×w,avg-N×w/2+(i+1)×w)。
本申请实施例提供的技术方案,基于第一图像的像素值分布,按照二进制数据中的每个数值在二进制数据中的位置,分别为每个数值确定一个目标宽度的像素值范围,进而分别基于每个数值,对第一图像中属于该数值对应的像素值范围内的像素值进行调整,使二进制数据中的一个数值影响一个像素值范围内的像素值,进而在水印提取过程中,能够分别按照每个像素值范围,确定出二进制数据中的每一位,保证二进制数据能够被正常提取,提高水印提取的准确性。
408、终端根据二进制数据中的数值,对第一图像中的目标像素点的像素值进行调整,目标像素点的原像素值位于该数值对应的像素值范围内。
终端根据二进制数据中的数值,对目标像素点的像素值进行调整,以使调整后的第一图像的像素值对应的频数变化趋势与二进制数据相对应。
在一种可选的实现方式中,终端将二进制数据中一个数值对应的像素值范围划分为两个子范围,使两个子范围内像素值对应的频数互为参考,以两个子范围内像素值对应的频数来表现频数变化趋势,该两个子范围对应的频数变化趋势与二进制数据中的数值相对应。相应的,终端将一个像素值范围划分为第一子范围和第二子范围,且第一子范围内的像素值大于第二子范围内的像素值,上述步骤408包括:终端响应于数值为1,将第一图像中的第一目标像素点的像素值减少第一数值,第一目标像素点的原像素值位于第一子范围内,第一数值为第一子范围的宽度;终端响应于数值为0,将第一图像中的第二目标像素点的像素值增加第二数值,第二目标像素点的原像素值位于第二子范围内,第二数值为第二子范围的宽度。
可选地,第一子范围与第二子范围的宽度相同,为目标宽度的一半。对于二进制数据中的第i位数值,第一子范围为[avg-N×w/2+i×w+w/2,avg-N×w/2+(i+1)×w),第二子范围为[avg-N×w/2+i×w,avg-N×w/2+i×w+w/2)。若第i位数值为1,则将属于[avg-N×w/2+i×w+w/2,avg-N×w/2+(i+1)×w)范围内的像素点的原像素值均减去w/2。若第i位数值为0,则将属于[avg-N×w/2+i×w,avg-N×w/2+i×w+w/2)范围内的像素点的原像素值均加上w/2。
例如,两个子范围的宽度为3,若第一子范围为[90,93),第二子范围为[87,90),相对应的数值为1,则原像素值位于第一子范围内的第一目标像素点的像素值均减少3,第一目标像素点调整后的像素值所属的范围变为第二子范围。第一子范围内像素值的频数减少,第二子范围内像素值的频数增加。第二子范围指向第一子范围方向的像素值对应的频数变化趋势为下降。同理,若二进制数据中的数值为0,则第二子范围指向第一子范围方向的像素值对应的频数变化趋势为上升。
上述技术方案,分别基于二进制数据中的数值为0或者1的两种不同情况,对属于子范围内的像素点的像素值进行调整,使得两个子范围内像素值对应的频数变化趋势与二进制数据中的数值相对应,从而实现以像素值对应的频数变化趋势来表示水印信息的字符对应的二进制数据,使得水印信息嵌入到视频的图像中。即使视频在传输过程中遭到尺寸变化、压缩编码、平移、裁剪、扭曲、噪声、涂画等处理,像素值或者图像特征发生变化,但嵌入水印信息的图像中像素值对应的频数变化趋势仍然存在,仍然能够基于频数变化趋势准确提取出水印信息,从而水印信息能够有效抵抗攻击,增强了鲁棒性。
需要说明的另一点是,可选地,终端通过与步骤406至步骤407同理的过程,直接为二进制数据中的每个数值确定两个像素值范围;通过与步骤408同理的过程,根据二进制数据中的数值,对原像素值位于该数值对应的两个像素值范围内的像素点的像素值进行调整。
需要说明的另一点是,可选地,终端基于二进制数据,对第一图像的目标颜色通道的单通道图像的像素值进行调整。例如,终端基于二进制数据,对第一图像的Y通道图像的像素值进行调整。相应的,上述第一图像中的目标像素点的像素值为第一图像中的目标像素点在该单通道图像上的像素值。
409、终端基于调整后的第一图像,生成添加水印信息后的第二视频。
终端通过上述步骤406至步骤408将水印信息中的每个字符对应的二进制数据分别嵌入到第一视频的多个第一图像中,得到调整后的多个第一图像。在本申请实施例中,以一个字符对应的二进制数据分别嵌入到第一视频的多个第一图像中为例。例如,水印信息包括10个字符,若每个字符嵌入到10帧图像中,则调整后的第一图像的数量为100。
视频由连续的多个图像组成,是一个图像序列。终端对从第一视频中提取出的第一图像处理完成之后,按照第一图像对应的序列位置,将调整后的第一图像添加到图像序列中进行编码,得到添加水印信息后的第二视频。可选地,终端对第一视频中的多个第一图像进行了调整,未对第一视频中的其他图像进行调整,则终端按照多个第一图像以及其他图像中每个图像对应的序列位置,分别将每个图像添加到图像序列中进行编码,得到添加水印信息后的第二视频。
本申请实施例提供的技术方案,通过将水印信息中的字符转换为由0和1表示的二进制数据,基于二进制数据取值为0或1的情况,对视频中图像的像素值进行调整,使调整后的图像的像素值对应的频数变化表现为0或1相对应的趋势,从而以像素值对应的频数变化趋势来对水印信息进行表示,将水印信息嵌入到视频的图像中。在视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
需要说明的一点是,若终端是对第一图像的目标颜色通道的单通道图像进行了调整,则终端基于调整后的单通道图像以及未调整的两个其他单通道图像,进行合并,得到三通道图像;基于调整后的三通道图像,生成第二视频。可选地,若目标颜色通道对应的目标颜色空间与第一图像对应的原始颜色空间相同,则终端将调整后的单通道图像以及未调整的两个其他单通道图像合并为三通道图像。若目标颜色通道对应的目标颜色空间与第一图像对应的原始颜色空间不同,则终端将调整后的单通道图像以及未调整的两个其他单通道图像转换到原始颜色空间;对转换到原始颜色空间的三个单通道图像进行合并,得到三通道图像。
为了使添加水印信息的过程更加清晰,下面结合图7进行说明。参见图7,可选地,水印添加过程包括:701、对于需要添加水印信息的视频,从该视频的源视频文件帧序列中取出一帧图像;702、对该帧图像进行YUV通道分解,得到该帧图像的Y通道图像;703、基于由水印信息转换成的二进制数据,对Y通道图像的像素值进行调整,也即是,调整Y通道图像的像素值,嵌入水印信息(1,0),上述701至703的具体实现过程参见上述步骤404至步骤408;704、将Y通道图像、U通道图像以及V通道图像,进行YUV通道合并,得到合并后的三通道图像;705、将合并后的三通道图像添加到加入水印后的视频文件帧序列中,上述704至705的具体实现过程参见上述步骤409。其中,在调整Y通道图像的像素值之前,对Y通道图像计算直方图,得到的直方图的一部分示意如706所示;对Y通道图像的像素值进行调整之后,调整后的Y通道图像的直方图相应的发生变化,如707所示。比较706和707,若水印信息转换成的二进制数据的数值为1,对Y通道图像进行调整,使得调整后的Y通道图像在一定像素值范围内的直方图趋势表现为下降;若水印信息转换成的二进制数据的数值为0,对Y通道图像进行调整,使得调整后的Y通道图像在一定像素值范围内的直方图趋势表现为上升。
需要说明的另一点是,终端支持同时对多个视频进行批量处理,上述步骤404至步骤409以终端对一个第一视频添加水印信息为例进行说明,终端对多个第一视频中每个第一视频添加水印信息的过程与上述步骤404至步骤409同理,在此不再赘述。
需要说明的另一点是,上述实施例是以在视频的一帧图像中嵌入一个字符为例进行说明的。可选地,终端能够在一帧图像中嵌入多个字符。终端在一帧图像中嵌入多个字符的过程与终端在一帧图像中嵌入一个字符的过程同理。需要说明的是,终端在一帧图像中嵌入一个字符时,确定的多个像素值范围的数量与该字符对应的二进制数据的位数相同。若终端在一帧图像中嵌入多个字符,则需要分别为多个字符中的每个字符确定多个像素值范围,其中每个字符对应的多个像素值范围与每个字符对应的二进制数据的位数相同。例如,终端在一帧图像中嵌入两个字符,且该两个字符对应的二进制数据的位数均为12,则终端分别为每个字符确定12个像素值范围,共24个像素值范围。上述24个像素值范围不存在交叉重叠。
需要说明的另一点是,终端在一帧图像中能够嵌入的多个字符的数量是有限的。多个字符的最大数量应保证所确定的多个像素值范围在正常的像素值范围内,也即是多个像素值范围应尽可能在[0,255]之内。
图8是本申请实施例提供的一种视频处理方法的流程图。参见图8,在本申请实施例中,以从视频中提取水印信息为例进行说明,从视频中提取水印信息的过程与在视频中添加水印信息的过程相对应,该实施例包括:
801、终端响应于水印提取指令,获取已添加水印信息的第三视频。
可选地,终端显示水印提取界面,该水印提取界面包括视频选择控件和水印提取控件;终端响应于对视频选择控件的交互操作,确定需要进行水印提取的第三视频;响应于对水印提取控件的交互操作,生成水印提取指令,该水印提取指令用于指示对第三视频进行水印提取;终端响应于水印提取指令,获取已添加水印信息的第三视频。
需要说明的是,水印信息包括多个字符,水印信息的多个字符分别嵌入到了第三视频的多帧图像中。可选地,嵌入水印信息的字符的图像携带有水印标记,终端从第三视频中提取携带水印标记的多帧图像,作为水印提取所基于的第二图像;或者,嵌入水印信息的字符的图像未携带有水印标记,终端从第三视频中随机提取多帧图像,作为水印提取所基于的第二图像。需要说明的是,终端从多个第二图像中,分别提取水印信息中的字符的过程与终端基于一个第二图像,提取水印信息中的字符的过程同理,以下以终端基于一个第二图像,提取水印信息中的一个字符的过程为例进行说明。
可选地,终端按照多个像素值范围的划分对第三视频中的图像进行了调整,以使每个像素值范围内的像素值对应的频数变化趋势与字符对应的二进制数据中的数值相对应。相应的,终端确定出多个像素值范围,以基于每个像素值范围内像素值对应的频数变化趋势,确定出二进制数据中的数值。终端通过以下步骤802至步骤803实现根据第二图像的像素值分布,确定多个像素值范围的过程。
802、终端根据第三视频中第二图像的像素值分布,确定多个像素值范围的最小边界。
在本申请实施例中,以终端在水印添加过程中,以图像的像素值的平均值为基准,获取多个像素值范围为例进行说明。相应的,在一种可选的实现方式中,终端根据第二图像的像素值分布,确定第二图像的像素值的平均值;根据该平均值、像素值范围的目标宽度以及用于表示字符的二进制数据的位数,确定多个像素值范围的最小边界。
例如,平均值记为avg,目标宽度记为w,二进制数据的位数记为N,则多个像素值范围中的最小边界为avg-N×w/2,其中,avg为0至255之间的任一数值;w为大于0的任一数值;N为正整数。
在另一种可选的实现方式中,终端将一定范围内的多个数值分别作为多个像素值范围的最小边界。相应的,上述步骤802通过以下步骤8021至步骤8024实现。
8021、终端根据第二图像的像素值分布,确定第二图像的像素值的平均值。
终端根据第二图像的像素值分布,将第二图像中像素点的像素值的和值与第二图像中像素点的数量相除,得到第二图像的像素值的平均值。
8022、终端基于平均值、目标宽度以及第二图像对应的二进制数据的位数,确定范围划分的最小参考边界。
目标宽度为预设的像素值范围的宽度,例如,目标宽度为6、8或者10等数值。二进制数据的位数为用于表示水印信息中字符的二进制数据中所包括的数值的个数。例如,平均值记为avg,目标宽度记为w,二进制数据的位数记为N,终端确定多个像素值范围中的最小参考边界为avg-N×w/2,最小参考边界记为B_low。
8023、终端基于最小参考边界和搜索宽度,确定最小边界对应的搜索范围。
搜索宽度为预设的对于最小边界的搜索宽度。可选地,搜索宽度与目标宽度相关,例如,搜索宽度为目标宽度的2倍或者3倍。若搜索宽度记为2s,则最小边界对应的搜索范围为[B_low-s,B_low+s],其中,s为大于0的任一数值。
8024、终端将搜索范围内的多个数值分别作为最小边界。
终端将搜索范围内的多个数值分别作为最小边界,得到多个最小边界。例如,最小边界记为search_start(搜索起始),则search_start分别为B_low-1,B_low+1,B_low-2,B_low+2,B_low-3,B_low+3,…B_low-s,B_low+s。
上述技术方案,由于视频传播过程中可能会遭到攻击,导致视频中图像的像素值发生变化,进而导致图像的像素值的平均值发生变化。如果仍基于第二图像的像素值的平均值确定多个像素值范围,会导致所确定的多个像素值范围与水印添加过程中真实处理的多个像素值范围产生偏移,影响水印提取的准确性。因此,基于第二图像的像素值的平均值,来将一定范围内的数值确定为多个最小边界;进而基于多个最小边界,分别确定多个像素值范围;分别基于每个最小边界对应的多个像素值范围中像素值的频数变化趋势,来提取水印信息中的字符,直至提取出符合合法条件的字符,从而在视频遭到攻击的情况下,仍然能够准确提取出水印信息,提高了水印提取的准确性。
需要说明的一点是,若终端确定出一个最小边界,基于该最小边界,确定出一个二进制数据。若终端确定出多个最小边界,则终端分别基于每个最小边界,确定出一个二进制数据,得到多个二进制数据。以下步骤802至步骤804以终端基于一个最小边界,确定出一个二进制数据为例进行说明。终端分别基于每个最小边界,确定出一个二进制数据的过程同理。
803、终端以最小边界为起点,确定多个目标宽度的像素值范围。
例如,最小边界记为search_start,目标宽度为w,则多个像素值范围分别为[search_start,search_start+w),[search_start+w,search_start+2w),[search_start+2w,search_start+3w),以此类推。
需要说明的是,多个像素值范围分别对应二进制数据中的一位二进制数值。每个像素值范围与其对应的数值在二进制数据中的位置相关。例如,二进制数据的数值在二进制数据中的位置表示为第i位,则该第i位数值对应的像素值范围表示为[search_start+i×w,search_start+(i+1)×w),其中,i为非负整数。
804、终端根据像素值范围中像素值对应的频数变化趋势,确定该像素值范围对应的二进制数据中的数值。
终端将像素值范围划分为两个子范围来表示频数变化趋势,该两个子范围所表现的频数变化趋势与二进制数据中的数值相对应。相应的,终端将像素值范围划分为第一子范围和第二子范围,第一子范围内的像素值大于第二子范围内的像素值,上述步骤804包括:终端响应于第二子范围中像素值的频数大于第一子范围中像素值的频数,确定像素值范围对应的数值为1;终端响应于第二子范围中像素值的频数小于或等于第一子范围中像素值的频数,确定像素值范围对应的数值为0。
可选地,第一子范围与第二子范围的宽度相同,为目标宽度的一半。对于二进制数据中的第i位数值,第一子范围为[search_start+i×w+w/2,search_start+(i+1)×w),第二子范围为[search_start+i×w,search_start+i×w+w/2)。若[search_start+i×w,search_start+i×w+w/2)中像素值的频数大于[search_start+i×w+w/2,search_start+(i+1)×w)中像素值的频数,则二进制数据中的第i位数值为1;若[search_start+i×w,search_start+i×w+w/2)中像素值的频数小于或等于[search_start+i×w+w/2,search_start+(i+1)×w)中像素值的频数,则二进制数据中的第i位数值为0。
上述技术方案,通过比较两个子范围内的像素值的频数,根据两个子范围内的频数变化趋势,来确定二进制数据中的数值。即使视频在传播过程中遭受攻击,视频中图像的像素值或者图像特征发生变化,像素值对应的频数变化趋势仍会存在,进而基于频数变化趋势,仍然能够准确提取出二进制数据中的数值,进而基于提取出的二进制数据,确定出所添加的水印信息,使得水印信息能够有效抵抗攻击,增强了鲁棒性。
需要说明的一点是,可选地,终端根据像素值范围中像素值对应的频数变化趋势,确定该像素值范围对应的二进制数据中的数值之前,还获取第二图像的直方图,根据直方图,来确定像素值范围中像素值对应的频数变化趋势。其中,直方图用于表示第二图像中各个像素值的频数分布。可选地,终端在水印添加过程中,通过对图像的单通道图像进行调整,以单通道图像对应的频数变化趋势来表示水印信息中字符对应的二进制数据。相应的,在水印提取过程中,终端基于单通道图像的直方图,来确定频数变化趋势。终端获取第二图像的直方图的过程包括:终端基于第二图像,提取目标颜色通道的单通道图像;终端对单通道图像中各个像素值的频数进行统计,得到第二图像的直方图。可选地,终端将第二图像转换到目标颜色空间;从转换到目标颜色空间的第二图像中,提取目标颜色通道的单通道图像。例如,终端将第二图像转换到YUV颜色空间,从转换到YUV颜色空间的第二图像中提取Y通道图像。
为了使从视频的图像中提取二进制数据的过程更加清晰,下面结合图9进行说明,参见图9,可选地,水印提取过程包括:901、对于需要提取水印信息的视频,从该加入水印后的视频文件帧序列中取出一帧图像;902、对该帧图像进行YUV通道分解,得到该帧图像的Y通道图像;903、计算Y通道图像的直方图;904、基于得到的直方图,确定像素值对应的频数变化趋势;基于频数变化趋势,确定二进制数据中的数值。上述901至904的具体实现过程参见上述步骤801至步骤804。其中,若一个像素值范围内两个子范围所表现的频数变化趋势为下降,则该像素值范围对应的数值为1;若一个像素值范围内两个子范围所表现的频数变化趋势为上升,则该像素值范围对应的数值为0。
805、终端将多个像素值范围对应的数值组成二进制数据。
每个像素值范围分别对应二进制数据中的一位数值。终端按照每个数值的位置顺序将多个像素值范围对应的数值组成二进制数据。
需要说明的一点是,若水印添加过程中将校验位数据加入到了二进制数据中,则在水印提取过程中,终端能够基于二进制数据中1的数量,对二进制数据的合法性进行校验。例如,若水印添加过程中,终端响应于编码数据和位置数据所包括的1的个数为奇数,将校验位数据确定为1,则二进制数据中1的个数均为偶数。相应的,在水印提取过程中,二进制数据中1的个数为偶数的二进制数据合法;二进制数据中1的个数为奇数的二进制数据不合法。终端丢弃不合法的二进制数据。基于合法的二进制数据,确定水印信息。
上述技术方案,基于校验位数据,对二进制数据的合法性进行校验,将不合法的二进制数据丢弃,基于合法的二进制数据,来确定水印信息,减少不合法的二进制数据对水印信息确定的干扰,能够提高确定水印信息的准确性。
需要说明的另一点是,可选地,终端确定多个最小边界,依次基于每个最小边界对应的多个像素值范围,确定出一个二进制数据;判断所确定的二进制数据是否合法;若该二进制数据合法,则将该二进制数据作为用于确定水印信息的二进制数据,不再执行基于最小边界对应的多个像素值范围,确定二进制数据的步骤;若该二进制数据不合法,则丢弃该二进制数据,继续基于另一最小边界对应的多个像素值范围,确定二进制数据。
806、终端基于二进制数据,确定第三视频的水印信息。
在本申请实施例中,以水印信息包括多个字符,每个字符分别嵌入到第三视频的多帧图像中为例进行说明。终端基于上述步骤802至步骤805分别从多个第二图像中,确定出水印信息中每个位置上的多个字符。终端从每个位置上的多个字符中,确定出该位置上的目标字符,从而确定出水印信息。相应的,上述步骤806通过以下步骤8061至步骤8064实现。
8061、终端基于二进制数据,确定二进制数据对应的字符以及字符在水印信息中的位置。
可选地,在水印添加过程中,字符对应的二进制数据由位置数据、校验位数据和编码数据组成。终端基于二进制数据中的位置数据,确定该二进制数据所表示的字符在水印中的位置。例如,二进制数据中的前4位为位置数据,若位置数据为“0000”,则表示该字符按照从左向右的方向为水印信息中的第1个的字符;若位置数据为“0010”,则表示该字符按照从左向右的方向为水印信息中的第3个的字符。终端基于二进制数据中的编码数据,确定该二进制数据对应的字符。例如,二进制数据中的后7位为编码数据,若编码数据为“1100001”,则该二进制数据对应的字符为“a”。
8062、终端从基于多个第二图像所确定的同一位置上的多个字符中,确定数量最多的一种字符,作为该位置上的目标字符。
水印信息中同一位置的字符分别嵌入到视频中的多个第二图像中,终端分别基于每个第二图像,确定出该位置上的字符,得到多个字符。例如,终端确定出10个字符在水印信息中的位置均为第1个位置,且10个字符中包括7个“a”,2个“s”,1个“b”。终端将数量最多的一种字符作为该位置上的目标字符,则水印信息中第1个位置上的目标字符为“a”。
8063、终端由水印信息的多个位置上的目标字符组成水印信息。
终端基于步骤8062分别确定出多个位置上的目标字符,将多个目标字符按照位置顺序,组成水印信息。
上述技术方案,通过从多帧图像中确定出水印信息中同一位置上的多个字符,再对该多个字符进行投票处理,将数量最多的一种字符确定为该位置上的目标字符,组成水印信息。即使视频在传播过程中遭到攻击,视频中图像的像素值或者图像特征发生变化,导致基于变化后的图像所确定的二进制数据与水印添加过程中所添加的二进制数据存在偏差,通过确定多个字符并对多个字符进行投票处理,能够尽可能确定出与所添加的水印信息最接近的水印信息,提高水印提取的准确性。
需要说明的一点是,在实验过程中,基于本申请实施例提供的技术方案所添加的水印信息能够有效抵抗宽高缩小2倍以上的尺寸缩小的几何攻击。并且,能够抵抗JPEG压缩攻击、平移、裁剪、扭曲、噪声、涂画等常见攻击手段。添加水印信息后的视频经过格式转换、分辨率调整之后,仍然能够准确提取出水印,具有较强的鲁棒性。相较于相关技术在宽高缩小2倍以上的情况下不能准确提取出水印信息,具有更好的实用价值。
需要说明的是,若水印信息包括一个字符,且该一个字符嵌入到一帧图像中,则终端将所确定的一个二进制数据转换为字符,作为第三视频的水印信息。若水印信息包括一个字符,且该一个字符嵌入到多帧图像中,则终端分别基于多帧图像确定多个字符,将数量最多的一种字符作为第三视频的水印信息。
本申请实施例提供的技术方案,以视频中图像的像素值对应的频数变化趋势来对水印信息中字符对应的二进制数据进行表示,从而基于视频中图像的像素值对应的频数变化趋势,来确定视频中嵌入的水印信息。在添加水印信息后的视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图10是本申请实施例提供的一种视频处理装置的框图。参见图10,该装置包括:
水印信息获取模块1001,用于响应于对第一视频的水印添加指令,获取水印信息;
二进制转换模块1002,用于对水印信息中的至少一个字符进行二进制转换,得到字符对应的二进制数据;
像素调整模块1003,用于基于二进制数据,对第一视频中第一图像的像素值进行调整,其中,调整后的第一图像的像素值对应的频数变化趋势与二进制数据相对应;
视频生成模块1004,用于基于调整后的第一图像,生成添加水印信息后的第二视频。
本申请实施例提供的技术方案,通过将水印信息中的字符转换为由0和1表示的二进制数据,基于二进制数据取值为0或1的情况,对视频中图像的像素值进行调整,使调整后的图像的像素值对应的频数变化表现为0或1相对应的趋势,从而以像素值对应的频数变化趋势来对水印信息进行表示,将水印信息嵌入到视频的图像中。在视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
在一种可选的实现方式中,像素调整模块1003,包括:
像素范围获取单元,用于获取二进制数据中的数值对应的像素值范围;
像素调整单元,用于根据数值,对第一图像中的目标像素点的像素值进行调整,目标像素点的原像素值位于数值对应的像素值范围内。
在另一种可选的实现方式中,数值对应的像素值范围包括第一子范围和第二子范围,第一子范围内的像素值大于第二子范围内的像素值;
像素调整单元,用于:
响应于数值为1,将第一图像中的第一目标像素点的像素值减少第一数值,第一目标像素点的原像素值位于第一子范围内,第一数值为第一子范围的宽度;
响应于数值为0,将第一图像中的第二目标像素点的像素值增加第二数值,第二目标像素点的原像素值位于第二子范围内,第二数值为第二子范围的宽度。
在另一种可选的实现方式中,像素调整模块1003,用于:
基于第一图像,提取目标颜色通道的单通道图像;
基于二进制数据,对单通道图像的像素值进行调整。
在另一种可选的实现方式中,像素范围获取单元,包括:
第一确定单元,用于根据第一图像的像素值分布和二进制数据的位数,确定多个目标宽度的像素值范围;
第二确定单元,用于根据二进制数据中的数值在二进制数据中的位置,确定数值对应的像素值范围。
在另一种可选的实现方式中,第一确定单元,用于:
根据第一图像的像素值分布,确定第一图像的像素值的平均值;
以平均值为中心,分别从平均值两侧确定目标宽度的像素值范围,得到多个像素值范围,多个像素值范围的数量与二进制数据的位数相同。
在另一种可选的实现方式中,视频生成模块1004,还用于:
响应于所确定的像素值范围的边界值超出像素值参考范围,将第一图像添加到第二视频中。
在另一种可选的实现方式中,二进制转换模块1002,包括:
编码转换单元,用于将水印信息中的字符转换为二进制的编码数据;
位置转换单元,用于根据字符在水印信息中的位置,确定字符对应的二进制的位置数据;
二进制生成单元,用于根据编码数据和位置数据,生成字符对应的二进制数据。
在另一种可选的实现方式中,二进制生成单元,用于:
根据编码数据和位置数据所包括的1的个数,确定校验位数据;
将编码数据、位置数据和校验位数据组成字符对应的二进制数据。
在另一种可选的实现方式中,该装置还包括:
显示模块,用于显示水印添加界面,水印添加界面包括视频选择控件和水印添加控件;
第一视频获取模块,用于响应于对视频选择控件的交互操作,获取第一视频;
指令生成模块,用于响应于对水印添加控件的交互操作,生成对第一视频的水印添加指令。
需要说明的是:上述实施例提供的视频处理装置在进行视频处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频处理装置与视频处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本申请实施例提供的一种视频处理装置的框图。参见图11,该装置包括:
第二视频获取模块1101,用于响应于水印提取指令,获取已添加水印信息的第三视频;
二进制数据确定模块1102,用于基于第三视频中第二图像的像素值对应的频数变化趋势,确定第二图像对应的二进制数据,第二图像的像素值对应的频数变化趋势与第二图像对应的二进制数据相对应;
水印信息确定模块1103,用于基于二进制数据,确定第三视频的水印信息。
本申请实施例提供的技术方案,以视频中图像的像素值对应的频数变化趋势来对水印信息中字符对应的二进制数据进行表示,从而基于视频中图像的像素值对应的频数变化趋势,来确定视频中嵌入的水印信息。在添加水印信息后的视频遭到缩放、旋转、平移、扭曲、压缩等攻击后,视频中图像的像素值会发生变化,但像素值对应的频数变化趋势不易被破坏,频数变化趋势仍然能够对水印信息进行表示,从遭到攻击的视频中仍能提取出准确的水印信息,水印信息能够有效抵抗攻击,增强了鲁棒性。
在一种可选的实现方式中,二进制数据确定模块1102,包括:
第三确定单元,用于根据第二图像的像素值分布,确定多个像素值范围;
第四确定单元,用于根据像素值范围中像素值对应的频数变化趋势,确定像素值范围对应的数值;
二进制数据确定单元,用于将多个像素值范围对应的数值组成二进制数据。
在另一种可选的实现方式中,像素值范围包括第一子范围和第二子范围,第一子范围内的像素值大于第二子范围内的像素值;第四确定单元,用于:
响应于第二子范围中像素值的频数大于第一子范围中像素值的频数,确定像素值范围对应的数值为1;
响应于第二子范围中像素值的频数小于或等于第一子范围中像素值的频数,确定像素值范围对应的数值为0。
在另一种可选的实现方式中,该装置还包括:
直方图获取模块,用于获取第二图像的直方图,直方图用于表示第二图像中各个像素值的频数分布;
趋势确定模块,用于根据直方图,确定像素值范围中像素值对应的频数变化趋势。
在另一种可选的实现方式中,直方图获取模块,用于:
基于第二图像,提取目标颜色通道的单通道图像;
对单通道图像中各个像素值的频数进行统计,得到第二图像的直方图。
在另一种可选的实现方式中,第三确定单元,包括:
边界确定子单元,用于根据第二图像的像素值分布,确定多个像素值范围的最小边界;
范围确定子单元,用于以最小边界为起点,确定多个目标宽度的像素值范围。
在另一种可选的实现方式中,边界确定子单元,用于:
根据第二图像的像素值分布,确定第二图像的像素值的平均值;
基于平均值、目标宽度以及二进制数据的位数,确定范围划分的最小参考边界;
基于最小参考边界和搜索宽度,确定最小边界对应的搜索范围;
将搜索范围内的多个数值分别作为最小边界。
在另一种可选的实现方式中,水印信息确定模块1103,用于:
基于二进制数据,确定二进制数据对应的字符以及字符在水印信息中的位置;
从基于多个第二图像所确定的同一位置上的多个字符中,确定数量最多的一种字符,作为位置上的目标字符;
由水印信息的多个位置上的目标字符组成水印信息。
需要说明的是:上述实施例提供的视频处理装置在进行视频处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频处理装置与视频处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在本申请实施例中,计算机设备可被配置为终端或者服务器。若计算机设备被配置为终端,则由终端作为执行主体来实施本申请实施例提供的技术方案。若计算机设备被配置为服务器,则由服务器作为执行主体来实施本申请实施例提供的技术方案。或者,通过终端和服务器之间的交互来实施本申请提供的技术方案,本申请实施例对此不加以限定。
若计算机设备被配置为终端,图12是本申请实施例提供的一种终端的框图。终端1200可以是智能手机、平板电脑、笔记本电脑或台式电脑。终端1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器1201所执行以实现本申请中方法实施例提供的视频处理方法。
在一些实施例中,终端1200还可选包括有:***设备接口1203和至少一个***设备。处理器1201、存储器1202和***设备接口1203之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1203相连。具体地,***设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207、定位组件1208和电源1209中的至少一种。
在一些实施例中,终端1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
若计算机设备被配置为服务器,图13是本申请实施例提供的一种服务器的框图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,存储器1302中存储有至少一条程序代码,至少一条程序代码由处理器1301加载并执行以实现上述各个方法实施例提供的视频处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,上述至少一条程序代码可由计算机设备中的处理器执行以完成上述实施例中的视频处理方法。例如,计算机可读存储介质可以是ROM(Read-OnlyMemory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(CompactDisc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述各个方法实施例中的视频处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种视频处理方法,其特征在于,所述方法包括:
响应于对第一视频的水印添加指令,获取水印信息,对所述水印信息中的至少一个字符进行二进制转换,得到所述字符对应的二进制数据;
分别为所述二进制数据中的每个数值确定一个像素值范围,对于所述二进制数据中的每个数值,根据所述数值,对第一图像中的目标像素点的像素值进行调整,其中,所述第一图像为所述第一视频中的一帧图像,所述目标像素点的原像素值位于所述数值对应的像素值范围内,在调整后的所述第一图像中,一个像素值范围内的像素值对应的频数变化趋势与所述二进制数据中的一个数值相对应;
基于调整后的第一图像,生成添加所述水印信息后的第二视频。
2.根据权利要求1所述的方法,其特征在于,所述数值对应的像素值范围包括第一子范围和第二子范围,所述第一子范围内的像素值大于所述第二子范围内的像素值;
所述根据所述数值,对第一图像中的目标像素点的像素值进行调整,包括:
响应于所述数值为1,将所述第一图像中的第一目标像素点的像素值减少第一数值,所述第一目标像素点的原像素值位于所述第一子范围内,所述第一数值为所述第一子范围的宽度;
响应于所述数值为0,将所述第一图像中的第二目标像素点的像素值增加第二数值,所述第二目标像素点的原像素值位于所述第二子范围内,所述第二数值为所述第二子范围的宽度。
3.根据权利要求1所述的方法,其特征在于,所述分别为所述二进制数据中的每个数值确定一个像素值范围,包括:
根据所述第一图像的像素值分布和所述二进制数据的位数,确定多个目标宽度的像素值范围;
根据所述二进制数据中的数值在所述二进制数据中的位置,确定所述数值对应的像素值范围。
4.根据权利要求1所述的方法,其特征在于,所述对所述水印信息中的至少一个字符进行二进制转换,得到所述字符对应的二进制数据,包括:
将所述水印信息中的字符转换为二进制的编码数据;
根据所述字符在所述水印信息中的位置,确定所述字符对应的二进制的位置数据;
根据所述编码数据和所述位置数据,生成所述字符对应的二进制数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述编码数据和所述位置数据,生成所述字符对应的二进制数据,包括:
根据所述编码数据和所述位置数据所包括的1的个数,确定校验位数据;
将所述编码数据、所述位置数据和所述校验位数据组成所述字符对应的二进制数据。
6.根据权利要求1所述的方法,其特征在于,所述响应于对第一视频的水印添加指令,获取水印信息之前,所述方法还包括:
显示水印添加界面,所述水印添加界面包括视频选择控件和水印添加控件;
响应于对所述视频选择控件的交互操作,获取第一视频;
响应于对所述水印添加控件的交互操作,生成对所述第一视频的水印添加指令。
7.一种视频处理方法,其特征在于,所述方法包括:
响应于水印提取指令,获取已添加水印信息的第三视频;
基于所述第三视频中第二图像的多个像素值范围内的像素值对应的频数变化趋势,确定所述第二图像对应的二进制数据,其中,一个像素值范围内的像素值对应的频数变化趋势与所述二进制数据中的一个数值相对应;
基于所述二进制数据,确定所述第三视频的水印信息。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第三视频中第二图像的多个像素值范围内的像素值对应的频数变化趋势,确定所述第二图像对应的二进制数据,包括:
根据所述第二图像的像素值分布,确定多个像素值范围;
根据所述像素值范围中像素值对应的频数变化趋势,确定所述像素值范围对应的数值;
将所述多个像素值范围对应的数值组成所述二进制数据。
9.根据权利要求8所述的方法,其特征在于,所述像素值范围包括第一子范围和第二子范围,所述第一子范围内的像素值大于所述第二子范围内的像素值;
所述根据所述像素值范围中像素值对应的频数变化趋势,确定所述像素值范围对应的数值,包括:
响应于所述第二子范围中像素值的频数大于所述第一子范围中像素值的频数,确定所述像素值范围对应的数值为1;
响应于所述第二子范围中像素值的频数小于或等于所述第一子范围中像素值的频数,确定所述像素值范围对应的数值为0。
10.根据权利要求8所述的方法,其特征在于,所述根据所述像素值范围中像素值对应的频数变化趋势,确定所述像素值范围对应的数值之前,所述方法还包括:
获取所述第二图像的直方图,所述直方图用于表示所述第二图像中各个像素值的频数分布;
根据所述直方图,确定所述像素值范围中像素值对应的频数变化趋势。
11.根据权利要求7所述的方法,其特征在于,所述基于所述二进制数据,确定所述第三视频的水印信息,包括:
基于所述二进制数据,确定所述二进制数据对应的字符以及所述字符在所述水印信息中的位置;
从基于多个第二图像所确定的同一位置上的多个字符中,确定数量最多的一种字符,作为所述位置上的目标字符;
由所述水印信息的多个位置上的目标字符组成所述水印信息。
12.一种视频处理装置,其特征在于,所述装置包括多个功能模块,用于实现如权利要求1-11任一项所述的视频处理方法。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1-11任一项所述的视频处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1-11任一项所述的视频处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910582.2A CN112004148B (zh) | 2020-09-02 | 2020-09-02 | 视频处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010910582.2A CN112004148B (zh) | 2020-09-02 | 2020-09-02 | 视频处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112004148A CN112004148A (zh) | 2020-11-27 |
CN112004148B true CN112004148B (zh) | 2021-09-28 |
Family
ID=73465883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010910582.2A Active CN112004148B (zh) | 2020-09-02 | 2020-09-02 | 视频处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112004148B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114913050B (zh) * | 2022-05-30 | 2023-09-12 | 南京数睿数据科技有限公司 | 水印嵌入方法、装置、电子设备和计算机可读介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455966B (zh) * | 2012-05-31 | 2016-09-14 | 富士通株式会社 | 数字水印嵌入设备、数字水印嵌入方法和数字水印检测设备 |
US10354355B2 (en) * | 2014-07-29 | 2019-07-16 | Tata Consultancy Services Limited | Digital watermarking |
CN110971931A (zh) * | 2018-09-30 | 2020-04-07 | 北京微播视界科技有限公司 | 视频水印添加方法、装置、电子设备及存储介质 |
CN110267115B (zh) * | 2019-06-17 | 2022-04-01 | 东软集团股份有限公司 | 一种视频安全控制方法、装置、设备及介质 |
-
2020
- 2020-09-02 CN CN202010910582.2A patent/CN112004148B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112004148A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230008085A1 (en) | Method for embedding watermark in video data and apparatus, method for extracting watermark in video data and apparatus, device, and storage medium | |
CN111768327B (zh) | 基于深度学习的水印添加、提取方法、设备及存储介质 | |
Atta et al. | A high payload steganography mechanism based on wavelet packet transformation and neutrosophic set | |
KR101877372B1 (ko) | 워터마크 데이터의 임베딩 및 추출 방법 | |
CN110245469B (zh) | 网页的水印生成方法、水印解析方法、装置及存储介质 | |
US11134167B2 (en) | Method of embedding and extracting watermark data using a correction image comparison with a noise-based image in the frequency domain | |
KR101960290B1 (ko) | 워터마크 데이터의 임베딩 및 추출 방법 | |
CN102147912A (zh) | 一种基于自适应差值扩展的可逆图像水印方法 | |
CN112070648A (zh) | 水印嵌入、提取方法、装置及电子设备 | |
CN112004148B (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
CN113538197A (zh) | 水印提取方法、装置、存储介质以及电子设备 | |
CN114880687A (zh) | 文档安全防护方法、装置、电子设备和存储介质 | |
CN113962838A (zh) | 水印图像嵌入/增强方法、装置及计算机*** | |
EP3410684A1 (en) | Image processing device, image processing method, and program | |
CN109309869B (zh) | 一种水印嵌入方法、装置及存储介质 | |
CN116127419A (zh) | 数据处理方法、数据识别方法、字体文件生成方法及装置 | |
JP5036643B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
Li et al. | Block mapping and dual-matrix-based watermarking for image authentication with self-recovery capability | |
Xia et al. | Perceptual image hashing using rotation invariant uniform local binary patterns and color feature | |
CN113409181A (zh) | 针对水印载体的水印处理方法及装置 | |
CN113538198B (zh) | 水印添加方法、装置、存储介质以及电子设备 | |
CN110662023B (zh) | 视频数据丢失的检测方法、装置及存储介质 | |
CN115937338B (zh) | 图像处理方法、装置、设备及介质 | |
CN112907429B (zh) | 数字签名设置和提取方法、装置、存储介质及电子设备 | |
CN117670639A (zh) | 法线贴图处理方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |