專利名稱:基于圖像質(zhì)量和碼率約束的jpeg2000碼率控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種JPEG2000圖像壓縮中碼率控制方法,特別涉及一種基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法。
背景技術(shù):
JPEG2000壓縮算法以其優(yōu)越的性能,目前正廣泛應(yīng)用于圖像壓縮領(lǐng)域。JPEG2000壓縮算法中碼率控制核心是率-失真最優(yōu)問題,即達(dá)到給定碼率的同時(shí),失真最小。JPEG2000標(biāo)準(zhǔn)中采用PCRD-opt(Post-Compression Rate-Distortionoptimization)算法進(jìn)行碼率控制,該碼率控制對(duì)算術(shù)編碼后的碼流進(jìn)行優(yōu)化分層截?cái)啵锤鶕?jù)碼率約束,對(duì)碼流進(jìn)行截?cái)啵詽M足保留的碼流達(dá)到壓縮后的圖像質(zhì)量最好(即失真最小)。
假設(shè)給定一個(gè)分層截?cái)嚅撝担頡i和Di分別表示編碼塊i截?cái)嗪螽a(chǎn)生的碼率和失真,則編碼截?cái)嗪蟮玫降膱D像的總體碼率和失真為 和 在JPEG2000中標(biāo)準(zhǔn)碼率控制方法中,只需要考慮碼率約束,即取得 的同時(shí)保證最小。
采用拉各朗日乘數(shù)法,將碼率控制的問題轉(zhuǎn)化為公式(a) 圖1是JPEG2000標(biāo)準(zhǔn)編碼算法中的一個(gè)編碼過程,它包括了Tier-1編碼、碼率控制和Tier-2編碼三個(gè)階段。其中,在Tier-1階段,將計(jì)算各編碼塊i的最優(yōu)截?cái)帱c(diǎn)集合Hi,該集合中的元素為斜率λi(zij)和截?cái)帱c(diǎn)zij(0≤j≤||Hi||-1),λi(zi)隨zi單調(diào)遞減,對(duì)λi(zij)的計(jì)算如公式(2)所示 根據(jù)公式(a),將圖像最優(yōu)問題,轉(zhuǎn)化為求解每個(gè)編碼塊的率-失真最優(yōu)問題。對(duì)于不同的λ,利用二分查找法,在集合Hi中查找大于λ的最小λi(zi)對(duì)應(yīng)的截?cái)帱c(diǎn)zi,并且該截?cái)帱c(diǎn)集{zi}滿足圖像碼率小于碼率閾值。
圖1中的JPEG2000標(biāo)準(zhǔn)碼率控制方法的具體實(shí)現(xiàn)過程如下 步驟1、初始化過程在初始化過程中,初始化二分查找法中的率失真斜率λmin和λmax。令λmin=0,λmax=M,其中M依據(jù)JPEG2000壓縮系統(tǒng)實(shí)現(xiàn)不同而不同; 步驟2、刷新當(dāng)前率-失真斜率值在本步驟中,令λ=(λmin+λmax)/2; 步驟3、計(jì)算圖像當(dāng)前碼率R當(dāng)前質(zhì)量層中編碼塊i的截?cái)帱c(diǎn)zi的λi(z)為集合Hi中大于λ的最小值時(shí),計(jì)算圖像當(dāng)前碼率 步驟4、判斷碼率R是否滿足碼率閾值Rthreshold要求如果R>Rthreshold,則令λmin=λ+1,轉(zhuǎn)步驟5;否則,令λbest=λ,如果R=Rthreshold,整個(gè)碼率控制結(jié)束,否則令λmax=λ; 步驟5、碼率控制終止如果λmax>λmin,轉(zhuǎn)步驟2;否則,整個(gè)碼率控制結(jié)束。
關(guān)于JPEG2000標(biāo)準(zhǔn)碼率控制方法的進(jìn)一步信息可參考文獻(xiàn)1ISO/IEC15444-1,2002,JPEG 2000Image Coding System,page216-219;以及參考文獻(xiàn)2D.Taubman and M.Marcellin,“JPEG2000Image Compression Fundamentals,Standardsand Practice”,Kluwer Academic Publishers,Boston,MA,2002,page 339-378。
JPEG2000壓縮單幀圖像時(shí),碼率控制是為了達(dá)到給定壓縮碼率的同時(shí),圖像失真最小。然而,在醫(yī)學(xué)圖像、遙感圖像、視頻等方面,對(duì)圖像質(zhì)量更為重視。并且,應(yīng)用JPEG2000壓縮圖像序列時(shí),如果采用恒定碼率壓縮,不同復(fù)雜度的圖像其壓縮后的圖像質(zhì)量不同,并且簡(jiǎn)單圖像壓縮碼率過高,不僅會(huì)浪費(fèi)存儲(chǔ)空間和傳輸帶寬,而且會(huì)影響圖像序列整體質(zhì)量。因此,在JPEG2000標(biāo)準(zhǔn)算法中的碼率控制方法不適用于圖像質(zhì)量要求較高的壓縮操作。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有的JPEG2000壓縮算法中在碼流控制時(shí)只采用碼流約束,不能保證圖像質(zhì)量的缺陷,從而提供一種符合JPEG2000的、結(jié)合圖像質(zhì)量約束和碼流約束的碼流控制方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,包括 步驟10)、輸入一幀圖像,設(shè)定圖像質(zhì)量約束峰值信噪比PSNRthreshold和碼率約束Rthreshold; 步驟20)、根據(jù)步驟10)中設(shè)定的峰值信噪比PSNRthreshold初始化壓縮圖像失真閾值Dthreshold,并初始化二分查找法中的率失真斜率λmin和λmax; 步驟30)、刷新當(dāng)前率-失真斜率值,令λ=(λmin+λmax)/2; 步驟40)、計(jì)算圖像當(dāng)前碼率R和失真D,當(dāng)前質(zhì)量層中編碼塊i的截?cái)帱c(diǎn)zi的率失真斜率λi(z)為集合Hi中大于當(dāng)前率-失真斜率值λ的最小值時(shí),計(jì)算圖像當(dāng)前碼率和失真 所述集合Hi為各編碼塊i的最優(yōu)截?cái)帱c(diǎn)集合; 步驟50)、判斷步驟40)中計(jì)算得到的圖像當(dāng)前碼率R是否滿足步驟10)中設(shè)定的碼率閾值Rthreshold,如果R>Rthreshold,則令λmin=λ+1,然后執(zhí)行步驟70);否則,令λbest=λ后,執(zhí)行下一步; 步驟60)、判斷步驟40)中計(jì)算得到的失真D是否滿足步驟20)中初始化得到的失真閾值Dthreshold,如果D>Dthreshold,則令λmax=λ,執(zhí)行下一步;如果D<Dthreshold,令λmin=λ+1;否則,整個(gè)碼率控制結(jié)束; 步驟70)、如果λmax>λmin,執(zhí)行步驟30);否則,整個(gè)碼率控制結(jié)束。
上述技術(shù)方案中,在所述的步驟10)中,圖像質(zhì)量約束峰值信噪比PSNRthreshold和碼率約束Rthreshold由用戶根據(jù)對(duì)碼率和圖像質(zhì)量應(yīng)用的需求設(shè)定。
上述技術(shù)方案中,在所述的步驟20)中,所述的壓縮圖像失真閾值Dthreshold由峰值信噪比PSNRthreshold計(jì)算得到,其計(jì)算公式為 其中,B表示單分量的位深度,N1、N2分別為圖像的高度和寬度,C為圖像分量數(shù),所述B、N1、N2和C都是圖像的屬性信息,從圖像文件中得到。
上述技術(shù)方案中,在所述的步驟20)中,所述的率失真斜率λmin和λmax在初始化時(shí),λmin=0,λmax=M,其中M是一個(gè)具體的值,依據(jù)JPEG2000壓縮系統(tǒng)的實(shí)現(xiàn)而設(shè)定。
上述技術(shù)方案中,所述的步驟40)具體包括以下步驟 步驟41)、計(jì)算各編碼塊的圖像各分量平方和Dis; 步驟42)、若編碼塊i為截?cái)帱c(diǎn)ziλ時(shí),計(jì)算各編碼塊i中所有小于等于ziλ的截?cái)帱c(diǎn)的失真減小量ΔD之和Dit, 步驟43)、根據(jù)步驟41)和步驟42)的計(jì)算結(jié)果,計(jì)算圖像整體失真度D, 所述的步驟41)中,所述的Dis有兩種計(jì)算方法,包括 41-1)、編碼塊i所有截?cái)帱c(diǎn)的失真減小量ΔD之和, 41-2)、其中,yi[j]為編碼塊i中的采樣值,bi為編碼塊i所在子帶,Gbi為該子帶的綜合基矢量的平方范數(shù)。
本發(fā)明的優(yōu)點(diǎn)在于本發(fā)明可以在JPEG2000標(biāo)準(zhǔn)碼率控制基礎(chǔ)上實(shí)現(xiàn),在編碼的同時(shí)完成碼率控制,不增加計(jì)算復(fù)雜度的情況下,實(shí)現(xiàn)了基于圖像質(zhì)量和碼率約束的碼率控制。
圖1為在現(xiàn)有的JPEG2000壓縮算法中的熵編碼流程圖; 圖2為采用本發(fā)明的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法的熵編碼流程圖; 圖3為lena原始圖像; 圖4為本發(fā)明的實(shí)施例采用本發(fā)明的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法進(jìn)行圖像壓縮后的圖; 圖5為本發(fā)明的圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法的流程圖。
具體實(shí)施例方式 下面結(jié)合附圖和具體實(shí)施方式
,對(duì)本發(fā)明的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法作進(jìn)一步的說明。
與現(xiàn)有技術(shù)相比,本發(fā)明的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法不僅符合JPEG2000標(biāo)準(zhǔn)碼率控制PCRD-opt方法中的碼率約束,而且加入了圖像質(zhì)量約束的條件,在滿足圖像碼率閾值要求的情況下,滿足圖像質(zhì)量閾值的要求。本發(fā)明的碼率控制模型如下 其中,R表示碼率,D表示失真,Dthreshold表示壓縮圖像失真閾值,Rthreshold表示碼率閾值。
本發(fā)明利用JPEG2000標(biāo)準(zhǔn)碼率控制算法計(jì)算得到的失真度減小量ΔD計(jì)算圖像失真值,在編碼的過程中計(jì)算壓縮圖像的失真值。本發(fā)明的碼率控制方法改進(jìn)了標(biāo)準(zhǔn)JPEG2000壓縮算法中的碼率控制方法,在編碼的同時(shí)完成碼率控制,在不增加計(jì)算復(fù)雜度的情況下,實(shí)現(xiàn)了基于圖像質(zhì)量和碼率約束的碼率控制。
本發(fā)明的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法具體包括以下步驟 步驟10、設(shè)定圖像質(zhì)量約束PSNRthreshold(峰值信噪比)和碼率約束Rthreshold;在本步驟中,圖像質(zhì)量約束和碼率約束的值是由用戶根據(jù)對(duì)碼率和圖像質(zhì)量應(yīng)用的需求來(lái)設(shè)定的。
步驟20、根據(jù)步驟10中設(shè)定的峰值信噪比PSNRthreshold初始化壓縮圖像失真閾值Dthreshold,并初始化二分查找法中的率失真斜率λmin和λmax。
在本步驟中,對(duì)壓縮圖像失真閾值Dthreshold的計(jì)算如公式(1)所示 其中,B表示單分量的位深度,N1、N2分別為圖像的高度和寬度,C為圖像分量數(shù)。B、N1、N2和C都是圖像的屬性信息,可以從圖像文件中得到。
在初始化率失真斜率λmin和λmax時(shí),令λmin=0,λmax=M,其中M依據(jù)JPEG2000壓縮系統(tǒng)實(shí)現(xiàn)不同而不同。
步驟30、刷新當(dāng)前率-失真斜率值令λ=(λmin+λmax)/2; 步驟40、計(jì)算圖像當(dāng)前碼率R和失真D,當(dāng)前質(zhì)量層中編碼塊i的截?cái)帱c(diǎn)zi的率失真斜率λi(z)為集合Hi中大于當(dāng)前率-失真斜率值λ的最小值時(shí),計(jì)算圖像當(dāng)前碼率和失真所述集合Hi為各編碼塊i的最優(yōu)截?cái)帱c(diǎn)集合,對(duì)該集合中所包含的元素以及各個(gè)元素的計(jì)算在背景技術(shù)中已經(jīng)作了說明。
與現(xiàn)有的JPEG2000標(biāo)準(zhǔn)相比,本步驟中對(duì)失真D的計(jì)算有很大的不同,下面對(duì)其具體的實(shí)現(xiàn)進(jìn)行說明。
在現(xiàn)有技術(shù)中,對(duì)壓縮圖像失真值D計(jì)算是對(duì)原始圖像和壓縮后重建圖像各分量的差值求平方和,即如公式(2)所示 其中,N1、N2分別為圖像的高度和寬度,C為圖像分量數(shù),Ic(i,j)和Ic′(i,j)分別表示原始圖像和壓縮后重建圖像的象素(i,j)的分量c的灰度值。
在這種方式中,圖像失真值是在壓縮圖像重建后再作的計(jì)算,需要根據(jù)圖像的可伸縮性對(duì)碼率進(jìn)行調(diào)整,這一調(diào)整過程需要對(duì)圖像作多次編解碼。因此,圖像失真值的計(jì)算復(fù)雜,碼率控制的時(shí)間長(zhǎng),不利于圖像的實(shí)時(shí)處理。圖1是JPEG2000標(biāo)準(zhǔn)算法中的相關(guān)操作過程,在JPEG2000系統(tǒng)的Tier-1編碼過程中,計(jì)算各編碼塊i的當(dāng)前掃描通道的所有位被截?cái)嗪蠼o重建圖像帶來(lái)的失真減小量ΔD,并計(jì)算當(dāng)前編碼通道經(jīng)算術(shù)編碼器編碼后的碼字?jǐn)?shù)為ΔR。因此,在Tier-2階段碼率控制過程中,已知各編碼塊的階段點(diǎn)ziλ,則可得到圖像的整體失真度。
而在本發(fā)明中,對(duì)壓縮圖像的失真計(jì)算是編碼過程中實(shí)現(xiàn)的,不需根據(jù)原始圖像和重建圖像得到圖像失真。如圖2所示,計(jì)算失真值D的具體步驟包括 步驟41、在圖2所示的Tier-1階段,計(jì)算各編碼塊的圖像各分量平方和Dis,Dis有以下兩種計(jì)算方法,在具體計(jì)算時(shí),只要采用其中的一種即可。
A、編碼塊i所有截?cái)帱c(diǎn)的失真減小量(ΔD)之和,失真減小量ΔD利用現(xiàn)有的JPEG2000標(biāo)準(zhǔn)中的PCRD-opt算法得到。
B、其中yi[j]為編碼塊i中的采樣值,bi為編碼塊i所在子帶,Gbi為該子帶的綜合基矢量的平方范數(shù)。對(duì)Dis的計(jì)算具體可參見參考文獻(xiàn)3D.Taubman and M.Marcellin,“JPEG2000Image Compression Fundamentals,Standards and Practice”,Kluwer Academic Publishers,Boston,MA,2002,page339-378。
步驟42、在碼率控制時(shí),若編碼塊i為截?cái)帱c(diǎn)ziλ時(shí),計(jì)算各編碼塊i中所有小于等于ziλ的截?cái)帱c(diǎn)的失真減小量(ΔD)之和Dit,其計(jì)算過程如公式(3)所示 步驟43、根據(jù)步驟41和步驟42的計(jì)算結(jié)果,計(jì)算圖像整體失真度D,其計(jì)算如公式(4)所示 步驟50、判斷步驟40中計(jì)算得到的圖像當(dāng)前碼率R是否滿足碼率閾值Rthreshold要求,如果R>Rthreshold,則令λmin=λ+1,然后執(zhí)行步驟70;否則,令λbest=λ后,執(zhí)行下一步; 步驟60、判斷步驟40中計(jì)算得到的失真D是否滿足失真閾值Dthreshold要求,如果D>Dthreshold,則令λmax=λ,執(zhí)行下一步;如果D<Dthreshold,令λmin=λ+1;否則,整個(gè)碼率控制結(jié)束; 步驟70、如果λmax>λmin,執(zhí)行步驟30;否則,整個(gè)碼率控制結(jié)束。
整個(gè)碼率控制方法最后可得到最優(yōu)截?cái)嘈甭?、壓縮后碼率和壓縮后失真的值,在圖2的Tier-2過程中完成符合JPEG2000碼流格式要求的打包,得到JPEG2000壓縮碼流。
下面以lena圖像壓縮為例,來(lái)說明采用本發(fā)明的碼率控制方法,lena圖像如圖3所示。Lena圖像大小為512*512,每象素為24比特,采用9/7小波變換,其他參數(shù)采用JPEG2000編碼默認(rèn)參數(shù)。
在步驟10中,設(shè)定圖像質(zhì)量約束PSNRthreshold=40dB和碼率約束Rthreshold=2bpp(bpp,比特每象素)。根據(jù)步驟20中的相關(guān)公式,利用PSNRthreshold得到Dthreshold=5113774.08,然后初始化率失真斜率λmin=0和λmax=65535。在步驟30中刷新當(dāng)前率-失真斜率值,得到λ=(λmin+λmax)/2=32768。在步驟40中,根據(jù)公式計(jì)算圖像當(dāng)前碼率R=2.01422119140625和失真D=391296.0。在步驟40中計(jì)算得到的圖像當(dāng)前碼率R(2.01422119140625)大于碼率閾值Rthreshold(2),因此令λmin=λ+1=32769,然后執(zhí)行步驟70。在步驟70中,因?yàn)棣薽ax>λmin,所以轉(zhuǎn)向步驟30執(zhí)行。在執(zhí)行若干此循環(huán)后,可得到如下結(jié)果 最優(yōu)截?cái)嘈甭蕿棣薭est=51461; 壓縮后碼率為0.459686bpp; 壓縮失真為5076288.0;相當(dāng)于PSNR為40.0320dB。
經(jīng)Tier-2編碼后得到的壓縮碼流重建后圖像如圖4所示,和原圖像相比在視覺上無(wú)差異。
權(quán)利要求
1.一種基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,包括
步驟10)、輸入一幀圖像,設(shè)定圖像質(zhì)量約束峰值信噪比PSNRthreshold和碼率約束Rthreshold;
步驟20)、根據(jù)步驟10)中設(shè)定的峰值信噪比PSNRthreshold初始化壓縮圖像失真閾值Dthreshold,并初始化二分查找法中的率失真斜率λmin和λmax;
步驟30)、刷新當(dāng)前率-失真斜率值,令λ=(λmin+λmax)/2;
步驟40)、計(jì)算圖像當(dāng)前碼率R和失真D,當(dāng)前質(zhì)量層中編碼塊i的截?cái)帱c(diǎn)zi的率失真斜率λi(z)為集合Hi中大于當(dāng)前率-失真斜率值λ的最小值時(shí),計(jì)算圖像當(dāng)前碼率和失真
所述集合Hi為各編碼塊i的最優(yōu)截?cái)帱c(diǎn)集合;
步驟50)、判斷步驟40)中計(jì)算得到的圖像當(dāng)前碼率R是否滿足步驟10)中設(shè)定的碼率閾值Rthreshold,如果R>Rthreshold,則令λmin=λ+1,然后執(zhí)行步驟70);否則,令λbest=λ后,執(zhí)行下一步;
步驟60)、判斷步驟40)中計(jì)算得到的失真D是否滿足步驟20)中初始化得到的失真閾值Dthreshold,如果D>Dthreshold,則令λmax=λ,執(zhí)行下一步;如果D<Dthreshold,令λmin=λ+1;否則,整個(gè)碼率控制結(jié)束;
步驟70)、如果λmax>λmin,執(zhí)行步驟30);否則,整個(gè)碼率控制結(jié)束。
2.根據(jù)權(quán)利要求1所述的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,其特征在于,在所述的步驟10)中,圖像質(zhì)量約束峰值信噪比PSNRthreshold和碼率約束Rthreshold由用戶根據(jù)對(duì)碼率和圖像質(zhì)量應(yīng)用的需求設(shè)定。
3.根據(jù)權(quán)利要求1所述的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,其特征在于,在所述的步驟20)中,所述的壓縮圖像失真閾值Dthreshold由峰值信噪比PSNRthreshold計(jì)算得到,其計(jì)算公式為
Dthreshold=(2B-1)2·10-PSNRthreshold/10·C·N1·N2
其中,B表示單分量的位深度,N1、N2分別為圖像的高度和寬度,C為圖像分量數(shù),所述B、N1、N2和C都是圖像的屬性信息,從圖像文件中得到。
4.根據(jù)權(quán)利要求1所述的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,其特征在于,在所述的步驟20)中,所述的率失真斜率λmin和λmax在初始化時(shí),λmin=0,λmax=M,其中M是一個(gè)具體的值,依據(jù)JPEG2000壓縮系統(tǒng)的實(shí)現(xiàn)而設(shè)定。
5.根據(jù)權(quán)利要求1所述的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,其特征在于,所述的步驟40)具體包括以下步驟
步驟41)、計(jì)算各編碼塊的圖像各分量平方和Dis;
步驟42)、若編碼塊i為截?cái)帱c(diǎn)ziλ時(shí),計(jì)算各編碼塊i中所有小于等于ziλ的截?cái)帱c(diǎn)的失真減小量ΔD之和Dit,
步驟43)、根據(jù)步驟41)和步驟42)的計(jì)算結(jié)果,計(jì)算圖像整體失真度D,
6.根據(jù)權(quán)利要求5所述的基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,其特征在于,所述的步驟41)中,所述的Dis有兩種計(jì)算方法,包括
41-1)、編碼塊i所有截?cái)帱c(diǎn)的失真減小量ΔD之和,
41-2)、其中,yi[j]為編碼塊i中的采樣值,bi為編碼塊i所在子帶,Gbi為該子帶的綜合基矢量的平方范數(shù)。
全文摘要
本發(fā)明公開了一種基于圖像質(zhì)量和碼率約束的JPEG2000碼率控制方法,包括輸入圖像,設(shè)定圖像質(zhì)量約束和碼率約束;初始化壓縮圖像失真閾值,并初始化二分查找法中的率失真斜率λmin和λmax;刷新當(dāng)前率-失真斜率值,令λ=(λmin+λmax)/2;計(jì)算圖像當(dāng)前碼率R和失真D;利用二分查找法計(jì)算滿足圖像失真閾值和碼率閥值的碼率R、失真D和最優(yōu)截?cái)嘈甭?。本發(fā)明可以在JPEG2000標(biāo)準(zhǔn)碼率控制基礎(chǔ)上實(shí)現(xiàn),在編碼的同時(shí)完成碼率控制,不增加計(jì)算復(fù)雜度的情況下,實(shí)現(xiàn)了基于圖像質(zhì)量和碼率約束的碼率控制。
文檔編號(hào)H04N1/41GK101212543SQ200610171509
公開日2008年7月2日 申請(qǐng)日期2006年12月30日 優(yōu)先權(quán)日2006年12月30日
發(fā)明者玲 李, 王貞松 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所