一种基于最佳比特分配的HEVCCTU级码率控制方法与流程

文档序号:14271351阅读:1033来源:国知局
一种基于最佳比特分配的HEVC CTU级码率控制方法与流程

本发明涉及一种基于最佳比特分配的HEVC CTU级码率控制方法,属于视频编码技术领域。



背景技术:

在视频编码领域,码率控制致力于在给定压缩视频的比特率的条件下使其失真最小。如果压缩视频的比特率大于所提供的带宽,多余的比特就会在编码缓冲器中累积,从而一旦缓冲器溢出,就会导致视频跳帧。相反的,若是所提供的带宽过大的话就会导致浪费带宽资源,因为这些富裕的带宽资源可以用来提高压缩视频的质量。一般,在给定的比特率下,采用优化比特分配然后将分配的比特映射到量化参数的方式来实现码率控制。因此,视频编码码率控制有两个目标,第一个是利用最佳比特分配实现最小失真,第二个是准确的估计量化参数来保证码率控制准确性。

近来为了进一步地减少时空冗余以满足高清乃至超高清视频的压缩需求,高效率视频编码HEVC(High Efficiency Video Coding)标准,也称为H.265,被正式提出。然而,对于HEVC标准,大多数现有的前沿码率控制模型主要专注于实现码率控制的第二个目标,即使用分配的比特估计量化参数,同时尽管有一些前沿的工作致力于第一个目标,例如R-λ模型比特分配的研究,现在还没有针对HEVC码率控制的最佳比特分配实现。



技术实现要素:

本发明的目的是为了解决上述问题,提出一种基于最佳比特分配的HEVC CTU级码率控制方法(Optimal bit allocation),可以在编码树单元(Coding tree unit)为R-λ码率控制模型实现最佳比特分配。本发明通过使用一种新的R-D估计来代替现有的R-λ估计,演绎出最佳比特分配方程。并利用递归泰勒展开(Recursive Taylor expansion)算法,以很快的收敛速度解出此方程,进而获得近似的封闭解,从而实现最佳比特分配和最佳比特再分配。同时,本发明可以用很低的编码复杂度,来实现HEVC CTU级的最佳比特分配。

本发明的一种基于最佳比特分配的HEVC CTU级码率控制方法,可以用很低的编码复杂度增加,达到在率失真,码率控制准确性和对于动态画面变换的鲁棒性上优于其他现有R-λ模型的效果,实现HEVC CTU级码率控制的最佳比特分配和再分配。

本发明的一种基于最佳比特分配的HEVC CTU级码率控制算法(OBA),使用一种新的R-D估计来代替现有的R-λ估计,并得到优化方程,为了求解此原本不可解的优化方程,提出递归泰勒展开(RTE)算法,用极低的编码复杂度,在编码树单元(CTU)为R-λ码率控制模型实现最佳比特分配,同时通过理论与数值分析,验证了本发明在率失真,RC准确性和对于动态画面变换的鲁棒性等方面优于其他现有的R-λ模型。

本发明的优点在于:

(1)提出新的率失真估计模型,并由此得到最佳码率分配方程;

(2)提出递归泰勒级数展开算法,得到原本不可解的最佳比特分配方程的近似封闭解;

(3)此算法只需额外产生极小的编码复杂度来实现极小的逼近误差。

附图说明

图1基于最佳比特分配的HEVC CTU级码率控制算法整体流程图;

图2递归泰勒级数展开算法流程图;

图3编码量化参数计算流程图;

图4最佳比特重分配流程图;

图5亮度峰值信噪比图;

图6 R-λ码率控制机制编码图像;

图7 OBA码率控制机制编码图像;

具体实施方式

下面将结合附图和实施例对本发明作进一步的详细说明。

本发明是一种基于最佳比特分配的HEVC CTU级码率控制方法,流程如图1所示,包括以下几个步骤:

步骤一:针对需要进行码率控制的视频,获取第h个视频帧,第h个视频帧包括M个CTU块,设i个CTU块的最佳码率分配方程为:

其中:Rh表示视频第h帧预先分配的目标比特,chi和khi表示第h帧第i个CTU块的码率控制参数,其中I帧之后第1帧中的参数c1i和k1i使用HEVC标准中的默认值,表示为了最佳比特分配需要求出的朗格朗日乘子。

步骤二:采用递归泰勒级数展开算法(RTE算法)获取最佳码率分配方程的近似封闭解。

如图2所示,具体过程如下:

(1)获取给定的第k个视频帧的目标比特Rh,使用已知的图像λ作为预估

(2)设其中,为第h帧第i个CTU块的预估分配比特数。

利用泰勒级数展开将式(1)变形为3阶泰勒展开式(2)。

计算出A,B,C,D。

(3)通过公式解三次方程式(2):

获得其中E=B2-3AC,F=BC-9A(D-R),G=C2-3B(D-R)。

(4)判断是否满足收敛条件

若满足则得到最佳近似封闭解进入步骤三,否则,用步骤(3)中得到的来更新返回到步骤(2)。

步骤三:参考图3,进行编码量化参数的计算。在通过RTE算法得到最佳近似封闭解之后,利用公式

计算出第h帧每个CTU块理论上分配的比特数之后计算出每一个像素点的目标比特bpphi

其中Nhi表示第i个CTU块中的像素点数量。

之后通过公式求出相应的λhi

其中

然后对其进行λ平滑,具体操作为HEVC标准。之后通过公式求出量化参数QPhi

QPhi=4.2005·lnλhi+13.7122

由此得到第h帧的所有CTU块量化参数QPhi。然后对其进行QP平滑,具体操作为HEVC标准。最后通过标准的HEVC熵编码就可以对第h帧进行编码,得到其最佳码率分配,即每个CTU块所分配的真实比特数rhi

步骤四:参考图4,在前三个步骤结束之后,初步得到其中每一个CTU块分配的真实比特数rhi,但因为其与理论值会存在误差,所以在第h帧初步编码完成之后利用递归泰勒级数展开算法进行最佳比特重分配。其方法如下:

在编码第i个CTU块后,对接下来的K个CTU块进行比特重分配。使用公式

其中,Ti,i+K表示接下来的从第i+1到第i+K这K个CTU块的目标比特,是当前帧在编码i个CTU块后,用来编码剩余CTU的剩余比特数,可以用该帧总的目标比特Rh减去已经分配完的前i帧的总比特数,M代表此帧中总的CTU数,是利用递归泰勒级数算法为第j个CTU块分配的理论比特数。其意义为,第i次执行步骤二和步骤三后,得到第i个CTU块的实际分配比特数,之后在接下来的K个CTU块中补偿了第i个CTU编码过程中出现的误差,再循环一次步骤二步骤三得到第i+1个CTU块的实际分配比特数。

具体来说,在得到Ti,i+K之后,返回步骤二,用Ti,i+K代替Rh,将公式(2)变形为

然后依次执行步骤二和步骤三,从而得到第i+1个CTU块的实际分配比特rh(i+1)。如此循环M次,就可以得到第h帧的所有CTU块的最佳比特分配。

步骤五:在第h帧的编码完成之后,利用下式准确地得到第h+1帧码率控制所需的参数c(h+1)i和k(h+1)i,用于下一帧的编码:

其中λhi,rhi和dhi为编码第h帧第i个CTU之后得到的其真实的λ值,比特数和失真。失真值可以通过下面的公式得到:

其中po是这个CTU块原始的像素值,pn是同一个像素点经过码率控制重新编码之后的像素值。

在得到第h+1帧的参数c(h+1)i和k(h+1)i之后,重复执行步骤二至步骤四,完成第h+1帧的码率控制。然后循环操作直至最终完成整个视频的码率控制工作。

实施例:

以使用本发明方法和使用原本的R-λ码率控制机制分别进行编码的一段视频‘kimono’为例。图5表示的是平均每帧的亮度峰值信噪比(Y-PSNR)和比特率的关系。从图中可以看出,使用本发明的OBA机制编码的视频在Y-PSNR方面表现的优于原本的R-λ码率控制机制。

图6和图7表示的是对两种方法编码出的视频帧的主观质量比较。图6是使用原本的R-λ码率控制机制编码的一帧图像,图7是使用本发明方法编码的同一帧图像,从中可以看出在主观质量比较上本发明的优势。

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