技术领域
[0001] 本
发明属于
立体视觉和
视频编码交叉技术领域,更具体地,涉及一种光场焦点堆栈图像序列编、解码方法、装置及系统。
背景技术
[0002] 光场焦点堆栈图像序列是一组聚焦于不同深度的二维图像,包含了丰富的三维信息,广泛应用于如重聚焦、景深扩展、三维显示,由于密集的
采样和可忽略的
视差,因此存在大量的空间冗余,需要进一步压缩消除冗余。光场焦点堆栈图像序列与普通图像序列有较大差别,普通图像序列
帧与帧之间的对焦区域大致相同,而焦点堆栈图像序列在场景的对焦区域和失焦区域不同。大多数现有的编、解码方法是针对普通图像序列而设计的,故研究光场焦点堆栈图像序列编、解码方法及系统具有重要意义。
[0003] 现有的光场焦点堆栈图像序列编码方法中,基于3D-DCT的光场焦点堆栈图像序列编码方法,先将焦点堆栈图像序列分割为8x8x8的3D
像素块,再对每个3D块3D-DCT变换和线性量化,采用Z字形扫描方式将3D块从低频到高频重新排列为1D
信号,将1D信号采用Huffman编码生成二进制码流文件。而基于
小波变换的光场焦点堆栈图像序列压缩方法,对原始焦点堆栈图像序列进行3D-DWT变化,并对变换结果采用3D多级树集合分裂(SPIHT)
算法获得多
分辨率图像金字塔,进一步通过编码算法获得码流,相比于基于3D-DCT的焦点堆栈压缩算法,有效的抑制了编码块效应。但是,以上方法均没有考虑到图像之间的高度相关性,编码效率较低。
[0004] 综上所述,提出一种编码效率较高的光场焦点堆栈图像序列编、解码方法、装置及系统是亟需解决的问题。
发明内容
[0005] 针对
现有技术的以上
缺陷或改进需求,本发明提供了一种光场焦点堆栈图像序列编、解码方法、装置及系统,其目的在于解决现有技术由于没有考虑到图像之间的高度相关性而导致的编码效率较低的问题。
[0006] 为实现上述目的,第一方面,本发明提供了一种光场焦点堆栈图像序列编码方法,包括以下步骤:
[0007] S1、对光场焦点堆栈图像序列中的第一帧进行帧内编码;
[0008] S2、为当前待编码帧构造参考帧列表,将编码深度值初始化为零,并基于编码深度将当前待编码帧划分为编码单元;
[0009] S3、对于当前编码深度的编码单元,根据当前帧间预测模式得到其子预测单元;
[0010] S4、构造当前子预测单元的预测
运动矢量候选列表,在参考帧列表中遍历预测运动矢量候选列表,选择率失真代价最小的预测运动矢量,并将其所指的
位置作为起始点,在起始点的预设搜索范围内,进行整像素搜索;
[0011] S5、将整像素搜索的最优运动矢量所指的位置作为起始点,进行级联的亚像素搜索,并对搜索过程中的每一个匹配块进行高斯滤波,比较高斯滤波前后匹配块的率失真代价,选择率失真代价较小的匹配块为当前子预测单元的最优匹配块,其运动矢量为当前子预测单元的最优运动矢量;
[0012] S6、对每一个子预测单元,重复步骤S4-S5进行
迭代,直至得到当前编码深度下每一子预测单元的最优匹配块及其率失真代价;
[0013] S7、对当前编码深度的编码单元遍历所有帧间预测模式,按照S3-S6所述的方法进行操作,将率失真代价最小的帧间预测模式作为该编码单元的最优帧间预测模式;
[0014] S8、递增编码深度值,将编码单元进一步划分为子编码单元;
[0015] S9、对当前编码深度的每一个子编码单元依次按照S3-S8所述的方法进行操作,比较当前深度下各子编码单元的率失真代价之和与上一深度的率失真代价,将率失真代价较小的作为当前待编码帧各子编码单元的最优编码划分模式;
[0016] S10、基于当前帧的最优编码划分模式和最优帧间预测模式下的各编码单元下的子预测单元的最优运动矢量、高斯滤波参数,通过
运动补偿分别构造出其各编码单元的预测块;
[0017] S11、计算各编码单元与其对应预测块的残差,对高斯滤波参数、所得残差以及其对应的运动信息进行
熵编码;
[0018] S12、对光场焦点堆栈图像序列中的所有待编码帧按照步骤S2-S11所述的方法进行编码,直至光场焦点堆栈图像序列全部编码完毕,得到堆栈图像序列的码流文件。
[0019] 进一步优选地,当编码深度值初始化为零时,将待编码帧划分为最大编码单元。
[0020] 进一步优选地,上述最优帧间预测模式包括对称分割模式和非对称分割模式。
[0021] 进一步优选地,步骤S5中将整像素搜索的最优运动矢量所指的位置作为起始点进行级联的亚像素搜索的方法包括以下步骤:
[0022] S51、将整像素搜索的最优运动矢量所指的位置作为起始点,在起始点的预设搜索范围内进行半像素运动搜索;
[0023] S52、将半像素运动搜索的最优运动矢量所指的位置作为起始点,在起始点的预设搜索范围内进行1/4像素运动搜索。
[0024] 进一步优选地,上述步骤S5中,对搜索过程中的每一个匹配块采用不同高斯滤波参数进行高斯滤波,选取使率失真代价最小的高斯滤波参数作为匹配块的高斯滤波参数,以步长0.1在0.6-2.6范围内递增的进行高斯滤波参数的取值。
[0025] 进一步优选地,率失真代价函数为:
[0026] Jpred=Dpred+λpred*Rpred
[0027] 其中,Jpred为失真代价,Dpred为与待编码帧的编码块与其匹配块相比的失真,λpred为拉格朗日乘子,Rpred为参考块编码所需的比特数量。
[0028] 第二方面,本发明提供了一种光场焦点堆栈图像序列解码方法,包括:解析码流文件中的高斯滤波参数、残差和运动信息,基于高斯滤波参数对根据运动信息通过运动补偿重构的图像块进行滤波,重构出预测块,将预测块与残差块相结合,得到重建的解码图像,完成焦点堆栈图像序列的解码过程。
[0029] 第三方面,本发明提供了一种
编码器,采用本发明第一方面所提出的光场焦点堆栈图像序列编码方法进行编码;
[0030] 第四方面,本发明提供了一种
解码器,采用本发明第二方面所提出的光场焦点堆栈图像序列解码方法进行解码。
[0031] 第五方面,本发明提供了一种光场焦点堆栈图像序列编解码系统,包括:第四方面所述的编码器和第五方面所述的解码器。
[0032] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0033] 1、本发明提出了一种光场焦点堆栈图像序列编码方法,焦点堆栈图像每帧之间存在很大相关性,视差很小或没有,每帧之间仅有对焦区域与失焦模糊区域不同。对焦区域进行高斯滤波,可有效的模拟出其他帧的失焦模糊区域,将高斯滤波应用到帧间
预测模型之中,通过对预测块进行滤波,有效的减小了预测块与编码单元的残差分布,从而有效的节省了码率,编码效率较高。
[0034] 2、本发明所提供的一种光场焦点堆栈图像序列解码方法,对搜索过程中的每一个匹配块采用不同高斯滤波参数进行高斯滤波,选取使率失真代价最小的高斯滤波参数作为匹配块的高斯滤波参数,以步长0.1在0.6-2.6范围内递增的进行高斯滤波参数的取值,较小的步长和适中的范围减小了滤波参数突变的可能性,可以避免产生编码块效应,编码效果更加自然、平滑。
[0035] 3、本发明所提供的一种光场焦点堆栈图像序列解码方法,由于高斯滤波参数为浮点数,在熵编码时将高斯滤波参数扩大10倍后进行取整操作,将浮点数转换为整数,从而避免小数点后的长位数造成的编码浪费,大大提高了编码码率。
附图说明
[0036] 图1是本发明所提供的一种光场焦点堆栈图像序列编码方法
流程图;
[0037] 图2是本发明
实施例所提供的HEVC标准下的编码单元划分模式示意图;
[0038] 图3是本发明实施例所提供的帧间预测模式示意图;其中,图(a)为对原始图像块不进行划分的示意图;图(b)为将原始图像块进行上下左右2等分示意图;图(c)为将原始图像块进行横向二等分示意图;图(d)为将原始图像块进行纵向二等分示意图;图(e)为将原始图像块进行横向1:3划分示意图;图(f)为将原始图像进行横向3:1划分示意图;图(g)为将原始图像进行纵向1:3划分示意图;图(h)为将原始图像进行纵向3:1划分示意图。
具体实施方式
[0039] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0040] 为实现上述目的,第一方面,本发明提供了一种光场焦点堆栈图像序列编码方法,如图1所示,包括以下步骤:
[0041] S1、对光场焦点堆栈图像序列中的第一帧进行帧内编码;
[0042] 具体的,获得光场焦点堆栈图像序列的方法通常包括两种,一种是采用普通相机对同一场景中不同位置进行对焦,得到不同精深的图像构成焦点堆栈图像序列,另一种是采用焦点堆栈图像序列成像模型对光场相机所得图像进行处理,得到光场焦点堆栈图像序列。本实施例中的光场焦点堆栈图像序列采用后者所述的方法得到,利用光场工具包将光场子孔径图像先进行偏移再加权求和,根据偏移程度的不同得到不同深度的焦点堆栈图像序列。
[0043] S2、为当前待编码帧构造参考帧列表,将编码深度值初始化为零,并基于编码深度将当前待编码帧划分为编码单元;
[0044] 优选地,将已编码帧中和待编码帧中的已编码子块构成当前待编码帧的参考帧列表。当编码深度值初始化为零时,将待编码帧划分为最大编码单元。
[0045] 具体的,如图2所示为HEVC标准下的编码单元划分模式,其最大编码单元尺寸为64×64,编码深度为零时,最大编码单元尺寸为64×64,深度为1、2、3时对应的编码单元尺寸分别为32×32、16×16、8×8。具体的,当编码深度值为0时,将待编码帧划分为最大编码单元,即本实施例中为64×64大小的编码单元;当编码深度值为1时,在最大编码模块上进一步进行划分,得到如标号15所示的32×32大小的子编码块;当编码深度为2时,在编码深度为1的编码模块上进一步进行划分,得到如标号2所示的16×16大小的子编码块;当编码深度为3时,在编码深度为2的编码模块上进一步进行划分,得到如标号7所示的8×8大小的子编码块。
[0046] S3、对于当前编码深度的编码单元,根据当前帧间预测模式得到其子预测单元;
[0047] 优选地,帧间预测模式包括对称分割模式和非对称分割模式。如图3所示,原始图像块的大小为2N×2N,其中图(a)-(d)为对称分割模式,图(a)表示对原始图像块不进行划分;图(b)表示将原始图像块进行上下左右2等分,划分为N×N大小;图(c)表示将原始图像块进行横向二等分,分别划分为2N×N大小;图(d)表示将原始图像块进行纵向二等分,分别划分为N×2N大小;图(e)-(h)为非对称分割模式,图(e)表示将原始图像块进行横向1:3划分;图(f)表示将图像进行横向3:1划分;图(g)表示将原始图像进行纵向1:3划分;图(h)表示将原始图像进行纵向3:1划分。
[0048] S4、构造当前子预测单元的预测运动矢量候选列表,在参考帧列表中遍历预测运动矢量候选列表,选择率失真代价最小的预测运动矢量,并将其所指的位置作为起始点,在起始点的预设搜索范围内,进行整像素搜索;
[0049] 具体的,本实施例中,对于高级运动矢量模式,利用时域和
空域信息构建运动矢量候选列表。
[0050] 优选地,率失真代价函数为:
[0051] Jpred=Dpred+λpred*Rpred
[0052] 其中,Jpred为失真代价,Dpred为与待编码帧的编码块与其匹配块相比的失真,λpred为拉格朗日乘子,Rpred为参考块编码所需的比特数量。
[0053] S5、将整像素搜索的最优运动矢量所指的位置作为起始点,进行级联的亚像素搜索,并对搜索过程中的每一个匹配块进行高斯滤波,比较高斯滤波前后匹配块的率失真代价,选择率失真代价较小的匹配块为当前子预测单元的最优匹配块,其运动矢量为当前子预测单元的最优运动矢量;具体的,当最优匹配块为高斯滤波之前的匹配块时,其高斯滤波参数取值为0。
[0054] 优选地,将整像素搜索的最优运动矢量所指的位置作为起始点进行级联的亚像素搜索的方法包括以下步骤:
[0055] S51、将整像素搜索的最优运动矢量所指的位置作为起始点,在起始点的预设搜索范围内进行半像素运动搜索;
[0056] S52、将半像素运动搜索的最优运动矢量所指的位置作为起始点,在起始点的预设搜索范围内进行1/4像素运动搜索。
[0057] 采用不同亚像素
精度进行搜索,使得搜索的精确度更高。
[0058] 将整像素搜索的最优运动矢量所指的位置作为起始点,在预设搜索范围内进行半像素运动搜索,对1/2像素的插值后在预设搜索范围内进行1/2的
运动估计;将半像素运动搜索的最优运动矢量所指的位置作为起始点,进行1/4像素运动搜索,对像素进行1/4插值后在预设搜索范围内进行1/4像素运动估计,对1/4像素运动搜索过程中的每一个匹配块进行高斯滤波,比较高斯滤波前后匹配块的率失真代价,选择率失真代价较小的匹配块为当前子预测单元的最优匹配块。具体的,上述预设搜索范围根据参考帧列表类型、参考帧索引以及是否是双向预测自适应设置。
[0059] 具体的,焦点堆栈图像每帧之间存在很大相关性,视差很小或没有,每帧之间仅有对焦区域与失焦模糊区域不同。光学系统的成像模型可以由点扩散函数PSF来刻画,由于光场相机是主透镜以及微透镜阵列的组合结构,其对应的点扩散函数形式复杂,直接应用会导致计算量大;但光场相机的点扩散函数呈现出类高斯形式,故可以将该模型简化为二维高斯点扩散函数。将对焦区域与二维高斯点扩散函数做卷积,可模拟出其他帧的失焦模糊区域。
[0060] 具体的,二维高斯点扩散函数的表达式为:
[0061]
[0062] 其中,σ为高斯滤波参数,x,y为参考块中各像素点的位置。对参考块进行自适应高斯滤波得到 其中,Inoblur为参考块,h(x,y;σ)为二维高斯点扩散函数。将高斯滤波应用到帧间预测模型之中,通过对预测单元进行滤波,可以有效的减小了预测单元与编码单元的残差分布,从而有效的节省了码率。
[0063] 优选地,对搜索过程中的每一个匹配块采用不同高斯滤波参数进行高斯滤波,选取使率失真代价最小的高斯滤波参数作为匹配块的高斯滤波参数,以步长0.1在0.6-2.6范围内递增的进行高斯滤波参数的取值,通过选择精细的滤波参数可以避免编码块效应。
[0064] S6、对每一个子预测单元,重复步骤S4-S5进行迭代,直至得到当前编码深度下每一子预测单元的最优匹配块及其率失真代价;
[0065] S7、对当前编码深度的编码单元遍历所有帧间预测模式,按照S3-S6所述的方法进行操作,将率失真代价最小的帧间预测模式作为该编码单元的最优帧间预测模式;
[0066] S8、递增编码深度值,将编码单元进一步划分为子编码单元;
[0067] S9、对当前编码深度的每一个子编码单元依次按照S3-S8所述的方法进行操作,比较当前深度下各子编码单元的率失真代价之和与上一深度的率失真代价,将率失真代价较小的作为当前待编码帧各子编码单元的最优编码划分模式;
[0068] S10、基于当前帧的最优编码划分模式和最优帧间预测模式下的各编码单元下的子预测单元的最优运动矢量、高斯滤波参数,通过运动补偿分别构造出其各编码单元的预测块;
[0069] S11、计算各编码单元与其对应预测块的残差,对高斯滤波参数、所得残差以及其对应的运动信息进行熵编码;其中,运动信息包括最优运动矢量中的精度信息和偏移信息。
[0070] 优选地,由于高斯滤波参数为浮点数,小数点后的位数较多,在熵编码时将其扩大10倍并进行取整操作,将浮点数转换为整数,可以大大减少所需编码码率。
[0071] S12、对光场焦点堆栈图像序列中的所有待编码帧按照步骤S2-S11所述的方法进行编码,直至光场焦点堆栈图像序列全部编码完毕,得到堆栈图像序列的码流文件。
[0072] 从EPFL光场数据集中生成的17帧光场焦点堆栈图像序列,分别采用[0073] 本发明所提供的编码方法与HM 16.20默认编码方法对光场焦点堆栈图像序列进行编码,比较编码结果的RD性能,实验表明本发明所提供的方法,在低延时B,低延时P以及随机
访问的编码结构配置下分别节省了7.10%、16.60%、7.30%的码率,具有更高的编码效率。
[0074] 第二方面,本发明提供了一种光场焦点堆栈图像序列解码方法,包括:解析码流文件中的高斯滤波参数、残差和运动信息,基于高斯滤波参数对根据运动信息通过运动补偿重构的图像块进行滤波,重构出预测块,将预测块与残差块相结合,得到重建的解码图像,完成焦点堆栈图像序列的解码过程。
[0075] 优选地,若在编码时,存在将高斯滤波参数转换为整数的操作,那么解码时则需要进行对应的逆操作,将整数对应转换成浮点数。
[0076] 第三方面,本发明提供了一种编码器,采用本发明第一方面所提出的光场焦点堆栈图像序列编码方法进行编码;
[0077] 第四方面,本发明提供了一种解码器,采用本发明第二方面所提出的光场焦点堆栈图像序列解码方法进行解码。
[0078] 第五方面,本发明提供了一种光场焦点堆栈图像序列编解码系统,包括:第四方面所述的编码器和第五方面所述的解码器。
[0079] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何
修改、等同替换和改进等,均应包含在本发明的保护范围之内。