虚拟参考帧的建立方法及设备与流程

文档序号:12498159阅读:195来源:国知局
虚拟参考帧的建立方法及设备与流程

本申请涉及图像处理领域,特别涉及一种虚拟参考帧的建立方法及设备。



背景技术:

在视频文件的传输过程中,编码器将每一帧图像进行编码后传输至解码器,解码器将图像解码然后在显示设备上播放视频,在播放视频时,有一些图像会重复出现,例如固定的背景,会在前景物体离开后重新出现,将这些重复出现的图像作为虚拟参考帧,虚拟参考帧在视频播放的过程中并不会显示,只是用来在编码和解码时进行参考,提高编码和解码效率。

例如,相关技术中,编码器根据待传输的至少一个图像帧以及预设的建模算法生成背景图像,该背景图像可以是视频播放时固定的背景,对于至少一个图像帧中每一个图像帧,如果该图像帧中某个块与背景图像中对应的块相似,则将相似的块作为用于建立虚拟参考帧的块,将用于建立虚拟参考帧的块存储在一个缓存区中,然后将挑选过建立虚拟参考帧的块的图像帧发送至解码器,这样,当存入足够多的用于建立虚拟参考帧的块时,将缓存区中存储的用于建立虚拟参考帧的块提取出来作为虚拟参考帧,参考该虚拟参考帧对之后待传输的图像帧进行编码,并且将该虚拟参考帧作为单独的一帧发送至解码器。

又如,另一相关技术中,编码器不需要将虚拟参考帧单独作为一帧传输至解码器;解码器接收到图像帧后,基于和编码器相同的建模算法生成背景图像,并根据并根据背景图像挑选每一个图像帧中用于建立虚拟参考帧的块,将用于建立虚拟参考帧的块存储在一个缓存区中,当存入与编码器相同的建立虚拟参考帧的块时,将缓存区中用于建立虚拟参考帧的块提取出来作为虚拟参考帧,并参考该虚拟参考帧对之后的图像帧解码。

但是,如果将虚拟参考帧作为单独的一帧传输,增加了数据传输量,增加了额外的码率,占用了过多的网络资源;如果不传输虚拟参考帧,解码器需要基于和编码器相同的算法建立虚拟参考帧,解码器复杂度较高,功耗较大。



技术实现要素:

为了解决现有技术中建立虚拟参考帧时造成的解码器复杂度较高,功耗较大,或者使用额外码率的问题,本申请实施例提供了一种虚拟参考帧的建立方法及设备。所述技术方案如下:

第一方面,提供了一种虚拟参考帧的建立方法,应用于解码器,该方法包括:

接收编码器传输的至少一个图像帧,至少一个图像帧中每一个图像帧包含至少一个块;

利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。

在一种可能的实现方式中,利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧之前,方法还包括:

分配第一虚拟参考帧缓存区;

利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧,包括:

确定每一个带有虚拟参考帧标识的块的位置,并将每一个带有虚拟参考帧标识的块分别存储在第一虚拟参考帧缓存区中。

在一种可能的实现方式中,确定每一个带有虚拟参考帧标识的块的位置,包括:

根据预设的位置映射关系确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息,确定每一个带有虚拟参考帧标识的块的位置,包括:

根据虚拟参考帧标识的指示确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,该方法还包括:

接收编码器发送的指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧之后,方法还包括:

接收编码器发送的解码指示信号,根据解码指示信号,参照虚拟参考帧进行解码,解码指示信号用于指示参照虚拟参考帧进行解码。

第二方面,提供了一种虚拟参考帧的建立方法,应用于编码器,该方法包括:

获取至少一个图像帧,至少一个图像帧中每一个图像帧包含至少一个块;

在至少一个图像帧中确定用于建立虚拟参考帧的块,至少一个图像帧不包含虚拟参考帧;

对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧;

向解码器传输至少一个图像帧。

在一种可能的实现方式中,在至少一个图像帧中确定用于建立虚拟参考帧的块,包括:

当目标块与目标背景块中相似像素对的数量大于或等于第一阈值时,将目标块确定为用于建立虚拟参考帧的块;

其中,所述目标块为目标图像帧中的任意一个块,所述目标背景块是根据所述目标块在目标图像帧中的位置确定的所述目标块在背景图像中对应的块,所述至少一个图像帧包含所述目标图像帧;所述相似像素对包括分别位于所述目标块与所述目标背景块中位置相对应的两个像素,且所述相似像素对包括的两个像素满足至少一个分量之差的绝对值小于或等于第二阈值。

在一种可能的实现方式中,在至少一个图像帧中确定用于建立虚拟参考帧的编码块之前,该方法还包括:

基于所述至少一个图像帧,按照预设的建模算法生成所述背景图像。

在一种可能的实现方式中,在至少一个图像帧中确定用于建立虚拟参考帧的块之前,该方法还包括:

分配第二虚拟参考帧缓存区;

在所述至少一个图像帧中确定用于建立虚拟参考帧的块之后,所述方法还包括:

根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置,并将每一个用于建立虚拟参考帧的块分别存储在所述第二虚拟参考帧缓存区中。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息。

在一种可能的实现方式中,该方法还包括:

向所述解码器发送指示信息,所述指示信息用于指示所述预设的位置映射关系。

在一种可能的实现方式中,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,包括:

对所述用于建立虚拟参考帧的块增加预设数量的比特,所述虚拟参考帧标识承载在新增的所述预设数量的比特上。

在一种可能的实现方式中,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,包括:

在所述用于建立虚拟参考帧的块中设定预设格式的字段,所述虚拟参考帧标识承载在预设格式的字段上,所述预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识之后,该方法还包括:

当至少一个图像帧中用于建立虚拟参考帧的块组合成虚拟参考帧时,参照虚拟参考帧进行编码;

向解码器发送解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码。

第三方面,提供了一种解码器,包括:

接收单元,用于接收编码器传输的至少一个图像帧,至少一个图像帧中每一个图像帧包含至少一个块;

处理单元,用于利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。

在一种可能的实现方式中,处理单元,还用于分配第一虚拟参考帧缓存区;确定每一个带有虚拟参考帧标识的块的位置,并将每一个带有虚拟参考帧标识的块分别存储在第一虚拟参考帧缓存区中。

在一种可能的实现方式中,处理单元,还用于根据预设的位置映射关系确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息,

处理单元,还用于根据虚拟参考帧标识的指示确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,接收单元,接收编码器发送的指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,接收单元,还用于接收编码器发送的解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码;

处理单元,还用于根据解码指示信号,参照虚拟参考帧进行解码。

第四方面,提供了一种编码器,包括:

处理单元,用于获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,至少一个图像帧中每一个图像帧包含至少一个块,至少一个图像帧不包含虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧;

发送单元,用于向解码器传输至少一个图像帧。

在一种可能的实现方式中,处理单元,还用于当目标块与目标背景块中相似像素对的数量大于或等于第一阈值时,将目标块确定为用于建立虚拟参考帧的块;

其中,目标块为目标图像帧中的任意一个块,目标背景块是根据目标块在目标图像帧中的位置确定的目标块在背景图像中对应的块,至少一个图像帧包含目标图像帧;相似像素对包括分别位于目标块与目标背景块中位置相对应的两个像素,且相似像素对包括的两个像素满足至少一个分量之差的绝对值小于或等于第二阈值。

在一种可能的实现方式中,处理单元,还用于基于至少一个图像帧,按照预设的建模算法生成背景图像。

在一种可能的实现方式中,处理单元,还用于分配第二虚拟参考帧缓存区;根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置,并将每一个用于建立虚拟参考帧的块分别存储在第二虚拟参考帧缓存区中。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息。

在一种可能的实现方式中,发送单元,还用于向解码器发送指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,处理单元,还用于对用于建立虚拟参考帧的块增加预设数量的比特,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,处理单元,还用于在用于建立虚拟参考帧的块中设定预设格式的字段,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,处理单元,还用于当至少一个图像帧中用于建立虚拟参考帧的块组合成虚拟参考帧时,参照虚拟参考帧进行编码;

发送单元,还用于向解码器发送解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码。

第五方面,提供了一种解码器,包括:处理器、存储器和接收器,处理器和存储器相互连接,处理器和接收器相互连接,存储器用于存储数据和程序,处理器用于调用存储器存储的程序实现以下功能:

接收器,用于接收编码器传输的至少一个图像帧,至少一个图像帧中每一个图像帧包含至少一个块;

处理器,用于利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。

在一种可能的实现方式中,处理器,还用于分配第一虚拟参考帧缓存区;确定每一个带有虚拟参考帧标识的块的位置,并将每一个带有虚拟参考帧标识的块分别存储在第一虚拟参考帧缓存区中。

在一种可能的实现方式中,处理器,还用于根据预设的位置映射关系确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息,

处理器,还用于根据虚拟参考帧标识的指示确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,接收器,接收编码器发送的指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,接收器,还用于接收编码器发送的解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码;

处理器,还用于根据解码指示信号,参照虚拟参考帧进行解码。

第六方面,提供了一种编码器,包括:处理器、存储器和发送器,处理器和存储器相互连接,处理器和发送器相互连接,存储器用于存储数据和程序,处理器用于调用存储器存储的程序实现以下功能:

处理器,用于获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,至少一个图像帧中每一个图像帧包含至少一个块,至少一个图像帧不包含虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧;

发送器,用于向解码器传输至少一个图像帧。

在一种可能的实现方式中,处理器,还用于当目标块与目标背景块中相似像素对的数量大于或等于第一阈值时,将目标块确定为用于建立虚拟参考帧的块;

其中,目标块为目标图像帧中的任意一个块,目标背景块是根据目标块在目标图像帧中的位置确定的目标块在背景图像中对应的块,至少一个图像帧包含目标图像帧;相似像素对包括分别位于目标块与目标背景块中位置相对应的两个像素,且相似像素对包括的两个像素满足至少一个分量之差的绝对值小于或等于第二阈值。

在一种可能的实现方式中,处理器,还用于基于至少一个图像帧,按照预设的建模算法生成背景图像。

在一种可能的实现方式中,处理器,还用于分配第二虚拟参考帧缓存区;根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置,并将每一个用于建立虚拟参考帧的块分别存储在第二虚拟参考帧缓存区中。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息。

在一种可能的实现方式中,发送器,还用于向解码器发送指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,处理器,还用于对用于建立虚拟参考帧的块增加预设数量的比特,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,处理器,还用于在用于建立虚拟参考帧的块中设定预设格式的字段,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,处理器,还用于当至少一个图像帧中用于建立虚拟参考帧的块组合成虚拟参考帧时,参照虚拟参考帧进行编码;

发送器,还用于向解码器发送解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码。

本申请实施例提供的一种虚拟参考帧的建立方法及设备,编码器获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,向解码器传输至少一个图像帧。因为用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立虚拟参考帧,减少了解码器的复杂度和功耗。

附图说明

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

图1是本申请实施例提供的一种虚拟参考帧的建立方法流程示意图;

图2a是本申请实施例提供的一种位置映射关系示意图;

图2b是本申请实施例提供的另一种位置映射关系示意图;

图3a为本申请实施例提供的一种图像帧的结构示意图;

图3b为本申请实施例提供的一种预设格式的字段结构示意图;

图4为本申请实施例提供的一种虚拟参考帧建立效果示意图;

图5为本申请实施例提供的一种位置相同的块效果示意图;

图6为本申请实施例提供的一种参考帧缓存队列示意图;

图7是本申请另一实施例提供的一种虚拟参考帧的建立方法流程示意图;

图8是本申请又一实施例提供的一种虚拟参考帧的建立方法流程示意图;

图9是本申请实施例提供的一种解码器结构示意图;

图10是本申请实施例提供的一种编码器结构示意图;

图11是本申请实施例提供的另一种解码器结构示意图;

图12是本申请实施例提供的另一种编码器结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请实施例提供一种虚拟参考帧的建立方法,应用于解码器,如图1所示,该方法包括以下步骤:

101、接收编码器传输的至少一个图像帧。

至少一个图像帧中每一个图像帧可以包含一个块或多个块。需要说明的是,一个块包含多个像素,例如,一个块可以包含16×16个像素,或者8×8个像素,当然也可以是其他个数,本申请对此不作限制。此处,至少一图像帧包含的是视频的数据内容。

102、利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧。

至少一个图像帧中可以是每一个图像帧都包含带有虚拟参考帧标识的块,也可以是部分图像帧包含带有虚拟参考帧标识的块。一个图像帧可以包括一个或多个带有虚拟参考帧标识的块。

可选的,步骤102之前,该方法还包括:分配第一虚拟参考帧缓存区。

其中,该第一虚拟参考帧缓存区用于存储带有虚拟参考帧标识的块,第一虚拟参考帧缓存区的大小可以是一个图像帧的大小,当第一虚拟参考帧缓存区存入的带有虚拟参考帧标识的块占满整个第一虚拟参考帧缓存区时,虚拟参考帧建立完成,可以在第一虚拟参考帧缓存区中将虚拟参考帧提取出来;或者,当第一虚拟参考帧缓存区存入的带有虚拟参考帧标识的块的数量超过预设数量时,虚拟参考帧建立完成。需要说明的是,分配好第一虚拟参考帧缓存区的同时,可以存储一个初始图像,初始图像可以是纯色图像,例如全白图像或全黑图像,也可以只是分配第一虚拟参考帧缓存区,不存入图像。

利用至少一个图像帧中多个带有虚拟参考帧标识的块建立虚拟参考帧,包括:

根据预设的位置映射关系对每一个带有虚拟参考帧标识的块在其所在帧中的位置进行映射以获取每一个带有虚拟参考帧标识的块映射后的位置;

按照每一个带有虚拟参考帧标识的块映射后的位置将每一个带有虚拟参考帧标识的块存储在该第一虚拟参考帧缓存区以形成虚拟参考帧。需要说明的是,当两个带有虚拟参考帧标识的块的位置相同时,可以用在后接收到的带有虚拟参考帧标识的块替换在前接收到的带有虚拟参考帧标识的块;或者,将位置相同的两个带有虚拟参考帧标识的块中每一个像素的像素分量计算加权平均值形成新的块存储在第一虚拟参考帧缓存区中。

其中,预设的位置映射关系可以是位置等同的映射关系,即在映射之前和映射之后,带有虚拟参考帧标识的块在帧中的位置相同,比如,在图2a中,块a为带有虚拟参考帧标识的块,第一个图像帧为块a所在的帧,块a在第一个图像帧中的位置是第3行第4列,则块a在建立后的虚拟参考帧中的位置也是第3行第4列;或者预设的位置关系是位置不同的映射关系,即在映射之前和映射之后,带有虚拟参考帧标识的块在帧中的位置发生了变化,比如,在图2b中,块a为带有虚拟参考帧标识的块,第一个图像帧为块a所在的帧,块a在第一个图像帧中的位置是第3行第4列,则块a在建立后的虚拟参考帧中的位置也是第4行第5列。

需要说明的是,该预设的位置映射关系可以预先存储在解码器,或者,接收编码器发送的指示信息,指示信息用于指示预设的位置映射关系。

或者,所述虚拟参考帧标识包括用于指示所在块的位置信息,则利用至少一个图像帧中多个带有虚拟参考帧标识的块建立虚拟参考帧,包括:

按照每一个带有虚拟参考帧标识的块中虚拟参考帧标识所包含的位置信息将带有虚拟参考帧标识的块存储在该第一虚拟参考帧缓存区以形成虚拟参考帧。

虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。需要说明的是,虚拟参考帧标识可以有多种存在方式,此处提供两种具体的方式:

第一种方式、在带有虚拟参考帧标识的块中,虚拟参考帧标识承载在新增的预设数量的比特上。即利用额外的比特表示虚拟参考帧标识。

第二种方式、虚拟参考帧标识承载在预设格式的字段上,如图3a所示,图3a为一个图像帧的结构示意图,一个图像帧包括网络抽象层单位头(英文:network abstraction layer unit header)、帧头(英文:slice segment header)和帧数据(英文:slice segment data)。帧数据包括编码树单元(英文:coding tree unit),编码树单元包括编码四分树(英文:coding quadtree),编码四分树包括编码单元(英文:Coding unit)等等,如此一级一级划分。预设格式的字段可以包括:运动矢量差(英文:motion vector difference)字段、编码单元量化系数变化绝对值(英文:coding unit quantization parameter delta absolute,缩写:cu_qp_delta_abs)字段、分割模式(英文:part_mode)字段等字段中的一项或多项。预设格式的字段可以用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的一项或多项。此处,预设格式的字段可以是一个字段直接指示一个参数,也可以是多个字段组合起来指示一个参数,例如,如图3b所示,图3b为预设格式的字段结构示意图,预设格式的字段指示预设量化系数时,预设格式的字段可以包括初始量化系数减26的值(英文:Intitial QP minus 26,缩写:init_qp_minus26)字段、编码单元量化系数变化使能信号(英文:Coding unit QP delta enabled flag,缩写:cu_qp_delta_enabled_flag)字段、编码单元量化系数变化深度(英文:Different coding unit QP delta depth,缩写:diff_cu_qp_delta_depth)字段、编码单元量化系数变化绝对值字段和编码单元量化系数变化正负号(英文:Coding unit QP delta sign flag,缩写:cu_qp_delta_sign_flag)字段,其中QP为量化系数(英文:Quantization Parameter,缩写:QP),当预设格式的字段所指示的量化系数是预设量化系数时,表示该预设格式的字段所在的块为用于建立虚拟参考帧的块。

进一步,解码器可以接收编码器发送的解码指示信号,该解码指示信号用于指示第一虚拟参考帧缓存区中存储的带有虚拟参考帧标识的块可以形成虚拟参考帧,解码器在第一虚拟参考帧缓存区中提取出虚拟参考帧加入到第一参考帧缓存队列中,参照虚拟参考帧对随后接收到的图像帧进行解码,第一参考帧缓存队列包含用于解码的参考帧。解码过程中是根据每一个图像帧中包含的信息确定使用哪几个参考帧进行解码,这是在编码器编码时确定的,并将解码使用的参考帧序号写入到该图像帧中,解码器根据每个图像帧中包含的信息选择相应的参考帧解码即可。

示例性的,参照图4、图5和图6所示,本实施例举出具体示例对建立虚拟参考帧的过程进行详细说明:

如图4所示,解码器在接收到解码指示信号之前,将带有虚拟参考帧标识的块存入第一虚拟参考帧缓存区中,接收一个图像帧,将该图像帧中带有虚拟参考帧标识的块存入到第一虚拟参考帧缓存区中,然后接收下一个图像帧,这样一个图像帧一个图像帧进行处理,将图像帧中带有虚拟参考帧标识的块存入到第一虚拟参考帧缓存区就是建立虚拟参考帧的过程;此时,第一虚拟参考帧缓存区中缓存的带有虚拟参考帧标识的块所形成的帧还不能用于解码。在接收到指示信号之前,解码器将每一个图像帧中带有虚拟参考帧标识的块根据各自的位置存储在第一虚拟参考帧缓存区中,当两个带有虚拟参考帧标识的块的位置相同时,可以用在后接收到的带有虚拟参考帧标识的块替换在前接收到的带有虚拟参考帧标识的块;或者,将位置相同的两个带有虚拟参考帧标识的块中每一个像素的像素分量计算加权平均值形成新的块存储在第一虚拟参考帧缓存区中。

如图5所示,例如,解码器接收到第一个图像帧中有5个带有虚拟参考帧标识的块,分别为块a、块b、块c、块d、块e,按照5个块的位置分别存储在第一虚拟参考帧缓存区,解码器接收到第二个图像帧中有3个带有虚拟参考帧标识的块,分别为块f、块g和块h,按照3个块的位置分别存储在虚拟参考帧缓存中,但是,第一个图像帧中的块a和第二个图像帧中的块f位置相同,可以用块f替换块a,也可以计算块f和块a中每个像素的分量的加权平均值形成新的块i,并将块i存储在块f和块a原本的位置上。

示例地,以块a和块f分别包含4个像素为例,块a包含像素a1、像素a2、像素a3和像素a4,块f包含像素f1、像素f2、像素f3和像素f4,像素a1和像素f1位置对应、像素a2和像素f2位置对应、像素a3和像素f3位置对应、像素a4和像素f4位置对应。如果每个像素有三个分量Y、U、V,对于像素a1和像素f1其中的一个分量,以分量Y为例,可以按照第一公式Pi1=Pa1×W1+Pf1×W2+c计算块i的像素i1的Y分量,其中,Pi1为像素i1的Y分量的值,Pa1为像素a1的Y分量的值,Pf1为像素f1的Y分量的值,W1和W2为加权系数,c为补偿系数;或者,按照第二公式Pi1=Pa1×W0+Pf1×(1-W0)+c计算块i的像素i1的Y分量,其中,W0为加权系数。像素的每个分量都可以按照第一公式或第二公式进行计算,每一对对应的像素也可以按照预设公式计算出每个分量新的数值,这样,就可以得到新的像素i1、像素i2、像素i3和像素i4,就可以组成新的块i,将块i存储在块a原本的位置上。

如图6所示,解码指示信号指示第一虚拟参考帧缓存区中缓存的带有虚拟参考帧标识的块组成了可以用于解码的虚拟参考帧,解码器在接收到解码指示信号之后,将第一虚拟参考帧缓存区中的虚拟参考帧提取出来加入到第一参考帧缓存队列中,解码器参照虚拟参考帧对之后接收的图像帧进行解码。

本申请中需要传输的帧都是图像帧,将用于建立虚拟参考帧的块在图像帧中添加标识,没有另外单独传送虚拟参考帧,减少了数据传输量,节约了网络资源。另外,有些相关技术中虽然不传输虚拟参考帧,但是,解码器要在图像帧中根据与编码器相同的算法建立背景图像,选择建立虚拟参考帧的块,并建立虚拟参考帧,相比之下,本申请不需要解码器建立背景图像,选择用于建立虚拟参考帧的块,只需要根据虚拟参考帧标识直接将带有虚拟参考帧标识的块组成虚拟参考帧就好,降低了解码器的复杂度,节省了处理器资源。而且,因为解码器只需要根据虚拟参考帧标识就可以获取用于建立虚拟参考帧的块,如果编码器建立虚拟参考帧时所使用的算法有了变更,解码器不受影响,兼容性更好。

结合上述图1对应的实施例,本申请另一实施例提供一种虚拟参考帧的建立方法,应用于编码器,如图7所示,该方法包括以下步骤:

701、获取至少一个图像帧。

至少一个图像帧可以是一个图像帧或多个图像帧,一个图像帧可以包含一个块或多个块,一个块可以包含一个或多个像素。

702、在至少一个图像帧中确定用于建立虚拟参考帧的块。

此处,可选的,步骤702之前,本实施例提供的虚拟参考帧的建立方法还包括:

分配第二虚拟参考帧缓存区,第二虚拟参考帧缓存区可以缓存用于建立虚拟参考帧的块,第二虚拟参考帧缓存区的大小可以是一个图像帧的大小。需要说明的是,分配好第二虚拟参考帧缓存区的同时,可以存储一个初始图像,初始图像可以是纯色图像,例如全白图像或全黑图像,也可以只是分配第二虚拟参考帧缓存区,不存入图像。

可选的,将该至少一个图像帧中任意一个图像帧作为目标图像帧,将目标图像帧中的任意一个块作为目标块进行示例性说明,当该目标块与目标背景块中相似像素对的数量大于或等于第一阈值时,将该目标块确定为用于建立虚拟参考帧的块,第一阈值为预先设定的值,第一阈值可以通过实验获取,也可以参考相关技术中常用的值确定。其中,目标背景块是根据目标块在目标图像帧中的位置确定的目标块在背景图像中对应的块,背景图像可以是基于至少一个图像帧,按照预设的建模算法生成的,例如,一个视频中,固定的背景会在前景物体离开后重新出现,固定的背景不会变化,只会被前景物体遮挡,这个固定的背景就是背景图像。像素对是指位于目标块与目标背景块中位置相对应的两个像素,相似像素对中的的两个像素满足至少一个相同的像素分量之差的绝对值小于或等于第二阈值,第二阈值为预先设定的值,第二阈值可以通过实验获取,也可以参考相关技术中常用的值确定。

需要说明的是,目标背景块在背景图像中的位置与目标块在目标图像帧中的位置可以相同,例如,每一个图像帧包含的块可以是m行,n列,每一个块的位置可以用所处的行序号和列序号确定,目标块在目标图像帧中位于x行y列,目标背景块在背景图像中也位于x行y列;或者,目标背景块在背景图像中的位置与目标块在目标图像帧中的位置也可以不同,例如,目标块在目标图像帧中位于x行y列,目标背景块在背景图像中也位于x+1行y+1列,本申请对此不作限制。

可选的,一个像素可以包含三个像素分量,例如YUV像素分量,其中Y为亮度分量,U,V为色度分量。对于像素对中两个像素,当三个像素分量中,至少一个相同的像素分量之差的绝对值小于或等于第二阈值时,将该像素对确定为相似像素对,也可以是三个像素分量重每个相同的像素分量之差的绝对值均小于或等于第二阈值时,将该像素对确定为相似像素对,否则为不相似像素对。

可选的,步骤702之后,还包括:

根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置,并将每一个用于建立虚拟参考帧的块分别存储在第二虚拟参考帧缓存区中。

例如,每一个图像帧包含的块可以是m行,n列,以第一个图像帧中的块a为例,块a为用于建立虚拟参考帧的块,块a在第一个图像帧中位于第x行第y列,块a在第一个图像帧中的位置可以表示为(x,y),预设的位置映射关系可以指示块a在第二虚拟参考帧缓存区中的存储位置为(x,y),或者,预设的位置映射关系可以指示块a在第二虚拟参考帧缓存区中的存储位置为(x+dx,y+dy),其中,dx和dy是位置偏移量,当然,此处只是举例说明,并不代表本申请局限于此。

可选的,编码器可以解码器发送指示信息,该指示信息用于指示预设的位置映射关系。

703、对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识。

虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。

可选的,本实施例提供两种具体的添加虚拟参考帧标识的方式:

第一种方式、在带有虚拟参考帧标识的块中,虚拟参考帧标识承载在新增的预设数量的比特上。即利用额外的比特表示虚拟参考帧标识。

第二种方式、虚拟参考帧标识承载在预设格式的字段上。预设格式的字段可以包括:运动矢量差字段、编码单元量化系数变化绝对值字段、分割模式字段等字段中的一项或多项。预设格式的字段可以用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的一项或多项。

可选的,编码器根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置之后,可以将位置信息分别添加入虚拟参考帧标识中,这样,解码器就可以直接根据虚拟参考帧标识确定每一个用于建立虚拟参考帧的块的位置,不需要再做计算。

704、向解码器传输至少一个图像帧。

当编码器将一个图像帧中用于建立虚拟参考帧的块添加了虚拟参考帧标识后即可发送该图像帧,继续处理下一个图像帧。

步骤703之后,当至少一个图像帧中用于建立虚拟参考帧的块组合成虚拟参考帧时,可以参照虚拟参考帧进行编码;具体的,当第二虚拟参考帧缓存区全部填满或者存储的块的数量超过预设数量时,视为虚拟参考帧建立完成,可以将虚拟参考帧放入第二参考帧缓存队列中,参照虚拟参考帧对之后的图像帧进行编码,第二参考帧缓存队列包含用于编码的参考帧。需要说明的是,如果存入的块没有占满第一虚拟参考帧缓存区而需要提取虚拟参考帧时,可以将空白的部分填充纯色的块完成虚拟参考帧的建立,例如,填充纯白的块;或者,不需要填充空白的部分,直接将第一虚拟参考帧缓存区中的块提取出来组成虚拟参考帧。可选的,当虚拟参考帧建立之后,还可以向解码器发送解码指示信号,解码指示信号用于指示解码器参照虚拟参考帧进行解码。参照图1对应的实施例,解码器在接收到解码指示信号之前,将带有虚拟参考帧标识的块存入第一虚拟参考帧缓存区中,当接收到解码指示信号时,将第一虚拟参考帧缓存区中的虚拟参考帧提取出来放入第一参考帧缓存队列中,并参照虚拟参考帧对之后接收的图像帧进行解码。

可选的,步骤704之前,编码器可以将至少一个图像帧进行编码。

此处,向解码器传输的至少一个图像帧不包括虚拟参考帧,可选的,结合步骤703中有关解码指示信号的描述,解码指示信号在至少一个图像帧中最后一个用于建立虚拟参考帧的块之后发送至解码器,当然,此处只是举例说明,解码指示信号也可以直接指示虚拟参考帧建立完成时最后一个发送的图像帧的帧序号或块序号,本申请对此不作限制。

因为编码器对用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立背景图像,再选择用于建立虚拟参考帧的块,然后建立虚拟参考帧,减少了解码器的复杂度和功耗。另外,现有技术中,编码器和解码器利用相同的算法建立虚拟参考帧,当不同厂家生产的编码器使用的建立虚拟参考帧的算法不同时,解码器无法兼容不同的算法,或者,编码器建立虚拟参考帧的算法有了更新,则解码器也需要更新,而解码器往往位于用户使用的视频播放设备上,例如,电视机、电脑等,这些设备的更新周期一般较长,会给用户使用造成不便。而本申请提供的虚拟参考帧的建立方法,因为用于建立虚拟参考帧标识的块带有虚拟参考帧标识,解码器提取带有虚拟参考帧标识的块就可以建立虚拟参考帧,不需要像编码器一样利用算法建立虚拟参考帧,因此,编码器侧建立虚拟参考帧的算法即便更新,也不影响解码器建立虚拟参考帧,同时,对于不同厂家生产的编码器,解码器有很好的兼容性,也不会造成用户使用不便。

本实施例提供的虚拟参考帧的建立方法,是上述图1对应的实施例中所描述的解码侧虚拟参考帧的建立方法对应的编码侧方法,图1对应的实施例中的解释说明与图7对应的实施例中的解释说明相互适用。

基于上述图1和图7对应的实施例中所描述的虚拟参考帧的建立方法,本申请又一实施例提供一种虚拟参考帧的建立方法,应用于编码器和解码器,参照图8所示,该方法包括以下步骤:

801、编码器获取N个图像帧。

N为大于1的正整数。

802、编码器在第n个图像帧中确定用于建立虚拟参考帧的块。

第n个图像帧为编码器获取的N个图像帧中的第n个图像帧,n为[1,N]内的整数。

803、编码器将第n个图像帧中用于建立虚拟参考帧的块存储在第二虚拟参考帧缓存区中,并对第n个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识。

804、编码器向解码器传输第n个图像帧。

重复执行步骤802-步骤804。在步骤804之后还包括:

805、当第二虚拟参考帧缓存区中用于建立虚拟参考帧的块的数量超过预设数量时,编码器建立虚拟参考帧,并向解码器发送解码指示信号。

编码器利用第二虚拟参考帧缓存区中用于建立虚拟参考帧的块建立虚拟参考帧,编码器建立虚拟参考帧之后参照虚拟参考帧对之后待发送的图像帧进行编码。

806、解码器接收到编码器发送的指示信号后,利用接收到的图像帧中带有虚拟参考帧标识的块建立虚拟参考帧。

具体的,解码器可以将第一虚拟参考帧缓存区中存储的带有虚拟参考帧标识的块提取出来组成虚拟参考帧。

807、解码器将虚拟参考帧加入到第一参考帧缓存队列中,并参照虚拟参考帧进行解码。

本申请中需要传输的帧都是图像帧,没有传送虚拟参考帧,相关技术中不仅要传输图像帧,还要传输虚拟参考帧,相比之下,本申请的技术方案减少了数据传输量,节约了网络资源。另外,有些相关技术中不传输虚拟参考帧,但是,解码器要在图像帧中根据与编码器相同的算法建立背景图像,选择建立虚拟参考帧的块,并建立虚拟参考帧,相比之下,本申请不需要解码器建立背景图像,选择用于建立虚拟参考帧的块,只需要根据虚拟参考帧标识直接将带有虚拟参考帧标识的块组成虚拟参考帧就好,降低了解码器的复杂度,节省了处理器资源。而且,因为解码器只需要根据虚拟参考帧标识就可以获取用于建立虚拟参考帧的块,如果编码器建立虚拟参考帧时所使用的算法有了变更,解码器不受影响,兼容性更好。

基于上述图1对应的实施例,本申请实施例提供一种解码器,用于执行上述图1对应的实施例中所描述的虚拟参考帧的建立方法,参照图9所示,该解码器90包括:处理单元901和接收单元902。

接收单元902,用于接收编码器传输的至少一个图像帧,至少一个图像帧中每一个图像帧包含至少一个块;

处理单元901,用于利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧。

在一种可能的实现方式中,处理单元901,还用于分配第一虚拟参考帧缓存区;确定每一个带有虚拟参考帧标识的块的位置,并将每一个带有虚拟参考帧标识的块分别存储在第一虚拟参考帧缓存区中。

在一种可能的实现方式中,处理单元901,还用于根据预设的位置映射关系确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息,

处理单元901,还用于根据虚拟参考帧标识的指示确定每一个带有虚拟参考帧标识的块的位置。

在一种可能的实现方式中,接收单元902,接收编码器发送的指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,接收单元902,还用于接收编码器发送的解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码;

处理单元901,还用于根据解码指示信号,参照虚拟参考帧进行解码。

本申请实施例提供的解码器,接收编码器传输的至少一个图像帧,利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧。因为用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立虚拟参考帧,减少了解码器的复杂度和功耗。

基于上述图7对应的实施例,本申请实施例提供一种编码器,用于执行上述图8对应的实施例中所描述的虚拟参考帧的建立方法,参照图10所示,该编码器100包括:处理单元1001和发送单元1002。

处理单元1001,用于获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,至少一个图像帧中每一个图像帧包含至少一个块,至少一个图像帧不包含虚拟参考帧,虚拟参考帧标识用于指示所在的块用于建立虚拟参考帧;

发送单元1002,用于向解码器传输至少一个图像帧。

在一种可能的实现方式中,处理单元1001,还用于当目标块与目标背景块中相似像素对的数量大于或等于第一阈值时,将目标块确定为用于建立虚拟参考帧的块;

其中,目标块为目标图像帧中的任意一个块,目标背景块是根据目标块在目标图像帧中的位置确定的目标块在背景图像中对应的块,至少一个图像帧包含目标图像帧;相似像素对包括分别位于目标块与目标背景块中位置相对应的两个像素,且相似像素对包括的两个像素满足至少一个分量之差的绝对值小于或等于第二阈值。

在一种可能的实现方式中,处理单元1001,还用于基于至少一个图像帧,按照预设的建模算法生成背景图像。

在一种可能的实现方式中,处理单元1001,还用于分配第二虚拟参考帧缓存区;根据预设的位置映射关系确定每一个用于建立虚拟参考帧的块的位置,并将每一个用于建立虚拟参考帧的块分别存储在第二虚拟参考帧缓存区中。

在一种可能的实现方式中,虚拟参考帧标识还用于指示所在的块的位置信息。

在一种可能的实现方式中,发送单元1002,还用于向解码器发送指示信息,指示信息用于指示预设的位置映射关系。

在一种可能的实现方式中,处理单元1001,还用于对用于建立虚拟参考帧的块增加预设数量的比特,虚拟参考帧标识承载在新增的预设数量的比特上。

在一种可能的实现方式中,处理单元1001,还用于在用于建立虚拟参考帧的块中设定预设格式的字段,虚拟参考帧标识承载在预设格式的字段上,预设格式的字段用于指示预设量化步长、预设块大小、预设编码方式、预设运动矢量、预设残差、预设量化参数中的至少一项。

在一种可能的实现方式中,处理单元1001,还用于当至少一个图像帧中用于建立虚拟参考帧的块组合成虚拟参考帧时,参照虚拟参考帧进行编码;

发送单元1002,还用于向解码器发送解码指示信号,解码指示信号用于指示参照虚拟参考帧进行解码。

本申请实施例提供的编码器,获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,向解码器传输至少一个图像帧。因为用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立虚拟参考帧,减少了解码器的复杂度和功耗。

基于上述图1对应的实施例,本申请实施例提供另一种解码器,用于执行上述图1对应的实施例中所描述的虚拟参考帧的建立方法,参照图11所示,该解码器110包括:处理器1101、存储器1102和接收器1103,处理器1101和存储器1102相互连接,处理器1101和接收器1103相互连接。

其中,存储器1102用于存储数据和程序。

处理器1101用于调用存储器中存储的程序实现图1对应的实施例中所描述的虚拟参考帧的建立方法。处理器1101与图9对应的实施例中的处理单元301对应。

接收器1103与图9对应的实施例中的接收单元302对应。接收器1103可以是天线或者有线网络接口。

处理器1101和接收器1103实现的功能与图9对应的实施例中处理单元301和接收单元302的功能相同,此处不再赘述。

本申请实施例提供的解码器,接收编码器传输的至少一个图像帧,利用至少一个图像帧中带有虚拟参考帧标识的块建立虚拟参考帧。因为用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立虚拟参考帧,减少了解码器的复杂度和功耗。

基于上述图7对应的实施例,本申请实施例提供另一种编码器,用于执行上述图8对应的实施例中所描述的虚拟参考帧的建立方法,参照图12所示,该编码器120包括:处理器1201、存储器1202和发送器1203,处理器1201和存储器1202相互连接,处理器1201和发送器1203相互连接。

其中,存储器1202用于存储数据和程序。

处理器1201用于调用存储器中存储的程序实现图7对应的实施例中所描述的虚拟参考帧的建立方法。处理器1201与图10对应的实施例中的处理单元401对应。

发送器1203与图10对应的实施例中的发送单元402对应。发送器1203可以是天线或者有线网络接口。

处理器1201和发送器1203实现的功能与图10对应的实施例中处理单元401和发送单元402的功能相同,此处不再赘述。

本申请实施例提供的编码器,获取至少一个图像帧,在至少一个图像帧中确定用于建立虚拟参考帧的块,对至少一个图像帧中用于建立虚拟参考帧的块添加虚拟参考帧标识,向解码器传输至少一个图像帧。因为对用于建立虚拟参考帧的块添加了虚拟参考帧标识,在传输过程中不需要传输虚拟参考帧,不会造成码率上升,而且,解码器只需要将带有虚拟参考帧标识的块提取出来组成虚拟参考帧,不需要用和编码器相同的算法基于图像帧建立虚拟参考帧,减少了解码器的复杂度和功耗。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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