一种应用于视频传输的信息处理方法及终端设备与流程

文档序号:19060488发布日期:2019-11-06 01:43阅读:220来源:国知局
一种应用于视频传输的信息处理方法及终端设备与流程

本申请涉及图像处理和可靠隐蔽通信领域,尤其涉及一种应用于视频传输的信息处理方法及终端设备。



背景技术:

随着手机、平板电脑等智能终端设备的普及,消费者使用安装在这些智能终端设备上的视频通话类应用(如微信、facetime等)的频率越来越高,尤其是青年消费者人群,使用该类应用替代传统运营商的电话业务的趋势可见一斑。青少年用户在使用上述视频通话类应用时,会经常使用交互类特效。比如持手机a的用户a与持手机b的用户b进行微信视频聊天,在视频聊天过程中,用户a可以对在手机a显示界面上显示的用户b的视频图像进行涂鸦、贴上贴纸进行渲染等,之后这些涂鸦、贴纸等渲染的信息(可称为目标信息)就被加入到当前时刻的视频码流中一并传送至用户b的手机b上进行显示。然而,手机a将目标信息传输至手机b的方式各不相同,传输通道的选择会直接影响对端的用户看到渲染效果的时延,并且目标信息在不同传输通道上传输耗费的流量也不同,而流量耗费的多少也与用户体验直接相关。

视频通话中的传输通道通常分为媒体流通道和控制信令通道,具体如图1所示:媒体流通道传输的内容为基于用户数据报协议(userdatagramprotocol,udp)的实时传输控制协议(real-timecontrolprotocol,rtcp)传输h.264或h.265编码后的视频码流,如图1中第一终端设备向第二终端设备传输的视频码流x、第二终端设备向第一终端设备传输的视频码流y都是经由媒体流通道传输的。媒体流通道又可分为点对点(pointtopoint,p2p)方式和服务器中转方式,其中,p2p方式为在特定网络环境下p2p穿透成功后以点对点方式传输视频码流,该方式节省流量,无需中转,但传输质量不可控;服务器中转方式则为普适的传输通道,即p2p穿透失败场景下,通过服务器集群中转的方式传输视频码流,该方式传输质量比p2p方式更可靠,但是服务器租赁和带宽的资费更多。而控制信令通道传输的内容为基于传输控制协议(transmissioncontrolprotocol,tcp)的类似可扩展通讯和表示协议(extensiblemessagingandpresenceprotocol,xmpp)等控制信令协议,以tcp长连接方式通过中控服务器,传输通话的启动、中断、p2p穿透成功与否、协商等消息,如图1中的控制信令就是经由控制信令通道传输的。无论是p2p方式还是服务器中转方式来传输视频码流,都需要控制信令的支持才能完成通话协商的控制。

目前,用户a若想将目标信息(如用户a对用户b的视频图像进行了渲染的信息)随视频码流传输至用户b,一般有两种处理方式:1)选取控制信令通道将目标信息传输到用户b的终端设备上,即将需要传输的目标信息设定为特定的消息tag,在控制信令通道中增加标记该消息tag的数据包和消息内容,该数据包和消息内容被传递到用户b的终端设备后再做对应处理以提取出该目标信息。2)选取媒体流通道将目标信息传输到用户b的终端设备上,即使用rtcp协议传输视频码流/音频码流以外的信息(即所述的目标信息),途径有两种:a、利用rtcp空余标志位传输;b、将需传输的目标信息压缩编码以后放置在rtcp标准流中传输。

上述对目标信息的处理方式均存在缺点。1)选取控制信令通道将目标信息传输到用户b的终端设备,存在如下缺陷:a、时延高。这是因为控制信令通道有服务器中转,并且是使用tcp长连接传递目标消息,由于tcp的拥塞控制,其传输时延一般为200ms~400ms,在服务器中转方式传输视频码流的场景下,目标信息的传输时延可能大于等于视频码流的传输时延(一般为200ms),而在p2p方式传输视频码流的场景下,目标信息的传输时延会高于视频码流的传输时延(一般为100~200ms)。因此,目标信息较高的传输时延会显著影响实时性。b、额外增加流量。控制信令通道下任何传输的信息都会额外增加流量,这是因为在正常视频通话中,控制信令通道做完启动协商的必要工作之后(即必须需要耗费的流量之后),就不再额外消耗流量(常规心跳包除外),但是此方式将需要传递的目标信息通过控制信令通道传输,流量增加是不可避免的,在极端情况下,用户/攻击者恶意暴力增加交互信息,则将大规模增加额外流量,这与p2p方式的设计初衷相违,因为p2p方式设计的初衷就是为了节省通过服务器中转的流量,降低成本。2)选取媒体流通道将目标信息传输到用户b的终端设备,存在如下缺陷:a、若利用rtcp空余标志位传输目标信息,rtcp空余标志位个数有限,传输的数据量十分有限,即对目标信息的数据量的要求很高。b、若是将需传输的目标信息压缩编码以后放置在rtcp标准流中传输,则需要更改编码/解码流程,即介入到h.264/h.265算法内部流程进行更改,这样会产生额外流量并且移植性、实用性差。此外,媒体流通道丢包常见,上述通过媒体流通道传输目标信息的两种途径都无法应对丢包的情况。



技术实现要素:

本申请实施例第一方面提供了一种应用于视频传输的信息处理方法,具体包括:

首先,第一终端设备(也可称为发送端)获取当前时刻视频码流的目标i帧,然后将待传输的目标信息通过数字水印算法嵌入到上述目标i帧中,从而得到水印i帧;最后,将包含有上述水印i帧的当前时刻视频码流发送至第二终端设备(也可称为接收端)。

在申请实施例中,由于视频码流是通过媒体流通道从发送端传输至接收端的,因此嵌入到视频码流的目标信息的传输通道也是媒体流通道,并且对目标i帧的图像做数字水印处理,将所要传递的目标信息嵌入到目标i帧的原始图像中,没有额外增加传输的数据量,这样目标信息的传输没有使用额外通道,也没有增加额外的传输流量,解决了“节约成本”的问题;其次,使用媒体流通道传输目标信息可保证与视频码流时延一致,从而解决了“用户体验同步”的问题;另外,由于视频码流中的图像,在做压缩编码时都会损失少量数据,这就会导致传输过程中出现丢包,而本申请中的目标信息是通过数字水印算法嵌入到i帧中传输的,因为i帧是关键帧,其图像保留了完整的数据信息,而且常见的视频码流传输抗丢包策冗余传输策略等的核心都在于保证i帧的图像数据不会传丢,因此目标信息嵌入i帧进行传输这样的处理方式解决了“可靠传输”的问题。最后,由于目标信息是嵌入在视频码流中的i帧进行传输的,有多少i帧,就能通过数字水印算法嵌入多少目标信息,对目标信息的数据量没有限制,即实现了目标信息“大量传输”的问题。也就是说,本申请实施例发送端通过数字水印算法将需要传输的目标信息嵌入目标i帧随视频码流发送至接收端,即利用现有的媒体流通道,将需要传递的目标信息实时地、可靠地、完整地传输到接收端,并且没有产生额外流量。

结合本申请实施例第一方面,在本申请实施例第一方面的第一种实施方式中,接收端将目标信息通过数字水印算法嵌入到目标i帧从而得到水印i帧可以通过如下方式得到:

对目标i帧先做帧内压缩处理,得到压缩后的目标i帧,然后将目标信息通过数字水印算法嵌入到压缩后的目标i帧内,得到水印i帧。

在本申请实施例中,由于i帧的图像数据在做帧内压缩时,会压缩成类似jpeg级别的码流,这一压缩过程会出现一定的压缩损失,即丢失部分数据。因此,为了避免作为数字水印嵌入到目标i帧中的目标信息丢失部分或全部数据,可以先对目标i帧做帧内压缩,得到压缩后的目标i帧后,再将目标信息通过数字水印算法嵌入到压缩后的目标i帧中,从而得到水印i帧。这样通过上述所述过程接收端获取到的目标信息是没有损失数据的,即目标信息是完整的数据。

结合本申请实施例第一方面,在本申请实施例第一方面的第二种实施方式中,接收端将目标信息通过数字水印算法嵌入到目标i帧从而得到水印i帧还可以通过如下方式得到:

将目标信息通过数字水印算法(如小波变换水印算法)嵌入到目标i帧的第一频域区域(如低频区域)以得到处理后的目标i帧,之后再对处理后的目标i帧的第二频域区域(如高频区域)做帧内压缩,从而得到水印i帧,第一频域区域与第二频域区域无交集。

在本申请实施例中,发送端除了在目标i帧进行帧内压缩之后嵌入目标信息这种方式之外,还可以在目标i帧进行帧内压缩之前就嵌入目标信息,以得到水印i帧。但由于i帧的图像数据在做帧内压缩时会出现一定的压缩损失,因此若在目标i帧进行帧内压缩之前做数字水印嵌入,有些数字水印算法在帧内压缩之后可能也会损失水印信息,为避免目标信息在做帧内压缩之后出现数据丢失的情况,本申请实施例提出了将目标信息通过数字水印算法嵌入到目标i帧的第一频域区域以得到处理后的目标i帧,之后再对处理后的目标i帧的第二频域区域做帧内压缩,从而得到水印i帧。由于帧内压缩的算法一般都是处理目标i帧的图像数据的高频数据,只要保证目标信息嵌入到目标i帧的第一频域区域与进行帧内压缩的目标i帧的第二频域区域无交集,那么帧内压缩就不会对压缩前就嵌入到目标i帧的目标信息产生影响,目标信息的数据也不会丢失。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第二种实施方式,在本申请实施例第一方面的第三种实施方式中,发送端在降包含有水印i帧的当前时刻视频码流发送至接收端之前,还可以包括:

首先确定该水印i帧对应的未使用的头标志位,然后更改所述未使用的头标志位,得到更改后的头标志位,更改后的头标志位用于表示对应的i帧为水印i帧。

在本申请实施例中,发送端获取到水印i帧之后,对水印i帧的未使用的头标志位进行更改,使得接收端接收到当前时刻视频码流之后,仅需通过判断当前时刻视频码流的i帧的未使用的头标志位是否被更改就能快速确定该i帧是否是水印i帧(即哪个i帧嵌入有目标信息),之后,仅需要对该水印i帧进行数字水印提取就可以获取到目标信息,而不再需要对当前时刻视频码流中包含的所有i帧都进行数字水印提取的操作,减少了计算复杂度以及计算量,并且解决了接收端由于频繁进行数字水印提取操作而带来功耗增加的问题。

结合本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至第三种实施方式,在本申请实施例第一方面的第四种实施方式中,发送端获取当前时刻视频码流的i帧还可以通过如下方式获得:

先确定当前时刻视频码流的目标i帧的图像id,然后根据该图像id来获取对应的目标i帧。

在本申请实施例中,具体阐述了发送端如何通过目标i帧的图像id来获取到目标i帧,具备实用性。

本申请第二方面还提供了一种应用于视频传输的信息处理方法,具体包括:

接收端获取到发送端发送的当前时刻视频码流,就可以进一步获取到该当前时刻视频码流中所包含的所有i帧;之后,接收端再判断这些i帧是否为水印i帧,水印i帧为发送端通过数字水印算法嵌入了目标信息的i帧;若确定某一i帧为水印i帧,则接收端从所述水印i帧中提取所述目标信息。

在本申请实施例中,从接收端的角度阐述了如何获取目标信息,同样实现了将需要传递的目标信息实时地、可靠地、完整地传输到接收端,并且没有产生额外流量。

结合本申请实施例第二方面,在本申请实施例第二方面的第一种实施方式中,接收端判断所述i帧是否为水印i帧具体可以包括:

首先依次判断当前时刻视频码流中的所有i帧未使用的头标志位是否被更改;若接收端判断出这些i帧中有某个i帧未使用的头标志位被更改,则接收端可以确定该i帧未水印i帧,即该i帧中嵌入有目标信息,那么接收端就可以从该i帧中通过数字水印提取的方式提取出目标信息。

在本申请实施例中,详细说明了接收端如何通过i帧未使用的头标志位来判断i帧是否为水印i帧,即接收端仅需通过判断当前时刻视频码流的i帧的未使用的头标志位是否被更改就能快速确定该i帧是否是水印i帧(即哪个i帧嵌入有目标信息),之后,只需对该水印i帧进行数字水印提取就可以获取到目标信息,而不再需要对当前时刻视频码流中包含的所有i帧都进行数字水印提取的操作,减少了计算复杂度以及计算量,并且解决了接收端由于频繁进行数字水印提取操作而带来功耗增加的问题。

结合本申请实施例第二方面及本申请实施例第二方面的第一种实施方式,在本申请实施例第二方面的第二种实施方式中,接收端获取到目标信息之后,还可以根据所述目标信息对所述当前时刻视频码流进行特效渲染。如目标信息是对用户b的视频图像进行涂鸦的涂鸦信息,那么此时用户b的手机(即接收端)就可以根据该涂鸦信息对该视频图像进行相应的涂鸦,以得到涂鸦渲染后的用户b的视频图像,并在用户b的手机显示界面上进行呈现。

在本申请实施例中,接收端接收到目标信息之后,其中一种应用场景就是根据该目标信息对视频图像进行渲染,增加了互动的趣味性。

本申请实施例第三方面提供一种终端设备,该终端设备作为第一终端设备,其具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第四方面提供一种终端设备,该终端设备作为第二终端设备,其具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第五方面还提供一种终端设备,该终端设备作为第一终端设备,可以包括:存储器、收发器、处理器以及总线系统,该存储器、该收发器和该处理器通过该总线系统连接;其中,存储器用于存储程序和指令;收发器用于在处理器的控制下接收或发送信息;处理器用于调用该存储器中存储的指令执行本申请实施例第一方面以及第一方面中任一可实现方式中的方法。

本申请实施例第六方面还提供一种终端设备,该终端设备作为第二终端设备,可以包括:存储器、收发器、处理器以及总线系统,该存储器、该收发器和该处理器通过该总线系统连接;其中,存储器用于存储程序和指令;收发器用于在处理器的控制下接收或发送信息;处理器用于调用该存储器中存储的指令执行本申请实施例第二方面以及第二方面中任一可实现方式中的方法。

本申请实施例第七方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面/第二方面、第一方面/第二方面任意一种可能实现方式的方法。

本申请实施例第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面/第二方面、第一方面/第二方面任意一种可能实现方式的方法。从以上技术方案可以看出,本申请实施例具有以下优点:在本申请实施例中,发送端(即第一终端设备)首先获取当前时刻视频码流的目标i帧,并将带传输的目标信息通过数字水印算法嵌入到目标i帧中从而获得水印i帧,最后,将包含有该水印i帧的当前时刻视频码流发送至接收端(即第二终端设备)。也就是说,本申请实施例发送端通过数字水印算法将需要传输的目标信息嵌入目标i帧随视频码流发送至接收端,即利用现有的媒体流通道,将需要传递的目标信息实时地、可靠地、完整地传输到接收端,并且没有产生额外流量。

附图说明

图1为本申请实施例视频通话中传输通道的示意图;

图2为h.264协议中i帧、b帧、p帧的关系示意图;

图3为本申请实施例基于视频编码的信息处理方法的一个示意图;

图4为本申请实施例嵌入目标信息从而得到水印i帧的一种方式;

图5为本申请实施例嵌入目标信息从而得到水印i帧的另一方式;

图6为本申请实施例应用于视频传输的信息处理方法的另一示意图;

图7为本申请实施例应用于视频传输的信息处理方法的另一示意图;

图8为本申请实施例发送端(即第一终端设备)的一个示意图;

图9为本申请实施例接收端(即第二终端设备)的一个示意图;

图10为本申请实施例终端设备(发送端或接收端)的一个示意图。

具体实施方式

首先,需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

其次,在介绍本申请实施例之前,先介绍在本申请实施例中可能出现的一些概念。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。

本申请实施例中传输的视频码流是基于h.264编码后的视频码流。h.264是新一代的编码标准,以高压缩、高质量和支持多种网络的流媒体传输著称。其编码过程大致为(详情请参考h.264白皮书官方版):通过摄像头采集到的视频帧(按每秒30帧算,每一帧代表一幅静止的图像),被送到h264编码器的缓冲区中。在上述得到的视频帧内相邻的几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于多帧连续变化不大的图像,先编码出一个完整的图像帧x,随后的帧y就不编码全部图像,只写入与帧x的差别,这样帧y的大小就只有完整帧的1/10或更小,帧y之后的帧z如果变化不大,继续以参考帧y的方式编码帧z,如此循环。上述多帧图像称为一个序列或一组(有相同特点的一段数据),当某个图像w与之前的图像变化很大,无法参考前面的帧来生成,则结束上一个序列,从图像w开始进入到下一个序列,并对这个图像w生成一个完整的图像帧x1,随后的图像就参考帧x1生成,即只写入与帧x1有差别的内容,以此类推,直到编码完所有的视频码流中的图像。

对于视频数据来说,主要存在两类数据冗余,一类是时间上的数据冗余,另一类是空间上的数据冗余,其中时间上的数据冗余是最大的,h.264的编码过程旨在去除时间上的数据冗余。假设摄像头每秒抓取30帧,这30帧的数据大部分情况下都是相关联的。也有可能不止30帧的的数据,可能几十帧、上百帧的数据都是关联特别密切的。对于这些关联特别密切的帧,只需要保存一帧的完整数据,其它帧都可以通过这一帧再按某种规则预测出来,其中,被保留了完整数据的这一帧被称为i帧,其它帧称为p帧或b帧。h.264的协议中就定义了i帧、b帧、p帧这三种帧,h.264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成i帧的算法,帧间压缩是生成b帧和p帧的算法,即b帧和p帧都是基于i帧来压缩数据。i帧、b帧、p帧的关系如图2所示,简单来说,i帧是关键帧,也可称为帧内编码帧,可以理解为这一帧的图像被完整保留,解码时只需要本帧的图像数据就可以完成(因为包含完整图像的数据)。p帧表示的是这一帧跟之前的一个i帧或p帧的差别(即差别帧,也可称为前向预测编码帧,p帧没有完整图像的数据,只有与前一帧的图像存在差别的数据),解码时需要用之前缓存的图像叠加上本帧定义的差别,生成最终图像。b帧是双向差别帧,也可称为双向预测帧,也就是b帧记录的是本帧与前后帧的差别,换言之,要解码b帧,不仅要取得之前的缓存图像,还要解码之后的图像,通过前、后图像与本帧差别的数据的叠加取得最终图像。

编码后传输的视频码流都是经过了视频压缩处理的,视频压缩又分为有损(lossy)压缩和无损(lossyless)压缩,无损压缩就是指压缩前和解压缩后的数据完全一致。多数的无损压缩都采用行程编码(run-lengthencoding,rle)算法,也可称为游程编码算法、行程长度编码算法、变动长度编码算法。有损压缩意味着解压缩后的数据与压缩前的数据不一致,在压缩的过程中会丢失一些人眼、人耳所不敏感的图像信息或音频信息,而且丢失的信息不可恢复。几乎所有高压缩的算法都采用有损压缩,这样才能达到低数据率的目标。而h.264作为新一代的编码标准,其采用的就是高压缩算法,因此基于h.264编码后的视频码流都是有损压缩后的视频码流。此外,有损压缩后丢失的数据率与压缩比有关,压缩比越小,丢失的数据越多,解压缩后的效果一般越差。而且某些有损压缩算法采用多次重复压缩的方式,这样还会引起额外的数据丢失。

数字水印技术则是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。

由于在视频通话场景中,不论以何种通道(即不管是媒体流通道,还是控制信令通道,还是其他额外的通道)单独传输上述的目标信息都存在如背景技术中所述的缺陷,因此,本申请旨在解决上述所述的问题,具体来说,本申请旨在解决如下四个方面的问题:1)在利用传输通道传输目标信息的过程中尽可能减少额外流量的产生,即如何解决“节约成本”的问题;2)目标信息的传输时延不应超过视频码流的传输时延,即如何解决“用户体验同步”的问题;3)传输的目标信息能够应对传输丢包的场景,即如何实现“可靠传输”的问题;4)对传输的目标信息的数据量没有限制,即如何实现“大量传输”的问题。简单来说,也就是本申请所要解决的问题是:如何利用现有通道,将需要传递的目标信息实时地、可靠地传输到第二终端设备,并尽量降低额外流量的产生。基于此,本申请实施例提供了一种基于视频编码的信息处理方法,请参照图3,其具体实现方式如下:

301、获取当前时刻视频码流的目标i帧。

当第一终端设备(也可称为发送端)获取到用户输入的目标信息(如用户对视频画面上的图像进行涂鸦、贴纸等渲染的信息)时,则会触发发送端获取当前时刻视频码流的目标i帧。

需要说明的是,当前时刻视频码流中可能包含有多个i帧,目标i帧则是这多个i帧中的一个。为便于理解,以当前时刻视频码流中有50帧图像为例进行说明,若这50帧图像中包括有6个i帧,那么发送端就可以获取到这6个i帧,并根据预设方法确定这6个i帧中的一个为目标i帧,例如,可以是确定这6个i帧中的第一个i帧为目标i帧,也可以是随机挑选这6个i帧中的一个作为目标i帧,具体此处对预设方法不做限定。

在本申请的一些实施方式中,发送端获取当前时刻视频码流的目标i帧的方式有多种,具体此处不做限定。例如,可以是先确定当前时刻视频码流的目标i帧的图像id(也可称为图像序号),再根据该图像id获取到对应的目标i帧,也就是说,每个i帧都对应有一个图像id,根据该图像id就能查找到对应的i帧。依然以当前时刻视频码流中有50帧图像为例进行说明,假设该50帧图像中包括有6个i帧,发送端首先会确定出6个图像id,假设分别为id01、id13、id23、id36、id41、id52,那么这6个图像id就分别对应6个i帧,假设发送端根据预设方法确定了id23对应的i帧为目标i帧,那么发送端就会根据该id23先查找到对应的i帧,并将这对应的i帧确定为目标i帧。需要说明的是,发送端获取i帧的图像id的方式取决于视频码流的编码方式,编码方式有通过芯片集成算法进行的硬件编码方式,也有通过软件算法进行的软件编码方式,具体此处对编码方式不做限定。而i帧的图像id就是在对视频码流进行编码的过程中获取到的。

302、将目标信息通过数字水印算法嵌入目标i帧,得到水印i帧。

发送端获取到当前时刻视频码流的目标i帧之后,将会将获取到的用户输入的目标信息通过数字水印算法嵌入到目标i帧内,从而得到水印i帧。也就是说发送端获取到图像id并确定对应的i帧为目标i帧之后,就对该目标i帧做数字水印嵌入(即嵌入待传输的目标信息),嵌入有该目标信息的目标i帧就是水印i帧。需要说明的是,本申请的数字水印算法可以有很多种,可以是小波变换,也可以是dct变换,具体此处做数字水印算法不做限定。

303、将包含有水印i帧的当前时刻视频码流发送至第二终端设备。

发送端得到水印i帧之后,将会将包含有该水印i帧的当前时刻的视频码流发送至第二终端设备(也可称为对端或接收端)。接收端获取到包含有该目标信息的当前时刻视频码流,就会对该当前时刻视频码流进行解码操作,并对该当前时刻视频码流的目标i帧做数字水印的提取,从而提取到嵌入到该目标i帧中的目标信息。

需要说明的是,在本申请的一些实施方式中,发送端将目标信息通过数字水印算法嵌入目标i帧得到水印i帧的方式有多种,具体此处不做限定,下面示意几种得到水印i帧的方法:

a、在目标i帧进行帧内压缩之后嵌入目标信息,得到水印i帧。

由于i帧的图像数据在做帧内压缩时,会压缩成类似jpeg级别的码流,这一压缩过程会出现一定的压缩损失,即丢失部分数据。因此,为了避免作为数字水印嵌入到目标i帧中的目标信息丢失部分或全部数据,可以先对目标i帧做帧内压缩,得到压缩后的目标i帧后,再将目标信息通过数字水印算法嵌入到压缩后的目标i帧中,从而得到水印i帧。具体可以如图4所示:假设目标i帧的图像id为i_id,那么发送端先对该图像id为i_id的原始图像a做帧内压缩(此次压缩是有损压缩,会损失部分人眼不可见的图像数据),即进行帧内预测编码,得到类似jpeg级别的图像b(即压缩后的目标i帧),之后再通过数字水印算法在图像b中嵌入目标信息,并将嵌入有目标信息的图像b(即压缩后的水印i帧)发送至接收端,接收端在对嵌入有目标信息的图像b进行解码之前,先做数字水印提取,提取出对应的目标信息,之后再对提取出了目标信息的该图像b进行解码,这个对目标信息进行提取以及解码的过程都是无损的,即不会损失数据。这样通过上述所述过程接收端获取到的目标信息是没有损失数据的,即目标信息是完整的数据。

b、在目标i帧进行帧内压缩之前嵌入目标信息,得到水印i帧。

发送端除了在目标i帧进行帧内压缩之后嵌入目标信息这种方式之外,还可以在目标i帧进行帧内压缩之前就嵌入目标信息,以得到水印i帧。但由于i帧的图像数据在做帧内压缩时会出现一定的压缩损失,因此若在目标i帧进行帧内压缩之前做数字水印嵌入,有些数字水印算法在帧内压缩之后可能也会损失水印信息,为避免目标信息在做帧内压缩之后出现数据丢失的情况,本申请提出了将目标信息通过数字水印算法(如小波变换水印算法)嵌入到目标i帧的第一频域区域(如低频区域)以得到处理后的目标i帧,之后再对处理后的目标i帧的第二频域区域(如高频区域)做帧内压缩,从而得到水印i帧。由于帧内压缩的算法一般都是处理目标i帧的图像数据的高频数据,只要保证目标信息嵌入到目标i帧的第一频域区域与进行帧内压缩的目标i帧的第二频域区域无交集,那么帧内压缩就不会对压缩前就嵌入到目标i帧的目标信息产生影响,目标信息的数据也不会丢失。具体可以如图5所示,依然以目标i帧的图像id为i_id为例进行说明:发送端可以先对该图像id为i_id的原始图像a做数字水印嵌入,将目标信息嵌入至目标i帧的第一频域区域,得到处理后的图像c,之后,对图像c的第二频域区域做帧内压缩,即进行帧内预测编码,得到类似jpeg级别的嵌入有目标信息的图像c,虽然此次压缩是有损压缩,会损失部分人眼不可见的图像数据,但由于压缩是在第二频域区域进行的,而目标信息是嵌入第一频域区域,第一频域与第二频域没有交集,因此虽然该压缩会损失部分数据,但作为数字水印嵌入的目标信息并不会损失。最后,发送端将嵌入有目标信息的图像c发送至接收端,接收端先对嵌入有目标信息的图像c进行解码,再做数字水印提取,提取出对应的目标信息。这样通过上述所述过程接收端获取到的目标信息也是没有损失数据的,即目标信息是完整的数据。

综上所述,本申请实施例所述的将目标信息通过数字水印算法嵌入目标i帧从而得到水印i帧的方式有多种,这些方式都可以保证在视频码流的压缩编码过程中,不会损失通过数字水印算法嵌入到目标i帧中的目标信息,从而保证了目标信息的数据完整性。

具体的,为便于理解,上述步骤301-步骤303的过程可以如图6所示,需要说明的是,发送端(即第一终端设备)向接收端传输嵌入有目标信息的视频码流可以是采用媒体流通道的p2p方式进行传输,也可以是采用媒体流通道的服务器中转方式进行传输,具体此处不做限定;对视频码流的编码方式可以是硬件编码方式(如在芯片平台上对视频码流进行编码),也可以是软件编码方式(如在编码器sdk上对视频码流进行编码),具体此处不做限定。目标i帧的图像id(如图6中的i_id)在对视频码流进行编码的过程中获取到,且在对视频码流进行编码的过程中对目标i帧的图像做数字水印嵌入,在接收端(即第二终端设备)则是在对视频码流解码的过程中对目标i帧的图像做数字水印的提取,从而获取到该目标信息。

需要说明的是,本申请实施例以及以下所述的实施例中提及的终端设备(包括发送端和接收端)可以是手机、桌上型计算机、笔记本、掌上电脑等具有显示界面的智能设备,也可以是具有显示界面的智能手表、智能手环等智能可穿戴设备,具体此处对终端设备不做限定。

在本申请实施例中,发送端(即第一终端设备)首先获取当前时刻视频码流的目标i帧,并将待传输的目标信息通过数字水印算法嵌入到目标i帧中从而获得水印i帧,最后,将包含有该水印i帧的当前时刻视频码流发送至接收端(即第二终端设备)。在本申请实施例中,由于视频码流是通过媒体流通道从发送端传输至接收端的,因此嵌入到视频码流的目标信息的传输通道也是媒体流通道,并且对目标i帧的图像做数字水印处理,将所要传递的目标信息嵌入到目标i帧的原始图像中,没有额外增加传输的数据量,这样目标信息的传输没有使用额外通道,也没有增加额外的传输流量,解决了节约成本”的问题;其次,使用媒体流通道传输目标信息可保证与视频码流时延一致,从而解决了“用户体验同步”的问题;另外,由于视频码流中的图像,在做压缩编码时都会损失少量数据,这就会导致传输过程中出现丢包,而本申请中的目标信息是通过数字水印算法嵌入到i帧中传输的,因为i帧是关键帧,其图像保留了完整的数据信息,而且常见的视频码流传输抗丢包策冗余传输策略等的核心都在于保证i帧的图像数据不会传丢,因此目标信息嵌入i帧进行传输这样的处理方式解决了“可靠传输”的问题。最后,由于目标信息是嵌入在视频码流中的i帧进行传输的,有多少i帧,就能通过数字水印算法嵌入多少目标信息,对目标信息的数据量没有限制,即实现了目标信息“大量传输”的问题。也就是说,本申请实施例发送端通过数字水印算法将需要传输的目标信息嵌入目标i帧随视频码流发送至接收端,即利用现有的媒体流通道,将需要传递的目标信息实时地、可靠地、完整地传输到接收端,并且没有产生额外流量。

需要说明的是,由于视频码流中的i帧并不是只有一个,依然以当前时刻视频码流中有50帧图像为例进行说明,若这50帧图像中包括有6个i帧,若发送端只在其中一个i帧(即目标i帧)中通过数字水印算法嵌入了目标信息,但当发送端将包含有该嵌有目标信息的目标i帧的视频码流发送至接收端时,接收端能够确定当前时刻视频码流中的这50帧图像中有哪些是i帧(即接收端能确定50帧图像中有6个i帧),但接收端并不能感知这6个i帧的哪个i帧嵌入有目标信息,因此,接收端就需要频繁对每个i帧数据都做数字水印提取这一步操作,若该i帧嵌有目标信息,则接收端通过数字水印提取操作就能提取出该目标信息,若该i帧没有嵌入目标信息,则接收端进行的数字水印操作就是一次多余的操作,这样就会导致整个计算复杂度以及计算量提高,在接收端上带来功耗增加的问题。基于此,在本申请的一些实施方式中,提出了一种接收端按需启动数字水印提取的方法,即接收端获取到发送端发送的当前时刻视频码流,接收端就可以进一步获取到该当前时刻视频码流中所包含的所有i帧,并逐个判断所有i帧中的每一个i帧是否是水印i帧,若确定某个或某几个i帧为水印i帧,则接收端从该水印i帧中提取出嵌入的目标信息。基于此,本申请实施例的一个具体实施方式可以如图7所示:

701、发送端获取当前时刻视频码流的目标i帧。

702、发送端将目标信息通过数字水印算法嵌入目标i帧,得到水印i帧。

在本申请实施例中,步骤701至步骤702与上述图3对应的实施例的步骤301至步骤302类似,此处不予赘述。

需要说明的是,发送端获取到的水印i帧是已经进行了帧内压缩的水印i帧,可以是在在目标i帧进行帧内压缩之后嵌入目标信息,得到水印i帧;也可以是在目标i帧进行帧内压缩之前嵌入目标信息,得到水印i帧。发送端得到水印i帧的方式可以如上述a方式或b方式得到,具体此处不予赘述。

703、发送端更改水印i帧未使用的头标志位,得到更改后的头标志位。

发送端获取到已进行了帧内压缩的水印i帧之后,将确定该水印i帧未使用的头标志位(查阅h.264协议白皮书可知,i帧的图像码流中有部分头标志位未使用,称为未使用的头标志位),并对其未使用的头标志位进行更改,得到更改后的头标志位,该更改后的头标志位用于表示对应的i帧为水印i帧。需要说明的是,由于i帧未使用的头标志位有多个,可以是对这些未使用的头标志位都进行更改,也可以是部分更改,具体此处不做限定。

704、发送端将包含水印i帧(已更改未使用的头标志位)的当前时刻码流发送至接收端。

发送端更改了水印i帧的未使用的头标志位之后,就会将包含该水印i帧(已更改未使用的头标志位)的当前时刻码流发送至接收端。

705、接收端获取当前时刻视频码流的i帧。

接收端获取到发送端发送的当前时刻视频码流,就可以进一步获取到该当前时刻视频码流中所包含的所有i帧。

706、接收端判断i帧未使用的头标志位是否被更改。

接收端获取到当前时刻视频码流的所有i帧后,将判断这些i帧哪些是水印i帧,接收端判断这些i帧哪些是水印i帧的方式可以是依次判断这些i帧未使用的头标志位是否被更改。

707、若某个i帧未使用的头标志位被更改,则接收端确定该i帧为水印i帧,并从该i帧中提取目标信息。

若接收端判断出这些i帧中有某个i帧未使用的头标志位被更改,则接收端可以确定该i帧未水印i帧,即该i帧中嵌入有目标信息,那么接收端就可以从该i帧中通过数字水印提取的方式提取出目标信息。

708、接收端根据目标信息对当前时刻视频码流进行特效渲染。

接收端提取到目标信息之后,将可以根据该目标信息对接收到的当前时刻视频码流进行特效渲染,如目标信息是对用户b的视频图像进行涂鸦的涂鸦信息,那么此时用户b的手机(即接收端)就可以根据该涂鸦信息对该视频图像进行相应的涂鸦,以得到涂鸦渲染后的用户b的视频图像,并在用户b的手机显示界面上进行呈现,增加了互动的趣味性。

在本申请实施例中,发送端获取到水印i帧之后,对水印i帧的未使用的头标志位进行更改,使得接收端接收到当前时刻视频码流之后,仅需通过判断当前时刻视频码流的i帧的未使用的头标志位是否被更改就能快速确定该i帧是否是水印i帧(即哪个i帧嵌入有目标信息),之后,仅需要对该水印i帧进行数字水印提取就可以获取到目标信息,而不再需要对当前时刻视频码流中包含的所有i帧都进行数字水印提取的操作,减少了计算复杂度以及计算量,并且解决了接收端由于频繁进行数字水印提取操作而带来功耗增加的问题。

本申请实施例可以根据上述信息处理方法的示例对终端设备(包括发送端和接收端)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

例如,图8示出了发送端的一种示意图,本申请实施例提供的发送端可以包括:

获取模块801,用于获取当前时刻视频码流的目标i帧;

嵌入模块802,用于将目标信息通过数字水印算法嵌入所述目标i帧,得到水印i帧;

发送模块803,用于将包含有所述水印i帧的所述当前时刻视频码流发送至第二终端设备。

优选的,在本申请的一些实施方式中,所述嵌入模块802具体用于:

对所述目标i帧做帧内压缩,得到压缩后的目标i帧;

将所述目标信息通过数字水印算法嵌入所述压缩后的目标i帧,得到水印i帧。

优选的,在本申请的一些实施方式中,所述嵌入模块802具体还用于:

将所述目标信息通过数字水印算法嵌入所述目标i帧的第一频域区域,得到处理后的目标i帧;

对所述处理后的目标i帧的第二频域区域做帧内压缩,得到水印i帧,所述第一频域区域与所述第二频域区域无交集。

优选的,在本申请的一些实施方式中,发送端还可以包括更多的子单元,以实现更多功能。例如,所述发送端还可以包括:

更改模块804,用于确定所述水印i帧对应的未使用的头标志位,并更改所述未使用的头标志位,得到更改后的头标志位,所述更改后的头标志位用于表示所述更改后的头标志位对应的i帧为水印i帧。

优选的,在本申请的一些实施方式中,所述获取模块801具体用于:

确定当前时刻视频码流的目标i帧的图像id;

根据所述图像id获取所述目标i帧。

此外,图9还示出了接收端的一种示意图,本申请实施例提供的接收端可以包括:

第一获取模块901,用于获取当前时刻视频码流;

第二获取模块902,用于获取所述当前时刻视频码流的i帧;

判断模块903,用于判断所述i帧是否为水印i帧,所述水印i帧为第一终端设备通过数字水印算法嵌入了目标信息的i帧;

提取模块904,用于当所述i帧为水印i帧时,从所述水印i帧中提取所述目标信息。

优选的,在本申请的一些实施方式中,所述判断模块903具体用于:

判断所述i帧未使用的头标志位是否被更改;

若所述未使用的头标志位被更改,则确定所述i帧为水印i帧。

优选的,在本申请的一些实施方式中,所述提取模块904还用于:

根据所述目标信息对所述当前时刻视频码流进行特效渲染。

图8以及图9对应的实施例中的终端设备(包括发送端、接收端)具体的功能以及结构用于实现前述图1至图7中由终端设备分别进行处理的步骤,具体此处不予赘述。

如图10所示,为本申请实施例终端设备的另一示意图,图10中的终端设备即可以作为发送端也可以作为接收端,此处不予赘述。为便于说明,以终端设备为发送端为例进行说明,且图10中仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以包括手机、平板电脑、智能手表、个人电脑等。以终端设备为手机为例进行说明:

手机包括射频(radiofrequency,rf)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、wifi模块1070、处理器1080、电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图10对手机的各个构成部件进行具体的介绍:

rf电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站(包括5g新空口)的下行信息接收后,给处理器1080处理。另外,将涉及上行的数据发送给基站。通常,rf电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用(如:本申请实施例中的微信应用、facetime等视频通话类应用)以及数据处理(如:从当前时刻视频码流中获取目标i帧)。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能、视频播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031、屏下指纹1032以及其他输入设备1033。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031,除了触控面板1031,输入单元1030还可以包括其他输入设备1033。具体地,其他输入设备1033可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。需要说明的是,在一些全面屏手机中,除了触控面板1031,输入单元1030还可以包括屏下指纹1032(例如,光学指纹、超声波指纹等),具体此处不做限定。

显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示屏1041(也可称为显示面板1041),可选的,在本申请实施例中,手机的显示单元1040包括采用lcd屏或oled屏等形式来配置的。进一步的,触控面板1031可覆盖显示屏1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示屏1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示屏1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示屏1041集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏1041的亮度,在本申请实施例中,当目标背景图案的显示属性为亮度时,那么手机就可以通过光传感器获取手机所处环境的环境光亮度,并进一步根据环境光亮度确定目标背景图案的亮度。接近传感器可在手机移动到耳边时,关闭显示屏1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经rf电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了wifi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。

手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

上述图1至图7对应的实施例中终端设备(包括发送端和接收端)的结构可以基于图10所示的结构,图10所示的结构可以对应的执行上述图1至图7中方法实施例中分别由发送端或接收端进行的步骤,此处不再一一赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。

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