TW201906413A - 確定運動矢量預測值的方法及設備、電腦可讀儲存介質 - Google Patents

確定運動矢量預測值的方法及設備、電腦可讀儲存介質 Download PDF

Info

Publication number
TW201906413A
TW201906413A TW107120848A TW107120848A TW201906413A TW 201906413 A TW201906413 A TW 201906413A TW 107120848 A TW107120848 A TW 107120848A TW 107120848 A TW107120848 A TW 107120848A TW 201906413 A TW201906413 A TW 201906413A
Authority
TW
Taiwan
Prior art keywords
motion vector
predicted motion
accuracy
predicted
template
Prior art date
Application number
TW107120848A
Other languages
English (en)
Other versions
TWI684356B (zh
Inventor
徐巍煒
陳煥浜
趙寅
杉 劉
Original Assignee
大陸商華為技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商華為技術有限公司 filed Critical 大陸商華為技術有限公司
Publication of TW201906413A publication Critical patent/TW201906413A/zh
Application granted granted Critical
Publication of TWI684356B publication Critical patent/TWI684356B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本發明公開了一種確定運動矢量預測值的方法及設備。該方法包括:獲取待處理塊的運動矢量精度;獲取所述待處理塊的至少一個第一預測運動矢量;根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。在得到目標預測運動矢量後,可以將所述目標預測運動矢量作為解碼側運動矢量匯出DMVD運動矢量預測值插入到候選運動矢量預測值列表中,其中,候選運動矢量預測值列表也具有所述運動矢量精度。本發明進一步減少編碼和解碼的時間,降低碼率,提高視訊傳輸效率。

Description

確定運動矢量預測值的方法及設備、電腦可讀儲存介質
本發明涉及圖像編解碼技術領域,尤其涉及一種確定運動矢量預測值的方法以及相關設備、電腦可讀儲存介質。
預測編碼是視訊壓縮中基本的編碼工具,常見的預測編碼為幀間預測和幀內預測。幀間預測是指利用視訊時間域相關性,使用之前臨近已編碼圖像像素預測當前圖像的像素,以達到有效去除視訊時域冗餘的目的,其基本原理為:基於視訊序列通常具有很強的時域相關性,為當前圖像(current frame)的每個當前編碼塊在之前已編碼圖像中尋找一個最佳匹配的參考塊,將參考塊中的像素點的像素值作為當前編碼塊中像素點的像素值的預測值,並獲取各個當前編碼塊的運動資訊,其中,參考塊到當前編碼塊的位移稱為運動矢量(motion vector,MV),該已編碼圖像又稱為參考圖像(Reference Frame),該運動資訊包含參考圖像的指示資訊和運動矢量MV。因此,編碼側不需要向解碼側發送每幅圖像的全部資訊,只需將當前圖像的中的運動資訊傳遞到解碼側,解碼側根據該運動資訊可解碼得到當前圖像。
在視訊傳輸技術的實現上,編碼側和解碼側之間傳輸的壓縮碼流的相當一部分比例用於傳輸運動資訊。尤其對於高清視訊的傳輸,在低碼率情況下,用於表示運動資訊所耗費位元的占比往往超過總碼流的50%。因此,對運動資訊進行高效編碼是提升編碼傳輸效率的重要手段。在視訊的當前圖像中,臨近位置的編碼塊可能屬於同一物體或同一運動場景,這些編碼塊的運動(變化)具有相似性,因此,編解碼標準中,為了減少運動資訊所消耗的位元,可使用當前編碼塊的臨近塊的運動資訊來預測當前編碼塊的運動資訊。編碼側將運動資訊中的MV進行差分編碼,分為MV預測值和運動矢量差值(motion vector difference,MVD)兩部分,其中,MV預測值不直接編碼,可由時域和空域臨近運動矢量匯出;MVD編碼並在碼流中傳輸。解碼側提取碼流中的MVD,以及推導出MV預測值,將MV預測值加上MVD得到最終MV。如果推導出的MV預測值越接近最終MV,那麼需要傳遞的MVD越小,即可降低運動資訊所耗費位元。因此,MV預測值的匯出技術對於高效視訊編碼至關重要,目前涉及MV預測值匯出技術的視訊編解碼標準包括高效視訊編碼(high efficiency video coding,HEVC),高級視訊編碼(advanced video coding,AVC),動態圖像專家組(moving picture experts group,MPEG)等。
然而,隨著不斷演進的視訊服務的出現,以及使用者對視訊傳輸需要的增加,如何進一步減少編碼和解碼的時間,降低碼率,提高視訊傳輸效率,仍然是當前編解碼技術的一個挑戰。
本發明實施例提供一種確定運動矢量預測值的方法以及相關設備,能夠進一步減少編碼和解碼的時間,降低碼率,提高視訊傳輸效率。
第一方面,本發明實施例提供了一種確定運動矢量預測值的方法,該方法包括:獲取待處理塊的運動矢量精度;獲取所述待處理塊的至少一個第一預測運動矢量;根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
其中,運動矢量精度(又可稱為MV精度)可為進行運動估計和運動補償所需要的精度,也就是說,所述MV精度指示碼流中MVD的精度,也指示了生成的運動矢量預測值(MV預測值,或稱MVP)的精度,同樣指示了最終合成的MV的精度。
在一種獲取待處理塊的運動矢量精度的可能的實施例中,所述方法應用於解碼側,解碼側通過碼流中的精度指示資訊來獲取MV精度,其中,該精度指示資訊指示所述MV精度。具體的實現中,在編碼側配置有精度選擇策略,在精度選擇策略覆蓋1/8像素精度、1/4像素精度、半像素精度、四像素精度等等全部精度,編碼側生成MVD的過程中,根據精度選擇策略確定MVD的精度,對整個編碼單元(Coding Unit,CU)在碼流中傳送一個精度指示資訊,該精度指示資訊用於指示MVD的精度(即MV精度);解碼側獲取碼流中的精度指示資訊,通過精度指示資訊獲取MV精度。根據需要使用的MV精度即MVD的精度,對解碼側運動矢量匯出技術生成運動矢量預測值的過程中的各個步驟分別進行調整。
在又一種獲取待處理塊的運動矢量精度的可能的實施例中,編碼側/解碼側根據需要從多個預設MV精度中獲取所述MV精度。編碼側根據精度選擇策略對所需要傳遞的視訊資料進行判斷,從所述多個精度中確定一個精度作為進行編碼的精度,在編碼後獲得MVD,在碼流中傳遞MVD,但不傳送精度指示資訊。解碼側同樣配置有精度選擇策略,解碼側可基於提前獲取並解碼的圖像(已解碼圖像)進行判斷,從所述多個精度中確定一個精度作為本次解碼的精度。由於編碼側和解碼側使用一致的精度選擇策略,故解碼側可確定的精度與編碼側所確定的精度一致。
其中,第一預測運動矢量又稱為起始點運動矢量,在可能的實現方式中,獲取所述待處理塊的至少一個第一預測運動矢量,具體為:建立起始點運動矢量列表,該起始點運動矢量列表包括一個或多個起始點運動矢量。
本發明實施例有益效果包括,在生成目標預測運動矢量的過程會按照所需的MV精度進行調整,保證了進行調整所獲得的搜索位置是符合MV精度的準確位置,避免出現對多餘的精度進行了運動搜索,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間。
結合第一方面,在第一種可能的實施方式中,所述根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度,包括:根據所述第二預測運動矢量,確定至少一個第三預測運動矢量;根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量。
結合第一方面,在第一種可能的實施方式中,確定目標預測運動矢量的過程可以是:根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度;根據所述第二預測運動矢量,確定至少一個第三預測運動矢量;根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述最優預測運動矢量。
結合第一方面的第一種可能的實施方式,在第一種可能的實施例中,所述根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括:對所述至少一個第一預測運動矢量進行數值處理,所述數值處理用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,處理後的所述至少一個第一預測運動矢量具有所述運動矢量精度;以每一個所述處理後的至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊;計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值;將所述代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
結合第一方面的第一種可能的實施方式,在第二種可能的實施例中,所述根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括:以每一個所述至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊;計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值;對所述代價值最小的第一預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第一預測運動矢量具有所述運動矢量精度;將所述處理後的代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
結合第一方面的第一種可能的實施方式,在第三種可能的實施例中,所述根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量,包括:以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊,所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定;計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第三預測運動矢量的代價值;對所述代價值最小的第三預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第三預測運動矢量具有所述運動矢量精度;將所述處理後的代價值最小的第三預測運動矢量作為所述目標預測運動矢量。
其中,目標預測運動矢量為在編解碼過程中生成實際的MV時所可能會用到的預測運動矢量(預測運動矢量或者可稱運動矢量預測值)。例如,在一具體實現中,目標預測運動矢量又可簡稱最優運動矢量,當該最優運動矢量為基於DMVD技術生成時,該最優運動矢量可作為DMVD運動矢量預測值。
其中,第二預測運動矢量為所述至少一個第一預測運動矢量中通過某種演算法所確定的代價值最小的預測運動矢量。例如,在一具體實現中,所述至少一個第一預測運動矢量為起始點運動矢量列表,那麼第二預測運動矢量就是該列表中匹配失真最小的起始點預測運動矢量,又可以稱為最優起始點運動矢量。
其中,可以從第二預測運動矢量所指示的起始點開始,在某種搜索演算法指定的搜索範圍內進行搜索,通過搜索可找到至少一個第三預測運動矢量。例如,在一可能的實現方式中,以第二預測運動矢量所指示的起始點為中心點進行搜索,那麼,所確定到的至少一個第三預測運動矢量包括第二預測運動矢量以及第二預測運動矢量周圍的多個搜索樣式點對應的預測運動矢量。分別計算所述至少一個第三預測運動矢量的匹配失真,若其中的中心點對應的匹配失真最小,則結束搜索,中心點的運動矢量即為目標預測運動矢量。
結合第一方面的第一種可能的實施方式的第三種可能的實施例,在具體的實施例中,所述第三預測運動矢量包括第三預測運動矢量水準分量和第三預測運動矢量豎直分量,所述第二預測運動矢量包括第二預測運動矢量水準分量和第二預測運動矢量豎直分量;所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定,包括:所述第三預測運動矢量水準分量為所述第二預測運動矢量水準分量和第一預設偏移值之和;所述第三預測運動矢量豎直分量為所述第二預測運動矢量豎直分量和第二預設偏移值之和。
結合第一方面的第一種可能的實施方式的第三種可能的實施例,在具體的實施例中,所述第一預設偏移值為所述運動矢量精度的數值的整數倍,且所述第二預設偏移值具有所述運動矢量精度的數值的整數倍。
在具體的實施例中,在所述以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊之前,還包括:確定具有所述運動矢量精度的所述至少一個第三預測運動矢量;對應的,所述以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,包括:以每一個具有所述運動矢量精度的第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊。
在具體實施例中,在所述根據所述至少一個第一預測運動矢量確定目標預測運動矢量之後,還包括:將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表,所述第一候選預測運動矢量列表中的候選預測運動矢量具有所述運動矢量精度,所述候選預測運動矢量包括和所述當前塊的相鄰圖像塊的運動矢量和所述當前塊在時域上對應位置塊的運動矢量。其中,所述候選預測運動矢量在所述第一候選預測矢量清單中按照預設順序排列,所述將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表的過程,包括:在所述目標預測運動矢量和所述第一候選預測運動矢量列表中排在所述順序第一位的候選預測運動矢量不同的情況下,從所述第一候選預測運動矢量列表中排除排在所述順序第二位元的候選預測運動矢量,且將所述目標預測運動矢量和所述順序第一位的候選預測運動矢量依次置於所述第一候選預測運動矢量列表的前兩位。
在本發明實施例中,所述數值處理包括:舍入(rounding)處理。所述舍入處理可以是但不限於是四捨五入的處理方式,所述舍入處理還可以是其他處理方式。
在可能的實施例中,所述數值處理包括:用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,或,用於使所述代價值最小的第一預測運動矢量具有所述運動矢量精度,或,用於使所述代價值最小的第三預測運動矢量具有所述運動矢量精度。
第二方面,本發明實施例提供了一種用於確定運動矢量預測值的設備,該設備包括:設備可以是應用於編碼側,也可以是應用於解碼側。該設備包括處理器、記憶體,所述處理器和記憶體相連接(如通過匯流排相互連接),在可能的實施方式中,該設備還可包括收發器,收發器連接處理器和記憶體,用於接收/發送資料。記憶體用於儲存程式碼和視訊資料。處理器可用於讀取所記憶體中儲存的程式碼,執行第一方面所描述的方法。
協力廠商面,本發明實施例提供了一種又一種用於確定運動矢量預測值的設備,該設備包括第一獲取模組、第二獲取模組和確定模組。其中:第一獲取模組用於獲取待處理塊的運動矢量精度;第二獲取模組用於獲取所述待處理塊的至少一個第一預測運動矢量;確定模組用於根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。可以理解的,該設備用於實現第一方面所描述的方法。
第四方面,本發明實施例提供了一種視訊編解碼系統,該視訊編解碼系統包括源裝置及目的地裝置。源裝置與目的地裝置可進行通信連接。源裝置產生經編碼視訊資料。因此,源裝置可被稱作視訊編碼裝置或視訊編碼設備。目的地裝置可解碼由源裝置產生的經編碼視訊資料。因此,目的地裝置可被稱作視訊解碼裝置或視訊解碼設備。源裝置及目的地裝置可為視訊編解碼裝置或視訊編解碼設備的實例。第一方面所描述的方法會應用在該視訊編解碼裝置或視訊編解碼設備,也就是說,所述視訊編解碼系統可用於實現第一方面所描述的方法。
第五方面,本發明實施例提供了一種電腦可讀儲存介質,所述電腦可讀儲存介質中儲存有指令,當其在電腦上運行時,使得電腦執行上述第一方面所述的方法。
第六方面,本發明實施例提供了一種包含指令的電腦程式產品,當其在電腦上運行時,使得電腦執行上述第一方面所述的方法。
實施本發明實施例,在生成目標預測運動矢量的過程會按照所需的MV精度進行調整,保證了進行調整所獲得的搜索位置是符合MV精度的準確位置,避免出現對多餘的精度進行了運動搜索。並且,在生成候選運動矢量預測值列表的過程會按照所需的MV精度進行調整,將目標預測運動矢量插入候選運動矢量預測值列表時,由於兩者都符合MV精度,所以可以避免出現白白損失原候選運動矢量預測值列表中的運動矢量預測值的狀況。通過實施本發明實施例,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質,提高編碼效率,進而提升使用者體驗。
下面結合本發明實施例中的附圖對本發明實施例進行描述。
首先介紹本發明實施例所應用的系統框架,首先參見圖1,圖1是本發明實施例提供的一種視訊編解碼系統10的示意性框圖。如圖1所示,視訊編解碼系統10包含源裝置12及目的地裝置14。源裝置12產生經編碼視訊資料。因此,源裝置12可被稱作視訊編碼裝置或視訊編碼設備。目的地裝置14可解碼由源裝置12產生的經編碼視訊資料。因此,目的地裝置14可被稱作視訊解碼裝置或視訊解碼設備。源裝置12及目的地裝置14可為視訊編解碼裝置或視訊編解碼設備的實例。源裝置12及目的地裝置14可包括廣泛範圍的裝置,包含桌上型電腦、移動計算裝置、筆記本(例如,膝上型)電腦、平板電腦、機上盒、智慧型電話等手持機、電視、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、車載電腦,或其類似者。
目的地裝置14可經由信道16接收來自源裝置12的編碼後的視訊資料。信道16可包括能夠將經編碼視訊資料從源裝置12移動到目的地裝置14的一個或多個媒體及/或裝置。在一個實例中,信道16可包括使源裝置12能夠即時地將編碼後的視訊資料直接發射到目的地裝置14的一個或多個通信媒體。在此實例中,源裝置12可根據通信標準(例如,無線通訊協定)來調製編碼後的視訊資料,且可將調製後的視訊資料發射到目的地裝置14。所述一個或多個通信媒體可包含無線及/或有線通信媒體,例如射頻(RF)頻譜或一根或多根物理傳輸線。所述一個或多個通信媒體可形成基於包的網路(例如,局域網、廣域網路或全球網路(例如,網際網路))的部分。所述一個或多個通信媒體可包含路由器、交換器、基站,或促進從源裝置12到目的地裝置14的通信的其它設備。
在另一實例中,信道16可包含儲存由源裝置12產生的編碼後的視訊資料的儲存媒體。在此實例中,目的地裝置14可經由磁片存取或卡存取來存取儲存媒體。儲存媒體可包含多種本地存取式資料儲存媒體,例如藍光光碟、DVD、CD-ROM、快閃記憶體,或用於儲存經編碼視訊資料的其它合適數位儲存媒體。
在另一實例中,信道16可包含檔案伺服器或儲存由源裝置12產生的編碼後的視訊資料的另一中間儲存裝置。在此實例中,目的地裝置14可經由資料流或下載來存取儲存於檔案伺服器或其它中間儲存裝置處的編碼後的視訊資料。檔案伺服器可以是能夠儲存編碼後的視訊資料且將所述編碼後的視訊資料發射到目的地裝置14的伺服器類型。實例檔案伺服器包含web伺服器(例如,用於網站)、文件傳送協定(FTP)伺服器、網路附加儲存(NAS)裝置,及本地磁碟機。
目的地裝置14可經由標準資料連接(例如,網際網路連接)來存取編碼後的視訊資料。資料連接的實例類型包含適合於存取儲存於檔案伺服器上的編碼後的視訊資料的無線信道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線數據機等),或兩者的組合。編碼後的視訊資料從檔案伺服器的發射可為資料流、下載傳輸或兩者的組合。
本發明的技術不限於無線應用場景,示例性的,可將所述技術應用于支援以下應用等多種多媒體應用的視訊編解碼:空中電視廣播、有線電視發射、衛星電視發射、資料流視訊發射(例如,經由網際網路)、儲存於資料儲存媒體上的視訊資料的編碼、儲存於資料儲存媒體上的視訊資料的解碼,或其它應用。在一些實例中,視訊編解碼系統10可經配置以支援單向或雙向視訊發射,以支援例如視訊資料流、視訊播放、視訊廣播及/或視訊電話等應用。
在圖1的實例中,源裝置12包含視訊源18、視訊編碼器20及輸出介面22。在一些實例中,輸出介面22可包含調製器/解調器(數據機)及/或發射器。視訊源18可包含視訊俘獲裝置(例如,視訊相機)、含有先前俘獲的視訊資料的視訊存檔、用以從視訊內容提供者接收視訊資料的視訊輸入介面,及/或用於產生視訊資料的電腦圖形系統,或上述視訊資料來源的組合。
視訊編碼器20可編碼來自視訊源18的視訊資料。在一些實例中,源裝置12經由輸出介面22將編碼後的視訊資料直接發射到目的地裝置14。編碼後的視訊資料還可儲存於儲存媒體或檔案伺服器上以供目的地裝置14稍後存取以用於解碼及/或播放。
在圖1的實例中,目的地裝置14包含輸入介面28、視訊解碼器30及顯示裝置32。在一些實例中,輸入介面28包含接收器及/或數據機。輸入介面28可經由信道16接收編碼後的視訊資料。顯示裝置32可與目的地裝置14整合或可在目的地裝置14外部。一般來說,顯示裝置32顯示解碼後的視訊資料。顯示裝置32可包括多種顯示裝置,例如液晶顯示器(LCD)、等離子體顯示器、有機發光二極體(OLED)顯示器或其它類型的顯示裝置。
視訊編碼器20及視訊解碼器30可根據視訊壓縮標準(例如,高效率視訊編解碼H.265標準)而操作,且可遵照HEVC測試模型(HM)。H.265標準的文本描述ITU-TH.265(V3)(04/2015)於2015年4月29號發佈,可從http://handle.itu.int/11.1002/1000/12455下載,所述文件的全部內容以引用的方式併入本文中。
參見圖2,圖2是本發明實施例提供的一種視訊編解碼裝置或電子設備50的示意性框圖,該裝置或者電子設備50可以併入根據本發明的實施例的編碼解碼器電路。圖3是根據本發明實施例的一種用於視訊編碼的裝置的結構示意圖。下面將說明圖2和圖3中的單元。
電子設備50可以例如是無線通訊系統的移動終端或者使用者設備。應理解,可以在可能需要對視訊圖像進行編碼和解碼,或者編碼,或者解碼的任何電子設備或者裝置內實施本發明的實施例。
裝置50可以包括用於併入和保護設備的殼30。裝置50還可以包括形式為液晶顯示器的顯示器32。在本發明的其它實施例中,顯示器可以是適合於顯示圖像或者視訊的任何適當的顯示器技術。裝置50還可以包括小鍵盤34。在本發明的其它實施例中,可以運用任何適當的資料或者使用者介面機制。例如,可以實施使用者介面為虛擬鍵盤或者資料錄入系統作為觸敏顯示器的一部分。裝置可以包括麥克風36或者任何適當的音訊輸入,該音訊輸入可以是數位或者類比信號輸入。裝置50還可以包括如下音訊輸出設備,該音訊輸出設備在本發明的實施例中可以是以下各項中的任何一項:耳機38、揚聲器或者類比音訊或者數位音訊輸出連接。裝置50也可以包括電池40,在本發明的其它實施例中,設備可以由任何適當的移動能量設備,比如太陽能電池、燃料電池或者時鐘機構生成器供電。裝置還可以包括用於與其它設備的近程視線通信的紅外線埠42。在其它實施例中,裝置50還可以包括任何適當的近程通信解決方案,比如藍牙無線連接或者USB/火線有線連接。
裝置50可以包括用於控制裝置50的控制器56或者處理器。控制器56可以連接到記憶體58,該記憶體在本發明的實施例中可以儲存形式為圖像的資料和音訊的資料,和/或也可以儲存用於在控制器56上實施的指令。控制器56還可以連接到適合於實現音訊和/或視訊資料的編碼和解碼或者由控制器56實現的輔助編碼和解碼的編碼解碼器電路54。
裝置50還可以包括用於提供使用者資訊並且適合於提供用於在網路認證和授權使用者的認證資訊的讀卡器48和智慧卡46,例如UICC和UICC讀取器。
裝置50還可以包括無線電介面電路52,該無線電介面電路連接到控制器並且適合於生成例如用於與蜂巢式網絡、無線通訊系統或者無線局域網通信的無線通訊信號。裝置50還可以包括天線44,該天線連接到無線電介面電路52用於向其它(多個)裝置發送在無線電介面電路52生成的射頻信號並且用於從其它(多個)裝置接收射頻信號。
在本發明的一些實施例中,裝置50包括能夠記錄或者檢測單幀的相機,編碼解碼器電路54或者控制器接收到這些單幀並對它們進行處理。在本發明的一些實施例中,裝置可以在傳輸和/或儲存之前從另一設備接收待處理的視訊圖像資料。在本發明的一些實施例中,裝置50可以通過無線或者有線連接接收圖像用於編碼/解碼。
本發明實施例所描述的方法主要應用於視訊編碼器20和視訊解碼器30相應的編解碼過程中的幀間預測。在幀間預測中,本發明基於解碼側運動矢量匯出技術(decoder side motion vector derivation,DMVD),可應用於高級運動矢量預測(advanced motion vector prediction,AMVP)候選MV預測值獲取。在視訊編碼器20中,在提取AMVP候選MV預測值清單後,根據其進行搜索找到最優MV和最優MV預測值,然後求得MVD,並根據MV從參考幀(又稱參考圖像)中得到預測塊。在視訊解碼器30中,從碼流中解析出MVD後,提取AMVP候選MV預測值列表並確認MV預測值,根據MVD和MV預測值求得MV並從參考幀中找到預測塊。在採用了解碼側運動矢量匯出(decoder side motion vector derivation,DMVD)技術後,AMVP候選MV預測值列表除了空域和時域MV預測值,還增加了DMVD技術生成的運動矢量預測值。
在現有技術的編解碼中,幀間預測的實質是為當前圖像的當前塊(編碼塊)在參考圖像中尋找一塊最相似塊(匹配塊)。但是參考圖像通常都比較大,直接去搜索參考圖像的話效率就很低,應該使用某種技術在參考圖像中確定一個搜索起始點,然後在該搜索起始點的特定範圍內進行搜索,那麼就能高效率地搜索到到匹配塊。
高效視訊編碼標準(high efficiency video coding,HEVC)的AMVP技術就是這樣的技術,在開始搜索之前,AMVP先為當前塊預測出一個MV,這個預測的MV被稱為運動矢量預測值(motion vector prediction ,MVP),MVP可以從空域或者時域上的相鄰塊直接得到,因為相鄰塊有多個,因此MVP也會有多個,由這些MVP組成的列表稱為AMVP候選MV預測值列表。編碼側在建立該AMVP候選MV預測值列表後,從AMVP候選MV預測值列表中選擇出一個最優的MVP,根據最優的MVP(MVP實質上也是一個MV)來確定在參考圖像中搜索的起始點,然後在搜索起始點的附近特定範圍內按照特定方式進行搜索,最後得到一個最優的MV,這個最優的MV就是實際的MV,實際的MV確定了參考圖像中參考塊的位置,通過實際的MV與最優的MVP的差值求得運動矢量差值(motion vector difference,MVD),編碼側只需在碼流中向解碼側發送該MVD,達到了視訊資料壓縮的目的。解碼側一方面從碼流中解析出MVD,另一方面自己建立AMVP候選MV預測值清單,通過相同的方式得到最優的MVP,根據MVD和最優的MVP得到實際的MV,並從參考圖像中找到參考塊,進而通過運動補償得到當前塊。
現有技術還有一種運動矢量匯出的方法,稱為解碼側運動矢量匯出(decoder side motion vector derivation,DMVD),DMVD利用兩種匹配的方法(雙向匹配和範本匹配)在解碼側獲取當前塊的運動矢量,可以減少了需要傳遞的MVD消耗位元數,提高了幀間編碼性能。
聯合研究測試模型(joint exploration test model,JEM)可以將AMVP技術和DMVD技術整合在一起。對於JEM ,DMVD可以應用在合併預測(merge)模式和幀間預測(inter)模式中。其中,DMVD應用在幀間預測模式時,用匹配搜索的方法生成DMVD運動矢量預測值,並將DMVD運動矢量預測值加入到AMVP候選MV預測值列表中。
另外,由於自然界物體運動具有連續性,因此採集(例如錄影)的視訊資料中,相鄰兩幅圖像之間的運動不一定以整像素的精度為基本單位,而有可能以半像素、1/4像素甚至是1/8像素的精度為單位。此時若僅僅使用整像素的精度進行運動估計(motion estimation,ME),就會造成匹配結果不準確,導致運動補償(motion compensation,MC)的殘差幅度較大,影響編碼效率。為了解決上述問題,可將運動估計的精度提升到亞像素級別,這可以通過對參考圖像的像素點進行插值來實現。現有技術的實踐中,1/4像素精度相比於1/2像素精度時的編碼效率有明顯地提高,但是1/8像素精度相比於1/4像素精度時的編碼效率除了高碼率情況以外並沒有明顯地提升,且1/8像素精度運動估計更為複雜。因此現有編解碼標準H.264以及HEVC都使用了1/4像素的精度進行運動估計。
同樣,為了提高編碼效率,進行更高效的幀間預測,JEM也引入了進行精度調整的自我調整運動矢量精度(adaptive motion vector resolution,AMVR)技術。在AMVR技術中,MVD能夠以1/4、整數或四像素的精度為單位進行傳遞,在碼流中傳送一個MVD的精度標識來指示編碼塊(CU)中所有PU對應的MVD的精度。如果解碼側發現當前編碼塊(CU)指示的精度是1/4或整數或四像素的精度,那麼就表明碼流中傳送的MVD也是1/4或整數或四像素的精度,那麼就需要將運動預測的結果基於所該精度進行調整。
JEM基於DMVD的幀間預測模型和AMVR技術建立JEM的AMVP候選MV預測值列表的技術過程簡述如下:
步驟1、建立HEVC標準的AMVP候選MV預測值列表。
步驟2、生成DMVD運動矢量預測值。
步驟3、將DMVD運動矢量預測值插入到AMVP候選MV預測值列表。
步驟4、按照AMVR技術所指示的精度將AMVP候選MV預測值列表進行四捨五入,調整至對應的精度。
本申請的發明人在研究實踐中發現,上述JEM中的AMVP候選MV預測值列表生成過程依然存在很多技術缺陷,這些技術缺陷包括:
1、上述技術過程需要對多餘的精度進行了運動搜索,導致運算複雜度增加。舉例來說,假如AMVR技術所指示的精度為四像素精度,即要求步驟4AMVP候選MV預測值列表中的MV預測值為四像素精度,但是現有技術中,步驟2採用DMVD方法生成DMVD運動矢量預測值的過程中,依然是採用1/4精度進行搜索得到DMVD運動矢量預測值,然後直到步驟4再被調整到四像素精度。
2、上述技術過程在步驟4中對 DMVD運動矢量預測值進行四捨五入,這種較為粗糙的折算容易對編碼效率造成負面影響。舉例來說,假如AMVR技術所指示的精度為四像素精度,而現有技術生成的DMVD運動矢量預測值為1/4精度,那麼在調整為四像素精度的過程中,DMVD運動矢量預測值對應的參考塊在其周圍的4個四像素精度位置均有獲得最小的匹配失真的可能,所以,按照四捨五入進行調整所獲得的位置其實並不是準確的位置。
3、上述技術過程會導致JEM的AMVP候選MV預測值列表中有效MV預測值的數量的減少。在步驟3具體過程中,AMVP候選MV預測值列表具有兩位MV預測值,如果DMVD運動矢量預測值如果與AMVP候選MV預測值列表第一位不同,會插入到AMVP候選MV預測值列表第一位,原AMVP候選MV預測值列表中第二位會被丟掉;如果相同,則不插入,此時AMVP候選MV預測值列表將不做改動。舉例來說,假如步驟2生成的原DMVD運動矢量預測值與原AMVP候選MV預測值列表第一位不相同,所以插入AMVP候選MV預測值列表後, AMVP候選MV預測值列表中第二位會被丟掉,然而,如果在步驟4進行四捨五入之後,得到新的DMVD運動矢量預測值正好與原AMVP候選MV預測值列表第一位相同,那麼,就相當於白白損失原AMVP候選MV預測值列表第二位。
可以看出,上述技術缺陷的存在將會影響編碼效率,導致傳輸碼率和編碼時間的增加。
為了克服現有技術的上述技術缺陷,提升編碼效率,減少傳輸碼率和編碼時間,本發明實施例提供的一種確定運動矢量預測值的方法,請參見圖4。該方法包括但不限於如下步驟:
步驟401:獲取待處理塊的運動矢量精度。
在本發明實施例中,運動矢量精度(又可稱為MV精度)可為進行運動估計和運動補償所需要的精度,也就是說,所述MV精度指示碼流中MVD的精度,也指示了生成的運動矢量預測值(MV預測值,或稱MVP)的精度,同樣指示了最終合成的MV的精度。
在可能的實施例中,所述方法應用於解碼側,解碼側通過碼流中的精度指示資訊來獲取MV精度,其中,該精度指示資訊指示所述MV精度。具體的,所述精度指示資訊可以在PU或CU或LCU或CTU或Slice或 frame中傳遞,在對待處理塊(當前塊)所在的PU或CU或LCU或CTU或Slice或 frame進行解析後,獲得所述精度指示資訊。具體的實現中,在編碼側配置有精度選擇策略,在精度選擇策略覆蓋1/8像素精度、1/4像素精度、半像素精度、四像素精度等等全部精度,編碼側生成MVD的過程中,根據精度選擇策略確定MVD的精度,對整個編碼單元(Coding Unit,CU)在碼流中傳送一個精度指示資訊,該精度指示資訊用於指示MVD的精度(即MV精度);解碼側獲取碼流中的精度指示資訊,通過精度指示資訊獲取MV精度。根據需要使用的MV精度即MVD的精度,對解碼側運動矢量匯出技術生成運動矢量預測值的過程中的各個步驟分別進行調整。例如,採用自我調整運動矢量精度技術AMVR實現精度的可變。
在可能的實施例中,編碼側/解碼側根據需要從多個預設MV精度中獲取所述MV精度。具體實現中,在編碼側配置有精度選擇策略,在精度選擇策略預設1/8像素精度、1/4像素精度、半像素精度、四像素精度等等多個精度,編碼側根據精度選擇策略對所需要傳遞的視訊資料進行判斷,從所述多個精度中確定一個精度作為進行編碼的精度,在編碼後獲得MVD,在碼流中傳遞MVD,但不傳送精度指示資訊。解碼側同樣配置有精度選擇策略,在精度選擇策略預設1/8像素精度、1/4像素精度、半像素精度、四像素精度等等多個精度。解碼側可基於提前獲取並解碼的圖像(已解碼圖像)進行判斷,從所述多個精度中確定一個精度作為本次解碼的精度。由於編碼側和解碼側使用一致的精度選擇策略,故解碼側可確定的精度與編碼側所確定的精度一致。
其中,可以理解的,對於分數像素精度(比如1/8像素精度等),由於分數像素精度位置的像素本身不存在,可以通過對參考圖像進行插值(比如線性插值)來實現。
步驟402:獲取所述待處理塊的至少一個第一預測運動矢量。
其中,所述當前塊(又可稱為當前圖像塊,待處理塊,待處理圖像塊)為當前圖像中需要進行編解碼的塊,所述第一預測運動矢量為用於指示所述當前塊在參考圖像(已編碼圖像)中進行搜索時的起始點,這個第一預測運動矢量可以從空域或者時域上的相鄰塊獲得,由於相鄰塊的數量可能有多個,所以第一預測運動矢量的數量也可能有多個。比如,在一個具體的實現中,第一預測運動矢量又稱為起始點運動矢量,獲取所述待處理塊的至少一個第一預測運動矢量,具體為:建立起始點運動矢量列表,該起始點運動矢量列表包括一個或多個起始點運動矢量。
步驟403:根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
目標預測運動矢量為在編解碼過程中生成實際的MV時所可能會用到的預測運動矢量(或者稱運動矢量預測值,MVP)。例如,在一具體實現中,目標預測運動矢量又可簡稱最優運動矢量,當該最優運動矢量為基於DMVD技術生成時,該最優運動矢量可作為DMVD運動矢量預測值。
在可能的實施例中,確定目標預測運動矢量的過程可以是:根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度;根據所述第二預測運動矢量,確定至少一個第三預測運動矢量;根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述最優預測運動矢量。
在可能的實施例中,確定目標預測運動矢量的過程可以是:根據運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度;根據運動矢量精度,從所述第二預測運動矢量確定的至少一個第三預測運動矢量中確定所述目標預測運動矢量。
在本發明可能的實施例中,確定目標預測運動矢量的過程還可以是:以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在當前塊的參考幀(又可稱為參考圖像)中通過運動補償確定範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊,所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定;計算每一個範本和範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第三預測運動矢量的代價值;對代價值最小的第三預測運動矢量進行數值處理;將所述處理後的代價值最小的第三預測運動矢量作為所述目標預測運動矢量。
其中,第二預測運動矢量為所述至少一個第一預測運動矢量中通過某種演算法所確定的代價值最小的預測運動矢量。例如,在一具體實現中,所述至少一個第一預測運動矢量為起始點運動矢量列表,那麼第二預測運動矢量就是該列表中匹配失真最小的起始點預測運動矢量,又可以稱為最優起始點運動矢量。
其中,可以從第二預測運動矢量所指示的起始點開始,在某種搜索演算法指定的搜索範圍內進行搜索,通過搜索可找到至少一個第三預測運動矢量。例如,在一可能的實現方式中,以第二預測運動矢量所指示的起始點為中心點進行搜索,那麼,所確定到的至少一個第三預測運動矢量包括第二預測運動矢量以及第二預測運動矢量周圍的多個搜索樣式點對應的預測運動矢量。分別計算所述至少一個第三預測運動矢量的匹配失真,若其中的中心點對應的匹配失真最小,則結束搜索,中心點的運動矢量即為目標預測運動矢量。
在本發明一具體實施例中,確定第二預測運動矢量的過程可以是:對所述至少一個第一預測運動矢量進行數值處理,所述數值處理用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,處理後的所述至少一個第一預測運動矢量具有所述運動矢量精度;以每一個所述處理後的至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在當前塊的參考幀中通過運動補償確定該範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊;計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的第一預測運動矢量的代價值;將代價值最小的第一預測運動矢量作為第二預測運動矢量。
在本發明又一具體實施例中,確定第二預測運動矢量的過程還可以是:以每一個所述至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊;計算每一個範本和範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值;對代價值最小的第一預測運動矢量進行數值處理;將所述處理後的代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
應理解,本發明實施例中的像素差異,可以用像素間的差值來表示,也可以用像素間的差值的後續處理結果來表示,可以直接作為第一預測運動矢量的代價值,也可以通過計算處理作為第一預測運動矢量的代價值,不作限定。
其中,上述數值處理包括舍入處理(rounding),舍入處理例如可以是四捨五入的處理。在可能的實施例中,所述數值處理包括:用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,或,用於使所述代價值最小的第一預測運動矢量具有所述運動矢量精度,或,用於使所述代價值最小的第三預測運動矢量具有所述運動矢量精度。
具體的,所述第二預測運動矢量包括第二預測運動矢量水準分量和第二預測運動矢量豎直分量;第三預測運動矢量包括第三預測運動矢量水準分量和第三預測運動矢量豎直分量。
具體的,第三預測運動矢量由對第二預測運動矢量進行預設的修正確定,第三預測運動矢量水準分量為第二預測運動矢量水準分量和第一預設偏移值之和;第三預測運動矢量豎直分量為第二預測運動矢量豎直分量和第二預設偏移值之和。在具體實現中,第一預設偏移值為所述運動矢量精度的數值的整數倍,且所述第二預設偏移值為所述運動矢量精度的數值的整數倍。
在可能的實施例中,以每一個所述至少一個第三預測運動矢量為當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊之前,可以先確定具有所述運動矢量精度的所述至少一個第三預測運動矢量;相對應的,以每一個具有所述運動矢量精度的第三預測運動矢量為當前塊的範本的運動矢量,在當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊。
在可能的實施例中,在所述以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量之後,還可以將目標預測運動矢量加入到當前塊的第一候選運動矢量預測值列表,第一候選預測運動矢量列表中的候選預測運動矢量具有所述運動矢量精度,候選預測運動矢量包括和所述當前塊的相鄰圖像塊的運動矢量和所述當前塊在時域上對應位置塊的運動矢量。其中,所述候選預測運動矢量在第一候選預測矢量清單中按照預設順序排列。具體實現過程中,在目標預測運動矢量和第一候選預測運動矢量列表中排在所述順序第一位的候選預測運動矢量不同的情況下,從第一候選預測運動矢量列表中排除排在所述順序第二位元的候選預測運動矢量,且將目標預測運動矢量和所述順序第一位的候選預測運動矢量依次置於第一候選預測運動矢量列表的前兩位。
實施本發明實施例,在生成目標預測運動矢量的過程會按照所需的MV精度進行調整,保證了進行調整所獲得的搜索位置是符合MV精度的準確位置,避免出現對多餘的精度進行了運動搜索。並且,在生成候選運動矢量預測值列表的過程會按照所需的MV精度進行調整,將目標預測運動矢量插入候選運動矢量預測值列表時,由於兩者都符合MV精度,所以可以避免出現白白損失原候選運動矢量預測值列表中的運動矢量預測值的狀況。通過實施本發明實施例,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質,提高編碼效率,進而提升使用者體驗。
參見圖5,本發明實施例提供了又一種確定運動矢量預測值的方法,該方法包括但不限於如下步驟:
步驟501:獲取MV精度。可參考圖4實施例步驟401的描述。
步驟502:根據MV精度建立AMVP候選運動矢量預測值列表。
可以利用空域、時域上運動矢量的相關性,編碼器和解碼器為當前圖像塊(CU/PU)建立候選預測MV列表。這樣,解碼器可僅通過碼流中的MVD與運動矢量預測值(預測MV)在該列表中的序號即可計算當前圖像塊(CU/PU)的MV。
具體建立過程可包括:
1、建立空域候選MV列表。具體實施例中,在當前預測單元(Prediction Unit,PU)的左側和上方分別產生一個候選MV預測值,作為空域候選MV列表。
2、建立時域候選MV列表。具體實施例中,利用當前PU在臨近已編碼圖像中對應位置的PU的運動資訊作為時域候選MV列表。
3、合併空域候選MV列表和時域候選MV列表。在合併過程中僅保留前2個候選MV預測值,不足2個補上MV(0,0),形成候選MV預測值列表。
4、在可能的實施例中,在形成候選MV預測值列表後,將候選MV預測值列表進行數值處理(例如進行舍入處理),使得列表中的候選MV預測值符合MV精度,從而形成最終的AMVP候選運動矢量預測值列表。
需要說明的是,本文中所描述的符合MV精度的意思為其精度和MV精度相一致、或者說具有該MV精度。
步驟503:根據MV精度生成DMVD運動矢量預測值。
在生成DMVD運動矢量預測值的過程中,利用AMVR精度(即所獲取的MV精度)作為所需要依據的精度,根據MV精度對DMVD技術生成運動矢量預測值的過程中的各個步驟分進行調整。具體的生成過程將在後述圖6-圖8實施例中進行詳細描述。
步驟504:將DMVD運動矢量預測值插入到AMVP候選運動矢量預測值列表。
本實施例得到的DMVD運動矢量預測值具有MV精度。在AMVP候選MV預測值列表建立過程的最後一步之後,驗證是否需要將DMVD運動矢量預測值插入到該AMVP候選MV預測值列表中。
在一可能的實施例中,如果DMVD運動矢量預測值如果與AMVP候選MV預測值列表第一位不同,會插入到AMVP候選MV預測值列表第一位,原AMVP候選MV預測值列表中第二位會被丟掉;如果相同,則不插入,此時AMVP候選MV預測值列表將不做改動。
在另一可能的實施例中,如果DMVD運動矢量預測值如果與AMVP候選MV預測值列表第二位不同,會插入到AMVP候選MV預測值列表第二位,原AMVP候選MV預測值列表中第一位會被丟掉;如果相同,則不插入,此時AMVP候選MV預測值列表將不做改動。
需要說明的是,本發明實施例中主要以本方法在JEM的應用形式進行舉例說明,並不代表本發明實施例所提方法僅適用於JEM。實際應用中,參考本發明實施例所提方法進行的其他改進均應屬於本發明的保護範圍。
實施本發明實施例,在生成DMVD運動矢量預測值的過程會按照所需的MV精度進行調整,保證了進行調整所獲得的搜索位置是符合MV精度的準確位置,避免出現對多餘的精度進行了運動搜索。並且,在生成AMVP候選MV預測值列表的過程會按照所需的MV精度進行調整,將DMVD運動矢量預測值插入AMVP候選MV預測值列表時,由於兩者都符合MV精度,所以可以避免出現白白損失原AMVP候選MV預測值列表中的MV預測值的狀況。通過實施本發明實施例,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質,提高編碼效率,進而提升使用者體驗。
下面詳細介紹本發明實施例提供的幾種生成DMVD運動矢量預測值的方法。
本發明實施例所提供的生成DMVD運動矢量預測值的方法中,解碼側提前獲取生成MV的過程所需要的精度,根據需要的精度對DMVD技術生成運動矢量預測值的過程中的各個步驟分進行調整。
首先參見圖6,圖6是本發明實施例提供的一種生成DMVD運動矢量預測值的方法,該方法包括但不限於如下步驟:
步驟601:獲取當前塊的MV精度。
在本發明實施例中,MV精度可為進行運動估計所需要的精度,也就是說,所述MV精度指示碼流中MVD的精度,也指示了生成的運動矢量預測值(MV預測值,或稱MVP)的精度,同樣指示了最終合成的MV的精度。
在一具體的實現中,在編碼側配置有精度選擇策略,在精度選擇策略覆蓋1/8像素精度、1/4像素精度、半像素精度、四像素精度等等全部精度,編碼側生成MVD的過程中,根據精度選擇策略確定MVD的精度,對整個CU在碼流中傳送一個精度指示資訊(第一資訊),該精度指示資訊用於指示MVD的精度(即MV精度);解碼側獲取碼流中的精度指示資訊,通過精度指示資訊獲取MV精度。根據需要使用的MV精度即MVD的精度,對解碼側運動矢量匯出技術生成運動矢量預測值的過程中的各個步驟分別進行調整。例如,採用自我調整運動矢量精度技術AMVR實現精度的可變。
在另一具體的實現中,在編碼側配置有精度選擇策略,在精度選擇策略預設1/8像素精度、1/4像素精度、半像素精度、四像素精度等等多個精度,編碼側根據精度選擇策略對所需要傳遞的視訊資料進行判斷,從所述多個精度中確定一個精度作為進行編碼的精度,在編碼後獲得MVD,在碼流中傳遞MVD,但不傳送精度指示資訊。解碼側同樣配置有精度選擇策略,在精度選擇策略預設1/8像素精度、1/4像素精度、半像素精度、四像素精度等等多個精度。解碼側可基於提前獲取並解碼的圖像(已解碼圖像)進行判斷,從所述多個精度中確定一個精度作為本次解碼的精度。由於編碼側和解碼側使用一致的精度選擇策略,故解碼側可確定的精度與編碼側所確定的精度一致。
步驟602:建立用於運動矢量搜索的起始點運動矢量列表。
具體的,起始點運動矢量列表可由HEVC的AMVP、merge模式候選MV、空域臨近塊MV、和DMVD技術的雙向匹配方式得到的運動資訊構成。起始點運動矢量列表中包括多個起始點運動矢量,每一個起始點運動矢量都指示一個用於在參考圖像中進行搜索的起始點。
步驟603:根據所述MV精度對起始點運動矢量列表進行舍入處理。
具體的實現中,可以在計算過程中將指定的MV精度轉換為精度移位操作值(offset),例如在MV精度的最高精度為1/4像素精度的情況下,整數精度對應的offset為2,四像素精度對應的offset為4。如果運動矢量(起始點運動矢量)為某個精度,那麼運動矢量中各個分量的值都不包含比當前精度更高的部分的數值,例如當MV精度的最高精度為1/4像素精度時,整數精度的MV中各個分量的值MVi應該均滿足:MVi = ((MVi>>2)<<2)。而四像素精度的MV中各個分量的值MVi應該均滿足:MVi = ((MVi>>4)<<4)。其中,移位運算子>>表示右移,移位運算子<<表示左移。
本發明實施例中,起始點運動矢量的舍入可採用四捨五入的方式,對於起始點運動矢量的每個方向的分量MVi單獨進行。具體的,先對該分量MVi的值加上AMVR模式指定的MV精度值一半大小的數值,再將分量的值右移去掉低於AMVR模式指定的MV精度值的部分,最後右移回原數量級得到MVi_new,MVi_new具體為:
MVi_new = (((MVi + ( 1<<(offset - 1))))>>offset)<<offset)
需要說明的是,本實施例中的舍入操作也可以在將運動矢量放入起始點列表前進行,即將運動矢量進行舍入處理後再放入到起始點列表。
還需要說明的是,本實施例中舍入方式並不限定是四捨五入的方式,還可以是其他的舍入方式。在根據MV精度對起始點運動矢量列表進行舍入處理之後,起始點運動矢量列表中的各個起始點運動矢量都符合該MV精度。
步驟604:通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量。
本發明實施例並不限定所使用的匹配失真演算法,例如,匹配失真演算法可以是範本匹配、雙邊匹配等等。在通過匹配失真演算法遍歷起始點運動矢量列表後,將匹配代價最小的起始點運動矢量作為最優起始點運動矢量。可以理解的,該最優起始點運動矢量符合MV精度。
步驟605:根據所述MV精度,從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得符合所述MV精度的最優運動矢量,將最優運動矢量作為DMVD運動矢量預測值。
本發明實施例並不限定進行搜索所利用到的搜索演算法,搜索演算法可以是全搜索演算法,也可以是快速搜索演算法。
具體的,可根據目標MV精度,使用範本匹配的方法,從最優起始點開始,在演算法指定的搜索範圍(搜索視窗)搜索得到最優運動矢量,作為DMVD運動矢量預測值。其中,所得到的最優運動矢量為搜索範圍內所有合法的運動矢量中範本匹配失真最小的運動矢量,最優運動矢量的精度符合MV精度。範本匹配的原理是:對於給定MV和參考圖像,可以得到當前編碼塊在參考圖像中的參考塊和位置。由當前圖像中的左邊和上邊的臨近塊構成當前編碼塊的範本,由參考幀中的參考塊的左邊和上邊的臨近塊構成參考塊的範本,通過計算兩個範本之間的失真值就可得到當前所給定的運動矢量的範本匹配失真。
具體實現中,可按照搜索演算法,選擇性的遍歷搜索範圍內的部分的運動矢量,計算各運動矢量的匹配失真,將匹配失真最小的運動矢量作為最優運動矢量。
本發明實施例中,搜索演算法在搜索範圍中計算匹配失真的運動矢量均符合MV精度,在搜索過程中,僅在MV精度允許的搜索位置上進行搜索,這些搜索位置的座標分量值為MV精度的整數倍。
具體實現中,舉例來說,在搜索過程中,會在搜索路徑上遇到不同的搜索位置,可以驗證當前搜索位置對應的運動矢量的精度是否為MV精度,若是,則在當前搜索位置搜索相應的運動矢量;若否,則跳過該不符合MV精度的搜索位置。比如,MV精度為整像素精度時,如果當前位置為整像素精度,則在當前搜索位置進行搜索,如果當前位置為1/4像素精度,則跳過當前搜索位置,然後進行下一個搜索位置的驗證。
又舉例來說,也可以在搜索過程中,將搜索演算法指定的搜索位置之間的最小間隔距離/偏移調整至MV精度,比如,MV精度為整像素精度時,搜索位置之間的間隔距離最小為整像素;MV精度為1/4像素精度時,搜索位置之間的間隔距離最小為1/4像素;MV精度為為四像素精度時,搜索位置之間的間隔距離最小為四像素等等。
具體實現中,假如搜索演算法為快速搜索演算法,那麼搜索過程通常是先在參考圖像中找到最優起始點,以最優起始點為中心點,分別計算中心點的運動矢量的匹配失真以及中心點周圍所有搜索樣式點的運動矢量的匹配失真,若中心點對應的匹配失真最小,則結束搜索,中心點的運動矢量即為最優運動矢量;若中心點對應的匹配失真不是最小,則將這些點中匹配失真最小的搜索樣式點作為新的中心點,重複上述搜索過程,直到得到最優運動矢量。本發明實施例中,搜索樣式點通常為一組圍繞中心點的偏移座標組,偏移座標組中的偏移座標值為MV精度的整數倍。
利用上述方式搜索出的運動矢量即為MV精度下的最優運動矢量,將其作為DMVD技術生成的DMVD運動矢量預測值,在後續的步驟中,就可將該DMVD運動矢量預測值插入到AMVP候選運動矢量預測值列表,進而完成相應的編解碼過程。
需要說明的是,在本申請發明人所進行的一種比對實驗中,編碼和解碼運算量和編碼品質的改變採用對於多個碼率點分別編碼解碼兩次,第一次實驗為不做技術改動(anchor),使用JEM基於DMVD的幀間預測模型和AMVR技術建立JEM的AMVP候選MV預測值列表的方法進行編解碼;第二次實驗按照本發明實施例進行技術改動(test)。編碼或解碼的anchor和test運行在同樣的平臺上,同時關閉並行,以保證可以有效對比時間。實驗過程分別統計碼率、PSNR、編碼時間和解碼時間,編碼運算量改變通過計算(test編碼時間/ anchor編碼時間)得到,解碼運算量改變通過計算(test解碼時間/ anchor解碼時間)得到,編碼品質改變通過計算anchor和test的碼率、峰值信噪比(peak signal to noise ratio,PSNR)的(BD率(BD-rate)得到。實驗結果表明,第二次實驗相較於第一次實驗,在聯合視訊探測小組(joint video exploration team,JVET)規定的視訊序列和碼率點上,亮度分量的BD-rate為-0.02%(即同等品質下節省了0.02%的碼率),第二次實驗的編碼時間為第一次實驗的96%(即節省了4%的運算量),第二次實驗的解碼時間為第一次實驗的98%(即節省了2%的運算量)。
實施本發明實施例,在生成DMVD運動矢量預測值過程中,根據MV精度調整起始點運動矢量列表,使得得到的最優起始點也符合了MV精度,從而調整了搜索的起始點的精度,此外還在搜索過程中根據MV精度設定搜索位置。實踐表明,通過實施本發明實施例,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質,提高編碼效率,進而提升使用者體驗。
參見圖7,圖7是本發明實施例提供的又一種生成DMVD運動矢量預測值的方法,該方法和圖6實施例所示方法的區別點主要在於:在求得最優起始點之後,再調整最優起始點以符合MV的精度。該方法包括但不限於如下步驟:
步驟701:獲取MV精度。可參考圖6實施例的步驟601的描述。
步驟702:建立用於運動矢量搜索的起始點運動矢量列表。可參考圖6實施例的步驟602的描述。
步驟703:通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量。
本發明實施例並不限定所使用的匹配失真演算法,例如,匹配失真演算法可以是範本匹配、雙邊匹配等等。在通過匹配失真演算法遍歷起始點運動矢量列表後,將匹配代價最小的起始點運動矢量作為最優起始點運動矢量。由於起始點運動矢量清單可能沒根據MV精度進行調整,所以,可以理解的,此時所得到的最優起始點運動矢量不一定符合MV精度。
步驟704:根據所述MV精度對最優起始點運動矢量進行舍入處理。
由於最優起始點運動矢量不一定符合MV精度,所以可以根據MV精度對最優起始點運動矢量進行數值處理(如舍入處理),以使得最優起始點運動矢量符合該MV精度。
本發明實施例中,最優起始點運動矢量的舍入處理可採用四捨五入的方式,對於最優起始點運動矢量的每個方向的分量MVi單獨進行。具體的,先對該分量MVi的值加上AMVR模式指定的MV精度值一半大小的數值,再將分量的值右移去掉低於AMVR模式指定的MV精度值的部分,最後右移回原數量級得到MVi_new,MVi_new具體為:
MVi_new = (((MVi + ( 1<<(offset - 1))))>>offset)<<offset),其中,移位運算子>>表示右移,移位運算子<<表示左移。
需要說明的是,本實施例中舍入方式並不限定是四捨五入的方式,還可以是其他的舍入方式。
步驟705:根據所述MV精度,從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得符合所述MV精度的最優運動矢量,將最優運動矢量作為DMVD運動矢量預測值。
需要說明的是,在本申請發明人所進行的一種比對實驗中,第一次實驗為不做技術改動,第二次實驗按照本發明實施例進行技術改動,實驗結果表明,第二次實驗相較於第一次實驗,在JVET規定的視訊序列和碼率點上,亮度分量的BD-rate為-0.01%(即同等品質下節省了0.01%的碼率),第二次實驗的編碼時間為第一次實驗的93%(即節省了7%的運算量),第二次實驗的解碼時間為第一次實驗的89%(即節省了11%的運算量)。
實施本發明實施例,在生成DMVD運動矢量預測值過程中,不根據MV精度調整起始點運動矢量列表,但會對所獲得的最優起始點運動矢量根據MV精度進行調整,從而調整了搜索的起始點的精度,此外還在搜索過程中根據MV精度設定搜索位置。實踐表明,通過實施本發明實施例,可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質,提高編碼效率,進而提升使用者體驗。
參見圖8,圖8是本發明實施例提供的又一種生成DMVD運動矢量預測值的方法,該方法和圖6實施例所示方法的區別點主要在於:在求得最優運動矢量之後,再調整最優運動矢量以符合MV的精度,該方法包括但不限於如下步驟:
步驟801:獲取MV精度。可參考圖6實施例的步驟601的描述。
步驟802:建立用於運動矢量搜索的起始點運動矢量列表。可參考圖6實施例的步驟602的描述。
步驟803:通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量。可參考圖7實施例的步驟703的描述。
步驟804:從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得最優運動矢量。
本發明實施例並不限定進行搜索所利用到的搜索演算法,搜索演算法可以是全搜索演算法,也可以是快速搜索演算法。類似的,可參考圖6實施例步驟605的描述,所不同的是,由於起始點運動矢量清單可能沒根據MV精度進行調整,最優起始點運動矢量也可能沒根據MV精度進行調整,所以,可以理解的,此時所得到的最優運動矢量不一定符合MV精度。
步驟805:根據MV精度對所述最優運動矢量進行舍入處理,得到符合MV精度的最優運動矢量,作為DMVD運動矢量預測值。
由於最優運動矢量不一定符合MV精度,所以可以根據MV精度對最優運動矢量進行數值處理(如舍入處理),以使得最優運動矢量符合該MV精度。
本發明實施例中,最優運動矢量的舍入處理可採用四捨五入的方式,對於最優運動矢量的每個方向的分量MVi單獨進行。具體的,先對該分量MVi的值加上AMVR模式指定的MV精度值一半大小的數值,再將分量的值右移去掉低於AMVR模式指定的MV精度值的部分,最後右移回原數量級得到MVi_new,MVi_new具體為:
MVi_new = (((MVi + ( 1<<(offset - 1))))>>offset)<<offset),其中,移位運算子>>表示右移,移位運算子<<表示左移。
需要說明的是,本實施例中舍入方式並不限定是四捨五入的方式,還可以是其他的舍入方式。
實施本發明實施例,在生成DMVD運動矢量預測值過程中,不根據MV精度調整起始點運動矢量清單,不根據MV精度調整最優起始點運動矢量,但會對所獲得的最優運動矢量根據MV精度進行調整。通過實施本發明實施例,也可以減小編碼和解碼運算量,減少傳輸碼率和編碼時間,提升編碼品質和編碼效率。
上述詳細闡述了本發明實施例提供的一些方法,下面描述了本發明實施例提供的一些裝置。
參見圖9,本發明實施例提供了一種用於確定運動矢量預測值的設備900,設備900可以是應用於編碼側,也可以是應用於解碼側。設備900包括處理器901、記憶體902,所述處理器901、記憶體902相連接(如通過匯流排相互連接),在可能的實施方式中,設備900還可包括收發器903,收發器903連接處理器901和記憶體902,用於接收/發送資料。
記憶體902包括但不限於是隨機儲存記憶體(random access memory, RAM)、唯讀記憶體(read-only memory, ROM)、可擦除可程式設計唯讀記憶體(erasable programmable read only memory, EPROM)、或可擕式唯讀記憶體(compact disc read-only memory, CD-ROM),該記憶體902用於儲存相關程式碼及視訊資料。
處理器901可以是一個或多個中央處理器(central processing unit, CPU),在處理器901是一個CPU的情況下,該CPU可以是單核CPU,也可以是多核CPU。
該處理器901用於讀取所記憶體902中儲存的程式碼,執行以下操作:
獲取待處理塊的運動矢量精度;
獲取所述待處理塊的至少一個第一預測運動矢量;
根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
需要說明的是,在具體的實施例中,處理器901可用於執行上述圖4-圖8實施例描述的各種方法,為了說明書的簡潔,這裡將不再贅述。
基於同樣的發明構思,本發明實施例提供了又一種用於確定運動矢量預測值的設備1000,設備1000包括:
第一獲取模組1001,用於獲取待處理塊的運動矢量精度;
第二獲取模組1002,用於獲取所述待處理塊的至少一個第一預測運動矢量;
確定模組1003,用於根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
需要說明的是,通過前述圖4-圖8實施例的描述,本領域技術人員可以知道設備1000所包含的各個模組的實現方法,所以為了說明書的簡潔,這裡將不再贅述。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及演算法步驟,能夠以電子硬體、或者電腦軟體和電子硬體的結合來實現。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請的範圍。
所屬領域的技術人員可以清楚地瞭解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
在上述實施例中,可以全部或部分地通過軟體、硬體、固件或者其任意組合來實現。當使用軟體實現時,可以全部或部分地以電腦程式產品的形式實現。所述電腦程式產品包括一個或多個電腦指令。在電腦上載入和執行所述電腦程式指令時,全部或部分地產生按照本發明實施例所述的流程或功能。所述電腦可以是通用電腦、專用電腦、電腦網路、或者其他可程式設計裝置。所述電腦指令可以儲存在電腦可讀儲存介質中,或者通過所述電腦可讀儲存介質進行傳輸。所述電腦指令可以從一個網站網站、電腦、伺服器或資料中心通過有線(例如同軸電纜、光纖、數位用戶線路(DSL))或無線(例如紅外、無線、微波等)方式向另一個網站網站、電腦、伺服器或資料中心進行傳輸。所述電腦可讀儲存介質可以是電腦能夠存取的任何可用介質或者是包含一個或多個可用介質集成的伺服器、資料中心等資料存放裝置。所述可用介質可以是磁性介質,(例如,軟碟、硬碟、磁帶)、光介質(例如,DVD)、或者半導體介質(例如固態硬碟solid state disk,SSD)等。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,該流程可以由電腦程式來指令相關的硬體完成,該程式可儲存於電腦可讀取儲存介質中,該程式在執行時,可包括如上述各方法實施例的流程。而前述的儲存介質包括:ROM或隨機儲存記憶體RAM、磁碟或者光碟等各種可儲存程式碼的介質。
10‧‧‧視訊編解碼系統
12‧‧‧源裝置
14‧‧‧目的地裝置
16‧‧‧信道
18‧‧‧視訊源
20‧‧‧視訊編碼器
22‧‧‧輸出介面
28‧‧‧輸入介面
30‧‧‧視訊解碼器、殼
32‧‧‧顯示裝置、顯示器
50‧‧‧電子設備、裝置
34‧‧‧小鍵盤
36‧‧‧麥克風
38‧‧‧耳機
40‧‧‧電池
42‧‧‧紅外線埠
46‧‧‧智慧卡
48‧‧‧讀卡器
52‧‧‧無線電介面電路
54‧‧‧編碼解碼器電路
56‧‧‧控制器
58‧‧‧記憶體
900、1000‧‧‧設備
901‧‧‧處理器
902‧‧‧記憶體
903‧‧‧收發器
1001‧‧‧第一獲取模組
1002‧‧‧第二獲取模組
1003‧‧‧確定模組
步驟401‧‧‧獲取運動矢量精度的步驟
步驟402‧‧‧獲取當前塊的至少一個第一預測運動矢量的步驟
步驟403‧‧‧根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定最優預測運動矢量,所述最優預測運動矢量具有所述運動矢量精度的步驟
步驟501‧‧‧獲取MV精度的步驟
步驟502‧‧‧根據MV精度建立AMVP候選運動矢量預測值列表的步驟
步驟503‧‧‧根據MV精度生成DMVD運動矢量預測值的步驟
步驟504‧‧‧將DMVD運動矢量預測值插入到AMVP候選運動矢量預測值列表的步驟
步驟601‧‧‧獲取MV精度的步驟
步驟602‧‧‧建立用於運動矢量搜索的起始點運動矢量列表的步驟
步驟603‧‧‧根據所述MV精度對起始點運動矢量列表進行舍入處理的步驟
步驟604‧‧‧通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量的步驟
步驟605‧‧‧根據所述MV精度,從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得符合所述MV精度的最優運動矢量,將最優運動矢量作為DMVD運動矢量預測值的步驟
步驟701‧‧‧獲取MV精度的步驟
步驟702‧‧‧建立用於運動矢量搜索的起始點運動矢量列表的步驟
步驟703‧‧‧通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量的步驟
步驟704‧‧‧根據所述MV精度對最優起始點運動矢量進行舍入處理的步驟
步驟705‧‧‧根據所述MV精度,從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得符合所述MV精度的最優運動矢量,將最優運動矢量作為DMVD運動矢量預測值的步驟
步驟801‧‧‧獲取MV精度的步驟
步驟802‧‧‧建立用於運動矢量搜索的起始點運動矢量列表的步驟
步驟803‧‧‧通過匹配失真演算法計算各個起始點運動矢量的匹配失真,獲得最優起始點運動矢量的步驟
步驟804‧‧‧從最優起始點運動矢量所指示的最優起始點開始進行搜索,獲得最優運動矢量的步驟
步驟805‧‧‧根據MV精度對所述最優運動矢量進行舍入處理,得到符合MV精度的最優運動矢量,作為DMVD運動矢量預測值的步驟
為了更清楚地說明本發明實施例或背景技術中的技術方案,下面將對本發明實施例或背景技術中所需要使用的附圖進行說明。 圖1是本發明實施例提供的一種視訊編解碼系統的示意性框圖; 圖2是本發明實施例提供的一種視訊編解碼裝置的示意性框圖; 圖3是本發明實施例提供的一種用於視訊編碼的裝置的結構示意圖; 圖4是本發明實施例提供的一種確定運動矢量預測值的方法的流程示意圖; 圖5是本發明實施例提供的又一種確定運動矢量預測值的方法的流程示意圖; 圖6是本發明實施例提供的一種生成DMVD運動矢量預測值的的流程示意圖; 圖7是本發明實施例提供的又一種生成DMVD運動矢量預測值的的流程示意圖; 圖8是本發明實施例提供的又一種生成DMVD運動矢量預測值的的流程示意圖; 圖9是本發明實施例提供的一種用於確定運動矢量預測值的設備的結構示意圖; 圖10是本發明實施例提供的又一種用於確定運動矢量預測值的設備的結構示意圖。

Claims (36)

  1. 一種確定運動矢量預測值的方法,其中,包括: 獲取待處理塊的運動矢量精度; 獲取所述待處理塊的至少一個第一預測運動矢量; 根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
  2. 如申請專利範圍第1項所述的方法,其中,所述根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度,包括: 根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度; 根據所述第二預測運動矢量,確定至少一個第三預測運動矢量; 根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量。
  3. 如申請專利範圍第2項所述的方法,其中,所述根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 對所述至少一個第一預測運動矢量進行數值處理,所述數值處理用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,處理後的所述至少一個第一預測運動矢量具有所述運動矢量精度; 以每一個所述處理後的至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值; 將所述代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
  4. 如申請專利範圍第2項所述的方法,其中,所述根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 以每一個所述至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值; 對所述代價值最小的第一預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第一預測運動矢量具有所述運動矢量精度; 將所述處理後的代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
  5. 如申請專利範圍第2項所述的方法,其中,所述根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定。
  6. 如申請專利範圍第5項所述的方法,其中,所述第三預測運動矢量包括第三預測運動矢量水準分量和第三預測運動矢量豎直分量,所述第二預測運動矢量包括第二預測運動矢量水準分量和第二預測運動矢量豎直分量; 所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定,包括: 所述第三預測運動矢量水準分量為所述第二預測運動矢量水準分量和第一預設偏移值之和; 所述第三預測運動矢量豎直分量為所述第二預測運動矢量豎直分量和第二預設偏移值之和。
  7. 如申請專利範圍第6項所述的方法,其中,包括:所述第一預設偏移值為所述運動矢量精度的數值的整數倍,且所述第二預設偏移值具有所述運動矢量精度的數值的整數倍。
  8. 如申請專利範圍第2項所述的方法,其中,所述根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量,包括: 以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第三預測運動矢量的代價值; 對所述代價值最小的第三預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第三預測運動矢量具有所述運動矢量精度; 將所述處理後的代價值最小的第三預測運動矢量作為所述目標預測運動矢量。
  9. 如申請專利範圍第8項所述的方法,其中,在所述以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊之前,還包括: 確定具有所述運動矢量精度的所述至少一個第三預測運動矢量; 對應的,所述以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,包括: 以每一個具有所述運動矢量精度的第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊。
  10. 如申請專利範圍第3項至第9項任一項所述的方法,其中,所述數值處理,包括:舍入處理rounding。
  11. 如申請專利範圍第1項至第10項任一項所述的方法,其中,在所述根據所述至少一個第一預測運動矢量確定目標預測運動矢量之後,還包括: 將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表,所述第一候選預測運動矢量列表中的候選預測運動矢量具有所述運動矢量精度,所述候選預測運動矢量包括和所述當前塊的相鄰圖像塊的運動矢量和所述當前塊在時域上對應位置塊的運動矢量。
  12. 如申請專利範圍第11項所述的方法,其中,所述候選預測運動矢量在所述第一候選預測矢量清單中按照預設順序排列,所述將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表,包括: 在所述目標預測運動矢量和所述第一候選預測運動矢量列表中排在所述順序第一位的候選預測運動矢量不同的情況下,從所述第一候選預測運動矢量列表中排除排在所述順序第二位元的候選預測運動矢量,且將所述目標預測運動矢量和所述順序第一位的候選預測運動矢量依次置於所述第一候選預測運動矢量列表的前兩位。
  13. 如申請專利範圍第1項至第12項任一項所述的方法,其中,包括:所述方法用於解碼所述當前塊的運動矢量。
  14. 如申請專利範圍第13項所述的方法,其中,所述獲取待處理塊的運動矢量精度,包括: 獲取碼流中的第一資訊,所述第一資訊用於表徵所述運動矢量精度。
  15. 如申請專利範圍第1項至第12項任一項所述的方法,其中,包括:所述方法用於編碼所述當前塊的運動矢量。
  16. 如申請專利範圍第13項至第15項任一項所述的方法,其中,所述獲取待處理塊的運動矢量精度,包括: 獲取預設的所述運動矢量精度。
  17. 一種用於確定運動矢量預測值的設備,其中,所述設備包括:記憶體,以及與所述記憶體耦合的處理器,所述記憶體和所述處理器連接;其中,所述記憶體用於儲存程式碼;所述處理器用於調用並運行儲存於記憶體中的程式碼,並執行以下步驟: 獲取待處理塊的運動矢量精度; 獲取所述待處理塊的至少一個第一預測運動矢量; 根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
  18. 如申請專利範圍第17項所述的設備,其中,所述處理器執行根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度,包括: 所述處理器執行根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度; 根據所述第二預測運動矢量,確定至少一個第三預測運動矢量; 根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量。
  19. 如申請專利範圍第18項所述的設備,其中,所述處理器執行根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 所述處理器執行對所述至少一個第一預測運動矢量進行數值處理,所述數值處理用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,處理後的所述至少一個第一預測運動矢量具有所述運動矢量精度; 以每一個所述處理後的至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值; 將所述代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
  20. 如申請專利範圍第18項所述的設備,其中,所述處理器執行根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 所述處理器執行以每一個所述至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值; 對所述代價值最小的第一預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第一預測運動矢量具有所述運動矢量精度; 將所述處理後的代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
  21. 如申請專利範圍第18項所述的設備,其中,根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定。
  22. 如申請專利範圍第21項所述的設備,其中,所述第三預測運動矢量包括第三預測運動矢量水準分量和第三預測運動矢量豎直分量,所述第二預測運動矢量包括第二預測運動矢量水準分量和第二預測運動矢量豎直分量; 所述第三預測運動矢量由對所述第二預測運動矢量進行預設的修正確定,包括: 所述第三預測運動矢量水準分量為所述第二預測運動矢量水準分量和第一預設偏移值之和; 所述第三預測運動矢量豎直分量為所述第二預測運動矢量豎直分量和第二預設偏移值之和。
  23. 如申請專利範圍第22項所述的設備,其中,包括:所述第一預設偏移值為所述運動矢量精度的數值的整數倍,且所述第二預設偏移值具有所述運動矢量精度的數值的整數倍。
  24. 如申請專利範圍第18項所述的設備,其中,所述處理器執行根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量,包括: 所述處理器執行以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第三預測運動矢量的代價值; 對所述代價值最小的第三預測運動矢量進行數值處理,所述數值處理用於使所述代價值最小的第三預測運動矢量具有所述運動矢量精度; 將所述處理後的代價值最小的第三預測運動矢量作為所述目標預測運動矢量。
  25. 如申請專利範圍第24項所述的設備,其中,在所述處理器執行以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊之前,還包括: 所述處理器執行確定具有所述運動矢量精度的所述至少一個第三預測運動矢量; 對應的,所述以每一個所述至少一個第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,包括: 以每一個具有所述運動矢量精度的第三預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊。
  26. 如申請專利範圍第19項至第25項任一項所述的設備,其中,所述數值處理,包括:舍入處理。
  27. 如申請專利範圍第17項至第26項任一項所述的設備,其中,在所述處理器執行根據所述至少一個第一預測運動矢量確定目標預測運動矢量之後,還包括: 所述處理器執行將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表,所述第一候選預測運動矢量列表中的候選預測運動矢量具有所述運動矢量精度,所述候選預測運動矢量包括和所述當前塊的相鄰圖像塊的運動矢量和所述當前塊在時域上對應位置塊的運動矢量。
  28. 如申請專利範圍第27項所述的設備,其中,所述候選預測運動矢量在所述第一候選預測矢量清單中按照預設順序排列,所述處理器執行將所述目標預測運動矢量加入到所述當前塊的第一候選運動矢量預測值列表,包括: 在所述目標預測運動矢量和所述第一候選預測運動矢量列表中排在所述順序第一位的候選預測運動矢量不同的情況下,所述處理器執行從所述第一候選預測運動矢量列表中排除排在所述順序第二位元的候選預測運動矢量,且將所述目標預測運動矢量和所述順序第一位的候選預測運動矢量依次置於所述第一候選預測運動矢量列表的前兩位。
  29. 如申請專利範圍第17項至第28項任一項所述的設備,其中,包括:所述設備用於解碼所述當前塊的運動矢量。
  30. 如申請專利範圍第29項所述的設備,其中,所述設備還包括收發器; 所述處理器執行獲取待處理塊的運動矢量精度,包括: 所述處理器執行通過所述收發器獲取碼流中的第一資訊,所述第一資訊用於表徵所述運動矢量精度。
  31. 如申請專利範圍第27項至第28項任一項所述的設備,其中,包括:所述設備用於編碼所述當前塊的運動矢量。
  32. 如申請專利範圍第29項或第31項所述的設備,其中,所述處理器執行獲取待處理塊的運動矢量精度,包括: 所述處理器執行獲取預設的所述運動矢量精度。
  33. 一種用於確定運動矢量預測值的設備,其中,所述設備包括: 第一獲取模組,用於獲取待處理塊的運動矢量精度; 第二獲取模組,用於獲取所述待處理塊的至少一個第一預測運動矢量; 確定模組,用於根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度。
  34. 如申請專利範圍第33項所述的設備,其中,所述確定模組用於根據所述運動矢量精度,以及根據所述至少一個第一預測運動矢量確定目標預測運動矢量,所述目標預測運動矢量具有所述運動矢量精度,包括: 所述確定模組用於根據所述運動矢量精度,從所述至少一個第一預測運動矢量中確定第二預測運動矢量,所述第二預測運動矢量具有所述運動矢量精度; 根據所述第二預測運動矢量,確定至少一個第三預測運動矢量; 根據所述運動矢量精度,從所述至少一個第三預測運動矢量中確定所述目標預測運動矢量。
  35. 如申請專利範圍第34項所述的設備,其中,所述確定模組用於根據所述第二預測運動矢量,確定至少一個第三預測運動矢量,包括: 所述確定模組用於對所述至少一個第一預測運動矢量進行數值處理,所述數值處理用於使所述至少一個第一預測運動矢量具有所述運動矢量精度,處理後的所述至少一個第一預測運動矢量具有所述運動矢量精度; 以每一個所述處理後的至少一個第一預測運動矢量為所述當前塊的範本的運動矢量,在所述當前塊的參考幀中通過運動補償確定所述範本對應的匹配圖像塊,所述範本為與所述當前塊具有預設位置關係的預設尺寸的圖像塊; 計算每一個所述範本和所述範本對應的匹配圖像塊的像素差異,所述像素差異用於表徵作為所述範本的運動矢量的所述第一預測運動矢量的代價值; 將所述代價值最小的第一預測運動矢量作為所述第二預測運動矢量。
  36. 一種電腦可讀儲存介質,其中,包括電腦指令,所述電腦指令被執行以實現申請專利範圍第1項至第16項任一項描述的方法。
TW107120848A 2017-06-30 2018-06-15 確定運動矢量預測值的方法及設備、電腦可讀儲存介質 TWI684356B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710525777.3 2017-06-30
CN201710525777.3A CN109218733B (zh) 2017-06-30 2017-06-30 一种确定预测运动矢量预测的方法以及相关设备
??201710525777.3 2017-06-30

Publications (2)

Publication Number Publication Date
TW201906413A true TW201906413A (zh) 2019-02-01
TWI684356B TWI684356B (zh) 2020-02-01

Family

ID=64740943

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107120848A TWI684356B (zh) 2017-06-30 2018-06-15 確定運動矢量預測值的方法及設備、電腦可讀儲存介質

Country Status (3)

Country Link
CN (1) CN109218733B (zh)
TW (1) TWI684356B (zh)
WO (1) WO2019001024A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3117479C (en) * 2018-11-08 2023-06-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for encoding/decoding image signal, and device for same
US11025948B2 (en) * 2019-02-28 2021-06-01 Tencent America LLC Method and apparatus for motion prediction in video coding
CN116208777A (zh) * 2019-02-28 2023-06-02 华为技术有限公司 编码器、解码器及相应的帧间预测方法
CN116600139A (zh) * 2019-03-11 2023-08-15 华为技术有限公司 视频图像解码方法、编码方法及装置
CN112511830A (zh) * 2019-03-11 2021-03-16 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN111247804B (zh) * 2019-03-12 2023-10-13 北京大学 图像处理的方法与装置
WO2020181542A1 (zh) * 2019-03-13 2020-09-17 北京大学 一种视频编码或解码方法、装置、设备及存储介质
CN111953997A (zh) 2019-05-15 2020-11-17 华为技术有限公司 候选运动矢量列表获取方法、装置及编解码器
US11190789B2 (en) * 2019-06-30 2021-11-30 Tencent America LLC Method and apparatus for video coding using inter-prediction mode signaling to dertermine motion vectors
US11218718B2 (en) * 2019-08-26 2022-01-04 Tencent America LLC Adaptive motion vector resolution signaling
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
JP5234368B2 (ja) * 2009-09-30 2013-07-10 ソニー株式会社 画像処理装置および方法
US20120201293A1 (en) * 2009-10-14 2012-08-09 Guo Liwei Methods and apparatus for adaptive coding of motion information
WO2011094871A1 (en) * 2010-02-05 2011-08-11 Sensio Technologies Inc. Method and apparatus of frame interpolation
CN102823251B (zh) * 2010-03-31 2015-08-12 Jvc建伍株式会社 动图像编码装置、动图像编码方法及动图像编码程序、以及动图像解码装置、动图像解码方法及动图像解码程序
CN106331703B (zh) * 2015-07-03 2020-09-08 华为技术有限公司 视频编码和解码方法、视频编码和解码装置

Also Published As

Publication number Publication date
CN109218733A (zh) 2019-01-15
CN109218733B (zh) 2022-03-29
TWI684356B (zh) 2020-02-01
WO2019001024A1 (zh) 2019-01-03

Similar Documents

Publication Publication Date Title
TWI684356B (zh) 確定運動矢量預測值的方法及設備、電腦可讀儲存介質
CN109479143B (zh) 一种帧间预测的图像编解码方法和装置
JP6881788B2 (ja) 映像符号化方法、映像復号方法、および端末
US20210235105A1 (en) Motion vector prediction method based on affine motion model and device
US11412210B2 (en) Inter prediction method and apparatus for video coding
US20200304801A1 (en) Inter prediction method and apparatus, and terminal device
AU2019240981B2 (en) Bidirectional inter-frame prediction method and device
EP3840386A1 (en) Method and apparatus for acquiring reference frame applied to bidirectional inter-frame prediction
CN109922340B (zh) 图像编解码方法、装置、系统及存储介质
US20240022748A1 (en) Picture Encoding and Decoding Method and Apparatus for Video Sequence
KR20210062055A (ko) 양방향 예측을 사용하는 비디오 인코딩 및 디코딩을 위한 방법 및 장치
KR20230145097A (ko) 공간 국소 조명 보상
CN109756739B (zh) 图像预测方法和装置
CN109756737B (zh) 图像预测方法和装置
WO2019233423A1 (zh) 获取运动矢量的方法和装置
JP7388610B2 (ja) 映像符号化方法、映像復号方法、および端末
JP6968228B2 (ja) インター予測を介する画像符号化および復号のための方法および装置
KR20220052991A (ko) 스위칭가능한 보간 필터들