本發(fā)明屬于多媒體信息技術(shù)領(lǐng)域,尤其涉及一種視頻中污損區(qū)域的填充方法。
背景技術(shù):
常見的視頻污損一般是由信息插入造成的,較為常見的是在視頻中插入版權(quán)方的信息。圖1所示為從視頻中截取的一幀,從圖中可以看出,在該視頻中包含3處插入信息,即三處污損,分別為:左上角為“CCTV6”(中央電視臺第6套電影頻道的臺標(biāo))、右上角為“CNTV高清”(中國網(wǎng)絡(luò)電視臺高清頻道的臺標(biāo))以及右下角為“電影頻道”的M形臺標(biāo)。
目前,解決視頻污損的方法有很多,如,對臺標(biāo)區(qū)域進(jìn)行模糊或馬賽克填充,該方法雖然使用戶無法看清原來的臺標(biāo),但是大大降低了視頻的觀賞價值。又如,采用圖片紋理合成的方法逐幀進(jìn)行修復(fù),在該方法中首先對待填充區(qū)域附近的圖片進(jìn)行采樣,獲取待填充區(qū)域附近的紋理信息,然后計算合成待填充區(qū)域的紋理圖片,但是其只能在待填充區(qū)域產(chǎn)生表示紋理的像素,無法保持延伸物體邊緣結(jié)構(gòu);且該方法未考慮視頻幀與幀之間的相關(guān)性,修復(fù)后的視頻在被填充區(qū)域有明顯的閃爍,給觀眾帶來不適。再有,利用視頻幀之間的相關(guān)性對圖片進(jìn)行全局或局部的像素塊運(yùn)動估計,然后用前若干幀或后若干幀的像素塊來填充當(dāng)前幀的待填充區(qū)域。但是,一般來說,視頻中某一固定場景可能持續(xù)若干秒時間,假若某一固定場景結(jié)束后又進(jìn)入下一個固定場景,則使用該方法難以得到滿意的修復(fù)結(jié)果,可見,該運(yùn)動估計補(bǔ)償方法在很多情況下并不適用。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明旨在提供一種視頻中污損區(qū)域的填充方法,有效解決了現(xiàn)有填充方法填充完成后污損區(qū)域出現(xiàn)的閃爍現(xiàn)象。
本發(fā)明提供的技術(shù)方案如下:
一種視頻中污損區(qū)域的填充方法,包括:
S1采用預(yù)設(shè)圖片修復(fù)方法對視頻中第一幀圖片和最后一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù);
S2基于填充目標(biāo)使用泊松方程構(gòu)建視頻待填充區(qū)域中所有未知像素點的方程;
S3基于步驟S2中構(gòu)建的方程依次對視頻待填充區(qū)域的位置像素點進(jìn)行填充。
進(jìn)一步優(yōu)選地,在步驟S2中,填充目標(biāo)具體為其中,表示梯度算子,Ωv表示視頻中待填充區(qū)域,F(xiàn)表示視頻中待填充區(qū)域的未知像素值;
邊界條件具體為其中,F(xiàn)*表示視頻中已知區(qū)域的已知像素值,δΩ表示視頻中已知區(qū)域和待填充區(qū)域之間的邊界。
進(jìn)一步優(yōu)選地,在步驟S2中具體包括:
S21基于填充目標(biāo)能夠得到滿足目標(biāo)的泊松方程:ΔF=0,其中,表示拉普拉斯算子,F(xiàn)表示視頻中待填充區(qū)域的未知像素值;
S22三維離散化泊松方程:
F(x+1,y,f)+F(x-1,y,f)+F(x,y+1,f)+F(x,y-1,f)+F(x,y,f+1)+F(x,y,f-1)-6F(x,y,f)=0
其中,F(xiàn)(x,y,f)表示視頻中第f幀圖片中一未知像素點;
S23基于步驟S21中的離散化泊松方程構(gòu)建視頻待填充區(qū)域中所有未知像素點的方程:
A[F(m1),...,F(mM)]T=BT
其中,F(xiàn)(mi),i=1,...,M表示視頻中的M個未知像素點,BT表示由邊界條件計算得到的列向量,A表示M個未知像素點的系數(shù)矩陣。
進(jìn)一步優(yōu)選地,在步驟S3中具體包括:
S31將視頻待填充區(qū)域的邊界點mi=(x,y,f)的鄰接點集合記為:
η(mi)={(x+1,y,f),(x-1,y,f),(x,y+1,f),(x,y-1,f),(x,y,f+1),(x,y,f-1)};
S32將視頻待填充區(qū)域的邊界點代入步驟S23中的方程得到BT中第i個元素的像素值:
其中,V-Ωv表示視頻中已知區(qū)域;
S33依次對視頻待填充區(qū)域的未知像素點進(jìn)行填充。
進(jìn)一步優(yōu)選地,在步驟S1中具體包括:
S11將視頻進(jìn)行分段,且前一段視頻中的最后一幀圖片與后一段視頻中的第一幀圖片相同;
S12采用預(yù)設(shè)圖片修復(fù)方法分別對每段視頻中第一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù)以及對最后一段視頻中最后一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù)。
進(jìn)一步優(yōu)選地,在步驟S2中具體包括:基于填充目標(biāo)使用泊松方程構(gòu)建一視頻段待填充區(qū)域中所有未知像素點的方程;
在步驟S3中具體包括:基于步驟S2中構(gòu)建的方程依次對該視頻段待填充區(qū)域的未知像素點進(jìn)行填充。
進(jìn)一步優(yōu)選地,在步驟S3之后還包括:
S4循環(huán)步驟S2~S3,直到視頻所有分段中所有未知像素點填充完成。
本發(fā)明提供的視頻中污損區(qū)域的填充方法,其有益效果在于:
在本發(fā)明提供的填充方法中,綜合使用了圖片修復(fù)技術(shù),充分考慮了視頻中幀與幀(組成視頻的各圖片幀)之間的相似性和連貫性;由幀與幀之間又具有微小的差別,在相鄰幀中所填充的內(nèi)容也滿足相似性和連貫性,同時保留了幀與幀之間的微小差別,以此保證了填充后視頻在播放時用戶不會觀察到填充區(qū)域(即上述未知區(qū)域)的邊界,也消除了填充區(qū)域在填充后出現(xiàn)的閃爍現(xiàn)象。再有,使用本發(fā)明提供的填充方法填充出來的每一幀圖像的污損區(qū)域(未知區(qū)域)內(nèi)容自然,不易被人眼察覺,適于觀賞,大大提高了視頻的修復(fù)效果。
附圖說明
圖1為有污損區(qū)域的視頻中某一圖片幀的示意圖;
圖2為本發(fā)明中視頻中待填充區(qū)域形成柱形空洞示意圖;
圖3為本發(fā)明中對視頻中第一幀圖片和最后一幀圖片中的待填充區(qū)域填充修復(fù)后示意圖;
圖4為本發(fā)明中視頻中污損區(qū)域的填充方法一種實施方式流程示意圖。
具體實施方式
下面結(jié)合附圖和具體實施方式,對本發(fā)明作進(jìn)一步詳細(xì)說明。需要說明的是,下面描述的本發(fā)明的特定細(xì)節(jié)僅為說明本發(fā)明用,并不構(gòu)成對本發(fā)明的限制。根據(jù)所描述的本發(fā)明的教導(dǎo)做出的任何修改和變型也在本發(fā)明的范圍內(nèi)。
我們知道,視頻是由圖像幀組成的,在本發(fā)明中,我們假定每一圖片幀中的污損區(qū)域(未知區(qū)域)在視頻幀中的相對位置是固定的(如,視頻中的臺標(biāo)位置都是固定的),假定每個圖片幀中的污損區(qū)域都為圓形,則在視頻中所有圖片幀中的污損區(qū)域就形成了一個待填充的柱狀空洞,如圖2所示,其中白色圓形區(qū)域即為污損的待填充區(qū)域,視頻填充即通過計算得到該待填充區(qū)域的像素值進(jìn)行填充,使得填充后的視頻看起來自然流暢。
在一視頻中,記視頻的第f幀圖片為Sf,該圖片幀中的已知區(qū)域記為Φf,未知區(qū)域(即上述待填充區(qū)域)記為Ωf,未知區(qū)域的邊界記為δΩf。若該視頻中共有N幀,則視頻記為V={Sf,f=1,...,N},該視頻中所有已知區(qū)域記為Φv={Φf,f=1,...,N},視頻中所有未知區(qū)域記為Ωv={Ωf,f=1,...,N},視頻中所有未知區(qū)域邊界記為δΩv={δΩf,f=1,N.}.。.,
基于此,以下我們對本發(fā)明提供的視頻中污損區(qū)域的填充方法做出詳細(xì)描述:
如圖3所示為本發(fā)明提供的視頻中污損區(qū)域的填充方法一種實施方式的流程示意圖,從圖中可以看出,在該填充方法中包括:S1采用預(yù)設(shè)圖片修復(fù)方法對視頻中第一幀圖片和最后一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù);S2基于填充目標(biāo)使用泊松方程構(gòu)建視頻待填充區(qū)域中所有未知像素點的方程;S3基于步驟S2中構(gòu)建的方程依次對視頻待填充區(qū)域的未知像素點進(jìn)行填充。
具體,在一個具體實施例中,在步驟S1中采用圖片紋理合成的方法對視頻中第一幀圖片和最后一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù)。假設(shè)視頻中共包含N幀圖片,即V={Sf,f=1,...,N},則完成對視頻中第一幀圖片和第N幀圖片的填充修復(fù)之后,該視頻中的第一幀圖片和第N幀圖片就是完整,中間的第二幀圖片到第N-1幀圖片中仍有待填充區(qū)域,如圖3所示。假定視頻中已知區(qū)域的已知像素值用F*(p)表示,其中,p=(x,y,f)∈Φv表示視頻中第f幀圖片中一已知像素點;視頻中待填充區(qū)域的未知像素值用F(p)表示,其中,p=(x,y,f)∈Ωv表示視頻中第f幀圖片中一未知像素點。另外,此時的待填充區(qū)域Ωv={Ωf,f=1,...,N}={Ωf,f=2,...,N-1}。最后,要說明的是,在其他實施例中,在步驟S1中可以采用任意一種現(xiàn)有的圖片修復(fù)方法對視頻中的第一幀圖片和最后一幀圖片進(jìn)行修復(fù),如還可以采用像素塊運(yùn)動估計補(bǔ)償?shù)姆椒ǖ?,在此不做限定?/p>
為了使待填充區(qū)域盡可能地平滑過渡,在待填充區(qū)域內(nèi)填充的未知像素值F的梯度模值應(yīng)該盡可能的小,即指導(dǎo)填充的目標(biāo)函數(shù)為同時滿足邊界條件為(邊界上F的函數(shù)值與F*的函數(shù)值相同,即滿足狄利克雷邊界條件),其中,表示梯度算子,Ωv表示視頻中待填充區(qū)域,F(xiàn)表示視頻中待填充區(qū)域的未知像素值,F(xiàn)*表示視頻中已知區(qū)域的已知像素值,δΩ表示視頻中已知區(qū)域和待填充區(qū)域之間的邊界。
基于此,在步驟S2中,根據(jù)變分函數(shù)最優(yōu)化理論可知指導(dǎo)填充的目標(biāo)函數(shù)的解滿足泊松方程(歐拉-拉格朗日等式):ΔF=0 over Ωv with其中,表示拉普拉斯算子,F(xiàn)表示視頻中待填充區(qū)域的未知像素值,該泊松方程的解即為如圖3所示的視頻待填充區(qū)域中未知像素點的像素值。
我們知道,對于離散的數(shù)字視頻而言,三維離散歐幾里得空間的拉普拉斯算子可以表示為:
基于該3x3x3維的矩陣,在步驟S22中,泊松方程可被離散化為:
F(x+1,y,f)+F(x-1,y,f)+F(x,y+1,f)+F(x,y-1,f)+F(x,y,f+1)+F(x,y,f-1)-6F(x,y,f)=0
其中,F(xiàn)(x,y,f)表示視頻中第f幀圖片中一未知像素點。
可知,對于圖3所示的視頻中待填充區(qū)域的M個未知像素點F(mi),i=1,...,M來說,共包括M個上述離散化的泊松方程,在S23中,將步驟S21中的M個離散化泊松方程組成待填充區(qū)域中所有未知像素點的線性方程組:
A[F(m1),...,F(mM)]T=BT
其中,F(xiàn)(mi),i=1,...,M表示視頻中的M個未知像素點,BT表示由邊界條件計算得到的列向量,A表示M個未知像素點的系數(shù)矩陣。由離散化的泊松方程可知,矩陣A是一個滿秩的實對稱正定矩陣,故上述線性方程組必然存在唯一解,具體可以使用高斯薩繆爾迭代法或共軛梯度法等多種方法進(jìn)行求解,在此不再贅述。
在填充過程中,在步驟S31中,假定mi=(x,y,f)是視頻中的一個邊界點,即mi∈Ωv,則該邊界點mi=(x,y,f)的6個鄰接點的集合為:
η(mi)={(x+1,y,f),(x-1,y,f),(x,y+1,f),(x,y-1,f),(x,y,f+1),(x,y,f-1)};
由mi為邊界點,則其鄰接的集合點中至少有一個位于已知區(qū)域,即η(mi)∩{V-Ωv}≠φ。
故,在步驟S32中,將視頻待填充區(qū)域的邊界點代入步驟S23中的方程,并將等式左邊已知像素點的像素值移動到等式的右邊,即可得到BT中第i個元素的像素值:
其中,V-Ωv表示視頻中已知區(qū)域,以此得到待填充區(qū)域的未知像素點的像素值,基于此,依次對視頻待填充區(qū)域的未知像素點進(jìn)行填充。
對上述實施方式進(jìn)行改進(jìn)得到本實施方式,在本實施方式中,若視頻較大(總長度為K幀圖片),則在填充之前,首先將視頻進(jìn)行分段,且前一段視頻中的最后一幀圖片與后一段視頻中的第一幀圖片相同;具體,假定每段中包含N幀圖片,則前一段視頻中的第N幀圖片和下一段視頻中的第N幀圖片相同,即前一段視頻的第N幀圖片和下一段視頻的第N幀圖片重疊。當(dāng)然,分段視頻中的最后一段視頻可能小于N幀圖片,在分段過程中,也可以根據(jù)實際情況進(jìn)行分段,即分段后每段視頻中包括的圖片幀的數(shù)量可以不等分。
之后,采用預(yù)設(shè)圖片修復(fù)方法分別對每段視頻中第一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù)以及對最后一段視頻中最后一幀圖片中的待填充區(qū)域進(jìn)行填充修復(fù),以此任意一段視頻的起始幀和結(jié)束幀都是經(jīng)過填充修復(fù)的完整圖片。
在本實施方式中,在步驟S2中具體包括:基于填充目標(biāo)使用泊松方程構(gòu)建一視頻段待填充區(qū)域中所有未知像素點的方程;在步驟S3中具體包括:基于步驟S2中構(gòu)建的方程依次對該視頻段待填充區(qū)域的未知像素點進(jìn)行填充。在步驟S3之后還包括:S4循環(huán)步驟S2~S3,直到視頻所有分段中所有未知像素點填充完成。具體每段視頻的填充過程與上一實施方式相同,在此不做贅述。
以上通過分別描述每個過程的實施場景案例,詳細(xì)描述了本發(fā)明,本領(lǐng)域的技術(shù)人員應(yīng)能理解。