掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及视频处理技术领域,尤其涉及一种视频处理方法、计算机设备和存储介质。

背景技术

随着网络和信息技术的飞速发展,付费电视频道、付费网络视频、付费讲座等视频越来越多,如何保护付费的视频内容不被非法传播,成为内容提供商的头等大事。

现在电影是增加数字水印,增加肉眼看不到的独一无二的码,通过特殊的解码器读出独一无二的码,这个特殊的码就识别出是哪个影院、哪个厅、哪个时间盗录的,这种制作成本高,并且和付费电视频道等保护视频内容方向差别很大,就以付费电视频道来说,内容提供商关注的是内容是否被保护,非法传播时能够找出是谁传播出去的,但是现有技术需要特殊的播放器或解码器,不利于保护视频的合法权益,容易出现劣币驱逐良币的极端状况,影响视频制作者的市场效益,而不利于社会技术的健康发展。

基于现有技术的上述技术问题,本申请的发明人提出一种视频编码方法、计算机设备及存储介质。

发明内容

本申请提供了一种视频处理方法、计算机设备和存储介质,以对视频进行处理,从而实现对视频产品的有效保护,维护市场的公平竞争,保护制作者的合法权益。

第一方面,本申请实施例提供了一种视频处理方法,包括:

获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧;

确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧;

将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。

第二方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器和处理器;

所述存储器用于存储计算机程序;

所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现上述的视频处理方法。

第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述的方法。

本申请实施例提供了一种视频处理方法、计算机设备和存储介质,通过获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧;确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧;将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。本方法处理后的视频进行解码,根据指纹码流嵌入的指纹信息就知道谁是非法传播者,从而实现对视频产品的有效保护,维护市场的公平竞争,保护制作者的合法权益。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请实施例的公开内容。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种视频处理方法的流程示意图;

图2是指纹图像的示意图;

图3A-3F是对指纹码流解码时显示指纹信息的示意图;

图4是通过点阵设置像素点的RGB值的示意图;

图5是一实施方式中视频处理方法的流程示意图;

图6是本申请实施例提供的一种计算机设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,图1是本申请实施例提供的一种视频处理方法的流程示意图。所述视频处理方法可以应用在计算机设备中,如终端设备或服务器中,用于对视频进行设置数字指纹等过程;其中,终端设备可以是有线电视机顶盒、网络电视机顶盒、手机、平板电脑、笔记本电脑、台式电脑、视频拍摄装置、视频编码装置等电子设备;服务器可以为独立的服务器,也可以为服务器集群。

示例性的,计算机设备可以包括硬件编码器和/或软件编码器,例如包括mpeg2、H263、H264、avs+,vc-1、H265、H266、avs2、avs3等编码器,可以采用的框架为帧内预测、帧间预测、变换、量化对视频图像进行编码。

为了叙述的方便,本申请使用复杂度较高的avs2编码器、编码数据为yuv420p10le格式进行举例说明。

如图1所示,本申请实施例的视频处理方法包括步骤S110至步骤S130。

S110、获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧。

在本技术领域中,采用帧内预测编码的帧简称为I帧;采用帧间预测编码的帧则包括有P帧和B帧,其中B帧,有可以参考的B帧和非参考B帧,P帧可以参考前向帧,而B帧可以是只参考前向帧、只参考后向帧、参考前后双向帧这3种情况。针对I帧、P帧、B帧,每帧均可以划分为多个条带(slice),也可以只有一个slice,而每个slice可以划分为W(宽)×H(高)的宏块/LCU,然后对每一个宏块/LCU按顺序编码。例如,在mpeg2、H263、H264、avs+编码器中,W×H可以为16×16,而在H265、avs2等编码器中W×H最大可以为64×64。可以理解的,宏块(MB)为261,263,avs等编码器中的编码单位,LCU(最大编码单元)为AVS2等编码器中的编码单位。

S120、确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧。

具体的,所述非参考B帧为数据不可被其他帧参考、引用的帧。

在一些实施方式中,可以通过以下步骤确定视频中的非参考B帧:解析所述视频的码流数据,以得到多帧数据;依码流顺序从所述多帧数据查找是否存在视频序列起始码,其中,若存在视频序列起始码,然后如果确定存在非参考B帧并执行下一步;若不存在视频序列起始码,再找下一帧是否存在视频序列起始码,直到找到视频序列起始码为止;然后如果确定不存在非参考B帧并停止。

举例而言,首先得到avs2编码器的码流数据的序列(sequence)信息。其中,需要解析码流,得到一帧帧数据,然后顺序读取一帧,在码流数据中查找是否有0x000001B0(avs2编码器视频序列起始码),如果没有找到,就再继续读取下一帧继续查找,直到找到为止;如果一直没找到avs2编码器视频序列起始码,则说明所述码流不是avs2码流;如果找到了avs2编码器视频序列起始码,就进行码流数据分析,解析其中的sequence头部信息,得到profile_id(档次),level_id(级别),progressive_sequence(逐行序列),horizontal_size(水平尺寸),vertical_size(垂直尺寸),chroma_format(色度格式),sample_precision(样本精度),frame_rate_code(帧率代码),sample_adaptive_offset_enable_flag(样值偏移补偿允许标志),adaptive_loop_filter_enable_flag(自适应修正滤波允许标志),cross_slice_loopfilter_enable_flag(跨条带环路滤波),lcu_size(最大编码单元尺寸),以及参考帧参数:如refered_by_other_flag(被参考标志),num_of_reference_picture(参考图像数量),num_of_removed_picture(待移出图像数量)等以及其他参数。

示例性的,根据参考帧参数:如refered_by_other_flag(被参考标志)可以确定当前的B帧是否为非参考B帧。

如果找到了avs2编码器视频序列起始码,再在所述avs2码流序列寻找满足替换为指纹码流的条件的非参考B帧。

S130、将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。

指纹码流嵌入有指纹信息,指纹信息例如可以包括以下至少一种:付费电视频道CA卡号、付费网络视频和/或付费讲座使用的用户名,当然也不限于此。对于包含所述指纹码流的视频,可以根据指纹码流中的指纹信息确认所述视频的内容提供商,就知道谁是非法传播者,从而实现对视频产品的有效保护,维护市场的公平竞争,保护制作者的合法权益。例如,通过对指纹码流解码就可以把指纹码流嵌入的指纹信息编码显示出来,通过解码得到的指纹信息,查询对应的付费电视频道CA卡号、付费网络视频、付费讲座使用的用户名,加密的内容提供商就可以了解到进行非法传播视频内容的提供商者。

在一些实施方式中,嵌入有指纹信息的指纹码流可以由指纹图像编码得到。具体的,可以通过对指纹图像进行编码,得到所述指纹码流。

示例性的,如图2所示,区域ABCD为指纹图像,EFGH中除区域ABCD外的其余部分称为非指纹区域的图像,非指纹区域的图像为根据horizontal_size和vertical_size虚拟的图像,非指纹区域的图像是引用参考帧的图像数据。如图3A-3F为在不同情况下,对指纹码流解码时显示的指纹信息的示意图。

相对应地,本实施例在判断B帧是否可以被代替时,如果这个B帧不是不可参考的非参考B帧,将退出,进行下一帧判断;其中,非参考B帧,是这个B帧可以被代替的条件。

示例性的,若非参考B帧的数据部分的数据量(bytes)(即非参考B帧的码流数据的数据量减去所述非参考B帧的头部数据量),大于等于所述指纹码流的数据量,则判定所述非参考B帧可以被代替,则将所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。

非参考B帧被替换为指纹码流后,非参考B帧码流数据的格式如下:首先是所述非参考B帧本来的头部,然后是指纹码流的码流,最后是填充0x00数据,填充0x00字节的数目为所述非参考B帧的数据部分的数据量减去所述指纹码流的数据量。

在一些实施方式中,可以根据预设的周期确定需要替换的非参考B帧。例如,每隔0.5分钟、一分钟、两分钟或其他周期的时长,或者根据客户要求进行动态设置,确定一个非参考B帧为需要替换的非参考B帧,以及将该非参考B帧替换为嵌入有指纹信息的指纹码流。当然,也可以随机设置非周期的方式,在此不作限定。

根据预设的指纹信息生成指纹图像,所述指纹图像是根据预设的指纹信息生成的。指纹信息可以为但不限于付费电视频道CA卡号、付费网络视频、付费讲座使用的用户名,容易理解的是,这些指纹信息可以是内容提供商指定的特定字符串或图形;如图4所示,举例而言,在使用avs2编码时,把数字、字母通过点阵设置像素点的RGB值,然后把RGB值转换为10bit 420的指纹图像;把转换后的10bit 420指纹图像宽高都放大为avs2的最大LCU(最大编码单元)的倍数。同时,指纹图像在指纹码流解码所得图像的左上角的位置(x,y),x和y都是最大LCU(最大编码单元)的倍数。

在一些实施方式中,所述指纹码流中对应预设指纹区域的位置为所述指纹图像的码流,所述指纹码流中指纹图像外的位置为预设码流,所述预设码流用于在所述指纹码流解码时根据目标帧中对应位置的图像生成所述指纹码流解码后对应位置的图像;其中,所述目标帧为需要替换的非参考B帧的参考帧。

示例性的,在对指纹码流进行解码时,指纹图像的码流解码得到如图3A-3F中指纹区域的图像,指纹码流中指纹图像外的位置解码时,根据目标帧中对应位置的图像生成所述指纹码流解码后对应位置的图像,即非指纹区域的图像。示例性的,非指纹区域的图像根据需要替换的非参考B帧的前向参考帧和/或后向参考帧确定。

示例性的,对所述指纹图像进行编码时,所述指纹图像对应宏块/LCU的编码方式为帧内编码类型。以便对指纹图像的码流解码得到指纹图像。

示例性的,所述指纹码流中指纹图像外的位置写入预设码流,所述预设码流用于指示指纹图像外的宏块/LCU的编码方式为零残差的帧间编码类型,以便在解码时根据目标帧中对应位置的图像生成所述指纹码流解码后对应位置的图像。

在一些实施方式中,所述对指纹图像进行编码,得到所述指纹图像的码流,包括以下步骤:基于需要替换的非参考B帧编码时使用的编码参数,对所述指纹图像进行编码,得到所述指纹图像的码流;在所述指纹码流中指纹图像外的宏块/LCU写入预设码流,所述预设码流用于在所述指纹码流解码时根据目标帧中对应位置的图像生成所述指纹码流解码后对应位置的图像;所述目标帧为需要替换的非参考B帧的参考帧。

示例性的,所述基于需要替换的非参考B帧编码时使用的编码参数,对所述指纹图像进行编码,得到所述指纹图像的码流,包括:对需要替换的非参考B帧编码时使用的编码参数进行预设调整,得到所述指纹图像的码流;基于预设调整后的编码参数,对所述指纹图像进行编码;所述预设调整用于使得指纹图像进行的编码和与所述指纹码流中指纹图像外的宏块/LCU的编码互不影响。

通过对编码参数进行预设调整,使得指纹区域内的编码和指纹区域外的编码互不影响,这样不管视频内容如何变化,预测模式的预测值为不变的像素值,解码就可以把嵌入具有唯一性的指纹图像显示出来,根据唯一性的指纹,这个指纹可以包括唯一性的付费电视频道CA卡号、付费网络视频、付费讲座使用的用户名的信息,就知道是谁非法传播需要保护、收费的视频内容。

本申请实施例提供的视频处理方法,通过获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧;确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧;将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。本方法处理后的视频进行解码,根据指纹码流嵌入的指纹信息就知道谁是非法传播者,从而实现对视频产品的有效保护,维护市场的公平竞争,保护制作者的合法权益。

在一些实施方式中,请结合前述实施方式参阅图5,本实施例可以包括如下步骤S210-S260。

本实施例的视频编码可以为mpeg2、H263、H264、avs+,vc-1、H265、avs2等,采用的框架为帧内预测、帧间预测、变换、量化,视频图像一帧帧进行编码,其中,有些帧采用帧内预测编码,简称为I帧编码;有些帧采用帧间预测编码,有P帧和B帧编码,P帧是可以参考前向帧的编码;B帧是可以只参考前向帧、只参考后向帧、参考前后双向帧3种情况,而IPB帧,每帧可以划分为多个slice,也可以只有一个slice,每个slice,可以划分为W(宽)×H(高)的宏块/LCU,然后一个个宏块/LCU顺序编码,在mpeg2、H263、H264、avs+编码器中,W×H为16×16;而在H265、avs2中W×H最大可以为64×64。

本实施例的方法适用于各种编码器,按本发明的思路可以快速的将非参考B帧替换为嵌入有指纹信息的指纹码流,为了叙述的方便,本发明使用复杂度较高的avs2编码器,编码数据为yuv420p10le格式来说明将一个avs2的非参考B帧替换为嵌入有指纹信息的指纹码流。

S210.得到这个avs2码流的序列(sequence)头部信息。

举例而言,首先得到avs2编码器的码流数据的序列(sequence)信息。其中,需要解析码流,得到一帧帧数据,然后顺序读取一帧,在码流数据中查找是否有0x000001B0(avs2编码器视频序列起始码),如果没有找到,就再继续读取下一帧继续查找,直到找到为止;如果一直没找到avs2编码器视频序列起始码,则说明所述码流不是avs2码流;如果找到了avs2编码器视频序列起始码,就进行码流数据分析,解析其中的sequence头部信息,得到profile_id(档次),level_id(级别),progressive_sequence(逐行序列),horizontal_size(水平尺寸),vertical_size(垂直尺寸),chroma_format(色度格式),sample_precision(样本精度),frame_rate_code(帧率代码),sample_adaptive_offset_enable_flag(样值偏移补偿允许标志),adaptive_loop_filter_enable_flag(自适应修正滤波允许标志),cross_slice_loopfilter_enable_flag(跨条带环路滤波),lcu_size(最大编码单元尺寸),以及参考帧参数:如refered_by_other_flag(被参考标志),num_of_reference_picture(参考图像数量),num_of_removed_picture(待移出图像数量)等以及其他参数。

示例性的,根据参考帧参数:如refered_by_other_flag(被参考标志)可以确定当前的B帧是否为非参考B帧。

如果找到了avs2编码器视频序列起始码,再在所述avs2码流序列寻找满足替换为指纹码流的条件的非参考B帧。

S220.根据avs2码流的序列(sequence)头部信息,确定指纹码流对应图像的宽高、位深、色度空间,以及根据预设的指纹位置(如指纹图像在指纹码流对应图像中的左上角坐标)确定指纹码流中对应预设指纹区域的位置。

例如,根据avs2码流的序列(sequence)头部信息,确定指纹码流对应图像的宽高为最大LCU(最大编码单元)/宏块的倍数,根据宽高转换为420P-10bit yuv。

由于付费电视频道CA卡号、付费网络视频、付费讲座使用的用户名,对内容提供商是唯一性的一串数字和字母,把数字、字母通过点阵设置像素点(见图4)的RGB值,然后把RGB值转换为10bit-420-YUV;特别需要注意的是,如果点阵后的10bit-420-YUV宽高不是最大LCU(最大编码单元)/宏块的倍数,需要对点阵进行放大,达到宽高都是最大LCU(最大编码单元)/宏块的倍数。

S230.对指纹图像进行avs2编码,得到指纹码流。

对所述指纹图像进行编码时,所述指纹图像对应宏块/LCU的编码方式为帧内编码类型;所述指纹码流中指纹图像外的位置为预设码流,所述预设码流用于指示指纹图像外的宏块/LCU的编码方式为零残差的帧间编码类型。可以理解的,非指纹区域的宏块/LCU的编码方式为零残差的非帧内编码类型,直接写入编码需要的语法元素,得到指纹码流数据部分。

在一些实施方式中,通过对编码参数进行调整,适配指纹图像内和指纹图像外互不影响,指纹图像区域的预测数据,不管视频内容如何变化,都不会改变;对指纹图像区域进行编码,解码指纹图像区域的码流,就可以把嵌入的指纹信息显示出来,根据该指纹信息提就知道谁非法传播视频内容了。效果见图3A-3F所示。

S240.检查视频是否有非参考B帧;

mpeg2、H263、H264、avs+等编码的B帧,不会被其他帧参考;H265、avs2的B帧,有可以被参考的B帧和不可参考的B帧,只有不可参考的B帧,即非参考B帧,才可以被替换。

S250.判断帧是否可以被代替;

如果这帧不是非参考B帧,将退出,进行下一帧判断;如果这帧是非参考B帧,则这帧可以被代替。

示例性的,若非参考B帧的数据部分的数据量(bytes)(即非参考B帧的码流数据的数据量减去所述非参考B帧的头部数据量),大于等于所述指纹码流的数据量,则判定所述非参考B帧可以被代替,则将所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。

非参考B帧被替换为指纹码流后,非参考B帧码流数据的格式如下:首先是所述非参考B帧本来的头部,然后是指纹码流的码流,最后是填充0x00数据,填充0x00字节的数目为所述非参考B帧的数据部分的数据量减去所述指纹码流的数据量。

S260.根据设置,定义替换周期并返回执行;比如根据需要,可以间隔10秒、1分钟等进行一次步骤S250,达到嵌入指纹信息而又不过于频繁的目的。

请结合上述实施例参阅图6,图6是本申请实施例提供的计算机设备600的示意性框图。

计算机设备600例如可以为终端设备或服务器,其中,终端设备可以是有线电视机顶盒、网络电视机顶盒、手机、平板电脑、笔记本电脑、台式电脑、视频拍摄装置、视频编码装置等电子设备;服务器可以为独立的服务器,也可以为服务器集群。

该计算机设备600包括处理器601和存储器602。

示例性的,处理器601和存储器602通过总线603连接,该总线603比如为I2C(Inter-integrated Circuit)总线。

具体地,处理器601可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。

具体地,存储器602可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。

其中,所述处理器601用于运行存储在存储器602中的计算机程序,并在执行所述计算机程序时实现前述的视频处理方法。

示例性的,所述处理器601用于运行存储在存储器602中的计算机程序,并在执行所述计算机程序时实现如下步骤:

获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧;

确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧;

将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。

本申请实施例提供的计算机设备的具体原理和实现方式均与前述实施例的视频处理方法类似,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述实施例提供的视频处理方法的步骤。

其中,所述计算机可读存储介质可以是前述任一实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。

本申请实施例提供的计算机设备和计算机可读存储介质,通过获取视频,所述视频包括I帧、B帧和P帧,其中所述B帧的参考帧包括前向帧和/或后向帧;确定所述视频是否存在非参考B帧,所述非参考B帧为未被所述视频中的其他帧参考的B帧;将至少一个所述非参考B帧替换为嵌入有指纹信息的指纹码流,以得到包含所述指纹码流的视频。本方法处理后的视频进行解码,根据指纹码流嵌入的指纹信息就知道谁是非法传播者,从而实现对视频产品的有效保护,维护市场的公平竞争,保护制作者的合法权益。

应当理解,在此本申请中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。

还应当理解,在本申请和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 视频编码、视频数据处理方法、装置、计算机设备和存储介质
  • 视频序列处理方法、视频序列处理装置、电子设备及计算机可读存储介质
技术分类

06120112619432