本发明实施例涉及图像编码技术,尤其涉及一种全景图像编码方法和装置。
背景技术:
近年来,随着信息技术的发展,多视角的全景视频因其沉浸式视觉体验,被越来越多地应用于虚拟现实领域中。
然而,全景视频因为需要支持宽范围的视角,对分辨率有较高的要求(4K及以上),从而传输过程中有限带宽的问题就显得尤为严重。同时,即使二维视频编码标准现在已经很成熟了,如H.265/HEVC,H.264/AVC,AVS/AVS+/AVS2,但是在编码全景视频的时候仍然存在问题,尤其是编码效率。
在实现本发明的过程中,发明人发现现有技术的缺陷在于:目前为止,并没有针对全景视频图像的特有编码优化方案。已有的成熟编码方案都是针对平面视频图像的。鉴于全景视频和平面视频之间的显著差异性,已有的针对平面图像的编码方案很难彻底地适用于全景图像。
技术实现要素:
本发明实施例提供一种全景图像编码方法和装置,以提供更适用于全景图像编码的方案,提高编码效率。
第一方面,本发明实施例提供了一种全景图像编码方法,包括:
为全景图像的像素点设置权重标记;
将所述全景图像映射成为平面图像;
根据所述平面图像中映射形成的权重标记,控制所述平面图像的编码操作。
第二方面,本发明实施例提供了一种全景图像编码装置,包括:
权重标记模块,用于为全景图像的像素点设置权重标记;
图像映射模块,用于将所述全景图像映射成为平面图像;
编码控制模块,用于根据所述平面图像中映射形成的权重标记,控制所述平面图像的编码操作。
本发明实施例的技术方案,通过在平面图像上考虑映射前全景图像上的各像素点的权重,使得平面图像根据各区域像素点的重要性,来控制对平面图像的编码。从而能提高编码效率,更适合全景图像的编码操作。
附图说明
图1为本发明实施例一提供的一种全景图像编码方法的流程图;
图2为本发明实施例二提供的一种全景图像编码方法的流程图;
图3为本发明实施例三提供的一种全景图像编码方法的流程图;
图4为本发明实施例四提供的一种全景图像编码方法的流程图;
图5为本发明实施例五提供的一种全景图像编码装置的结构示意图。
图6为本发明实施例六提供的一种全景图像编码设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在全景视频编码领域中,目前被广泛采纳的客观质量评估指标为基于球形的峰值信噪比(Spherical-PSNR,S-PSNR),S-PSNR被验证过比原始的PSNR指标更为有效。本发明实施例的技术方案以S-PSNR为目标进行优化,得到了良好的改善效果。
由于S-PSNR本质上是在球面上计算全景视频图像的客观质量,并且用户也是在球面上观看全景视频。因此,球面图像上的内容十分重要,而映射到平面后,某些球面图像原本不存在的像素点就十分次要了。本发明实施例的技术方案根据该映射结果对映射后的平面图像生成权重图谱,即采样密度大的区域分配更大的权重,采样密度小的区域分配更小的权重。各区域的权重为后续编码优化做准备。下面通过实施例具体说明。
实施例一
图1为本发明实施例一提供的一种全景图像编码方法的流程图,本实施例可适用于对全景图像,特别是全景视频图像进行编码的情况,该方法可以由全景图像编码装置来执行,该装置可以采用硬件和/或软件的方式来实现,可配置在能够执行图像编码操作的设备中。该方法包括:
S110、为全景图像的像素点设置权重标记;
全景图像,一般是非平面图像,例如典型的球面视频中的每帧画面均为球面全景图像。全景图像也是由众多像素点构成的,上述操作中,为全景图像中的像素点进行权重标记的设置。可以是将全部像素点进行权重标记,但优选的是,在所述全景图像中均匀分散的像素点上,设置权重标记。例如,按照设定横向间距和设定纵向间距,均匀的确定部分像素点,进行权重标记。权重标记的像素点密度可根据需要进行调整。
S120、将所述全景图像映射成为平面图像;
将全景图像映射为平面图像可采用任意映射方法来实现,例如,球面全面图像可按经纬度展开,形成矩形的平面图像。在不同的纬度上,由于球面上的像素点少,而平面图像的像素点多,所以映射过程会通过插补填充算法形成一些像素点,填充在平面图像上。例如,球面的北极或南极点,在平面图像中会展开形成一条直线,北极点和南极点的像素点可能为该直线中的某一个点。在映射过程中,若某全景图像的像素点有权重标记,则映射到平面图像中,权重标记仍保留。
S130、根据所述平面图像中映射形成的权重标记,控制所述平面图像的编码操作;
具体操作中,可以采用映射到平面图像中像素点的权重标记,直接控制各像素点所对应的某区域的平面图像的编码操作,其权重标记的利用方式有多种具体方式,只要能够在编码过程中体现该像素点所在区域的权重即可。
优选是,将所述平面图像进行划分,形成多个编码块;根据所述平面图像中每个编码块像素点的权重标记,控制所述编码块的编码操作。即编码块作为像素点所在区域进行编码控制。
编码块是对平面图像进行划分而形成的。划分方式可因不同的压缩算法需求而确定。可选的,将所述平面图像进行划分,形成多个编码块包括:将所述平面图像进行均分划分,以确定各编码块。则各编码块的大小尺寸相同。
或者,也可以利用压缩算法,根据图像纹理等因素进行编码块的划分。
可以根据像素点权重标记确定编码块的权重,以编码块权重控制编码块的编程操作。也可以直接根据像素点权重标记,对该编码块内部的编程操作所涉及压缩参数进行控制。根据各个编码块中像素点是否有权重标记的特点,来确定编码块的权重。具体可以是,针对所述平面图像中的每个编码块,统计映射在所述编码块中具有权重标记的像素点数量,作为所述编码块的权重。本领域技术人员可以理解,具有权重标记的像素点的权重值可以视为1,不具有权重标记的像素点的权重值可以视为0,则可以通过累加像素点权重值的方式确定编码块的权重。
或者,若权重标记并非0、1的开关值,而是有具体权重数值,则也可以采用将像素点的权重值进行加和的方式确定编码块的权重值。
编码块的权重反映了该编码块在全景图像中的重要性。具体是,平面图像中,在球面全景图像中不存在的像素点(例如北极点所在直线上非北极点的像素点),将不会被标注权重标记,因此这些区域的编码块的权重较低。
编码块的权重或编码块像素点的权重标记可以用于影响对编码块的编码操作,例如,根据所述平面图像中每个编码块像素点的权重标记,控制所述编码块的编码操作具体包括:根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数;通过压缩算法采用所述压缩参数对所述编码块进行编码。
压缩参数在不同压缩算法中有不同体现,也有不同的确定方式。控制压缩参数,相当于间接的控制了编码的压缩率。对于权重低,不重要的编码块,可采用较高的压缩率。压缩率等于压缩前比特数除以压缩后比特数,压缩率越大,表明原始数据越少。对于权重高、重要的编码块,则采用较低的压缩率,从而最大程度保持图像的原始数据,利于解压缩时复原。
在采用压缩算法进行编码的过程中,有些压缩算法可能需要进一步划分编码块,即根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数包括:根据所述压缩算法的设定划分规则,在所述编码块内划分编码子块;根据所述编码块像素点的权重标记确定所述编码子块的压缩参数。优选是,编码块可继续被划分为编码子块,且编码子块的权重根据编码块的权重或像素点的权重标记确定,例如,直接等于编码块的权重,或者,基于编码子块中像素点的权重值进行加和确定。
本发明实施例的技术方案,通过在平面图像上考虑映射前全景图像上的各像素点的权重,使得平面图像根据各区域像素点的重要性,来控制对平面图像的编码。从而能提高编码效率,更适合全景图像的编码操作。
典型的应用在球面全景视频图像的编码处理过程中。因球面的全景视频图像必须映射到平面,形成平面图像才能进行编码。而映射过程中,平面图像中的部分区域是球面图像所不存在、通过插值填补而得,故对此浪费过多的编码资源,本发明实施例提出基于权重的编码机制来对压缩的全景视频改善质量,避免了编码资源的浪费。
已有压缩算法中,主要有两类控制模式,一种是基于量化参数(QP)来控制压缩编码过程,另一种是基于目标码率来控制压缩编码过程。下面分别通过实施例进行说明。
实施例二
图2为本发明实施例二提供的一种全景图像编码方法的流程图,本实施例以前述实施例提供的技术方案为基础,具体提供一种基于量化参数(QP)来控制压缩编码过程的方案。
在本实施例中,根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数具体包括:如果压缩算法为基于量化参数QP的压缩算法,根据所述编码块像素点的权重标记确定所述编码块的权重,并与预设权重区段阈值进行比较,根据所述编码块的权重所落入的区段,确定该区段对应的QP值。
即根据编码块权重所对应的阈值区段,直接按照该阈值区段对应的QP值计算公式来计算确定QP值。
相应的,本实施例的方法包括:
S210、为全景图像的像素点设置权重标记;
S220、将所述全景图像映射成为平面图像;
S230、将所述平面图像进行划分,形成多个编码块;
S240、如果压缩算法为基于量化参数QP的压缩算法,基于如下公式确定压缩算法的量化参数QP值,作为压缩参数:
其中,
QPt,j为第t帧图像中第j个编码块的QP值;
QPall为预设的QP基准值,可以参考该压缩算法的原有方式确定;
为第t帧图像中第j个编码块的权重;
ω1、ω2、ω3和ω4,满足0<ω1<ω2<ω3<ω4的关系,为预设权重区段阈值。
可以通过按如下公式,计算第j个编码块中每个像素点权重之和来确定:
其中,Wt(i)为第i个像素点在当前帧的权重,可以等于该像素点所在编码块的权重,也可以是像素点自身的权重值。It,j为第t帧中第j个编码块中的像素点集合。
可见,当权重越小时,该编码块越重要,则确定的QP值越小。QP值越小,则相应的压缩率越低,即对原始数据的保留越多。
S250、通过压缩算法采用所述压缩参数对所述编码块进行编码。
基于确定QP值进行编码操作,具体的编码过程可参考各种已有压缩算法的编码过程。
通过采用本实施例的技术方案,基于权重的量化参数控制方案就可以通过计算每个编码块的QP值来执行。
实施例三
图3为本发明实施例三提供的一种全景图像编码方法的流程图,本实施例以前述实施例提供的技术方案为基础,具体提供一种基于目标码率来控制压缩编码过程的方案。
视频编码中码率控制方案的主要目标是最小化给定目标码率压缩视频的失真。为了最小化该失真,并提高最终的S-PSNR指标,更多的比特数应该被分配给更重要的区域,即权重更大的区域。目前常用的四种不同的流行编码器(AVS+,AVS2,H.264/AVC,H.265/HEVC),可采用两种基于权重码率控制的方案。本实施例为第一种方案。
H.265/HEVC和AVS2的码率控制方案相似。在传统的码率控制方案中,将bpp(每像素分配得到的比特数)用来计算得到最终的量化参数(QP),进而执行后续的编码操作。而本发明实施例的技术方案提出新概念每权重比特数,即bpw(每权重分配得到的比特数),来代替原来的bpp。
现有技术中,码率控制方案中,为待编码的图像设定了编码后的码率,即目标码率。基于该目标码率所确定的比特数,可确定各编码块的码块目标码率,继而确定该编码块内每个像素点分配得到的比特数,即bpp。
本发明实施例中,以bpw代替了bpp,即根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数具体包括:如果压缩算法为基于目标码率的压缩算法,则根据所述编码块像素点的权重标记计算所述编码块的每权重比特数;根据所述每权重比特数,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
相应的,一种具体实现方式为包括:
S310、为全景图像的像素点设置权重标记;
S320、将所述全景图像映射成为平面图像;
S330、将所述平面图像进行划分,形成多个编码块;
S340、如果压缩算法为基于目标码率的压缩算法,按照如下公式计算第t帧中第i个像素点的每权重比特数bpwt,i:
其中,
Wt,j(i)为第t帧中第i个像素点的权重;
rt为第t帧的设定目标码率;
It为第t帧的总像素点数量;
S350、按照如下公式计算第t帧中第j个编码块的码块目标码率:
其中,It,j为第t帧中第j个编码块中的像素点集合;
S360、按照如下公式计算第t帧中第j个编码块的每权重比特数
其中,#(It,j)为第t帧中第j个编码块中的像素点数量。
S370、根据所述每权重比特数,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
第j个编码块在第t帧的QP值可计算如下:
其中,f(·)为与QP之间的关系模型,可以采用已有bpp与QP之间的关系模型,也可以进一步优化设置。
S380、通过压缩算法采用所述压缩参数对所述编码块进行编码。
通过采用本实施例的技术方案,基于权重的码率控制方案就可以通过计算每个编码块的QP值来执行。更大权重和bpw意味着值得高码率编码的更重要区域,从而获得更优的球面视频质量。这样的重要区域被分配更多的比特数从而保证更好的球面视频质量。
实施例四
图4为本发明实施例四提供的一种全景图像编码方法的流程图,本实施例以前述实施例提供的技术方案为基础,具体提供另一种基于目标码率来控制压缩编码过程的方案。
H.264和AVS+有类似的码率控制方案。在这种码率控制模式中,QP是通过目标码率在R-Q模型中计算而得。即只要目标码率获得,就可得到相应的QP值。
则,根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数包括:如果压缩算法为基于目标码率的压缩算法,则根据所述编码块像素点的权重标记计算所述编码块的码块目标码率;根据所述码块目标码率,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
该基于权重的码率控制方案利用第t帧图像第j个编码块的每权重比特数基于如下公式来计算第j个编码块在第t帧的码块目标码率rt,j,来代替传统计算方法:
具体的,本实施例包括如下步骤:
S410、为全景图像的像素点设置权重标记;
S420、将所述全景图像映射成为平面图像;
S430、将所述平面图像进行划分,形成多个编码块;
S440、如果压缩算法为基于目标码率的压缩算法,计算第t帧中第i个像素点的每权重比特数bpwt,I;
S450、计算第t帧中第j个编码块的码块目标码率;
具体的计算过程,可参考实施例三中的步骤S340-S350。
S460、根据所述码块目标码率,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
可以基于已有的R-Q模型来确定QP值,作为压缩参数。
S470、通过压缩算法采用所述压缩参数对所述编码块进行编码。
通过采用本实施例的技术方案,基于权重的码率控制方案就可以通过计算每个编码块的QP值来执行。更大权重和bpw意味着值得高码率编码的更重要区域,从而获得更优的球面视频质量。这样的重要区域被分配更多的比特数从而保证更好的球面视频质量。
实施例五
图5为本发明实施例五提供的一种全景图像编码装置的结构示意图,该装置包括:权重标记模块510、图像映射模块520和编码控制模块530。
其中,权重标记模块510,用于为全景图像的像素点设置权重标记;图像映射模块520,用于将所述全景图像映射成为平面图像;编码控制模块530,用于根据所述平面图像中映射形成的权重标记,控制所述平面图像的编码操作。
上述方案中,权重标记模块510可具体用于:在所述全景图像中均匀分散的像素点上,设置权重标记。
上述方案中,编码控制模块530可具体包括:编码块划分单元531和编码控制单元532。
其中,编码块划分单元531用于将所述平面图像进行划分,形成多个编码块;编码控制单元532用于根据所述平面图像中每个编码块像素点的权重标记,控制所述编码块的编码操作。
可选的,编码块划分单元531具体用于:将所述平面图像进行均分划分,以确定各编码块。
可选的,编码控制单元532具体包括:压缩参数计算子单元和压缩编码子单元。其中,压缩参数计算子单元,用于根据所述编码块像素点的权重标记计算确定针对所述编码块的压缩参数;压缩编码子单元,用于通过压缩算法采用所述压缩参数对所述编码块进行编码。
本发明实施例的技术方案,通过在平面图像上考虑映射前全景图像上的各像素点的权重,使得平面图像根据各区域像素点的重要性,来控制对平面图像的编码。从而能提高编码效率,更适合全景图像的编码操作。
在上述方案中,压缩参数的计算方式有多种,具体是:
压缩参数计算子单元具体用于:根据所述压缩算法的设定划分规则,在所述编码块内划分编码子块;根据所述编码块像素点的权重标记确定所述编码子块的压缩参数。
进一步的,压缩参数计算子单元具体用于:
如果压缩算法为基于量化参数QP的压缩算法,根据所述编码块像素点的权重标记确定所述编码块的权重,并与预设权重区段阈值进行比较,根据所述编码块的权重所落入的区段,确定该区段对应的QP值。
对于实际公式计算方式,压缩参数计算子单元具体用于:
基于如下公式确定压缩算法的量化参数QP值:
其中,
QPt,j为第t帧图像中第j个编码块的QP值;
QPall为预设的QP基准值;
为第t帧图像中第j个编码块的权重;
Wt(i)为第i个像素点在当前帧的权重;
It,j为第t帧中第j个编码块中的像素点集合;
ω1、ω2、ω3和ω4,满足0<ω1<ω2<ω3<ω4的关系,为预设权重区段阈值。
另一方计算方式中,压缩参数计算子单元具体用于:
如果压缩算法为基于目标码率的压缩算法,则根据所述编码块像素点的权重标记计算所述编码块的每权重比特数;
根据所述每权重比特数,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
具体的,压缩参数计算子单元具体用于:
按照如下公式计算第t帧中第i个像素点的每权重比特数bpwt,i:
其中,
Wt,j(i)为第t帧中第i个像素点的权重;
rt为第t帧的设定目标码率;
It为第t帧的总像素点数量;
按照如下公式计算第t帧中第j个编码块的码块目标码率:
其中,It,j为第t帧中第j个编码块中的像素点集合;
按照如下公式计算第t帧中第j个编码块的每权重比特数
其中,#(It,j)为第t帧中第j个编码块中的像素点数量。
再一种计算方式中,压缩参数计算子单元具体用于:
如果压缩算法为基于目标码率的压缩算法,则根据所述编码块像素点的权重标记计算所述编码块的码块目标码率;
根据所述码块目标码率,基于设定关系函数确定量化参数QP,作为所述编码块的压缩参数。
上述全景图像编码装置可执行本发明任意实施例所提供的全景图像编码方法,具备执行方法相应的功能模块和有益效果。
实施例六
本发明实施例六提供了一种全景图像编码设备,例如服务器等。该设备包括本发明任意实施例所提供的全景图像编码装置。
具体的,如图6所示,本发明实施例提供一种全景图像编码设备,该全景图像编码设备包括处理器60、存储器61、输入装置62和输出装置63;设备中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的全景图像编码方法对应的程序指令/模块(例如,全景图像编码装置中的权重标记模块510、图像映射模块520和编码控制模块530)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的全景图像编码方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。