專利名稱:用于視頻幀內(nèi)編碼的klt矩陣訓(xùn)練方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號處理中的視頻編碼技術(shù)領(lǐng)域,特別是針對幀內(nèi)預(yù)測的殘 差信號訓(xùn)練出具有良好變換性能的KLT矩陣。
背景技術(shù):
汪264^¥(:是11!;-7的視頻編碼專家和130/正(的運(yùn)動圖像專家組聯(lián)合 提出的最新視頻編碼標(biāo)準(zhǔn)。同以往編碼標(biāo)準(zhǔn)(如H.261, H.263, MPEG-1, MPEG-2,MPEG-4等) 一樣,H.264/AVC也采用混合編碼框架,在進(jìn)行編碼 時(shí),首先將視頻圖像劃分成多個(gè)宏塊,然后以宏塊為單位進(jìn)行預(yù)測、變換 以及熵編碼。
預(yù)測包括幀內(nèi)預(yù)測和幀間預(yù)測。幀內(nèi)預(yù)測可以消除視頻序列空間上的 相關(guān)性,而幀間預(yù)測可以消除視頻序列時(shí)間上的相關(guān)性。預(yù)測完畢,殘差 數(shù)據(jù)仍然存在空間冗余,必須進(jìn)行變換以消除數(shù)據(jù)中的相關(guān)性,使得量化 后的系數(shù)易于進(jìn)行熵編碼,從而提高壓縮效率。
R264/AVC的幀內(nèi)預(yù)測技術(shù)是基于空間域的,即根據(jù)相鄰宏塊的像素的 重構(gòu)值來預(yù)測當(dāng)前宏塊。H,264/AVC分別定義了兩種亮度預(yù)測塊尺寸(4x4 和16xl6)和一種色度尺寸(8x8)。其中,對于4x4的預(yù)測塊共定義了9種預(yù) 測模式,而對于16xl6的亮度塊和8x8的色度塊則只定義了5種預(yù)測模式。4x4 的預(yù)測塊尺寸適合于具有豐富紋理特征的區(qū)域,而16xl6的預(yù)測塊尺寸適合光滑的區(qū)域。對預(yù)測后的殘差系數(shù)進(jìn)行4x4的整數(shù)DCT變換,變換矩陣定義 如下
、1 1 廣
21-l -2 1 -l 一l 1 1 -2 2 -1 —
對變換系數(shù)進(jìn)行量化,并將Zig-zag掃描后的系數(shù)進(jìn)行熵編碼。最優(yōu)的預(yù)測 塊尺寸和預(yù)測模式的選擇是根據(jù)率失真優(yōu)化公式進(jìn)行選擇。
DCT的變換性能接近于最優(yōu)變換,并且變換性能不依賴于信號,因此 在視頻和圖像編碼標(biāo)準(zhǔn)中得到廣泛應(yīng)用。不過,由于不同的幀內(nèi)預(yù)測模式 的殘差信號具有不同的能量分布特征,采用變換矩陣固定的DCT難以獲得 理想的變換性能。
KLT(Karhunen-Lo6vetransform)是均方差意義下的最優(yōu)變換。另外,由 于KLT的變換矩陣是通過對樣本進(jìn)行訓(xùn)練獲得,因此,具有變換矩陣靈活的 特點(diǎn)。不過,KLT的變換性能依賴于數(shù)據(jù)本身。已有研究表明,對于同一類 輸入信號,最差KLT矩陣和最優(yōu)KLT矩陣的變換性能差距可以達(dá)至lj3dB以上。 因此,現(xiàn)有的數(shù)據(jù)壓縮應(yīng)用中,編碼端都是實(shí)時(shí)訓(xùn)練KLT矩陣并將其傳輸?shù)?解碼端(通過把KLT矩陣寫入壓縮的數(shù)據(jù)流或者是獨(dú)立傳輸KLT矩陣)。不 過,KLT矩陣的訓(xùn)練過程計(jì)算復(fù)雜度很高,而且需要額外的信息量表示訓(xùn)練 出的KLT矩陣,因此,實(shí)時(shí)訓(xùn)練KLT矩陣的方法難以適合于視頻編碼這類應(yīng) 用。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法,
5避免了實(shí)時(shí)訓(xùn)練KLT矩陣的巨大計(jì)算量,減少了用于表示KLT矩陣的額外比 特開銷,訓(xùn)練得到的矩陣具有良好的變換性能。
基于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法,分別在各種幀內(nèi)預(yù)測模式下, 按照如下方法進(jìn)行矩陣訓(xùn)練
(1) 提取幀內(nèi)預(yù)測模式P的殘差樣本頻譜; .
(2) 對殘差樣本集進(jìn)行分組,對分組得到的每一個(gè)樣本組采用傳統(tǒng) KLT矩陣訓(xùn)練方法得到一個(gè)MxM維的候選KLT矩陣;
(3) 按照如下方法優(yōu)化各候選KLT矩陣
(3.1) 將所述殘差樣本頻譜均分為M個(gè)子頻帶,分別計(jì)算殘差樣本
在各頻帶內(nèi)的能量,并按照能量從大到小對子帶排序;
(3.2) 將候選KLT矩陣A的全部列向量構(gòu)成列向量集,令j-l;
(3.3) 分別計(jì)算列向量集中各列向量在第j個(gè)子頻帶內(nèi)的能量與殘差 樣本在第j個(gè)子頻帶內(nèi)的能量乘積,搜索乘積最大者對應(yīng)的列向量V,將其 作為優(yōu)化后的KLT矩陣的第j個(gè)列向量;
(3.4) 將列向量V從列向量集中排除,j
(3.5) 若j〉M,則結(jié)束,否則轉(zhuǎn)入步驟(3.3);
(4) 計(jì)算優(yōu)化后的候選KLT矩陣的變換性能,并選擇具有最佳變換
性能的KLT矩陣作為結(jié)果輸出,
變換性能計(jì)算方法具體為g《)=f>,>^(0,其中w)為候選KLT矩
,=1
陣Y的變換性能,w,為第i個(gè)子頻帶的加權(quán)系數(shù),g々)是變換系數(shù)分布在第 i個(gè)子頻帶上的能量占全部子帶能量之和的比例,變換系數(shù)分布在第i個(gè)子頻帶上的能量等于第i個(gè)列向量在第i個(gè)子頻帶內(nèi)的能量與殘差樣本在第i 個(gè)子頻帶內(nèi)的能量乘積。
所述步驟(1)具體為建立預(yù)測模式P的殘差樣本集,從殘差樣本
集中任意選擇IOOO個(gè)以上的殘差樣本,對每個(gè)殘差樣本進(jìn)行光柵掃描得到 長度為M的殘差向量,將這些殘差向量進(jìn)行首尾串聯(lián),對串聯(lián)后得到的殘 差線向量進(jìn)行傅立葉變換得到預(yù)測模式P的殘差樣本頻譜。
所述加權(quán)系數(shù)w,.滿足2>,=1,0<^<1^..< 。
本發(fā)明的技術(shù)效果體現(xiàn)在本發(fā)明對候選KLT矩陣采用低頻子帶優(yōu)先的 置換策略進(jìn)行優(yōu)化,在保證矩陣良好變換性能的同時(shí),大大降低了訓(xùn)練復(fù) 雜度。以將更多的能量集中到低頻系數(shù)為目標(biāo),定義KLT矩陣的變換性能函 數(shù),用于選出最佳候選KLT矩陣。該方法充分考慮了KLT的特點(diǎn)以及幀內(nèi)預(yù) 測殘差的能量分布特征。實(shí)驗(yàn)結(jié)果顯示,訓(xùn)練得到的KLT矩陣具有較為穩(wěn)定 的變換性能,在相同的碼率下,峰值信噪比相對于DCT提高0,25dB以上。
圖i為4x4幀內(nèi)預(yù)測中水平預(yù)測模式的殘差信號頻譜曲線;
圖.2為線向量構(gòu)造示意圖3為本發(fā)明KLT矩陣訓(xùn)練流程圖。
具體實(shí)施方式
本發(fā)明是針對11.264/八¥<:的幀內(nèi)預(yù)測殘差信號訓(xùn)練出變換性能穩(wěn)定并 且優(yōu)于DCT的KLT矩陣,以避免實(shí)時(shí)訓(xùn)練的巨大計(jì)算量以及用于表示KLT 矩陣的額外比特開銷。
本發(fā)明提出的基于最優(yōu)頻譜匹配的幀內(nèi)預(yù)測殘差信號的KLT矩陣訓(xùn)練 方法流程如附圖3所示,結(jié)合附圖及實(shí)施例詳細(xì)說明如下
1. 頻i普提取(Frequency Spectrum Extraction)
不同預(yù)測模式的殘差信號具有不同的能量分布特征,而同一幀內(nèi)預(yù)測 模式下的殘差系數(shù)能量分布較為一致,因此,必須對每種預(yù)測模式的殘差 信號分別進(jìn)行訓(xùn)練。
在訓(xùn)練過程中,利用有限個(gè)殘差樣本的能量分布特征來近似代替該模 式下殘差信號的能量分布特征,具體如下-
(1.1) 建立殘差樣本集將宏塊的殘差信號加入到該宏塊的最佳預(yù)測 模式對應(yīng)的殘差樣本集中。為了保證所提取頻譜特征的穩(wěn)定性,殘差樣本 集由不同內(nèi)容的標(biāo)準(zhǔn)測試序列在不同編碼環(huán)境下的殘差信號組成。
(1.2) 提取殘差樣本頻譜特征首先從殘差樣本集中任意選取n (nM000)個(gè)殘差樣本,對每個(gè)殘差樣本進(jìn)行光柵掃描得到一個(gè)長度為M的 殘差向量。對這些殘差向量進(jìn)行首尾串聯(lián),形成一個(gè)長度為nxM的新向量
(線向量),如圖2所示,圖中Vp V2,…,V。表示為n個(gè)殘差樣本。對該 線向量進(jìn)行傅立葉變換即可得到殘差樣本的頻譜。
圖i是4x4幀內(nèi)預(yù)測中水平預(yù)測模式的殘差信號頻譜曲線。
2. 分組訓(xùn)練(Grouping Training)
在殘差樣本集中,為了提高訓(xùn)練得到的KLT矩陣的變換性能,必須對殘差樣本進(jìn)行分組訓(xùn)練。對每一分組的樣本采用傳統(tǒng)的KLT矩陣訓(xùn)練方法可以
得到一個(gè)候選KLT矩陣。為了進(jìn)一步提高最終選擇的KLT矩陣的性能,本發(fā)
明中定義K(IOl)個(gè)不同的分組大小,對于第i個(gè)分組大小可以訓(xùn)練得到ai個(gè) KLT矩陣,因此,總共可以訓(xùn)練出I^,.個(gè)候選KLT矩陣。其中,每一分組包
含的殘差樣本數(shù)量不得小于IO, K必須足夠大,而且ai的分布應(yīng)當(dāng)較為分散。 3.最優(yōu)匹配(Best Match) 為了選擇具有最佳變換性能的KLT矩陣,必須定義關(guān)于變換性能的函 數(shù)。對信號進(jìn)行變換的是為了使得的能量集中到少數(shù)幾個(gè)變換系數(shù)上以利 于熵編碼。根據(jù)KLT的定義,MxM維的KLT矩陣可以看作M帶濾波器組, 即變換系數(shù)能量分布在M個(gè)子頻帶(簡稱子帶)上,因此,MxM維的KLT 矩陣X的變換性能函數(shù)g("可以定義如下
其中,^(0和w分別表示變換系數(shù)分布在第i個(gè)子帶上的能量占全部子帶能 量的比例以及第i個(gè)子帶的加權(quán)系數(shù)。g(^)越大,表明變換性能越好。為了 將更多的能量集中到較低的子帶,必須給低頻子帶賦予較大的加權(quán)系數(shù), 即i越小,w,越大。
將提取的殘差樣本頻譜均分為M個(gè)子帶,由于時(shí)域的巻積運(yùn)算對應(yīng)于 頻域的乘積運(yùn)算,因此,變換系數(shù)在第i個(gè)子帶上分布的能量等于第i個(gè)子
帶(即V^""i"區(qū)間)上的殘差樣本能量與KLT矩陣的第i個(gè)列向量在該 頻帶上能量的乘積。在計(jì)算時(shí),頻帶上的能量都采用該頻帶內(nèi)的平均能量
來代替, 一方面,可以極大減少計(jì)算量,另外,可以盡量減少由于訓(xùn)練樣
本數(shù)量有限而導(dǎo)致的殘差樣本頻譜不夠理想給訓(xùn)練過程帶來的影響。對于給定的樣本殘差能量分布特征,由于分布在較低頻帶上的能量可
能較少,因此,對于候選KLT矩陣,采用該矩陣的原始列向量排列順序, 其變換性能可能較差。由于對KLT矩陣進(jìn)行置換得到矩陣仍然是正交矩陣, 所以可以對KLT矩陣進(jìn)行置換操作。對于MxM的KLT矩陣的矩陣,總共 有M!種置換方式。例如,當(dāng)M-16時(shí),置換方式有2,004,189,184種。因此, 如果考慮全部的置換方式,矩陣的訓(xùn)練過程將會非常耗時(shí)。為了提高KLT 矩陣的變換性能,本發(fā)明中采用低頻子帶優(yōu)先的列向量置換策略來優(yōu)化候 選KLT矩陣,具體如以下步驟
(a) 將殘差樣本頻譜均分為M個(gè)子帶,計(jì)算殘差樣本在每個(gè)子帶上分 布的能量,按照能量從大到小的順序排列子帶。
(b) 將候選KLT矩陣的所有列向量構(gòu)成候選列向量集,令j-l。
(c) 分別計(jì)算列向量集中各列向量在第j個(gè)子帶內(nèi)的能量與殘差樣本在 第j個(gè)子帶內(nèi)的能量乘積,搜索乘積最大者對應(yīng)的列向量V,將其作為候選 KLT矩陣的第j個(gè)列向量;
(d) 將列向量V從列向量集中排除,j=j + h
(e) 若j〉M,則結(jié)束,否則轉(zhuǎn)入步驟(c);
對于MxM的KLT矩陣,采用低頻子帶優(yōu)先的列向量置換策略,總共有 !^Mx(M+l)種詈稱方式n由此可見,采用低頻子帶優(yōu)先的置換策略后,
訓(xùn)練的復(fù)雜度大為減小。特別是,該策略考慮了低頻子帶對于變換的重要 意義,因此,仍然能夠保證置換后的矩陣具有良好的變換性能。
置換完畢,根據(jù)(2)式計(jì)算優(yōu)化后的候選KLT矩陣的變換性能,并選 擇具有最佳變換性能的優(yōu)化后的KLT矩陣作為該預(yù)測模式下殘差信號的變換矩陣;
本實(shí)施例是針對H.264中的9種4x4幀內(nèi)預(yù)測模式訓(xùn)練出9個(gè)16x16 (即M-16)的KLT矩陣,這些KLT矩陣以表的形式同時(shí)存放在編碼器和 解碼器中。采用KLT之后,根據(jù)量化參數(shù)(Quantization parameter)得到對應(yīng) 的量化步長(Quantization step)對變換系數(shù)直接進(jìn)行量化和反量化。測試平臺 為JM10.1 ,選擇了具有代表性的分辨率包括QCIF(176xl44)和 CIF(352x288),具有不同的顏色、紋理特征的國際標(biāo)準(zhǔn)序列作為測試序列。 本實(shí)施例的參數(shù)設(shè)置如下
1. 編碼結(jié)構(gòu)全I(xiàn)幀
2. 熵編碼模式CABAC
3. 率失真優(yōu)化使用
4. Hardmard變換使用
5. 8x8變換不使用
本實(shí)施例表明相對于DCT,采用KLT之后,在相同的碼率下,平均峰 值信噪比提高0.25 dB以上。特別地,訓(xùn)練出的KLT矩陣對于不同的視頻 序列具有穩(wěn)定的變換性能,因此,所提出的基于最優(yōu)頻譜匹配的KLT矩陣 訓(xùn)練方法是十分有效的。另外,由于該方法主要利用空域幀內(nèi)預(yù)測殘差系 數(shù)具有能量分布一致的特點(diǎn),所以可適用于任意塊尺寸的幀內(nèi)預(yù)測以及其 它采用空域幀內(nèi)預(yù)測技術(shù)的視頻編碼標(biāo)準(zhǔn)中(如中國的AVS標(biāo)準(zhǔn))。
權(quán)利要求
1. 基于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法,其特征在于,分別在各種幀內(nèi)預(yù)測模式下,按照如下方法進(jìn)行矩陣訓(xùn)練(1)提取幀內(nèi)預(yù)測模式P的殘差樣本頻譜;(2)對殘差樣本集進(jìn)行分組,對分組得到的每一個(gè)樣本組采用傳統(tǒng)KLT矩陣訓(xùn)練方法得到一個(gè)M×M維的候選KLT矩陣;(3)按照如下方法優(yōu)化各候選KLT矩陣(3. 1)將所述殘差樣本頻譜均分為M個(gè)子頻帶,分別計(jì)算殘差樣本在各子頻帶內(nèi)的能量,并按照能量從大到小對子頻帶排序;(3. 2)將候選KLT矩陣A的全部列向量構(gòu)成列向量集,令j=1;(3. 3)分別計(jì)算列向量集中各列向量在第j個(gè)子頻帶內(nèi)的能量與殘差樣本在第j個(gè)子頻帶內(nèi)的能量乘積,搜索乘積最大者對應(yīng)的列向量V,將其作為優(yōu)化后的KLT矩陣的第j個(gè)列向量;(3. 4)將列向量V從列向量集中排除,j=j(luò)+1;(3. 5)若j>M,則結(jié)束,否則轉(zhuǎn)入步驟(3.3);(4)計(jì)算優(yōu)化后的候選KLT矩陣的變換性能,并選擇具有最佳變換性能的KLT矩陣作為結(jié)果輸出;變換性能計(jì)算方法具體為,其中g(shù)(Y)為優(yōu)化后的候選KLT矩陣Y的變換性能,wi為第i個(gè)子頻帶的加權(quán)系數(shù),gY(i)是變換系數(shù)分布在第i個(gè)子頻帶上的能量占全部子帶能量之和的比例,變換系數(shù)分布在第i個(gè)子頻帶上的能量等于第i個(gè)列向量在第i個(gè)子頻帶內(nèi)的能量與殘差樣本在第i個(gè)子頻帶內(nèi)的能量乘積。
2、 根據(jù)權(quán)利要求1所述的基于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法, 其特征在于,所述步驟(1)具體為建立預(yù)測模式P的殘差樣本集,從 殘差樣本集中任意選擇1000個(gè)以上的殘差樣本,對每個(gè)殘差樣本進(jìn)行光柵 掃描得到長度為M的殘差向量,將這些殘差向量進(jìn)行首尾串聯(lián),對串聯(lián)后 得到的殘差線向量進(jìn)行傅立葉變換得到預(yù)測模式P的殘差樣本頻譜。
3、 根據(jù)權(quán)利要求1所述的基于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法, 其特征在于,所述加權(quán)系數(shù)w,滿足^>,=1,0<>v,<>v..<wm。
全文摘要
本發(fā)明提供一種用于視頻幀內(nèi)編碼的KLT矩陣訓(xùn)練方法,屬于信號處理中的視頻編碼領(lǐng)域。本發(fā)明首先提取每種幀內(nèi)預(yù)測模式下的殘差信號的頻譜,然后,將殘差樣本進(jìn)行分組并采用傳統(tǒng)的方法訓(xùn)練得到候選KLT矩陣,對每個(gè)候選KLT矩陣采用低頻子帶優(yōu)先的置換策略進(jìn)行優(yōu)化并計(jì)算優(yōu)化后的變換性能,選擇具有最佳變換性能的優(yōu)化KLT矩陣作為該預(yù)測模式下殘差信號的變換矩陣。本發(fā)明避免了在編碼時(shí)實(shí)時(shí)訓(xùn)練KLT矩陣的巨大計(jì)算量,減少了用于表示訓(xùn)練矩陣的額外比特開銷,訓(xùn)練得到的矩陣具有良好的變換性能。
文檔編號H04N7/26GK101489134SQ200910060558
公開日2009年7月22日 申請日期2009年1月16日 優(yōu)先權(quán)日2009年1月16日
發(fā)明者余勝生, 孫偉平, 郭紅星, 陳加忠, 陳小平, 毅 高, 單 黎 申請人:華中科技大學(xué)