发明内容
本发明其中一个发明目的在于提供一种视频降噪方法和***,所述方法和***利用MapReduce***对视频进行降噪处理,无需对视频进行运动或静止的划分,并利用Maptask和Reduce task实现视频降噪,对运动区的降噪效果明显。
本发明另一个发明目的在于提供一种视频降噪方法和***,所述方法和***可以减少对运动区的检测过程,避免因为运动误判带来视频的拖影,同时对视频静止和运动噪声处理一致,可以使得在交底信噪比的环境下具有较好的效果。
本发明另一个发明目的在于提供一种视频降噪方法和***,所述方法和***通过对第一切片和第二切片进行构造,生成对应的键值对的方式分别执行降噪处理,其中所述第一切片和第二切片构造过程中同时考虑行向或纵向、连通域和z型等空间相关性进行遍历构造,可以无需对视频进行静止或运动的划分,从而提高视频降噪的效果。
为了实现至少一个上述发明目的,本发明进一步提供一种视频降噪方法,所述方法包括如下步骤:
获取视频帧,预先建立第一切片构造表,根据所述第一切片构造表生成视频帧的第一切片,并生成所述第一切片键值对;
预先建立第二切片构造表,根据所述第二切片构造表生成视频帧的第二切片,并生成所述第二切片键值对,所述第二切片包含第一切片的部分数据;
根据所述第二切片键值对所述第二切片按照Mapper类进行第一降噪处理,生成第三切片键值对;
将所述第三切片键值对按照Reduce类进行第二降噪处理,生成第四切片键值对;
根据所述第四切片键值对进行反解生成第五切片键值对,根据所述第五切片键值对在显示端恢复生成降噪视频流。
根据本发明其中一个较佳实施例,所述第一切片的构造方法包括:根据预先建立的第一切片构造表以包括行向、列向、连通域扫描型或Z型中的任意一种空间相关性进行遍历,生成所述第一切片。
根据本发明另一个较佳实施例,所述第一切片键值对的构建方法包括:获取视频帧的第一个视频数据点,将所述第一视频数据点坐标作为第一辅助信息kref1值,将所述第一辅助信息kref1作为键名,根据遍历的视频数据点顺序构建第一键值对的键值vref1,进一步根据所述第一辅助信息kref1和键值vref1,生成第一键值对<k1,v1>。
根据本发明另一个较佳实施例,所述第二切片键值对的构建方法包括:根据所述第二切片构造表,将第一个第一切片的地址组合为第二辅助信息kref2值并作为所述第二键值对的键名,并根据所述第一切片的遍历顺序取对应数据值构建第二键值对的键值vref2,进一步根据所述第二辅助信息kref2和键值vref2,构建第二键值对<k,v>。
根据本发明另一个较佳实施例,所述第三切片键值对的构造方法包括:对所述第二切片键值对的键值v根据变换基长度依次和对应的变换基进行相乘求和,得到第一变换基数据处理结果vTx,根据所述第一变换基数据处理结果vTx进行重排处理,所述重排处理包括将不同键值v数据段的第一变换基数据处理结果进行合并得到第二变换及数据处理结果vTx2,将所述第二变换基数据处理结果vTx2按照各个变换基的长度依次和各个变换基相乘求和得到第二切片的第三变换基数据处理结果vT。
根据本发明另一个较佳实施例,所述第三切片键值对的构建方法还包括:根据所述变换基的变换特性,从所述第三变换基数据处理结果得到的第三变换基数据处理结果vT中提取特定个数的数据作为kT,其中所述kT和所述第三变换基数据处理结果vT组成键值对<kT,vT>,对所述kT设置键的位宽,默认超出对应位宽处理方式为上限截断。
根据本发明另一个较佳实施例,设置第三切片键值对的组内阈值和组内数目上限阈值,定义所述第三切片键值对<km,vm>,其中所述第三切片键值对中的键名取值范围为km=[km0,kmid],其中
其中kvthr为组内阈值,kmid为第三切片的细化id;其中vm=[k,v
T,count],其中count为第二切片的数目,k为第二切片键名,V
T为对应第二切片键值的变换结果,count为设计的第三切片组内最大键值对数目。
根据本发明另一个较佳实施例,根据所述第三切片构造第四切片的方法包括如下步骤:根据所述第三切片键值对<km,vm>提取count个第二切片构建键值对<k,vT>,设定强度降噪百分比Nper,计算键值vT绝对值总和vTsum,并计算累加和,当所述累加和大于等于(Nper*vTsum)时,将此时的vT作为vTn进行构造,将所述vTn根据变换基Q相乘求和,得到第四切片的第一变换基数据处理结果vQx,并根据所述第四切片的第一变换基数据处理结果vQx重排后得到第四切片的第二变换基数据处理结果vQx2,根据所述第四切片的第二变换基数据处理结果按照变换基Q长度依次和各个变换基相乘求和得到第四切片的第三变换基数据处理结果vQ,其中所述第四切片的第三变换基数据处理结果vQ为所述第四切片的键值vr=vQ,而第四切片的键名为kr=k。
为了实现至少一个上述发明目的,本发明进一步提供一种视频降噪***,所述***执行上述一种视频降噪方法。
本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述一种视频降噪方法。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
请结合图1-图8,本发明公开了一种视频降噪方法和***,所述方法主要包括如下步骤:首先获取视频的每一帧的图像,构建第一切片构造表和第二切片构造表,其中所述第一切片构造表生成的第一切片大小为8*8或16*16大小的视频切片数据,而所述第二切片构造表生成的第二切片包含大小为2*2或4*4大小的第一切片图像数据。需要说明的是,所述第一切片和第二切片的大小可以根据视频帧大小设置,本发明对切片的具体大小不再具体限制。在完成所述第一切片和第二切片的构造后,进一步生成所述第一切片和第二切片的键值对,根据所述第二切片的键值对进一步生成第三切片键值对,将所述第三切片键值对进行降噪处理,生成降噪后的第四切片键值对,将所述第四切片键值对根据第二切片构造表反解第四切片键值对生成第五切片键值对,并进一步根据第一切片构造表反解所述第五切片键值对输出对应降噪后的视频流。
具体而言,所述视频降噪需要借用MapReduce***,其中所述MapReduce***可以识别根据所述第一切片和第二切片生成的对应的键值对。其中所述第一切片的构造方法包括:预先建立第一切片构造表,根据所述第一切片构造表按照包括但不仅限于行向、列向、连通域、z型中的任意一种方式对所述视频帧进行扫描生成对应的第一切片数据,其中所述第一切片构造方法还可以包括:输入视频帧的灰度数据,RGB数据和yuv数据,使得所述第一切片适应不同格式的视频数据进行处理。进一步的,所述第一切片构造表可以根据所述第一切片中第一个视频数据点作为辅助信息kref1值,并进一步根据遍历方式和遍历顺序生成所述第一切片的vref1值,其中vref1值表示第一切片的位置数据,所述辅助信息为切片构造的第一个数据坐标,根据所述辅助信息kref1值和vref1,构建所述第一切片的键值对<k1,v1>。将所述键值对保存到Hbase***中,备用输出***反解。其中所述第一切片的构造还可以包括重复的视频帧。
所述第二切片的构造方法包括:预先构建第二切片构造表,根据所述第二企切片构造表按照包括但不仅限于行向、列向、连通域、z型中的任意一种方式对所述视频帧进行扫描生成对应的第二切片数据,其中根据所述第二切片包含的第一切片构造序列作为所述第二切片的辅助信息kref2,并进一步根据对所述第二切片的扫描方式和扫描顺序生成第二切片的vref1值,进一步根据所述第二切片的辅助信息kref2和第二切片的vref1值构建所述第二切片的键值对<k,v>,将所述第二切片的键值对<k,v>保存于Hbase数据库,备用输出***反解。也就是说,MapReduce***输入数据为所述第二切片构造结果的键值对<k,v>。所述第二切片构造方法还包括:输入视频帧的灰度数据,RGB数据和yuv数据,以使得所述第二切片适应于不同格式的视频数据,并且所述第二切片数据可以包含重复的第一切片数据。
在生成所述第二切片的键值对<k,v>后,根据所述第二切片键值对<k,v>输入到降噪***中进行降噪处理,其中所述降噪处理的方法包括:对输入的所述第二切片键值对<k,v>采用Mapper类进行第一降噪处理,其中所述第一降噪处理的过程包括:对所述第二切片键值对<k,v>重新进行Mapper类构造生成第三切片键值对<km,vm>,其中所述Mapper类构造第三切片键值对<km,vm>包括对输入<k,v>的键值v进行数据处理得到vT,其中所述第三切片键值对Mapper类的输出值vm的格式组成包括原键名k和上述数据处理结果vT,所述Mapper类造第三切片键值对<km,vm>还包括对输入的第二切片键值k进行更新得到kT。其中对所述第二切片键值k进行更新得到kT的方法包括对数据处理得到的vT根据信息关注度高低进行排序,其中所述信息关注度高低为上述变换基特征的重要程度,高的排前,位宽设置更多,并根据所述信息关注度高低设置各自的键位宽度,以及所述第三切片键值对<km,vm>更新包括添加合并操作,其中所述添加合并操作包括在已有的vTi中添加新增的vTj。
本发明进一步对所述第三切片键值对<km,vm>采用Reduce类进行第二降噪操作,其中所述第二降噪操作包括:通过Reduce类对所述第三切片键值对<km,vm>重新构造键值对<kr,vr>,其中所述键值对<kr,vr>为第四切片键值对,所述第四切片键值对<kr,vr>构建方法包括:通过Reduce类对输入的第三切片键值对<km,vm>的vm值进行数据处理,得到vTr。以及通过Reduce类计算针对vm提取对应vTi数据,进行vTi间数据处理得到vTr;对vm提取对应ki数据,其中i范围为1~vnummax;其中vnummax为对应的第三切片构造组内包含的第二切片数目,根据ki恢复kr,vTri恢复vr;<kr,vr>更新还包括合并处理,即在已有vri内按合并规则合并vrj。上述第一降噪和第二降噪操作均可以通过Map task和Reduce task执行,在现有技术基础上,本发明对如何恢复和合并处理的原理不再赘述,本领域技术人员可以根据数据处理的需要进行实现。
当获取所述第四切片键值对<kr,vr>时,根据所述第二切片构造表对所述第四切片键值对<kr,vr>进行反解,所述反解的数据为第五切片数据,其中所述第五切片大小和第二切片大小相同,输出***进一步根据所述第一切片构造表反解所述第五切片数据生成降噪后的视频流。若第五切片数据存在重复的构造,则降噪***可以进一步采用包括但不仅限于均值处理、高斯处理进行解重操作,本发明对如何进行解重不再详细描述。
为了更好的说明本发明的技术效果,本发明提供如下具体实施例说明上述技术流程:
请参考图5,左上角的方格整体表示输入视频数据,不同数字表示其不同分区数据,右上角表示输出第一切片数据,下方表示第二切片数据;最终第二切片数据可采取TextInputFormat格式进行<k,v>构造,即行地址偏移为k,行数据为v;在本实施例中,如图6所示,以8*8的大小对视频帧进行扫描构造共len1=64像素点的第一切片数据;如图7所示,以4*4大小对视频帧进行扫描构造共l en2=64*16=1024像素点的第二切片数据,其中扫描的索引为对应第一、第二切片构造表,一般其不同于切片数据存储,即其键值<kref,vref>由hbase***重新分配计算。
进一步对第二切片的v值进行第三切片键值对的构造,首先需要构建变换基T:T1-T8:
T1=[362,362,362,362,362,362,362,362];
T2=[225,460,460,225,-225,-460,-460,-225];
T3=[583,412,-412,-583,-86,86,-86,86];
T4=[-86,86,-86,86,583,412,-412,-583];
T5=[724,-724,0,0,0,0,0,0];
T6=[0,0,724,-724,0,0,0,0];
T7=[0,0,0,0,724,-724,0,0];
T8=[0,0,0,0,0,0,724,-724];
上述变换基的长度,个数及数值均取决于第一切片大小对应降噪***的需求,本发明仅举例说明,根据需要可以对所述变换基做任意改变。
对于第二切片数据,根据所述第二切片数据中的键值v,按照变换基长度依次和各个变换基相乘求和,得到第一变换基数据处理结果vTx,根据所述第一变换基数据处理结果vTx进行重排处理,所述重排处理包括将不同键值v数据段的第一变换基数据处理结果进行合并得到第二变换及数据处理结果vTx2,将所述第二变换基数据处理结果vTx2按照各个变换基的长度依次和各个变换基相乘求和得到第二切片的第三变换基数据处理结果vT。其中请参考图7显示的数字7xy分别表示第x组操作数据对应的第y个数据类型。
进一步根据所述第三变换基数据处理结果v
T进行k
T变换基T1~T8的变换特性,该实施例取vT中第1,2,3,9,17等5个数据作为k
T组成,且依次设置其对应键位宽分别为[32,10,6,10,6]bit,且默认超出对应位宽处理方式为上限截断,其中所述上限截断操作的举例说明包括:根据v
T的第1个数据设置的键位宽32b it,即其能表示的最大值为2
31-1,那实际这个数据可能超过2
31-1,则直接截断记为2
31-1即可。进一根据键值对<k
T,v
T>构造<km,vm>,其中所述第三切片键值对中的键名取值范围为km=[km0,kmid],其中
其中kvthr为组内阈值,kmid为第三切片的细化id;其中vm=[k,v
T,count],其中count为第二切片的数目,k为第二切片键名,V
T为对应第二切片键值的变换结果,count为设计的第三切片组内最大键值对数目。若count大于kvnumthr,当前<km,vm>不再更新,kmid递增循环。
根据所述第三切片键值对构造第四切片键值对的方法包括:设置变换基Q:
Q1=[362,362,512,0,724,-124,0,124];
Q2=[362,362,512,0,-724,-124,0,124];
Q3=[362,362,-512,0,124,724,-124,0];
Q4=[362,362,-512,0,124,-724,-124,0];
Q5=[362,-362,0,512,0,124,724,-124];
Q6=[362,-362,0,512,0,124,-724,-124];
Q7=[362,-362,0,-512,-124,0,124,724];
Q8=[362,-362,0,-512,-124,0,124,-724];
根据所述第三切片键值对<km,vm>提取count个第二切片构建键值对<k,vT>,设定强度降噪百分比Nper,比如所述强度降噪百分比可以设置为80,计算键值vT绝对值总和vTsum,并计算累加和,当所述累加和大于等于(Nper*vTsum)时,将此时的vT作为vTn进行构造,vtn表示选取的符合降噪比的数据,表示是vT依次累加,如果满足累加和大于等于(Nper*vTsum),则后续vT置为0,不需要进行后续第四切片构造,而累加和小于(Nper*vTsum)的vt记为vtn(不止一个,意思是满足这个范围内的所有vT),对vtn进行第四切片构造,即进行Q变换基进行几次变换即可得到vtr。需要说明的是上述变换基T和变换基Q互为正反变换基。
将所述vTn根据变换基Q长度依次和对应的变换基相乘求和,得到第四切片的第一变换基数据处理结果vQx,并根据所述第四切片的第一变换基数据处理结果vQx重排后得到第四切片的第二变换基数据处理结果vQx2。
进一步根据所述第四切片的第二变换基数据处理结果vQx2按照变换基Q长度依次和各个变换基相乘求和得到第四切片的第三变换基数据处理结果vQ,其中将所述第四切片的第三变换基数据处理结果vQ作为所述第四切片的键值vr,而第四切片的键名为kr=k,因此可以构造得到所述第四切片键值对<kr,vr>。值得一提的是,本发明中的两个变换基仅仅是举例说明。
也就是说,上述第三切片的构造在降噪***的mapper类实现,所述第四切片的构造在降噪***的Reduce类实现,进一步将构造的第四切片键值对根据所述第二切片构造表反解后得到第五切片数据,进一步将所述第五切片数据根据第一切片构造表反解后得到最终的降噪视频流。本发明并未对反解操作进行改进,反解操作为只是根据第一二切片构造表反向解出视频流,属于本领域的常规技术手段,本发明对此不再详细赘述。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。