一种基于h.264或h.265的前背景分离编码设备和方法

xiaoxiao2020-10-23  9

一种基于h.264或h.265的前背景分离编码设备和方法
【技术领域】
[0001]本发明涉及编解码技术领域,尤其涉及基于H.264或H.265的前背景分离的编码设备和方法。
【背景技术】
[0002]在视频监控中,对有些场景,尤其是室内场景,大多时候是没有运动前景的。而对于视频监控来说,其实主要是关心变化的前景,比如经过的行人、车辆、变化的灯光等。没有变化前景,即静止背景的场景,则对视频监控是没有意义的。对这样的场景编码并将数据存储到硬盘上,不仅仅是对编码器资源的浪费,也是对存储资源的浪费。如果编码后的数据需要通过网络传输到后端的存储设备,则对网络带宽也是一种浪费。
[0003]现有技术中给出一种解决上述问题的方案。请参申请号为CN201010553038,名称为“一种视频编解码方法和装置”的中国专利。该专利将视频图像分割出前景图像和背景图像,对前景图像进行编码,在背景更新时建立背景模型并进行编码。该方案采用前景分割算法从背景中分离出前景,对不发生变化的背景仅传送一次,而对包含重要内容的前景区域进行编码传输,从而节省编码器的编码资源,且在视频传输时降低了带宽占用率;后端对传输的视频流进行存储时显然也节省了存储空间。
[0004]H.264、H.265是现在很流行的一种视频编解码技术。其采用很多新的压缩技术,具有很高的压缩效率和网络适应性。但是如何运用H.264和H.265的压缩编解码技术对视频图像进行前景背景的编解码,以极大的提高视频编解码效率、极大的节省网络带宽和减少存储资源是需要考虑的问题。

【发明内容】

[0005]有鉴于此,本发明提供一种基于H.264或H.265的前背景编码设备和方法。
[0006]其中该编码设备包括:前背景分离模块,用于对一帧图像进行前背景分离;背景编码判断模块,用于对前背景分离模块分离出的背景进行编码与否的判断;背景编码模块,用于对背景编码判断模块判断出需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码;前景编码模块,用于对前背景分离模块分离出的前景基于H.264或H.265的条带编码模式进行编码;码流发送模块,用于发送编码后的前景和背景码流。
[0007]优选地,背景编码判断模块对背景进行编码与否的判断包括:判断该背景是否为强制编码背景,或是否为存在局部变化的背景,或是否为存在全局变化的背景,如果是,则该背景需要进行编码。
[0008]优选地,背景编码模块对需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码包括:当该背景为强制编码背景时,基于H.264或H.265的帧内编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在局部变化时,基于H.264或H.264的帧间条带编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在全局差异时,基于H.264或H.265的帧间编码模式对该背景进行编码。
[0009]优选地,当该背景不为强制编码背景且存在全局差异时,进一步判断该全局差异对应的全局差异值是否小于预设的全局门限差异值,如果是,则基于H.264或H.265的帧间编码模式执行对该背景的编码,否则基于H.264或H.265的帧内编码模式执行对该背景的编码。
[0010]优选地,所述图像为监控视频图像,所述背景编码模块将编码后的背景存储在缓存中,当用户点播实况视频图像时,码流发送模块从缓存中获取最新的背景码流掺入到前景码流中发送给后端设备,所述背景码流为基于H.264或H.265的帧内编码模式编码的I帧码流,或该I帧码流和基于H.264或H.265的帧间编码模式编码的P帧码流的融合,或该I帧码流和基于H.264或H.265的帧间条带编码模式编码的P条带码流的融合,或者该I帧码流、P帧码流、P条带码流的融合。
[0011]该基于H.264或H.265的前背景编码方法,包括:对一帧图像进行前背景分离;对分离出的背景进行编码与否的判断;对判断出需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码;对分离出的前景基于H.264或H.265的条带编码模式进行编码;发送编码后的前景和背景码流。
[0012]优选地,对背景进行编码与否的判断包括:判断该背景是否为强制编码背景,或是否为存在局部变化的背景,或是否为存在全局变化的背景,如果是,则该背景需要进行编码。
[0013]优选地,对需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码包括:当该背景为强制编码背景时,基于H.264或H.265的帧内编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在局部变化时,基于H.264或H.264的帧间条带编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在全局差异时,基于H.264或H.265的帧间编码模式对该背景进行编码。
[0014]优选地,当该背景不为强制编码背景且存在全局差异时,进一步判断该全局差异对应的全局差异值是否小于预设的全局门限差异值,如果是,则基于H.264或H.265的帧间编码模式执行对该背景的编码,否则基于H.264或H.265的帧内编码模式执行对该背景的编码。
[0015]优选地,所述图像为监控视频图像,该方法还包括将编码后的背景存储在缓存中;当用户点播实况视频图像时,获取缓存中最新的背景码流插入到前景码流中发送给后端设备,所述背景码流为基于H.264或H.265的帧内编码模式编码的I帧码流,或该I帧码流和基于H.264或H.265的帧间编码模式编码的P帧码流的融合,或该I帧码流和基于H.264或H.265的帧间条带编码模式编码的P条带码流的融合,或者该I帧码流、P帧码流、P条带码流的融合。
[0016]本发明技术给出了如何利用H.264或H.265对分离后的前背景进行编码的方法。相较于现有技术,本发明技术可以更大的提高视频编解码的效率,更大节省网络带宽和减少存储资源。
【附图说明】
[0017]图1是本发明实施例一种编码设备的逻辑结构图。
[0018]图2是本发明实施例一种背景编码流程图。
[0019]图3是现有的前景示意图。
[0020]图4是本发明实施例一种帧重构示意图。
[0021]图5是本发明实施例解码重构流程示意图。
[0022]图6是本发明实施例一种视频码流序列生成图。
【具体实施方式】
[0023]本发明提供一种基于H.264/H.265技术的前背景分离的编解码方案。该方案具体介绍了如何运用H.264/H.265技术来实现视频图像的前景编码和背景编码。以下通过【具体实施方式】详细说明。
[0024]请参图1所示的编码设备,该编码设备包括:前背景分离模块、背景编码判断模块、背景编码模块、前景编码模块、码流发送模块。其中该前背景分离模块,用于对一帧图像进行前背景分离;背景编码判断模块,用于对前背景分离模块分离出的背景进行编码与否的判断;背景编码模块,用于对背景编码判断模块判断出需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带(条带,即H.264和H.265中的slice)编码模式进行编码;前景编码模块,用于对前背景分离模块分离出的前景基于H.264或H.265的条带编码模式进行编码;码流发送模块,用于发送编码后的前景和背景码流。
[0025]前背景分离模块在执行前背景分离时首先对输入图像序列背景建模,形成背景帧,然后将原始图像序列中的每一帧和背景帧进行比较,得到前景区域。关于前背景分离有诸多成熟的算法,本发明实施例对此不再赘述。
[0026]背景编码判断模块对分离出的图像背景是否需要编码进行判断。本发明实施例对背景的编码采用的是基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式。至于何时采用帧内编码模式、何时采用帧间编码模式,何时采用帧间条带编码模式则主要由背景编码判断模块根据当前背景的实际情况做出判断通知背景编码模块,而后由背景编码模块执行具体的编码。请参图2给出 的背景的一种优选的编码流程图。
[0027]S21、对于当前的背景,背景编码判断模块判断其是否为需要强制编码的背景,如果是转步骤S22,否则转步骤S23 ;
[0028]S22、背景编码模块基于H.264或H.265的帧内编码模式将该背景编码为I帧;
[0029]S23、背景编码判断模块判断背景是否存在局部变化,如果是转步骤S24,否则转步骤 S25 ;
[0030]S24、背景编码模块基于H.264或H.265的帧间条带编码模式将该背景编码为P条带;
[0031]S25、背景编码判断模块判断背景是否存在全局变化,如果是转步骤S26,否则转步骤 S27 ;
[0032]S26、背景编码模块基于H.264或H.265的帧间编码模式将该背景编码为P帧;
[0033]S27、不对该背景编码。
[0034]对于步骤S21中需要强制编码的背景可以预先进行设置。比如说首个背景一定是需要进行I帧编码的,所以设置首个背景进行强制编码;另外,还可以设置一定帧间隔对背景进行编码,比如说每隔75帧对分离出的背景执行强制编码。对于需要强制编码的背景,其编码模式选择H.264或H.265的帧内编码模式。
[0035]若经过步骤S21判断该背景为非强制编码的背景,则判断该背景是否存在局部变化。比如说真实场景中有些运动物体会长时间的停留在场景中从而变成背景(比如车辆驻停),或者背景中的物体运动离开而形成新的背景(比如车辆驶离),这些都是背景局部变化的例子。此时,只对背景中包含变化物体区域进行编码,编码模式采用H.264或H.265的帧间条带编码模式。
[0036]如果背景不存在局部变化,则步骤S25进一步判断其是否存在全局变化。比如说场景由于整体光照的变化而带来的整体亮度或者颜色偏移,这种情况就属于背景的全局变化。此时,该背景采用H.264或H.265的帧间编码模式进行编码。
[0037]步骤S23和步骤S25并没有必然的先后顺序,先进行背景全局变化的判断再进行局部变化的判断也是可以的。
[0038]如果该背景既非需要强制编码的背景,也非存在局部或者全局变化的背景,则不对该背景进行编码。
[0039]基于H.264或H.265的编码模式对需要编码的背景执行编码,且基于H.264或
H.265的帧内编码模式、帧间编码模式、帧间条带编码模式对需要编码的背景分别执行差异化的编码,相对于其他编码技术可以更大的提高视频编解码的效率,更大节省网络带宽和减少存储资源。
[0040]在本实施例中,还需要说明的是:在对局部变化区块执行帧间条带(slice)编码时,首先对区块边界地址执行16对齐的处理。假设该区块以左上角像素点和右下角像素点坐标表示为(xmin,ymin)和(xmax,ymax),则需要对xmin、ymin、xmax、ymax进行处理,使之都为16的整数倍。比如说xmin原来值为35,将其向下取整:16* (35/16),得到的结果为32 ;ymin原来的值为50,同样的处理后,得到的结果为48。xmax原来的值为76,将其向上取整:16*(76/16),得到的结果为80,ymax原来为100,同样的处理后,得到的结果为112。进行16对齐处理后的区块比原来的区域有所增大。
[0041]针对全局差异的背景的编码,一种更优的实施方式是根据全局差异的大小确定是采用H.264或H.265的帧间编码模式还是帧内编码模式。具体来讲,可以计算当前背景相比之前最相邻的背景的全局偏移offset,如果offset>offsetthreshold,则认为全局偏移过大,此时可以直接将该背景编码为I帧,如果offset ( offsetthreshold,则采用H.264或H.265的帧间编码模式,将该背景编码为P帧,这里的offsetthreshold为预设的门限值。当全局偏移过大时,采用I帧模式进行编码对最终解码显示的图像效果会更好,比如说在一些场景中,如果采用帧间模式编码,解码显示会出现过曝的情况。
[0042]以上是对前背景分离模块分离出的背景如何基于H.264或H.265的编码模式进行编码的说明,下面进一步描述前景帧如何在H.264或H.265框架下进行编码。
[0043]对一帧图像来讲,由于剔除了背景区域,剩余的前景总是区域型的。如图3所示,斜线区域为前景区域。前景区域的编码采用H.264或H.265的条带(slice)编码模式,可以是帧内slice编码模式,也可以是帧间slice编码模式。同样地,在对前景进行slice编码时也要对区块边界地址执行16对齐的处理。需要说明的是,有的视频帧仅存在背景而不存在前景帧,此时无需执行前景编码。
[0044]对每一帧图像来说,在解码的时候不仅需要该帧的前景slice码流,同时也需要该帧的背景码流。由于背景码流又有多种情况,故一帧图像解码重构以图4为例进行详细描述。
[0045]图4中的情况一,帧I编码时候对背景进行了基于H.264或H.265的帧内编码,得到了 I帧图像,对前景则进行了基于H.264或H.265的帧内slice编码,得到了 I前景条带(I前景slice)。在传输帧I码流的时候,需要传输编码后的背景码流BS_bl (BS表示码流,bl表示背景类型I)和前景码流BS_f_l (BS表示码流,f表示前景的slice,I表示帧号)。帧2的背景和帧I相同,所以帧2不需要编码背景,仅需要对前景进行基于H.264或H.265的帧间slice编码。在传输帧2码流的时候,仅传输编码的P前景条带码流BS_f_2。解码显示图像的时候,对于帧1,需要的完整码流为背景码流BS_bl和其前景条带码流;对于帧2,需要的完整码流为背景码流BS_bl和帧2的前景P条带码流BS_f_2。
[0046]图4中的情况二,同样的,帧I编码时候对背景进行了基于H.264或H.265的帧内编码,得到了 I帧图像,对前景则进行了基于H.264或H.265的帧内slice编码,得到了 Islice图像。在传输帧I码流的时候,需要传输编码后的背景码流BS_bl (BS表示码流,bl表示背景类型I)和前景码流BS_f_l (BS表示码流,f表示前景的slice,I表示帧号)。但是对于帧2,其背景相对于帧I存在局部差异,所以在编码的时候,帧2的背景采用了 H.264或H.265的帧间slice编码;帧2的前景仍然采用帧间slice编码。在传输帧2码流的时候,仅传输背景的P slice码流BS_b2,前景的P slice码流BS_f_2。解码显示图像的时候,对于帧1,需要的完整码流为背景码流BS_bl和其前景条带码流;对于帧2,需要的完整码流为背景码流BS_bl和BS_b2和帧2的前景P slice码流BS_f_2。
[0047]图4中的情况三,同样的,帧I编码时候对背景进行了基于H.264或H.265的帧内编码,得到了 I帧图像,对前景则进行了基于H.264或H.265的帧内slice编码,得到了 Islice图像。在传输帧I码流的时候,需要传输编码后的背景码流BS_bl (BS表示码流,bl表示背景类型I)和前景码流BS_f_l (BS表示码流,f表示前景的slice,I表示帧号)。但是对于帧2,其背景相对于帧I存在全局差异,所以在编码的时候,帧2的背景采用了帧间帧编码模式,得到P帧。帧2的前景仍然采用P条带编码。在传输帧2码流的时候,传输背景P帧码流BS_b3和前景P slice码流BS_f_2。解码显示图像的时候,对于帧1,需要的完整码流为背景码流BS_bl和其前景slice码流BS_f_l ;对于帧2,需要的完整码流为背景码流BS_bl和BS_b3和帧2的前景P slice码流BS_f_2。
[0048]请参图5给出的一个解码重构流程示意图。该图中的I帧码流BS_bI和P帧码流BS_bl融合成的背景在进一步和P slice模式编码的背景区块进行融合时,该背景区块的边缘需要进行滤波,其采用四抽头滤波器[1/8,3/8,3/8,1/8]进行边缘模糊操作,这里的[1/8,3/8,3/8,1/8]是滤波器系数。
[0049]以上利用H.264或H.265的编码模式 对前景、背景图像进行编码尤其适用于视频监控的场景。对于视频监控中的存储业务来说,编码设备在完成H.264或H.265的前、背景编码后,前背景码流将被发送到存储设备进行存储。前景码流一旦发送出去后,缓存中可以不再保留。但是对于背景码流来说,即便其已经被发送出去,缓存中仍然要保存该背景码流,直到后续生成的新的背景将其覆盖。因为监控业务中存在实况点播业务,用户在进行实况点播的时候,希望看到的是包括前景和背景的完整的视频画面,所以编码器需要能随时发送包含背景和前景在内的视频码流。但按照前文的前背景编码方案,并不是每帧图像都需要进行背景编码,即当前帧的前景可能需要使用之前帧的背景,所以缓存中至少保存一帧最新的背景帧。当用户点播当前的视频实况时,编码设备将获取缓存中最新的一帧背景编码码流,将其掺入到当前编码生成的前景码流中。请参图6,该图为用户点播实况后的一个视频码流序列生成图。虚线框内的码流为一个1A(Interval of Access Point,随机访问点间隔/长度)码流,在该1A的首帧前景slice码流前插入完整的背景流,该背景流可能是I帧编码码流BS_bl,也可能是I帧编码码流BS_bl和P帧编码码流BS_b2的融合,也可能是I帧编码码流BS_bl和P slice编码码流BS_b3的融合,也可能是BS_bl、BS_b2和BS_b3三者的融合。需要说明的是,1A的起始帧可以理解为一个随机访问点的起始帧,该起始帧由背景帧和前景slice组成。不同于H.264中的close GOP (Group of Picture),GOP的首帧始终是一个I帧,即其中的所有slice都是帧内编码模式。但对于1A来讲,除了背景码流BS_bl是帧内模式编码外,BS_b2和BS_b3并非帧内模式编码,前景则可能是帧内slice编码,也可能是帧间slice编码。
[0050]本发明实施例在视频编码时,对背景帧和前景区域分别编码,帧编码和区域编码采用H.264或者H.265编码标准。但是最终生成的码流则不再兼容H.264或者H.265,而是对H.264或H.265的扩展,是基于它们的一种私有化应用,可以称为本实施例方案生成的码流是类H.264流或类H.265流。为了对本实施例方案码流和H.264以及H.265码流的区另U,在H.264中的背景I帧前面启用nal_unit_type的未定义段中的28的作为本方案码流标识。在H.265中的背景I帧前面启用nal_unit_type的未定义段中的58的作为本方案码流标识。这里的28和58仅是一种举例,不应构成对本发明的限制。
[0051]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种基于H.264或H.265的前背景编码设备,其特征在于,该编码设备包括: 前背景分离模块,用于对一帧图像进行前背景分离; 背景编码判断模块,用于对前背景分离模块分离出的背景进行编码与否的判断;背景编码模块,用于对背景编码判断模块判断出需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码; 前景编码模块,用于对前背景分离模块分离出的前景基于H.264或H.265的条带编码模式进行编码; 码流发送模块,用于发送编码后的前景和背景码流。2.如权利要求1所述的编码设备,其特征在于,背景编码判断模块对背景进行编码与否的判断包括:判断该背景是否为强制编码背景,或是否为存在局部变化的背景,或是否为存在全局变化的背景,如果是,则该背景需要进行编码。3.如权利要求2所述的编码设备,其特征在于,背景编码模块对需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码包括: 当该背景为强制编码背景时,基于H.264或H.265的帧内编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在局部变化时,基于H.264或H.264的帧间条带编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在全局差异时,基于H.264或H.265的帧间编码模式对该背景进行编码。4.如权利要求3所述的编码设备,其特征在于,当该背景不为强制编码背景且存在全局差异时,进一步判断该全局差异对应的全局差异值是否小于预设的全局门限差异值,如果是,则基于H.264或H.265的帧间编码模式执行对该背景的编码,否则基于H.264或H.265的帧内编码模式执行对该背景的编码。5.如权利要求1所述的编码设备,其特征在于,所述图像为监控视频图像,所述背景编码模块将编码后的背景存储在缓存中,当用户点播实况视频图像时,码流发送模块从缓存中获取最新的背景码流掺入到前景码流中发送给后端设备,所述背景码流为基于H.264或H.265的帧内编码模式编码的I帧码流,或该I帧码流和基于H.264或H.265的帧间编码模式编码的P帧码流的融合,或该I帧码流和基于H.264或H.265的帧间条带编码模式编码的P条带码流的融合,或者该I帧码流、P帧码流、P条带码流的融合。6.一种基于H.264或H.265的前背景编码方法,其特征在于,该方法包括: 对一帧图像进行前背景分离; 对分离出的背景进行编码与否的判断; 对判断出需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码; 对分离出的前景基于H.264或H.265的条带编码模式进行编码; 发送编码后的前景和背景码流。7.如权利要求6所述的方法,其特征在于,对背景进行编码与否的判断包括:判断该背景是否为强制编码背景,或是否为存在局部变化的背景,或是否为存在全局变化的背景,如果是,则该背景需要进行编码。8.如权利要求7所述的方法,其特征在于,对需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码包括: 当该背景为强制编码背景时,基于H.264或H.265的帧内编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在局部变化时,基于H.264或H.264的帧间条带编码模式对该背景进行编码;当该背景不为强制编码背景且该背景存在全局差异时,基于H.264或H.265的帧间编码模式对该背景进行编码。9.如权利要求8所述的方法,其特征在于,当该背景不为强制编码背景且存在全局差异时,进一步判断该全局差异对应的全局差异值是否小于预设的全局门限差异值,如果是,则基于H.264或H.265的帧间编码模式执行对该背景的编码,否则基于H.264或H.265的帧内编码模式执行对该背景的编码。10.如权利要求6所述的方法,其特征在于,所述图像为监控视频图像,该方法还包括将编码后的背景存储在缓存中;当用户点播实况视频图像时,获取缓存中最新的背景码流插入到前景码流中发送给后端设备,所述背景码流为基于H.264或H.265的帧内编码模式编码的I帧码流,或该I帧码流和基于H.264或H.265的帧间编码模式编码的P帧码流的融合,或该I帧码流和基于H.264或H.265的帧间条带编码模式编码的P条带码流的融合,或者该I帧码流、P帧码流、P条带码流的融合。
【专利摘要】本发明提供一种基于H.264或H.265的前背景编码方案,包括:对一帧图像进行前背景分离;对分离出的背景进行编码与否的判断;对需要编码的背景基于H.264或H.265的帧内编码模式、帧间编码模式或帧间条带编码模式进行编码;对分离出的前景基于H.264或H.265的条带编码模式进行编码;发送编码后的前景和背景码流。基于H.264或H.265的编码模式对需要编码的背景执行编码,且基于H.264或H.265的帧内编码模式、帧间编码模式、帧间条带编码模式对需要编码的背景分别执行差异化的编码,相对于其他编码技术可以更大的提高视频编解码的效率,更大节省网络带宽和减少存储资源。
【IPC分类】H04N19/142, H04N19/103, H04N19/23
【公开号】CN104883572
【申请号】CN201510263503
【发明人】吴参毅
【申请人】浙江宇视科技有限公司
【公开日】2015年9月2日
【申请日】2015年5月21日
转载请注明原文地址:https://www.famiwei.com/read-8136011.html

最新回复(0)