比特率控制方法及视频编码装置与流程

文档序号:12967867阅读:224来源:国知局
本发明是指一种比特率控制方法及视频编码装置,尤指一种以查表方式取得对应于编码区块的编码参数的比特率控制方法及视频编码装置。
背景技术
::比特率控制(ratecontrol)是视频编码中的一个基本课题。在视频传输及储存过程当中,网络频宽、储存资源都是有限的,比特率控制的作用就是在最大限度保证视频编码品质的前提下,针对不同编码参数进行视频编码,使得输出的视频码流(videostream)能够满足传输及储存限制。因此,比特率控制对于视频编码标准的应用具有极其重要的作用。另一方面,已知技术已发展出利用软件搭配硬件架构(即软硬件协同架构)以进行视频编码的运算,一般来说,软件仅可处理帧级别(framelevel)以上的运算,而帧级别以下的编码运算则由硬件来执行。详细来说,通过软件根据不同模型计算出对应于一帧(frame)的编码参数,而硬件可根据软件所计算出的帧级参数,对该帧的多个编码区块进行编码。需注意的是,即使前述多个编码区块可具有不同的目标位每像素(targetbitsperpixel,targetbpp),硬件仍以前述软件所计算出的帧级参数对该帧的多个编码区块进行编码,即于视频编码时该帧中所有的编码区块皆套用相同的编码参数(即软件所计算出的帧级参数),而造成对该帧的视频编码不够精细,使得比特率控制的效益不佳。另外,已知编码参数均根据不同模型通过软件计算而得,而具有较高的计算复杂度。因此,已知技术实有改善的必要。技术实现要素:因此,本发明的主要目的即在于提供一种比特率控制方法及视频编码装置,以改善已知技术的缺点。本发明提出一种比特率控制方法,用于一视频编码装置,该比特率控制方法包含有根据对应于一第一帧(frame)的一第一帧级参数,建立一参数表,并将该参数表储存于该视频编码装置的一查表(lookuptable,lut)单元;读取该查表单元所储存的该参数表,以根据该参数表及对应于该第一帧中一编码区块的一目标参数,取得对应于该编码区块的至少一编码参数;以及根据该至少一编码参数,对该第一帧的该编码区块进行编码。本发明另提出一种视频编码装置,包含有一查表单元,用来储存一参数表;一处理单元;一储存单元,用来储存一程序码,该程序码指示该处理单元执行以下步骤根据对应于一第一帧的一第一帧级参数,建立该参数表,并将该参数表储存于该视频编码装置的该查表单元;以及读取该查表单元所储存的该参数表,以根据该参数表及对应于该第一帧中一编码区块的一目标参数,取得对应于该编码区块的至少一编码参数;以及一编码单元,用来根据该目标参数及该至少一编码参数,对该第一帧的该编码区块进行编码。附图说明为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:图1为本发明实施例一视频编码装置的示意图。图2为一帧的示意图。图3为本发明实施例一比特率控制流程的示意图。图4为本发明实施例一参数表建立流程的示意图。图中元件标号说明如下:10视频编码装置100查表单元102处理单元104储存单元106编码单元108程序码110控制单元112存储单元30比特率控制流程302~304步骤fk帧cb1~cbm编码区块具体实施方式请参考图1及图2,图1为本发明实施例一视频编码装置10的示意图,图2为一帧fk及其中的编码区块cb1~cbm的示意图。视频编码装置10接收一视频数据流uvs并对视频数据流uvs进行视频编码,以产生一已压缩视频数据流cvs,其中视频数据流uvs包含帧f1~fk。更进一步地,视频编码装置10用来对帧f1~fk的每一帧fk中所包含的编码区块cb1~cbm进行视频编码,编码区块可代表巨区块(macroblock)、编码树单元(codingtreeunit,ctu)或是其他帧中的编码基本单元。另外,视频编码装置10可取得分别对应于编码区块cb1~cbm的编码参数,并对编码区块cb1~cbm进行视频编码,其中,编码参数可为拉氏乘子(lagrangemultiplier,λ)、量化参数(quantizationparameter,qp)、位每像素(bitsperpixel,bpp)等。具体来说,视频编码装置10包含有一查表单元(lookuptable,lut)100、一处理单元102、一储存单元104以及一编码单元106。查表单元100可包含一控制单元110及一存储单元112,储存单元104用来储存一程序码108,程序码108用来指示处理单元102根据对应于帧fk的一第一帧级参数预先建立一参数表,并将该参数表储存于查表单元100的存储单元112中,当编码单元106对编码区块cb1~cbm进行视频编码时,控制单元110可自存储单元112读取并输出对应于编码区块cb1~cbm的编码参数,并将对应于编码区块cb1~cbm的编码参数传递至编码单元106,编码单元106即可根据对应于编码区块cb1~cbm的编码参数分别对编码区块cb1~cbm进行视频编码。详细来说,处理单元102或查表单元100的控制单元110可根据对应于各个编码区块的一目标参数(例如:目标位每像素(targetbitsperpixel,targetbpp))读取查表单元100,以取得该编码区块的编码参数(例如:拉氏乘子、量化参数、位每像素等),如此一来,编码单元106即可根据该编码区块的编码参数对该编码区块进行视频编码。其中,处理单元102为一般用途(generalpurpose)的处理器,其可为一中央处理器(cpu)或是一微处理器(microprocessor),而不在此限,储存单元104可为一只读存储器(read-onlymemory,rom)或是一非易失性存储器(non-volatilememory,例如,一电子抹除式可复写只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)或一快闪存储器(flashmemory)),而不在此限。另外,查表单元100及编码单元106可为特殊应用集成电路(application-specificintegratedcircuit,asic),而不在此限,其中查表单元100的存储单元112用来储存处理单元102所建立的参数表,存储单元112可为静态随机存取存储器(staticrandom-accessmemory,sram)或寄存器(register),而查表单元100的控制单元110用来读取并输出对应于编码区块cb1~cbm的编码参数,并将对应于编码区块cb1~cbm的编码参数传递至编码单元106,控制单元110可为特殊应用(applicationspecific)的逻辑控制电路或特殊应用的处理器。关于视频编码装置10的运作,可归纳为一比特率控制流程30,请参考图3,图3为本发明实施例比特率控制流程30的示意图。比特率控制流程30由视频编码装置10来执行,其包含以下步骤:步骤302:根据对应于帧fk的第一帧级参数,建立一参数表tb,并将参数表tb储存于视频编码装置10的查表单元100。步骤304:根据对应于帧fk中一编码区块cbi的一目标参数,自参数表tb中读取对应于编码区块cbi的编码参数。于视频编码装置10执行比特率控制流程30并取得编码区块cbi的编码参数后,即可将编码区块cbi的编码参数传递至编码单元106,并由编码单元106对编码区块cbi进行编码。根据比特率控制流程30,视频编码装置10即可根据帧fk的第一帧级参数,取得对应于编码区块cbi的编码参数,比特率控制流程30的操作细节详述如下。于步骤302中,视频编码装置10根据对应于帧fk的第一帧级参数,建立参数表tb,并将参数表tb储存于查表单元100的存储单元112中,其中步骤302可编译成程序码108由处理单元102来执行。详细来说,处理单元102可先根据对应于帧fk的第一帧级参数,计算多个第一编码参数,再根据多个第一编码参数,计算多个第二编码参数,并将第一编码参数及第二编码参数以单调(monotonic,即递增或递减)的方式排列于参数表tb中。具体来说,于一实施例中,处理单元102可由视频编码装置10取得对应于根据帧fk的一拉氏乘子λ0(第一帧级参数),并根据拉氏乘子λ0计算出多个拉氏乘子λ-n~λ-1、λ1~λn(多个第一编码参数)。其中,拉氏乘子λ-n~λn之间具有单调性;换句话说,拉氏乘子λ-n~λn以递增方式排列(即λn>λn-1),或拉氏乘子λ-n~λn以递减方式排列(λn<λn-1)。处理单元102根据拉氏乘子λ0计算出拉氏乘子λ-n~λ-1、λ1~λn的方式未有特定限制,举例来说,处理单元102可将拉氏乘子λ0乘以多个倍率r-n~r-1、r1~rn,以计算出多个拉氏乘子λ-n~λ-1、λ1~λn(即λn=rnλ0),其中多个倍率r-n~r-1、r1~rn代表多个拉氏乘子λ-n~λ-1、λ1~λn与拉氏乘子λ0之间的倍率。承上,于取得多个拉氏乘子λ-n~λn后,处理单元102可根据拉氏乘子λ-n~λn,通过一函数运算,分别计算出对应于拉氏乘子λ-n~λn的量化参数qp-n~qpn(量化参数qp0可代表第二帧级参数,而量化参数qp-n~qp-1、qp1~qpn可代表多个第二编码参数)。举例来说,处理单元102可通过一函数f1(·),计算量化参数qp-n~qpn,即计算量化参数为qpn=f1(λn);其中,f1(·)为一单调函数并代表拉氏乘子与量化参数之间的对应函数,于一实施例中,函数f1(·)可相关于一对数函数,处理单元102可计算量化参数为qpn=f1(λn)=c1ln(λn)+c2,其中ln(·)代表一对数函数,c1、c2为可视实际情况而调整的常数。因拉氏乘子λ-n~λn具单调性,且对数函数为单调函数,故量化参数qp-n~qpn之间具有单调性。另外,处理单元102亦可根据拉氏乘子λ-n~λn,通过另一函数运算,分别计算出对应于拉氏乘子λ-n~λn的位每像素bpp-n~bppn(此时,位每像素bpp0代表第二帧级参数,而位每像素bpp-n~bpp-1、bpp1~bppn可代表多个第二编码参数),其中位每像素bpp0对应于拉氏乘子λ0(即第一帧级参数)。举例来说,处理单元102可通过一函数f2(·),计算位每像素bppn,即位每像素为bppn=f2(λn),其中,f2(·)为一单调函数并代表拉氏乘子与位每像素之间的对应函数,于一实施例中,处理单元102可计算位每像素为bppn=f2(λn)=α(λn)β,其中α、β为可视实际情况而调整的常数。同样地,因拉氏乘子λ-n~λn具单调性,且函数f2(·)为单调函数,故位每像素bpp-n~bppn之间具有单调性。另一方面,拉氏乘子λ-n~λn、量化参数qp-n~qpn及位每像素bpp-n~bppn皆以递增(或递减)的方式排列于参数表tb中,关于参数表tb的一实施方式,请参考表1,如表1所示,参数表tb包含一指标列、一拉氏乘子列、一量化参数列以及一位每像素列,而拉氏乘子λ-n~λn、量化参数qp-n~qpn及位每像素bpp-n~bppn分别以递增(或递减)的方式排列于拉氏乘子列、量化参数列及位每像素列,其中,拉氏乘子列、量化参数列及位每像素列中的中心列表项目(rowentry)代表对应于指标0的列表项目,拉氏乘子列、量化参数列及位每像素列中的中心列表项目分别为为拉氏乘子λ0、量化参数qp0及位每像素bpp0。表1指标-n…-101…n拉氏乘子λ-n…λ-1λ0λ1…λn量化参数qp-n…qp-1qp0qp1…qpn位每像素bpp-n…bpp-1bpp0bpp1…bppn关于处理单元102根据对应于帧fk的拉氏乘子λ0,建立参数表tb的详细操作流程,可进一步归纳成为一参数表建立流程40,如图4所示。参数表建立流程40包含以下步骤:步骤400:将拉氏乘子λ0乘以倍率r-n~r-1、r1~rn,以计算出拉氏乘子λ-n~λ-1、λ1~λn。步骤402:根据拉氏乘子λ-n~λ-1、λ1~λn,通过函数f1(·),计算量化参数qp-n~qpn。步骤404:根据拉氏乘子λ-n~λ-1、λ1~λn,通过函数f2(·),计算位每像素bpp-n~bppn。步骤406:将拉氏乘子λ-n~λn、量化参数qp-n~qpn及位每像素bpp-n~bppn分别以递增(或递减)的方式排列于参数表tb的拉氏乘子列、量化参数列及位每像素列。关于参数表建立流程40的其余操作细节,可参考前述相关段落,于此不再赘述。另外,于步骤304中,视频编码装置10读取查表单元100所储存的参数表tb,以根据对应于帧fk中一编码区块cbi的一目标参数,自储存于存储单元112的参数表tb取得对应于编码区块cbi的编码参数。其中,步骤304可编译成程序码108由处理单元102来执行,或直接由查表单元100的控制单元110来执行。具体来说,视频编码装置10可根据编码区块cbi的一目标位每像素(targetbitsperpixel,targetbpp)tbppi,自储存于存储单元112的参数表tb读取对应于编码区块cbi的拉氏乘子、量化参数及位每像素。其中,视频编码装置10根据编码区块cbi的目标位每像素tbppi,自参数表tb读取对应于编码区块cbi的编码参数的方式并未有特定限制;举例来说,视频编码装置10可比对目标位每像素tbppi与位每像素bpp-n~bppn,以取得位每像素bppj,其中bppj为位每像素bpp-n~bppn中最接近目标位每像素tbppi的位每像素,亦即视频编码装置10取得指标j,换句话说,目标位每像素tbppi与位每像素bppj之间的差距为最小(相较于其余目标位每像素与目标位每像素tbppi之间的差距),视频编码装置10取得指标j后,即可读取参数表tb对应于指标j的行表项目(columnentry),进而取得拉氏乘子λj、量化参数qpj及位每像素bppj为对应于编码区块cbi的编码参数。需注意的是,视频编码装置10不限于根据目标位每像素,自参数表tb读取编码参数,视频编码装置10亦可利用绝对误差和(sumofabsolutetransformeddifference,satd)或是平均绝对差(meanabsolutedeviation,mad)自储存于存储单元112的参数表tb读取编码参数。其中,利用绝对误差和或是平均绝对差自参数表tb读取编码参数的操作细节为本领域具通常知识者所熟知,于此不再赘述。处理单元102或查表单元100的控制单元110取得拉氏乘子λj、量化参数qpj及位每像素bppj后,即可将拉氏乘子λj、量化参数qpj及位每像素bppj传递至编码单元106,并由编码单元106对编码区块cbi进行编码。需注意的是,前述操作流程皆以帧fk中编码区块cbi为例进行说明,而视频编码装置10可利用相同的操作流程对编码区块cb1~cbm的其余编码区块进行编码。如此一来,视频编码装置10即可针对编码区块cb1~cbm的目标位每像素tbpp1~tbppm,取得根据对应于编码区块cb1~cbm的编码参数,并据此分别对编码区块cb1~cbm进行编码,而使比特率控制达到最佳的效益。另外,处理单元102或控制单元110可计算拉氏乘子λ-n~λn的一平均数λave以及计算量化参数qp-n~qpn的一平均数qpave,当视频编码装置10欲对帧fk的下一帧fk+1进行视频编码时,平均数λave及平均数qpave即可视为对应于帧fk+1的帧级参数,即视频编码装置10亦可根据帧fk+1的帧级参数(平均数λave及平均数qpave),利用前述操作流程,对帧fk+1进行编码。换句话说,平均数λave即为参数表tb中拉氏乘子列的所有列表项目的平均数,平均数qpave为参数表tb中量化参数列的所有列表项目的平均数。较佳地,平均数λave为拉氏乘子列的所有列表项目的一几和平均数(geometricmean),而平均数qpave为量化参数列的所有列表项目的一算术平均数(arithmeticmean)。由上述可知,本发明的视频编码装置根据第一帧级参数建立参数表,并以查表的方式取得编码参数,相较于已知视频编码装置通过软件模型计算以取得编码参数的方式,本发明的视频编码装置具有较低的计算复杂度。需注意的是,前述实施例用以说明本发明的概念,本领域具通常知识者当可据以做不同的修饰,而不限于此。举例来说,于步骤302中,处理单元102是先计算出拉氏乘子λ-n~λn后,再根据拉氏乘子λ-n~λn计算出量化参数qp-n~qpn及位每像素bpp-n~bppn,而不限于此。处理单元102亦可先根据拉氏乘子λ-n~λn计算出量化参数qp-n~qpn,再根据量化参数qp-n~qpn计算出位每像素bpp-n~bppn,而不在此限。此外,处理单元102亦可先计算出量化参数qp-n~qpn,再根据量化参数qp-n~qpn计算出拉氏乘子λ-n~λn及位每像素bpp-n~bppn,或是先计算出位每像素bpp-n~bppn,再根据位每像素bpp-n~bppn计算出拉氏乘子λ-n~λn及量化参数qp-n~qpn,亦属于本发明的范畴。另外,于步骤304中,视频编码装置10比对编码区块cbi的目标位每像素tbppi与参数表tb中的位每像素bpp-n~bppn,取得位每像素bppj为最接近目标位每像素tbppi的位每像素,而本发明不限于此。视频编码装置10亦可自参数表tb中的位每像素bpp-n~bppn取得与目标位每像素tbppi最接近的位每像素bppj、bppj+1以及指标j、j+1,视频编码装置10可根据指标j、j+1于参数表tb中读取拉氏乘子λj、λj+1及量化参数qpj、qpj+1,视频编码装置10再根据拉氏乘子λj、λj+1、量化参数qpj、qpj+1及位每像素bppj、bppj+1以任何内插(interpolation)的方式计算出拉氏乘子λi’、量化参数qpi’及位每像素bppi’,拉氏乘子λi’、量化参数qpi’及位每像素bppi’极为对应于编码区块cbi的编码参数,编码单元106即可根据据拉氏乘子λi’、量化参数qpi’及位每像素bppi’对编码区块cbi进行编码。其中,拉氏乘子λi’为拉氏乘子λj与拉氏乘子λj+1之内插结果,量化参数qpi’为量化参数qpj与量化参数qpj+1之内插结果,位每像素bppi’为位每像素bppj与位每像素bppj+1之内插结果。由上述可知,本发明可事先建立参数表并将参数表储存于查表单元中,当进行视频编码时,视频编码装置可读取参数表,以取得同一帧中多个编码区块的编码参数。相较于已知技术,本发明可达到较佳的比特率控制效益以及较低的计算复杂度。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1