基于曲线拟合的率失真优化方法以及使用该方法的装置与流程

文档序号:12628282阅读:212来源:国知局
基于曲线拟合的率失真优化方法以及使用该方法的装置与流程
本发明涉及一种视讯编码技术,特别是一种基于曲线拟合(curvefitting)的率失真优化方法以及使用该方法的装置。
背景技术
:率失真优化(RDO,Rate-DistortionOptimization)是一种技术,用以在视讯压缩时提升质量。这用以在视讯编码的数据数目(亦即是码率)及影像质量损失(亦即是失真程度)间取得平衡的优化。详而言之,率失真优化为视频编码系统选择最优的编码模式,使码率与失真达到一个平衡点,从而使压缩效果最优。所谓编码模式,包括预测模式、运动向量、参考帧等,每个编码模式包含很多个候选模式,因此率失真优化的目的就是在这些候选模式中选出一个最优模式。视频编码系统可使用拉格朗日R-D代价函数(LagrangeR-Dcostfunction)来选择最优的编码模式,如下所示:min{J},J=D+λ·R(1)D是源图像块与重构图像块的失真,在视频编码系统中,根据不同的情况,D可取以下的值中之一者:绝对误差和(SAD,SumofAbsoluteDifference);hadamard变换后的绝对值求和(SATD,SumofAbsoluteTransformedDifference);以及差值的平方和(SSD,SumofSquaredDifference)。R表示编码预测模式、运动向量、参考帧、残差等需要的比特数(bits)。λ是拉格朗日常数。J是拉格朗日R-D代价函数。率失真优化的目的就是选取最小的J所对应的编码模式作为最佳编码模式,从而达到最优的压缩效果。传统的率失真优化方法,编码器需要将每种编码模式都实际编码一遍,得到每种编码模式的R、D值,再根据公式(1)计算出对应的J值,然后比较所有编码模式的J值,选取J值最小的编码模式作为最优编码模式。然而,每编码一次,都需要经过变换(T,Transform)、量化(Q,Quantization)、反量化(IQ,InverseQuantization)、反变换(IT,InverseTransform)、重构(R,Reconstruction)、熵编码(EntropyCoding)等计算过程。因此,若将所有的编码模式都编码一遍,耗费大量计算。在硬件实现上,这种传统的率失真优化方法不仅对硬件的开销很大,而且还会产生一定的时间延迟,影响编码的实时性。因此,需要一种基于曲线拟合的率失真优化方法以及使用该方法的装置,用以克服以上所述的缺陷。技术实现要素:本发明的实施例提出一种基于曲线拟合的率失真优化方法。依据第一帧的信息计算第一及第二拟合曲线,将第二帧的信息代入第一拟合曲线及第二拟合曲线,用以计算拟合失真及拟合编码比特数,并且依据拟合失真及拟合编码比特数计算代价。依据代价决定第二帧的最佳块划分模式,以及依据最佳块划分模式划分第二帧并据以编码第二帧。本发明的实施例提出一种基于曲线拟合的率失真优化装置,包含帧内/帧间预测模块、率失真代价计算模块以及曲线拟合模块。曲线拟合模块依据第一帧的信息计算第一拟合曲线及第二拟合曲线;以及将第二帧的信息代入第一拟合曲线及第二拟合曲线,计算拟合失真及拟合编码比特数。率失真代价计算模块依据拟合失真及拟合编码比特数计算代价。帧内/帧间预测模块依据代价决定第二帧的最佳块划分模式;以及依据最佳块划分模式划分第二帧。附图说明图1是依据本发明实施例的基于曲线拟合的率失真优化方法流程图。图2是依据本发明实施例的基于曲线拟合的率失真优化的系统方块图。图3是依据本发明实施例的视频编码流程图。具体实施方式以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的
发明内容必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。本发明的实施例提出了一种基于曲线拟合的率失真优化方法。此方法需要对若干数据进行曲线拟合,例如,将待编码数据的绝对值与编码比特数(bits)进行曲线拟合,得到二者之间的曲线关系。又例如,将原始图像和预测图像的失真值与原始图像和重构图像的失真值进行曲线拟合,得到二者之间的曲线关系。得到这些拟合曲线后,在后续的率失真优化中,无需再像传统方法那样计算R值及D值,而只需计算出待编码数据的绝对值,再把该值代入其对应的拟合曲线,即可得到对应的R’值;然后计算出原始图像和预测图像的失真值,再把该值代入其对应的拟合曲线,即可得到对应的D’值。通过拟合曲线来计算R’值和D’值,可降低计算复杂度,减少编码的时间迟延。图1是依据本发明实施例的基于曲线拟合的率失真优化方法流程图。此流程依据第一帧(可称为参考帧)的信息计算第一拟合曲线及第二拟合曲线(步骤S110),将第二帧(可称为编码帧)的信息代入第一拟合曲线及第二拟合曲线,计算拟合失真及拟合编码比特数(步骤S130),依据拟合失真及拟合编码比特数计算代价(步骤S150)。接着,流程依据代价决定第二帧的最佳块划分模式(步骤S170),以及依据最佳块划分模式划分第二帧,并据以编码第二帧(步骤S190)。图2是依据本发明实施例的基于曲线拟合的率失真优化的系统方块图。曲线拟合模块(curve-fittingmodule)240可采用最小二乘法(generalizedleastsquares)来进行曲线拟合。最小二乘法于最小误差平方和的情况下,使用回归模型估计未知的参数。当回归模型的解释变量(独立变量)间具有一定程度的关联,最小二乘法可用以进行回归分析。拟合函数可为三阶函数(third-orderfunction),如以下公式(2)所示,用以依据一帧的信息找出a、b、c、d的值:y(x)=a·x3+b·x2+c·x+d(2)曲线拟合模块240可使用公式(3)计算a、b、c、d的值:Σi=1N1Σi=1NxiΣi=1Nxi2Σi=1Nxi3Σi=1NxiΣi=1Nxi2Σi=1Nxi3Σi=1Nxi4Σi=1Nxi2Σi=1Nxi3Σi=1Nxi4Σi=1Nxi5Σi=1Nxi3Σi=1Nxi4Σi=1Nxi5Σi=1Nxi6·abcd=Σi=1NyiΣi=1Nxi·yiΣi=1Nxi2·yiΣi=1Nxi3·yi---(3)]]>其中,N表示样点个数,[xi,yi]表示一帧的第i对样点的值。利用公式(3)及上述帧的信息求出a、b、c、d的值之后,就能完成公式(2)的拟合曲线。之后,曲线拟合模块240将下一帧的x值代入公式(2),就可以确定y值。曲线拟合模块240使用公式(2)、公式(3),对公式(1)中的D、R二部分进行曲线拟合。详细来说,对于D值的曲线拟合,曲线拟合模块240可从帧内/帧间预测模块(intra-frame/inter-framepredictionmodule)210取得上述帧的N个不同预测单元(PU,PredictionUnit)块的原始像素值与预测像素值间的失真值SAD,及从失真计算模块(distortioncalculationmodule)230取得该PU块的原始像素值与重构像素值间的失真值D,用以得到N个[xi1,yi1]值对,其中xi1表示第i个PU块的原始像素值与预测像素值间的失真值,yi1表示第i个PU块的原始像素值与重构像素值间的失真值。接着,曲线拟合模块240可使用公式(4)求出a1,b1,c1,d1的值:Σi=1N1Σi=1Nxi1Σi=1Nxi12Σi=1Nxi13Σi=1Nxi1Σi=1Nxi12Σi=1Nxi13Σi=1Nxi14Σi=1Nxi12Σi=1Nxi13Σi=1Nxi14Σi=1Nxi15Σi=1Nxi13Σi=1Nxi14Σi=1Nxi15Σi=1Nxi16·a1b1c1d1=Σi=1Nyi1Σi=1Nxi1·yi1Σi=1Nxi12·yi1Σi=1Nxi13·yi1---(4)]]>最后,曲线拟合模块240将a1,b1,c1,d1代入公式(5),即可得到由失真值SAD及失真值D计算出的拟合曲线:y1(x)=a1·x3+b1·x2+c1·x+d1(5)详细来说,对于R值的曲线拟合,曲线拟合模块240可从帧内/帧间预测模块210取得上述帧的N个预测单元块的不同残差(residuals)的绝对值V,及从熵编码模块(entropycodingmodule)220取得编码上述帧所需要的比特数R,用以得到N个[xi2,yi2]值对,其中xi2表示第i个PU块的残差的绝对值,yi2表示编码第i个PU块需要的比特数。接着,曲线拟合模块240可使用公式(6)求出a2,b2,c2,d2的值:Σi=1N1Σi=1Nxi2Σi=1Nxi22Σi=1Nxi23Σi=1Nxi2Σi=1Nxi22Σi=1Nxi23Σi=1Nxi24Σi=1Nxi22Σi=1Nxi23Σi=1Nxi24Σi=1Nxi25Σi=1Nxi23Σi=1Nxi24Σi=1Nxi25Σi=1Nxi26·a2b2c2d2=Σi=1Nyi2Σi=1Nxi2·yi2Σi=1Nxi22·yi2Σi=1Nxi23·yi2---(6)]]>最后,曲线拟合模块240将a2,b2,c2,d2代入公式(7),即可得到由残差值V及编码比特数R之间的拟合曲线:y2(x)=a2·x3+b2·x2+c2·x+d2(7)图3是依据本发明实施例的视频编码流程图。此方法应用于如图2所示的系统。首先,编码第一帧图像(步骤S310)。接着,反复执行一个循环,用以编码下一帧(步骤S330),直到视频序列编码完毕为止(步骤S350中“否”的路径)。在步骤S310,不进行率失真优化,此帧在决定如何进行块划分时,仅利用原始图像与预测图像间的失真值SAD进行判决,即J=SAD。详细来说,帧内/帧间预测模块210直接采用原始图像与预测图像间的失真值SAD进行块划分。在决定结束后,帧内/帧间预测模块210可得到最佳划分模式,记录该最佳划分模式的SAD值、残差值、运动向量值、参考帧等信息。然后,针对每块进行变换271、量化273、反量化275、反变换277、熵编码220、重构279等计算过程。熵编码模块220记录熵编码时所需的编码比特数R,并输出至曲线拟合模块240。此外,失真计算模块230计算原始图像F与重构图像F’间的失真值D,并输出至曲线拟合模块240。曲线拟合模块240收集完需要的值后,使用公式(4)、(5)、(6)、(7)分别得到失真值D及所需的编码比特数R的拟合曲线y1(x)及y2(x)。在步骤S330,利用拟合曲线y(x)来进行率失真优化。详细来说,帧内/帧间预测模块210计算PU块的SAD值,并输出至曲线拟合模块240。曲线拟合模块240将PU块的SAD值代入公式(5)中的拟合曲线y1(x),用以得到拟合的失真值D'。帧内/帧间预测模块210另计算PU块的残差绝对值V,并输出至曲线拟合模块240。曲线拟合模块240将PU块的残差绝对值V代入公式(7)中得到的拟合曲线y2(x),用以得到PU块的拟合编码比特数R'r。加总所有编码比特数,得到总拟合编码比特数R'。率失真(RD)代价计算模块250计算拟合的率失真代价J=D'+λ·R',并输出至帧内/帧间预测模块210。然后,帧内/帧间预测模块210使用J值对块划分进行判决,得到最佳的块划分模式。与此同时,该帧也需执行步骤S310中的计算,以更新拟合曲线y1(x)及y2(x)。曲线拟合模块240及RD代价计算模块250可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其它具运算能力的处理器),并且在执行程序代码或软件时,提供之后所描述的功能。帧内/帧间预测模块210、熵编码模块220、失真计算模块230、变换271、量化273、反量化275、反变换277及重构279可采用习知的专用硬件电路实施,或者是使用通用硬件于加载并执行习知的程序代码时实施。关于帧内/帧间预测模块210的块划分判决,举例来说,可决定将一个16x16编码单元(CU,CodingUnit)划分成4个8x8PU块、2个8x16PU块以及2个16x8PU块中之一者。或者是,帧内/帧间预测模块110可决定将一个8x8CU划分成4个4x4PU块、2个4x8PU块以及2个8x4PU块中之一者。虽然图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其它的附加组件,以达成更佳的技术效果。虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟习此技艺人士显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。【符号说明】S110~S190方法步骤;210帧内/帧间预测模块;220熵编码模块;230失真计算模块;240曲线拟合模块;250RD代价计算模块;271变换;273量化;275反量化;277反变换;279重构;F原始图像;F’重构图像;V(Mode,MV,Ref)最佳划分模式的SAD值、运动向量值及参考帧;V(Residual)残差值;V参考信息;SADPU块的原始像素值与预测像素值间的失真值;DPU块的原始像素值与重构像素值间的失真值;D’拟合的失真值;R所需的编码比特数;R’总拟合编码比特数;J代价值;S310~S350方法步骤。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1