視頻圖像的運動補償方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種視頻圖像的運動補償方法和裝置,涉及視頻圖像處理領(lǐng)域。該方法包括:從接收的視頻流中解碼得到當前欲顯示的視頻幀及其下一個視頻幀;根據(jù)下一個視頻幀的幀類型以及解碼得到的當前欲顯示的視頻幀的運動矢量信息和下一個視頻幀的運動矢量信息,估計當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量;根據(jù)估計的運動矢量,對當前欲顯示的視頻幀以及下一個視頻幀進行疊加,并且在屏幕上顯示疊加后的視頻幀。本發(fā)明直接根據(jù)視頻解碼時產(chǎn)生的運動矢量來估計幀間的運動矢量,并且根據(jù)估計的運動矢量進行運動補償,可以避免重新計算運動矢量的巨大運算量,有利于軟硬件的實時實現(xiàn)。
【專利說明】視頻圖像的運動補償方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻圖像處理領(lǐng)域,特別涉及一種視頻圖像的運動補償方法和裝置?!颈尘凹夹g(shù)】
[0002]目前,嵌入式設(shè)備,如手機、平板電腦等,在進行實時視頻通信時,受限于軟硬件的計算能力有限,對于部分常用編碼格式,如h.263、h.264等,通常只能支持單向預測的編碼形式,即視頻流中只包含關(guān)鍵幀(簡稱I幀)和前向預測幀(簡稱P幀)。一個典型的視頻幀發(fā)送的順序為:1 → P →P→…一P → I → P →P →P...。單向預測誤差會隨P幀的增加而越來越強。當下一個I幀到達時,最后一個P幀與I幀間存在明顯的圖像質(zhì)量差異,從而令視頻的視覺質(zhì)量明顯降低。
[0003]利用多幀視頻的時間平均可以一定程度消除幀間的視覺差異,從而減弱這種現(xiàn)象,但副作用是如果幀間存在相對運動,則會產(chǎn)生運動模糊。一種改進方式是先進行幀間運動補償,然后再進行幀間平均。
[0004]現(xiàn)有一種基于圖像塊的運動補償技術(shù),該技術(shù)根據(jù)前一幀中的圖像塊,在后一幀中查找相似度最高的圖像塊作為其對應塊,并以兩者間的位移矢量作為運動矢量。由于相似圖像塊的查找過程包含多個圖像塊間的兩兩比對,計算量通常較大,不利于對視頻進行實時增強。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例所要解決的一個技術(shù)問題是:解決基于圖像塊的運動補償技術(shù)計算量較大,不利于對視頻進行實時增強的問題。
[0006]本發(fā)明實施例的一個方面提供了一種視頻圖像的運動補償方法,包括:從接收的視頻流中解碼得到當前欲顯示的視頻幀,將當前欲顯示的視頻幀緩存,如果當前欲顯示的視頻幀為前向預測幀,保存解碼得到的當前欲顯示的視頻幀的運動矢量信息;從接收的視頻流中解碼得到當前欲顯示的視頻幀的下一個視頻幀,將所述下一個視頻幀緩存,如果所述下一個視頻幀為前向預測幀,保存解碼得到的所述下一個視頻幀的運動矢量信息;根據(jù)所述下一個視頻幀的幀類型以及解碼得到的所述當前欲顯示的視頻幀的運動矢量信息和所述下一個視頻幀的運動矢量信息,估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量;根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加,并且在屏幕上顯示疊加后的視頻幀。
[0007]對于從接收的視頻流中解碼得到的視頻幀的運動矢量信息,如果視頻幀為動態(tài)圖像專家組MPEG格式,則視頻幀的每個宏塊對應一個運動矢量,如果視頻幀為H.264格式,則視頻幀的每個子宏塊對應一個運動矢量。
[0008]所述估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量具體包括:如果所述下一個視頻幀為前向預測幀,則將所述下一個視頻幀每個像素所屬的宏塊或子宏塊所對應的運動矢量信息作為所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的估計的運動矢量。
[0009]所述估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量具體包括:如果所述下一個視頻幀為關(guān)鍵幀,則所述當前欲顯示的視頻幀和所述關(guān)鍵幀的下一個視頻幀均為前向預測幀,將所述當前欲顯示的視頻幀的運動矢量與所述關(guān)鍵幀之后的前向預測幀的運動矢量的平均作為所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量。
[0010]根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加具體包括:根據(jù)所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量,對所述當前欲顯示的視頻幀進行運動補償;將補償后的所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀進行幀平均得到疊加后的視頻幀。
[0011]本發(fā)明實施例的另一個方面提供了一種視頻圖像的運動補償裝置,包括:解碼單元,用于從接收的視頻流中解碼得到當前欲顯示的視頻幀,將當前欲顯示的視頻幀緩存,如果當前欲顯示的視頻幀為前向預測幀,保存解碼得到的當前欲顯示的視頻幀的運動矢量信息;從接收的視頻流中解碼得到當前欲顯示的視頻幀的下一個視頻幀,將所述下一個視頻幀緩存,如果所述下一個視頻幀為前向預測幀,保存解碼得到的所述下一個視頻幀的運動矢量信息;運動矢量估計單元,用于根據(jù)所述下一個視頻幀的幀類型以及解碼得到的所述當前欲顯示的視頻幀的運動矢量信息和所述下一個視頻幀的運動矢量信息,估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量;疊加顯示單元,用于根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加,并且在屏幕上顯示疊加后的視頻幀。
[0012]在解碼單元中,對于從接收的視頻流中解碼得到的視頻幀的運動矢量信息,如果視頻幀為動態(tài)圖像專家組MPEG格式,則視頻幀的每個宏塊對應一個運動矢量,如果視頻幀為H.264格式,則視頻幀的每個子宏塊對應一個運動矢量。
[0013]所述運動矢量估計單元,具體用于:如果所述下一個視頻幀為前向預測幀,則將所述下一個視頻幀每個像素所屬的宏塊或子宏塊所對應的運動矢量信息作為所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的估計的運動矢量。
[0014]所述運動矢量估計單元,具體用于:如果所述下一個視頻幀為關(guān)鍵幀,則所述當前欲顯示的視頻幀和所述關(guān)鍵幀的下一個視頻幀均為前向預測幀,將所述當前欲顯示的視頻幀的運動矢量與所述關(guān)鍵幀之后的前向預測幀的運動矢量的平均作為所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量。
[0015]所述疊加顯示單元,具體用于:根據(jù)所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量,對所述當前欲顯示的視頻幀進行運動補償;將補償后的所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀進行幀平均得到疊加后的視頻幀。
[0016]本發(fā)明直接根據(jù)視頻解碼時產(chǎn)生的運動矢量來估計幀間的運動矢量,并且根據(jù)估計的運動矢量進行運動補償,可以避免重新計算運動矢量的巨大運算量,有利于軟硬件的實時實現(xiàn)。另外,本發(fā)明的運動補償方案,在進行疊加顯示時可以一定程度抑制噪聲,平滑單向預測編碼方式造成的視覺突變;同時,本發(fā)明的運動補償方案,可以避免由于幀間相對運動導致的圖像模糊,改善嵌入式設(shè)備播放網(wǎng)絡(luò)視頻或進行視頻通訊時的視覺效果。
[0017]通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
【專利附圖】
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0019]圖1為本發(fā)明視頻圖像的運動補償方法一個實施例的流程示意圖。
[0020]圖2為本發(fā)明運動矢量估計的一個示意圖。
[0021]圖3為本發(fā)明視頻圖像的運動補償方法另一個實施例的流程示意圖。
[0022]圖4為本發(fā)明視頻圖像的運動補償裝置一個實施例的流程示意圖。
【具體實施方式】
[0023]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0024]除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數(shù)字表達式和數(shù)值不限制本發(fā)明的范圍。
[0025]同時,應當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關(guān)系繪制的。
[0026]對于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細討論,但在適當情況下,所述技術(shù)、方法和設(shè)備應當被視為授權(quán)說明書的一部分。
[0027]在這里示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。
[0028]應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。
[0029]本發(fā)明的視頻圖像運動補償方案,適用于單向預測的編碼方式,即視頻流中只包含關(guān)鍵幀(簡稱I幀)和前向預測幀(簡稱P幀)。一個典型的視頻幀發(fā)送的順序為:
I — P — PP — I — P — P — P …。
[0030]圖1為本發(fā)明視頻圖像的運動補償方法一個實施例的流程示意圖。如圖1所示,該實施例的方法包括以下步驟:
[0031]S101,從接收的視頻流中解碼得到當前欲顯示的視頻幀,將當前欲顯示的視頻幀緩存,如果當前欲顯示的視頻幀為前向預測幀,保存解碼得到的當前欲顯示的視頻幀的運
動矢量信息。[0032]需要說明的是,如果當前欲顯示的視頻幀為前向預測幀,則解碼除了能夠獲得該視頻幀的像素值數(shù)據(jù),還能夠獲得該視頻幀的運動矢量信息。如果當前欲顯示的視頻幀為關(guān)鍵幀,則解碼僅能獲得該視頻幀的像素值數(shù)據(jù)。
[0033]對H.264編碼格式而言,一個圖像幀從空間上被分割為多個宏塊,每個宏塊又可以劃分為多個子宏塊,每個子宏塊對應于一個運動矢量。對于MPEG (Moving PicturesExperts Group,動態(tài)圖像專家組)編碼格式而言,每個宏塊對應于一個運動矢量。
[0034]需要說明的是,解碼過程中獲取宏塊或子宏塊的運動矢量可以參考現(xiàn)有技術(shù),這里不再詳述。
[0035]S102,從接收的視頻流中解碼得到當前欲顯示的視頻幀的下一個視頻幀,將下一個視頻幀緩存,如果下一個視頻幀為前向預測幀,保存解碼得到的下一個視頻幀的運動矢
量信息。
[0036]S103,根據(jù)下一個視頻幀的幀類型以及解碼得到的當前欲顯示的視頻幀的運動矢量信息和下一個視頻幀的運動矢量信息,估計當前欲顯示的視頻幀與下一個視頻幀之間每個像素位置處的運動矢量。
[0037]根據(jù)下一個視頻幀的不同 的幀類型,本發(fā)明提供了不同的運動矢量估計方法。
[0038](I)如果下一個視頻幀為前向預測幀,則將下一個視頻幀每個像素所屬的宏塊或子宏塊所對應的運動矢量信息作為當前欲顯示的視頻幀與下一個視頻幀之間每個像素位置處的估計的運動矢量??梢圆捎萌缦鹿奖硎?
【權(quán)利要求】
1.一種視頻圖像的運動補償方法,包括: 從接收的視頻流中解碼得到當前欲顯示的視頻幀,將當前欲顯示的視頻幀緩存,如果當前欲顯示的視頻幀為前向預測幀,保存解碼得到的當前欲顯示的視頻幀的運動矢量信息; 從接收的視頻流中解碼得到當前欲顯示的視頻幀的下一個視頻幀,將所述下一個視頻幀緩存,如果所述下一個視頻幀為前向預測幀,保存解碼得到的所述下一個視頻幀的運動矢量/信息; 根據(jù)所述下一個視頻幀的幀類型以及解碼得到的所述當前欲顯示的視頻幀的運動矢量信息和所述下一個視頻幀的運動矢量信息,估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量; 根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加,并且在屏幕上顯示疊加后的視頻幀。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,對于從接收的視頻流中解碼得到的視頻幀的運動矢量信息,如果視頻幀為動態(tài)圖像專家組MPEG格式,則視頻幀的每個宏塊對應一個運動矢量,如果視頻幀為H.264格式,則視頻幀的每個子宏塊對應一個運動矢量。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量具體包括: 如果所述下一個視頻幀為前向預測幀,則將所述下一個視頻幀每個像素所屬的宏塊或子宏塊所對應的運動矢量信息作為所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的估計的運動矢量。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量具體包括: 如果所述下一個視頻幀為關(guān)鍵幀,則所述當前欲顯示的視頻幀和所述關(guān)鍵幀的下一個視頻幀均為前向預測幀,將所述當前欲顯示的視頻幀的運動矢量與所述關(guān)鍵幀之后的前向預測幀的運動矢量的平均作為所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加具體包括: 根據(jù)所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量,對所述當前欲顯示的視頻幀進行運動補償; 將補償后的所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀進行幀平均得到疊加后的視頻幀。
6.一種視頻圖像的運動補償裝置,包括: 解碼單元,用于從接收的視頻流中解碼得到當前欲顯示的視頻幀,將當前欲顯示的視頻幀緩存,如果當前欲顯示的視頻幀為前向預測幀,保存解碼得到的當前欲顯示的視頻幀的運動矢量信息;從接收的視頻流中解碼得到當前欲顯示的視頻幀的下一個視頻幀,將所述下一個視頻幀緩存,如果所述下一個視頻幀為前向預測幀,保存解碼得到的所述下一個視頻幀的運動矢量息; 運動矢量估計單元,用于根據(jù)所述下一個視頻幀的幀類型以及解碼得到的所述當前欲顯示的視頻幀的運動矢量信息和所述下一個視頻幀的運動矢量信息,估計所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的運動矢量; 疊加顯示單元,用于根據(jù)估計的運動矢量,對所述當前欲顯示的視頻幀以及所述下一個視頻幀進行疊加,并且在屏幕上顯示疊加后的視頻幀。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,在解碼單元中,對于從接收的視頻流中解碼得到的視頻幀的運動矢量信息,如果視頻幀為動態(tài)圖像專家組MPEG格式,則視頻幀的每個宏塊對應一個運動矢量,如果視頻幀為H.264格式,則視頻幀的每個子宏塊對應一個運動矢量。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述運動矢量估計單元,具體用于: 如果所述下一個視頻幀為前向預測幀,則將所述下一個視頻幀每個像素所屬的宏塊或子宏塊所對應的運動矢量信息作為所述當前欲顯示的視頻幀與所述下一個視頻幀之間每個像素位置處的估計的運動矢量。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述運動矢量估計單元,具體用于: 如果所述下一個視頻幀為關(guān)鍵幀,則所述當前欲顯示的視頻幀和所述關(guān)鍵幀的下一個視頻幀均為前向預測幀,將所述當前欲顯示的視頻幀的運動矢量與所述關(guān)鍵幀之后的前向預測幀的運動矢量的平均作為所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量。
10.根據(jù)權(quán)利要求6 所述的裝置,其特征在于,所述疊加顯示單元,具體用于: 根據(jù)所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀之間每個像素位置處的估計的運動矢量,對所述當前欲顯示的視頻幀進行運動補償; 將補償后的所述當前欲顯示的視頻幀與所述當前欲顯示的視頻幀的下一個視頻幀進行幀平均得到疊加后的視頻幀。
【文檔編號】H04N19/513GK103905825SQ201210580243
【公開日】2014年7月2日 申請日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】屈振華, 龍顯軍, 陳珣, 萬軍, 馬濤, 孫健, 梅平, 賀征, 李屹寰, 白冰, 桂烜, 江洪, 陳宇華, 郭英, 尹梅, 鐘遠暉, 余冬蘋, 張海濤, 林濤, 許捷翰, 劉豪, 葉文超, 梁錚 申請人:中國電信股份有限公司