本發(fā)明涉及通信領域,具體而言,涉及一種長度確定方法及裝置。
背景技術:
視頻序列中每幀圖像的內容在時域方向上存在前向、后向很強的相關性。因此,為了編碼性能的提升,即編碼比特盡可能逼近高階熵,用幀間預測方式來消除圖像時域冗余,已經成為很重要的技術手段,被廣泛使用。
幀間預測主要包括兩個方面:參考幀的數目和預測結構。參考幀的數目是指幀間預測中一幀原始圖像可以參考的重構幀數量。預測結構是指一幀原始圖像采用哪些重構圖像作運動補償且包含它們的組織形式。
分層級(hieratical)的幀間預測結構被引入以來,由于其顯著的編碼性能增益,目前已經被廣泛用到各種主流編碼器中。hieratical編碼結構以gop為單位構建二叉樹狀的層次結構,序列中各幀圖像根據其所在二叉樹中的層級來決定編碼使用的幀間預測方式和量化參數(qp)。通常qp值由基準qp與其偏移量(qpoffset)之和計算得出。
目前的各種編碼策略中多采用預設固定的gop長度和參考結構,在整個編碼過程中不作改變,編碼的性能受到一定的限制。
針對相關技術中,編碼過程中由于gop長度固定而導致的編碼性能不高的問題,尚未提出有效的解決方案。
技術實現要素:
為了解決上述技術問題,本發(fā)明提供了一種長度確定方法及裝置。
根據本發(fā)明的一個方面,提供了一種長度確定方法,包括:獲取待編碼圖像的運動特征,其中,所述運動特征用于表征所述待編碼圖像和該待編碼圖像的原始圖像之間的運動變化程度;根據所述運動特征確定所述待編碼圖像進行編碼所采用的圖像組gop長度。
優(yōu)選地,獲取待編碼圖像的運動特征,包括:將所述待編碼圖像劃分為n個長度為n的正方形,其中,將該正方形作為所述待編碼圖像的子塊;對于所述待編碼圖像中的每一個子塊,確定每一個字塊的相對運動距離dj,其中,j為大于0小于或者等于n的正整數。
優(yōu)選地,確定每一個字塊的相對運動距離dj,包括:在所述原始圖像中確定子塊的最佳匹配塊,記錄所述最佳匹配塊的運動矢量mj=(△x,△y),其中,△x表示所述子塊與所述最佳匹配塊在x軸方向上的位移偏移量,△y表示所述子塊與所述最佳匹配塊在y軸方向上的位 移偏移量;根據以下公式確定所述相對運動距離dj:
優(yōu)選地,根據所述運動特征確定所述待編碼圖像進行編碼所采用的圖像組gop長度,包括:根據確定的相對運動距離dj確定一幀所述待編碼圖像的運動能量e;根據所述運動能量e以及層次數k確定所述gop長度。
優(yōu)選地,根據確定的相對運動距離dj確定一幀所述待編碼圖像的運動能量e,包括:根據以下公式確定:
優(yōu)選地,根據所述運動能量e以及層次數k確定所述gop長度,包括:根據以下公式確定
根據本發(fā)明的另一個方面,還提供了一種長度確定裝置,包括:獲取模塊,用于獲取待編碼圖像的運動特征,其中,所述運動特征用于表征所述待編碼圖像和該待編碼圖像的原始圖像之間的運動變化程度;確定模塊,用于根據所述運動特征確定所述待編碼圖像進行編碼所采用的圖像組gop長度。
優(yōu)選地,所述獲取模塊,包括:劃分單元,用于將所述待編碼圖像劃分為n個長度為n的正方形,其中,將該正方形作為所述待編碼圖像的子塊;第一確定單元,用于對于所述待編碼圖像中的每一個子塊,確定每一個字塊的相對運動距離dj,其中,j為大于0小于或者等于n的正整數。
優(yōu)選地,所述第一確定單元,包括:記錄子單元,用于在所述原始圖像中確定子塊的最佳匹配塊,記錄所述最佳匹配塊的運動矢量mj=(△x,△y),其中,△x表示所述子塊與所述最佳匹配塊在x軸方向上的位移偏移量,△y表示所述子塊與所述最佳匹配塊在y軸方向上的位移偏移量;確定子單元,用于根據以下公式確定所述相對運動距離dj:
優(yōu)選地,所述確定模塊,包括:第二確定單元,用于根據確定的相對運動距離dj確定一幀所述待編碼圖像的運動能量e;第三確定單元,用于根據所述運動能量e以及層次數k確定所述gop長度。
通過本發(fā)明,能夠根據待編碼圖像的運動特征來靈活調整gop的長度,采用上述技術方案,解決了相關技術中,編碼過程中由于gop長度固定而導致的編碼性能不高的問題,進而提高了編碼性能。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1為根據本發(fā)明實施例的長度確定方法的流程圖;
圖2為根據本發(fā)明實施例的長度確定裝置的結構框圖;
圖3為根據本發(fā)明實施例的長度確定裝置的獲取模塊20的結構框圖;
圖4為根據本發(fā)明實施例的長度確定裝置的確定模塊22的結構框圖;
圖5為根據本發(fā)明優(yōu)選實施的運動補償的示意圖;
圖6為根本發(fā)明優(yōu)選實施例的視頻編碼主流程圖;
圖7為根本發(fā)明優(yōu)選實施例的的核心流程圖。
具體實施方式
下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
在本發(fā)明實施例中,還提供了一種長度確定方法,圖1為根據本發(fā)明實施例的長度確定方法的流程圖,如圖1所示,包括以下步驟:
步驟s102,獲取待編碼圖像的運動特征,其中,上述運動特征用于表征上述待編碼圖像和該待編碼圖像的原始圖像之間的運動變化程度;
步驟s104,根據上述運動特征確定上述待編碼圖像進行編碼所采用的圖像組gop長度。
通過上述各個步驟,能夠根據待編碼圖像的運動特征來靈活調整gop的長度,采用上述技術方案,解決了相關技術中,編碼過程中由于gop長度固定而導致的編碼性能不高的問題,進而提高了編碼性能。
在本發(fā)明實施例中,獲取待編碼圖像的運動特征,可以通過以下技術方案實現:將上述 待編碼圖像劃分為n個長度為n的正方形,其中,將該正方形作為上述待編碼圖像的子塊;對于上述待編碼圖像中的每一個子塊,確定每一個字塊的相對運動距離dj,其中,j為大于0小于或者等于n的正整數。
優(yōu)選地,確定每一個字塊的相對運動距離dj,可以通過以下方案實現:在上述原始圖像中確定子塊的最佳匹配塊,記錄上述最佳匹配塊的運動矢量mj=(△x,△y),其中,△x表示上述子塊與上述最佳匹配塊在x軸方向上的位移偏移量,△y表示上述子塊與上述最佳匹配塊在y軸方向上的位移偏移量;根據以下公式確定上述相對運動距離dj:
在本發(fā)明實施例中,根據上述運動特征確定上述待編碼圖像進行編碼所采用的圖像組gop長度,包括:根據確定的相對運動距離dj確定一幀上述待編碼圖像的運動能量e;根據上述運動能量e以及層次數k確定上述gop長度。
可選地,根據確定的相對運動距離dj確定一幀上述待編碼圖像的運動能量e,包括:根據以下公式確定:
優(yōu)選地,根據上述運動能量e以及層次數k確定上述gop長度,包括:根據以下公式確定
以下結合一示例對上述技術方案進行詳細說明,但不用于限定本發(fā)明實施例的保護范圍。
本發(fā)明示例通過信源圖像(相當于上述實施例的待編碼圖像)的運動矢量計算,結合重構圖像的運動失真統(tǒng)計,提出一種自適應調節(jié)gop長度的方法。與固定gop長度的幀間預測編碼相比較,編碼性能有明顯增益。
主要方案包括以下步驟:
1)假設圖像的分辨率以寬w高h的乘積形式表示。將每幀圖像分為大小為n×n正方形子塊,其中n表示塊的寬度。可計算得出一幀圖像含有的子塊總數n,由公式(1)給出。
2)將當前幀中的每一個子塊在相鄰幀(前一幀)的原始圖像中尋找其最佳匹配塊,記錄其運動矢量mj=(δx,δy)j,其中j表示一個子塊在幀中的序號,1≤j≤n。運動估值采用最小mse或mad作為代價,dj記為子塊j的運動估值代價,也稱為殘差。
3)用公式(2)計算塊j所在單位時間(幀率的倒數)內運動的距離。
其中,dj表示塊j運動矢量的大小。一幀圖像中的每一個塊都將具有其獨立的dj值。
4)定義e為一幀圖像的運動能量,其值可由公式(3)給出。
那么,為下一個gop所決策的層次數由e所決定。由于gop的層次數應該綁定在合理的范圍,不失一般性用公式(4)來做層次數k的綁定操作。由公式(4)給出。
其中,
5)gop的長度可以由公式(5)決定。
l=2k(5)
至此,完成了gop長度的自適應計算。
實際上,對不同運動特性的圖像序列,選擇不同長度的圖像組,按照規(guī)范的hieratical層級方式進行,性能差異可能很大。運動變化比較劇烈的序列采用較小的gop長度會取得較好的編碼性能;對運動變化比較緩慢的序列采用較大的gop長度會取得較好的編碼性能。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必需的。
在本實施例中還提供了一種長度確定裝置,用于實現上述實施例及優(yōu)選實施方式,已經進行過說明的不再贅述,下面對該裝置中涉及到的模塊進行說明。如以下所使用的,術語“模塊”可以實現預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現,但是硬件,或者軟件和硬件的組合的實現也是可能并被構想的。圖2為根據本發(fā)明實施例的長度確定裝置的結構框圖。如圖2所示,該裝置包括:
獲取模塊20,用于獲取待編碼圖像的運動特征,其中,所述運動特征用于表征所述待編碼圖像和該待編碼圖像的原始圖像之間的運動變化程度;
確定模塊22,用于根據所述運動特征確定所述待編碼圖像進行編碼所采用的圖像組gop長度。
通過上述各個模塊的作用,能夠根據待編碼圖像的運動特征來靈活調整gop的長度,采用上述技術方案,解決了相關技術中,編碼過程中由于gop長度固定而導致的編碼性能不高的問題,進而提高了編碼性能。
圖3為根據本發(fā)明實施例的長度確定裝置的獲取模塊20的結構框圖,如圖3所示,獲取模塊20,包括:劃分單元200,用于將所述待編碼圖像劃分為n個長度為n的正方形,其中,將該正方形作為所述待編碼圖像的子塊;第一確定單元202,用于對于所述待編碼圖像中的每一個子塊,確定每一個字塊的相對運動距離dj,其中,j為大于0小于或者等于n的正整數。
為了更好的理解上述方案,如圖3所示,第一確定單元202,包括:記錄子單元2020,用于在所述原始圖像中確定子塊的最佳匹配塊,記錄所述最佳匹配塊的運動矢量mj=(△x,△y),其中,△x表示所述子塊與所述最佳匹配塊在x軸方向上的位移偏移量,△y表示所述子塊與所述最佳匹配塊在y軸方向上的位移偏移量;確定子單元2022,用于根據以下公式確定所述相對運動距離dj:
圖4為根據本發(fā)明實施例的長度確定裝置的確定模塊22的結構框圖,確定模塊22,包括:第二確定單元220,用于根據確定的相對運動距離dj確定一幀所述待編碼圖像的運動能量e;第三確定單元222,用于根據所述運動能量e以及層次數k確定所述gop長度。
為了更好的理解上述長度確定方法及裝置所體現的技術方案,以下結合優(yōu)選實施例進行說明。
圖5為根據本發(fā)明優(yōu)選實施的運動補償的示意圖。t時刻圖像中的任意塊將在t-1時刻圖像中進行最小失真搜索,獲得最小失真匹配塊。最小失真可以用mad或者mse表示。這時,將計算并得出上述兩個塊的矢量距離,如圖5中所示mv=(δx,δy)。
圖6為根本發(fā)明優(yōu)選實施例的視頻編碼主流程圖,主要包括以下步驟:
步驟s602:根據gop長度l值獲取整個gop圖像;
步驟s604:對獲取的gop圖像進行編碼,編碼方法采用通用編碼技術;
步驟s606:判斷是否編碼完所有圖像,如未編碼完,則轉到步驟s608,如果編碼完,則轉到步驟s610;
步驟s608:更新計算下一個gop的長度l值,繼續(xù)編碼;
步驟s610:結束。
圖7為根本發(fā)明優(yōu)選實施例的核心流程圖,即如何更新計算下一個gop長度l值。具體步驟如下:
步驟s702:獲取gop中poc(pushtotalkovercellular,基于蜂窩通信的半雙工通信)最末兩幀圖像。
步驟s704:將兩幀圖像劃分為n×n的正方形子塊,通過公式(1)得出一幀圖像含有的子塊數n,將圖像中的每一個子塊在相鄰幀(前一幀)的原始圖像中尋找其最佳匹配塊,記錄其運動矢量mj=(δx,δy)j,用公式(2)計算子塊j所運動的距離dj。
計算得出子塊j運動的距離dj之后,對子塊j做運動估值,動估值采用最小平均平方誤差(meansquarederror,簡稱為mse)或平均絕對差值(meanabsolutedifference,簡稱為mad)作為代價,dj記為子塊j的運動估值代價。
步驟s706:統(tǒng)計圖像的運動強度e。定義e為一幀圖像的運動強度,其值由公式(3)計算出。
步驟s708:計算下一個gop層次總數k。gop的層次數應該綁定在合理的范圍,由公式(4)計算出。λ為經驗參數,本實施例中λ=20。
步驟s710:通過公式(5)計算下一個gop長度l值。
按照hevc制定通用測試序列及條件,本發(fā)明用x265編碼器進行編碼測試,測試結果由表1給出。根據表1數據可知,本發(fā)明提出的方法實施后編碼性能有明顯增益。
表1實施例通測bd-rate性能比較
表1給出了本發(fā)明實施例的實際編碼測試結果。測試采用x265v1.6進行視頻編碼,測試序列根據hevc制定的通用測試條件進行。測試了ld結構即ipp…和隨機訪問結構ra即ibbbpbbbpbbb…兩種。ra設置的插入b幀數量為3。表1所示的測試結果中,classa為不進行測試的超大分辨率圖像,其余classb–f全部進行22、27、32、37四個qp測點的測試。其中所示的百分數值為bd-rate值,負值表示在同等質量下節(jié)省的比特率比例,負越大性能越好。在所有的class級別上都顯示出本發(fā)明方法取得了不同程度的性能增益。在平均意義上,本發(fā)明在ld下取得了4.14%的bd-rate增益,在ra下取得了1.26%的增益,整體效果好。
在另外一個實施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實施例及優(yōu)選實施方式中描述的技術方案。
在另外一個實施例中,還提供了一種存儲介質,該存儲介質中存儲有上述軟件,該存儲介質包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。
需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的對象在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。
以上上述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。