一种基于ρ域的三维视频编码码率控制方法及存储设备与流程

文档序号:17299626发布日期:2019-04-03 04:48阅读:217来源:国知局
一种基于ρ域的三维视频编码码率控制方法及存储设备与流程

本发明属于三维视频编码技术领域,特别涉及一种基于ρ域的三维视频编码码率控制方法及存储设备。



背景技术:

码率控制一直以来都是视频编码标准中非常重要的技术之一,国际上所有视频压缩标准离开码率控制其应用都会受到限制。国际上常见的视频压缩标准如mpeg-4、h.264、hevc(highefficiencyvideocoding)、mvc(multi-viewvideocoding)等已给出标准码率控制模型,并且其码率控制技术非常成熟。而目前国际上最新公布的3d视频编码标准之一多视点高清视频编码(multi-viewhighefficiencyvideocoding,mv-hevc),尚未给出有效的码率控制算法。

目前,国内外从事mv-hevc码率控制的研究相对之前码率控制技术较少,大部分研究从事mvc、hevc、h264等码率控制的相关研究。美国lim等提出了基于二项式模型的mvc码率控制算法,该算法利用视差预测和运动预测的几何关系,将所有视频帧分成若干种不同编码类型帧,然而各个视点之间的视差预测特性具有较大的差异。韩国seanaepark等人虽然考虑多视点视频编码中时间编码层采用分层b帧的影响,实验结果表明此算法也能保持高效的编码效率,但测试序列给出的实验结果平均码率控制误差在1%以上,很难满足实际应用的需求。leij等人建立r-λ模型的多视点视频编码码率控制算法,实验结果非常理想,但没有考虑视点间相关性。vizzottobb等人在立体视频编码的码率控制算法中,只考虑两个视点的情况,且由于此算法在多视点视频编码中,随着编码图像编码类型的增多,此种基于tm5的目标比特数分配的准确率会变差,导致码率控制误差非常高,比特分配难以控制。

也有不少国内外学者从事基于hevc的多视点视频编码码率控制的研究。shaof等人提出纹理深度间使用固定的分配比例分配码率,但此方法并不能使不同的序列都获得最佳的编码效率。xiao等人提出应用于不同带宽的可分级码率分配算法。fang等人提出了一种估计3d视频中虚拟视失真的分析模型,采用联合频域时域的分析方法估计深度图编码失真引起的虚拟视失真。该估计模型虽然准确,但复杂度较高。

pang等人提出了基于深度的3d-hevc码率控制算法,采用固定彩色和深度码率比例为4:1,但这样做不能得到最优的虚拟视点绘制质量。xiaojm等人提出了深度和纹理分级码率控制算法。wangx等人提出了基于二项式r-d模型的3d-hevc码率控制算法,由于直接采用h.264中码率控制模型,码率控制精度偏低。



技术实现要素:

为此,需要提供一种mv-hevc多视点视频编码的多级码率控制方法,用以解决传统码率控制模型及高效率多视点视频编码比特分配不准确的问题。

具体技术方案如下:

一种基于ρ域的三维视频编码码率控制方法,包括步骤:

建立ρ域码率模型;

根据视点间的图像相似性进行视点间比特分配;

根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制。

进一步的,所述“建立ρ域码率模型”,还包括步骤:

采用多元回归技术,计算得到模型参数。

进一步的,所述“采用多元回归技术,计算得到模型参数”,还包括步骤:

假设ρ与纹理部分编码比特率r(ρ)具有如下二次关系:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)+θ3

其中ρ表示变换系数量化后零系数的个数占所有系数的百分数,θ1,θ2,θ3为一元回归系数;

对以下r-ρ模型进行计算:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)

其中,θ1,θ2由如下的统计分析方法给出:令x1(ρ)=(1-ρ)2,x2(ρ)=1-ρ,设(k11,k21,r1),(k12,k22,r2),…,(k1n,k2n,rn)是已存在的n个样本值,令

利用多元回归技术,计算得到模型参数n为:

其中,kt是k的转置矩阵,(ktk)-1是ktk的逆矩阵。

进一步的,所述“根据视点间的图像相似性进行视点间比特分配;根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制”,还包括步骤:

步骤1:对多视点图像组进行比特分配与码率控制,计算得到当前多视点图像组应分配到的比特数;

步骤2:对单个视点图像组进行比特分配与码率控制,计算得到每个单视点图像组的权重因子wk,根据所述权重因子wk计算得到当前单视点图像组应分配到的比特数;

步骤3:对单个视点图像组中帧层进行比特分配与码率控制,计算得到当前编码帧目标比特数;

步骤4:对宏块层进行比特分配与码率控制,根据ρ域码率模型计算出ρ值,然后通过ρ值进一步推算当前宏块的量化参数qmb;

步骤5:根据:量化参数qmb对当前宏块进行编码;

步骤6:判断当前帧内所有的宏块是否均编码,若均编码,则转步骤7;若未均编码,则重复转步骤4至步骤5,直到均编码,则转步骤7;

步骤7:判断当前单个视点图像组内所有的帧是否均编码,若均编码,则转步骤8;若未均编码,则重复转步骤3至6,直到均编当前图像组所有帧;

步骤8:判断当前单个视点图像组内所有的单个视点图像组是否全部编码,若全部编码完成,则转步骤9;若没有全部编码完成,则重复上面步骤2至7,直到当前多视点图像组中所有单个视点图像组全部编码完成;

步骤9:判断当前多视点图像组是否为整个多视点序列最后一个多视点图像组,若是最后一个多视点图像组,则编码完成,否则,重复上面步骤1至步骤8,直至整个多视点序列编码完成。

进一步的,所述步骤2,还包括步骤:

当前多视点图像组分配到总比特为tmvgop,每个单个视点图像组的权重因子wk,则第k的视点分配目标比特为:

tsvgop,k=tmvgop·wk

其中wk(k=1,2,…,nview)初值根据视点间相似性计算得到:

其中,s1表示基本视点或主视点,作为其它视点的参考视点,nview表示编码视点的数目,s(vj,vk)表示视点vj,vk相似度,

其中,分别为两副图像的特征向量。

为解决上述技术问题,还提供了一种存储设备,具体技术方案如下;

一种存储设备,其中存储有指令集,所述指令集用于执行:

建立ρ域码率模型;

根据视点间的图像相似性进行视点间比特分配;

根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制。

进一步的,所述指令集还用于执行:

所述“建立ρ域码率模型”,还包括步骤:

采用多元回归技术,计算得到模型参数。

进一步的,所述指令集还用于执行:

所述“采用多元回归技术,计算得到模型参数”,还包括步骤:

假设ρ与纹理部分编码比特率r(ρ)具有如下二次关系:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)+θ3

其中ρ表示变换系数量化后零系数的个数占所有系数的百分数,θ1,θ2,θ3为一元回归系数;

对以下r-ρ模型进行计算:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)

其中,θ1,θ2由如下的统计分析方法给出:令x1(ρ)=(1-ρ)2,x2(ρ)=1-ρ,设(k11,k21,r1),(k12,k22,r2),…,(k1n,k2n,rn)是已存在的n个样本值,令

利用多元回归技术,计算得到模型参数n为:

其中,kt是k的转置矩阵,(ktk)-1是ktk的逆矩阵。

进一步的,所述指令集还用于执行:

所述“根据视点间的图像相似性进行视点间比特分配;根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制”,还包括步骤:

步骤1:对多视点图像组进行比特分配与码率控制,计算得到当前多视点图像组应分配到的比特数;

步骤2:对单个视点图像组进行比特分配与码率控制,计算得到每个单视点图像组的权重因子wk,根据所述权重因子wk计算得到当前单视点图像组应分配到的比特数;

步骤3:对单个视点图像组中帧层进行比特分配与码率控制,计算得到当前编码帧目标比特数;

步骤4:对宏块层进行比特分配与码率控制,根据ρ域码率模型计算出ρ值,然后通过ρ值进一步推算当前宏块的量化参数qmb;

步骤5:根据:量化参数qmb对当前宏块进行编码;

步骤6:判断当前帧内所有的宏块是否均编码,若均编码,则转步骤7;若未均编码,则重复转步骤4至步骤5,直到均编码,则转步骤7;

步骤7:判断当前单个视点图像组内所有的帧是否均编码,若均编码,则转步骤8;若未均编码,则重复转步骤3至6,直到均编当前图像组所有帧;

步骤8:判断当前单个视点图像组内所有的单个视点图像组是否全部编码,若全部编码完成,则转步骤9;若没有全部编码完成,则重复上面步骤2至7,直到当前多视点图像组中所有单个视点图像组全部编码完成;

步骤9:判断当前多视点图像组是否为整个多视点序列最后一个多视点图像组,若是最后一个多视点图像组,则编码完成,否则,重复上面步骤1至步骤8,直至整个多视点序列编码完成。

进一步的,所述指令集还用于执行:

所述步骤2,还包括步骤:

当前多视点图像组分配到总比特为tmvgop,每个单个视点图像组的权重因子wk,则第k的视点分配目标比特为:

tsvgop,k=tmvgop·wk

其中wk(k=1,2,…,nview)初值根据视点间相似性计算得到:

其中,s1表示基本视点或主视点,作为其它视点的参考视点,nview表示编码视点的数目,s(vj,vk)表示视点vj,vk相似度,

其中,分别为两副图像的特征向量。

本发明的有益效果是:通过建立ρ域码率模型,并基于高效率视点视频编码的基础上,根据视点间的图像相似性进行视点间比特分配(即:采用视点间相关性分析进而给每个视点进行合理的比特分配),有效避免了缓冲区“液面”波动对帧目标比特分配带来的负面影响,且根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制,克服了现有技术中目标比特分配的局限性,可有效地控制多视点视频编码的码率,码率控制精度达到99%以上,且峰值信噪比平均提高0.38db以上。

附图说明

图1为具体实施方式所述一种基于ρ域的三维视频编码码率控制方法的流程图;

图2为具体实施方式所述根据视点间的图像相似性进行视点间比特分配的流程图;

图3为具体实施方式所述存储设备的模块示意图。

附图标记说明:

300、存储设备。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1至图2,在本实施方式中,一种基于ρ域的三维视频编码码率控制方法可应用在存储设备上,所述存储设备包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端等。具体实施方式如下:

首先对本实施方式中的一些名词做以下解释说明:

码率控制:一种编码的优化算法,用于实现对视频码流大小的控制;

视频码率:数据传输时单位时间传送的数据位数;

帧率:称为帧的位图图像连续出现在显示器上的频率;

mv-hevc(multiviewhighefficiencyvideocoding):高效率多视点视频编码;

hevc(highefficiencyvideocoding):高效率视点视频编码;

mv-gop(multi-viewofgroupofpicture):多视点图像组;

sv-gop(signal-viewofgroupofpicture):单个视点图像组。

具体实施方式如下:

步骤s101:建立ρ域码率模型。在本实施方式中,所述“建立ρ域码率模型”,还包括步骤:采用多元回归技术,计算得到模型参数。所述“采用多元回归技术,计算得到模型参数”,还包括步骤:

假设ρ与纹理部分编码比特率r(ρ)具有如下二次关系:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)+θ3(1)

其中ρ表示变换系数量化后零系数的个数占所有系数的百分数,θ1,θ2,θ3为一元回归系数;

对以下r-ρ模型进行计算:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)(3)

其中,θ1,θ2由如下的统计分析方法给出:令x1(ρ)=(1-ρ)2,x2(ρ)=1-ρ,设(k11,k21,r1),(k12,k22,r2),…,(k1n,k2n,rn)是已存在的n个样本值,令

利用多元回归技术,计算得到模型参数n为:

其中,kt是k的转置矩阵,(ktk)-1是ktk的逆矩阵。

步骤s102:根据视点间的图像相似性进行视点间比特分配。

步骤s103:根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制。

需要说明的是,高效率多视点视频编码码率控制难点在于视点间比特很难分配,无法准确地给每个视点进行合理比特分配。故步骤s102和步骤s103中根据视点间的图像相似性以及编码信息给不同的视点合理的比特分配。在本实施方式中,用权重因子wk表示该视点k的所有视点中所占的比例,wk越大表明该视点为主视点,作为其他视点参考视点,该视点编码好处直接关系到整个视频编码的结果,因此需要分配比较多的比特。

请参阅图2,步骤s102和步骤s103具体还包括步骤:

步骤s201:对多视点图像组进行比特分配与码率控制,计算得到当前多视点图像组应分配到的比特数;

步骤s202:对单个视点图像组进行比特分配与码率控制,计算得到每个单视点图像组的权重因子wk,根据所述权重因子wk计算得到当前单视点图像组应分配到的比特数;

步骤s203:对单个视点图像组中帧层进行比特分配与码率控制,计算得到当前编码帧目标比特数;

步骤s204:对宏块层进行比特分配与码率控制,根据ρ域码率模型计算出ρ值,然后通过ρ值进一步推算当前宏块的量化参数qmb;

步骤s205:根据量化参数qmb对当前宏块进行编码;

步骤s206:判断当前帧内所有的宏块是否均编码,若均编码,则转步骤s207;若未均编码,则重复转步骤s204至步骤s205,直到均编码,则转步骤s207;

步骤s207:判断当前单个视点图像组内所有的帧是否均编码,若均编码,则转步骤s208;若未均编码,则重复转步骤s203至s206,直到均编当前图像组所有帧;

步骤s208:判断当前单个视点图像组内所有的单个视点图像组是否全部编码,若全部编码完成,则转步骤s209;若没有全部编码完成,则重复上面步骤s202至s207,直到当前多视点图像组中所有单个视点图像组全部编码完成;

步骤s209:判断当前多视点图像组是否为整个多视点序列最后一个多视点图像组,若是最后一个多视点图像组,则编码完成,否则,重复上面步骤s201至步骤s208,直至整个多视点序列编码完成。

其中所述步骤s202,还包括步骤:

当前多视点图像组分配到总比特为tmvgop,每个单个视点图像组的权重因子wk,则第k的视点分配目标比特为:

tsvgop,k=tmvgop·wk(6)

其中wk(k=1,2,…,nview)初值根据视点间相似性计算得到:

其中,s1表示基本视点或主视点,作为其它视点的参考视点,nview表示编码视点的数目,s(vj,vk)表示视点vj,vk相似度,

其中,分别为两副图像的特征向量。

其中,分别为两副图像的特征向量。在编码每个mv-gop图像组结束后,相关参数需要进行更新,可以根据之前已编码信息进行不断更新。aggop(sni,0)为编码第i个mv-gop图像组实际所需的比特数,agop(nk-1,0)表示编码第i个mv-gop图像组的第k-1个gop实际所需的比特数,则wk-1由式(9)给出

为了更好的预测当前编码视点所需比特,充分利用多视点视频编码已编码信息即前一组mv-gop,利用视点间相关性,来预测当前视点的编码权重。wk线性预测模型为:

其中分别表示一元回归系数,初值设为1和0,在编码每个mv-gop图像组结束后,需在编码后阶段进行刷新。

其中帧层的比特分配,在本实施方式中,是利用视差预测和运动预测的几何关系,将所有视频帧分成若干种不同编码类型帧,然而各个视点之间的视差预测特性具有较大的差异,因此视点间预测关系或者时间间预测关系相同的编码图像可能具有不同的编码特性,这时就不能采用相同的模型参数计算得到的目标比特数,否则会出现一定的偏差。故提出了如下式帧层目标比特分配算法:

上式中,t为编码m帧所消耗比特数之和;mada表示所有帧mad的平均值;madj表示第j帧的mad;cj和cm分别为第j帧和第m帧帧头信息占有比特。从上式(11)可知,madj和cj的越大图像帧分配的目标比特越多。

根据hev帧层目标比特分配方法,在mv-hevc中,第j-1帧目标比特分配如下:

上式中,ca表示编码当前gop中已编码帧的头信息所消耗比特的平均值。

多视点视频编码一般来说,视频序列运动越剧烈,每帧的活动时域即图像内容场景变换越大,编码的时候就需要的比特越多;反之每帧的活动时域即图像内容场景变换越小,编码的时候需要的比特就越少。为了mv-hevc码率控制更为精确,将上式(12)的码率控制方法作进一步改进,当前帧目标比特由式(13)计算:

上式中,tj为第j帧帧头信息所消耗比特。n代表当前帧所在的时间层,w(l)代表每帧复杂度的权重,wb(l)代表b帧的权重。

在本实施方式中,基本单元层比特分配可如下:

为了与hevc兼容,多视点视频编码基本单元层比特分配算法与hevc相似。由hevc基本单元层码率控制算法可知,该算法基本单元层码率分配比较简单就是把每帧所分配的比特再平均分给该帧的每个基本单元层,然后同一基本单元层中所有不同宏块采用相同的量化参数qp进行编码。然而实际上,即使是同一基本单元中的宏块在图像内容、纹理、活动时域等复杂度上也有很大的差异。因此,为了mv-hevc码率控制更加精确,根据其图像内容、纹理、活动时域等复杂度采用不同的量化值,由式(14)计算:

上式中,ttotal,k和n分别代表剩余比特总数和剩余基本单元数目,thead,k表示第k宏块头信息所消耗比特,fd(k)表示第k编码宏块的活动时域度。

式中,x,y分别为宏块在水平和垂直方向上的象素点数,x,y分别为水平、垂直方向上的坐标,ij(x,y)、ij-1(x,y)分别为当前宏块和前一宏块位置(x,y)处的亮度值。

如下提供本发明的方法与现有三个码率控制方法的对比表,在本实施方式中,采用了两种不同格式的测试序列,其中vassar、flamenco2、exit、ballroom为vga格式和poznanhall2、gtfly为hd格式。序列的分辨率包括640×480像素和1920×1088像素。测试平台采用jct-3v提供的mv-hevc系统平台。

上表给出了多视点视频编码码率控制的实验结果。从上表可见,前三种码率控制算法码率控制误差分别为2.95%,2.51%,1.98%,其码率控制误差都比较大,本实施方式所提出的码率控制算法与其它三种算法相比,码率更为精确,码率偏差较小,平均码率误差小于1%,能满足实际应用要求。

请参阅图3,在本实施方式中,一种存储设备300的具体实施方式如下:

一种存储设备300,其中存储有指令集,所述指令集用于执行:

建立ρ域码率模型;

根据视点间的图像相似性进行视点间比特分配;

根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制。

进一步的,所述指令集还用于执行:

所述“建立ρ域码率模型”,还包括步骤:

采用多元回归技术,计算得到模型参数。

进一步的,所述指令集还用于执行:

所述“采用多元回归技术,计算得到模型参数”,还包括步骤:

假设ρ与纹理部分编码比特率r(ρ)具有如下二次关系:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)+θ3

其中ρ表示变换系数量化后零系数的个数占所有系数的百分数,θ1,θ2,θ3为一元回归系数;

对以下r-ρ模型进行计算:

r(ρ)=θ1·(1-ρ)2+θ2·(1-ρ)

其中,θ1,θ2由如下的统计分析方法给出:令x1(ρ)=(1-ρ)2,x2(ρ)=1-ρ,设(k11,k21,r1),(k12,k22,r2),…,(k1n,k2n,rn)是已存在的n个样本值,令

利用多元回归技术,计算得到模型参数n为:

其中,kt是k的转置矩阵,(ktk)-1是ktk的逆矩阵。

进一步的,所述指令集还用于执行:

所述“根据视点间的图像相似性进行视点间比特分配;根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制”,还包括步骤:

步骤1:对多视点图像组进行比特分配与码率控制,计算得到当前多视点图像组应分配到的比特数;

步骤2:对单个视点图像组进行比特分配与码率控制,计算得到每个单视点图像组的权重因子wk,根据所述权重因子wk计算得到当前单视点图像组应分配到的比特数;

步骤3:对单个视点图像组中帧层进行比特分配与码率控制,计算得到当前编码帧目标比特数;

步骤4:对宏块层进行比特分配与码率控制,根据ρ域码率模型计算出ρ值,然后通过ρ值进一步推算当前宏块的量化参数qmb;

步骤5:根据:量化参数qmb对当前宏块进行编码;

步骤6:判断当前帧内所有的宏块是否均编码,若均编码,则转步骤7;若未均编码,则重复转步骤4至步骤5,直到均编码,则转步骤7;

步骤7:判断当前单个视点图像组内所有的帧是否均编码,若均编码,则转步骤8;若未均编码,则重复转步骤3至6,直到均编当前图像组所有帧;

步骤8:判断当前单个视点图像组内所有的单个视点图像组是否全部编码,若全部编码完成,则转步骤9;若没有全部编码完成,则重复上面步骤2至7,直到当前多视点图像组中所有单个视点图像组全部编码完成;

步骤9:判断当前多视点图像组是否为整个多视点序列最后一个多视点图像组,若是最后一个多视点图像组,则编码完成,否则,重复上面步骤1至步骤8,直至整个多视点序列编码完成。

进一步的,所述指令集还用于执行:

所述步骤2,还包括步骤:

当前多视点图像组分配到总比特为tmvgop,每个单个视点图像组的权重因子wk,则第k的视点分配目标比特为:

tsvgop,k=tmvgop·wk

其中wk(k=1,2,…,nview)初值根据视点间相似性计算得到:

其中,s1表示基本视点或主视点,作为其它视点的参考视点,nview表示编码视点的数目,s(vj,vk)表示视点vj,vk相似度,

其中,分别为两副图像的特征向量。

通过存储设备300上的指令集执行以下步骤:通过建立ρ域码率模型,并基于高效率视点视频编码的基础上,根据视点间的图像相似性进行视点间比特分配(即:采用视点间相关性分析进而给每个视点进行合理的比特分配),有效避免了缓冲区“液面”波动对帧目标比特分配带来的负面影响,且根据帧率、目标缓冲区容量、实际缓冲区大小以及该帧的活动时域复杂度进行帧层、基本单元层比特分配与码率控制,克服了现有技术中目标比特分配的局限性,可有效地控制多视点视频编码的码率,码率控制精度达到99%以上,且峰值信噪比平均提高0.38db以上。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

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