視頻編解碼中的運動矢量細化的制作方法
視頻編解碼中的運動矢量細化
1.本技術是2020年3月11日遞交的中國專利申請第202080020813.0號的分案申請。
技術領域
2.本專利文檔涉及視頻編解碼技術、設備和系統。
背景技術:
3.目前,正在努力提高當前視頻編解碼器技術的性能,以提供更好的壓縮率或提供允許更低復雜度或并行實施的視頻編解碼和解碼方案。行業專家最近提出了幾種新的視頻編解碼工具,并且目前正在進行測試以用于確定它們的有效性。
技術實現要素:
4.描述了與數字視頻編解碼相關,并且具體地,與運動矢量的管理相關的設備、系統和方法。所描述的方法可以被應用于現有的視頻編解碼標準(例如,高效視頻編解碼(high efficiency video coding,hevc)或通用視頻編解碼)和未來的視頻編解碼標準或視頻編解碼器。
5.在一個代表性方面,所公開的技術可以用于執行一種可視媒體處理的方法。該方法包括:執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括用于細化在比特流表示中信令通知的運動信息的解碼器運動矢量細化(dmvr)步驟;以及在dmvr步驟期間,使用至少一個運動矢量作為用于該細化的起始值,其中,至少一個運動矢量等于添加到候選運動矢量集合中的候選運動矢量的偏移。
6.在另一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。該方法包括:執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括使用以下中的一個或多個:解碼器運動矢量細化(dmvr)步驟、雙向光流(bdof)步驟或組合幀內-幀間預測步驟,并且其中,dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存至少基于當前視頻塊的大小。
7.在又一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。該方法包括:執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括解碼器運動矢量細化(dmvr)步驟,該dmvr步驟用于細化在比特流表示中信令通知的原始運動信息,從而產生可用于去方塊步驟中的細化的運動信息;以及為當前視頻塊的至少一個子集塊計算細化的運動信息和原始運動信息的差。
8.在另一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。該方法包括:基于與視頻的第一塊相關聯的merge候選的一個或多個運動矢量(mv)和一個或多個偏移,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換推導要在該轉換期間被應用的解碼器側運動矢量細化(dmvr)過程中的初始搜索點;以及基于初始搜索點來執行該轉換。
9.在另一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。
該方法包括:基于預定規則,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換確定解碼器運動矢量細化(dmvr)過程、雙向光流(bdof)過程和組合幀內-幀間預測過程中的至少一個被禁用;以及基于該確定來執行該轉換。
10.在另一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。該方法包括:為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換推導與第一塊相關聯的運動矢量(mv),該mv通過應用解碼器側運動矢量細化(dmvr)過程進行細化;在去方塊過程中通過使用細化的mv來執行該轉換。
11.在另一個代表性方面,所公開的技術可以用于執行另一種可視媒體處理的方法。該方法包括:為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換計算與第一塊的每個基本塊相關聯的、細化的運動矢量(mv)(rmv)和非細化的mv(nmv)之間的mv差(dmv),rmv是通過應用解碼器側運動矢量細化(dmvr)過程而細化的運動矢量,nmv是未通過dmvr過程細化的運動矢量;以及通過使用計算的mv差來執行該轉換。
12.此外,在代表性方面,公開了一種視頻系統中的裝置,包括處理器和其上具有指令的非暫時性存儲器。指令在由處理器執行時使處理器實施所公開的方法中的任何一種或多種。
13.此外,公開了一種存儲在非暫時性計算機可讀介質上的計算機程序產品,該計算機程序產品包括用于執行所公開的方法中的任何一種或多種的程序代碼。
14.在附圖、說明書和權利要求書中更詳細地描述了所公開的技術的以上以及其它方面和特征。
附圖說明
15.圖1示出了構建merge候選列表的示例。
16.圖2示出了空域候選的位置的示例。
17.圖3示出了對其進行空域merge候選的冗余檢查的候選對的示例。
18.圖4a和圖4b示出了基于當前塊的尺寸和形狀的第二預測單元(prediction unit,pu)的位置的示例。
19.圖5示出了用于時域merge候選的運動矢量縮放的示例。
20.圖6示出了時域merge候選的候選位置的示例。
21.圖7示出了生成組合的雙向預測merge候選的示例。
22.圖8示出了構建運動矢量預測候選的示例。
23.圖9示出了用于空域運動矢量候選的運動矢量縮放的示例。
24.圖10示出了用于推導局部照明補償參數鄰近樣點的示例。
25.圖11a和圖11b分別示出了與4參數仿射模型和6參數仿射模型有關的圖示。
26.圖12示出了每個子塊的仿射運動矢量場的示例。
27.圖13a和圖13b分別示出了4參數仿射模型和6參數仿射模型的示例。
28.圖14示出了用于繼承的仿射候選的仿射幀間模式的運動矢量預測的示例。
29.圖15示出了用于構建的仿射候選的仿射幀間模式的運動矢量預測的示例。
30.圖16a和圖16b示出了與仿射merge模式有關的圖示。
31.圖17示出了仿射merge模式的候選位置的示例。
32.圖18示出了具有運動矢量差的merge(mmvd)模式搜索過程的示例。
33.圖19示出了mmvd搜索點的示例。
34.圖20示出了jem7中的解碼器側運動視頻細化(dmvr)的示例。
35.圖21示出了與dmvr有關的運動矢量差(mvd)的示例。
36.圖22示出了說明對運動矢量的檢查的示例。
37.圖23是用于實施在本文檔中描述的可視媒體解碼或可視媒體編碼技術的硬件平臺的示例的框圖。
38.圖24示出了用于視頻編解碼的示例方法的流程圖。
39.圖25示出了用于視頻編解碼的示例方法的流程圖。
40.圖26示出了用于視頻編解碼的示例方法的流程圖。
41.圖27示出了用于視頻編解碼的示例方法的流程圖。
42.圖28示出了用于視頻編解碼的示例方法的流程圖。
具體實施方式
43.1.hevc/h.265中的視頻編解碼
44.視頻編解碼標準主要是通過眾所周知的itu-t和iso/iec標準的發展而演變的。itu-t產生了h.261和h.263,iso/iec產生了mpeg-1和mpeg-4visual,并且這兩個組織聯合產生了h.262/mpeg-2視頻和264/mpeg-4高級視頻編解碼(advanced video coding,avc)標準和h.265/hevc標準。自h.262以來,視頻編解碼標準基于混合視頻編解碼結構,其中利用了時域預測加變換編解碼。為了探索hevc以外的未來的視頻編解碼技術,vceg和mpeg于2015年聯合成立了聯合視頻探索小組(joint video exploration team,jvet)。此后,jvet采用了許多新方法,并將其放入到命名為聯合探索模型(joint exploration model,jem)的參考軟件中。2018年4月,建立了vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之間的聯合視頻專家小組(joint video expert team,jvet)以致力于vvc標準,目標是與hevc相比的50%比特率降低。
45.2.1.hevc/h.265中的幀間預測
46.每個幀間預測pu具有一個或兩個參考圖片列表的運動參數。運動參數包括運動矢量和參考圖片索引。對兩個參考圖片列表之一的使用也可以使用inter_pred_idc進行信令通知。運動矢量可以被顯示地編解碼為相對于預測值的增量。
47.當以跳過模式對cu進行編解碼時,一個pu與cu相關聯,并且沒有顯著的殘差系數,沒有編解碼的運動矢量增量或參考圖片索引。指定了merge模式,由此從包括空域和時域候選的鄰近pu獲得當前pu的運動參數。merge模式可以被應用于任何幀間預測pu,而不僅是針對跳過模式。merge模式的替代方案是運動參數的顯式傳輸,其中,運動矢量(更確切地說,與運動矢量預測值相比的運動矢量差(motion vector difference,mvd))、每個參考圖片列表的對應參考圖片索引和參考圖片列表使用按每pu被顯式地信令通知。這樣的模式在本公開中被命名為高級運動矢量預測(advanced motion vector prediction,amvp)。
48.當信令指示要使用兩個參考圖片列表之一時,從一個樣點塊產生pu。這被稱為“單向預測”。單向預測適用于p條帶和b條帶兩者。
49.當信令指示要使用兩個參考圖片列表時,從兩個樣點塊產生pu。這被稱為“雙向預
測”。雙向預測僅適用于b條帶。
50.以下文本提供了關于在hevc中指定的幀間預測模式的細節。描述將以merge模式開始。
51.2.1.1.參考圖片列表
52.在hevc中,術語幀間預測用于表示從除當前解碼的圖片之外的參考圖片的數據元素(例如,樣點值或運動矢量)推導的預測。如在h.264/avc中,可以從多個參考圖片預測圖片。用于幀間預測的參考圖片被組織在一個或多個參考圖片列表中。參考索引標識列表中的哪個參考圖片應該用于創建預測信號。
53.單個參考圖片列表(列表0)用于p條帶,并且兩個參考圖片列表(列表0和列表1)用于b條帶。應該注意的是,列表0/1中包括的參考圖片在捕捉/顯示順序方面可以根據過去和將來的圖片。
54.2.1.2.merge模式
55.2.1.2.1.merge模式的候選的推導
56.當使用merge模式預測pu時,從比特流中解析指向merge候選列表中的條目的索引,并將其用于檢索運動信息。該列表的構建在hevc標準中被指定,并且可以根據以下步驟序列進行總結:
57.·
步驟1:初始候選推導
58.ο步驟1.1:空域候選推導
59.ο步驟1.2:空域候選的冗余檢查
60.ο步驟1.3:時域候選推導
61.·
步驟2:附加候選插入
62.ο步驟2.1:創建雙向預測候選
63.ο步驟2.2:插入零運動候選
64.在圖1中也示意性描繪了這些步驟。對于空域merge候選推導,從位于五個不同位置的候選當中選擇最多四個merge候選。對于時域merge候選推導,在兩個候選當中選擇最多一個merge候選。由于在解碼器處假設每個pu的候選數量是恒定的,所以在從步驟1獲得的候選數量沒有達到在條帶頭中信令通知的merge候選的最大數量(maxnummergecand)時生成附加候選。由于候選數量是恒定的,所以最佳merge候選的索引使用截斷一元二值化(truncated unary,tu)進行編碼。如果cu的尺寸等于8,則當前cu的所有pu共享單個merge候選列表,這與2n
×
2n預測單元的merge候選列表相同。
65.在下文中,詳細描述了與前述步驟相關聯的操作。
66.2.1.2.2.空域候選推導
67.在空域merge候選的推導中,從位于圖2中描繪的位置的候選當中選擇最多四個merge候選。推導的順序是a1、b1、b0、a0和b2。僅當位置a1、b1、b0、a0的任一pu不可用(例如,因為它屬于另一條帶或片)或是幀內編解碼的時,才考慮位置b2。在位置a1處的候選被添加之后,對剩余候選的添加進行冗余檢查,該冗余檢查確保具有相同運動信息的候選被排除在列表之外,從而提高編解碼效率。為了降低計算復雜度,在提到的冗余檢查中不考慮所有可能的候選對。相反,僅考慮在圖3中用箭頭鏈接的對,并且僅當用于冗余檢查的候選沒有相同的運動信息時,才向列表添加對應候選。重復運動信息的另一源是與不同于2n
×
2n的
分區相關聯的“第二pu”。作為示例,圖4描繪了n
×
2n和2n
×
n的情況的第二pu。當當前pu被分割為n
×
2n時,位置a1處的候選不被考慮用于列表構建。事實上,通過添加該候選將導致兩個預測單元具有相同的運動信息,這對于在編解碼單元中僅具有一個pu是冗余的。類似地,當當前pu被分割為2n
×
n時,不考慮位置b1。
68.2.1.2.3.時域候選推導
69.在該步驟中,只有一個候選被添加到列表中。具體地,在該時域merge候選的推導中,基于屬于與給定參考圖片列表內的當前圖片具有最小poc差的圖片的并置pu來推導縮放的運動矢量。在條帶頭中顯示地信令通知將用于并置pu的推導的參考圖片列表。如圖5中的虛線所示獲得時域merge候選的縮放運動矢量,該運動矢量是使用poc距離tb和td從并置pu的運動矢量縮放的,其中tb被定義為當前圖片的參考圖片和當前圖片之間的poc差,td被定義為并置圖片的參考圖片和并置圖片之間的poc差。時域merge候選的參考圖片索引被設置為零。在hevc規范中描述了縮放過程的實際實現。對于b條帶,獲得兩個運動矢量,一個用于參考圖片列表0,另一個用于參考圖片列表1,并將其組合以形成雙向預測merge候選。
70.如圖6所描繪的,在屬于參考幀的并置pu(y)中,在候選c0和c1之間選擇時域候選的位置。如果位置c0處的pu不可用、是幀內編解碼的或在當前編解碼樹單元(ctu,也稱為lcu,最大編解碼單元)行之外,則使用位置c1。否則,在時域merge候選的推導中使用位置c0。
71.2.1.2.4.附加候選插入
72.除了空時merge候選之外,還有兩種附加類型的merge候選:組合的雙向預測merge候選和零merge候選。組合的雙向預測merge候選通過利用空時merge候選而生成。組合的雙向預測merge候選僅用于b條帶。組合的雙向預測候選通過將初始候選的第一參考圖片列表運動參數與另一個的第二參考圖片列表運動參數進行組合而生成。如果這兩個元組提供不同的運動假設,它們將形成新的雙向預測候選。作為示例,圖7描繪了原始列表(在左側)中的具有mvl0和refidxl0或mvl1和refidxl1的兩個候選用于創建添加到最終列表(在右側)的組合的雙向預測merge候選的情況。有被考慮以生成這些附加merge候選的關于組合的許多規則。
73.零運動候選被插入以填充merge候選列表中的剩余條目,并因此達到maxnummergecand容量。這些候選具有零空域位移和參考圖片索引,該參考圖片索引從零開始,并且每當新的零運動候選被添加到該列表時就增加。最后,不對這些候選執行冗余檢查。
74.2.1.3.amvp
75.amvp利用運動矢量與鄰近pu的空時相關性,其用于運動參數的顯式傳輸。對于每個參考圖片列表,通過首先檢查左側、上側時域鄰近pu位置的可用性、移除冗余候選、以及添加零矢量以使候選列表為恒定長度,構建運動矢量候選列表。然后,編碼器可以從候選列表選擇最佳預測值,并發送指示所選擇的候選的對應索引。類似于merge索引信令,最佳運動矢量候選的索引使用截斷一元編碼。在這種情況下,要編碼的最大值是2(參見圖8)。在以下章節中,提供了關于運動矢量預測候選的推導過程的細節。
76.2.1.3.1.amvp候選的推導
77.圖8總結了運動矢量預測候選的推導過程。
78.在運動矢量預測中,考慮兩種類型的運動矢量候選:空域運動矢量候選和時域運
動矢量候選。對于空域運動矢量候選推導,基于位于如圖2所描繪的五個不同位置的每個pu的運動矢量來最終推導兩個運動矢量候選。
79.對于時域運動矢量候選推導,從兩個候選選擇一個運動矢量候選,這兩個候選是基于兩個不同的并置位置而推導的。在生成第一個空時候選列表之后,移除列表中的重復運動矢量候選。如果潛在候選的數量大于2,則從相關聯的參考圖片列表移除列表內參考圖片索引大于1的運動矢量候選。如果空時運動矢量候選的數量小于兩個,則將附加的零運動矢量候選添加到列表中。2.1.3.2.空域運動矢量候選
80.在空域運動矢量候選的推導中,在五個潛在候選當中考慮最多兩個候選,這五個潛在候選是從位于如圖2所描繪的位置的pu推導的,這些位置與運動merge的位置相同。當前pu左側的推導順序被定義為a0、a1和縮放的a0、縮放的a1。當前pu的上側的推導順序被定義為b0、b1、b2、縮放的b0、縮放的b1、縮放的b2。因此,對于每一側,有四種情況可以用作運動矢量候選,其中兩種情況不需要使用空域縮放,兩種情況使用空域縮放。這四種不同的情況總結如下:
81.·
無空域縮放
82.–
(1)相同的參考圖片列表和相同的參考圖片索引(相同的poc)
83.–
(2)不同的參考圖片列表但相同的參考圖片(相同的poc)
84.·
空域縮放
85.–
(3)相同的參考圖片列表但不同的參考圖片(不同的poc)
86.–
(4)不同的參考圖片列表和不同的參考圖片(不同的poc)
87.首先檢查無空域縮放情況,隨后檢查空域縮放。不管參考圖片列表如何,當鄰近pu的參考圖片和當前pu的參考圖片之間的poc不同時,考慮空域縮放。如果左側候選的所有pu都不可用或者是幀內編解碼的,則允許對上側運動矢量進行縮放,以幫助左側和上側mv候選的并行推導。否則,不允許對上側運動矢量進行空域縮放。
88.如圖9所描繪的,在空域縮放過程中,以與時域縮放類似的方式縮放鄰近pu的運動矢量。主要差別在于,參考圖片列表和當前pu的索引作為輸入被給出;實際縮放過程與時域縮放的縮放過程相同。
89.2.1.3.3.時域運動矢量候選
90.除了參考圖片索引推導之外,用于推導時域merge候選的所有過程與用于推導空域運動矢量候選的過程相同(參見圖6)。參考圖片索引被信令通知給解碼器。
91.2.2.jem中的局部照明補償
92.局部照明補償(lic)基于照明變化的線性模型,使用縮放因子a和偏移b。并且其對每個幀間模式編解碼的編解碼單元(cu)而自適應地啟用或禁用。
93.當lic應用于cu時,采用最小二乘法通過使用當前cu的鄰近樣點及其對應的參考樣點來推導參數a和b。更具體地,如圖10所示,使用參考圖片中的cu的二次采樣的(2:1二次采樣)鄰近樣點和對應樣點(由當前cu或子cu的運動信息標識)。
94.2.2.1預測塊的推導
95.分別對每個預測方向推導和應用lic參數。對于每個預測方向,利用解碼的運動信息生成第一預測塊,然后經由應用lic模型獲得臨時預測塊。之后,利用兩個臨時預測塊來推導最終預測塊。
96.當以merge模式對cu進行編解碼時,以類似于merge模式中的運動信息復制的方式,從鄰近塊復制lic標志;否則,lic標志被信令通知給cu以指示lic是否適用。
97.當對圖片啟用lic時,需要附加的cu級別rd檢查來確定lic是否適用于cu。當對cu啟用lic時,絕對差的均值移除和(mean-removed sum of absolute difference,mr-sad)和絕對哈達瑪變換差的均值移除和(mean-removed sum of absolute hadamard-transformed difference,mr-satd),而不是sad和satd,被分別用于整數像素運動搜索和分數像素運動搜索。
98.為了降低編碼復雜度,在jem應用以下編碼方案:
99.·
當當前圖片與其參考圖片之間沒有明顯的照明變化時,對整個圖片禁用lic。為了標識這種情況,在編碼器處計算當前圖片和當前圖片的每個參考圖片的直方圖。如果當前圖片和當前圖片的每個參考圖片之間的直方圖差小于給定閾值,則對當前圖片禁用lic;否則,對當前圖片啟用lic。
100.2.3.vvc中的幀間預測方法
101.有幾種用于幀間預測改進的新編解碼工具,諸如用于信令通知mvd的自適應運動矢量差分辨率(adaptive motion vector difference resolution,amvr)、仿射預測模式、三角預測模式(triangular prediction mode,tpm)、高級tmvp(atmvp,也稱為sbtmvp)、廣義雙向預測(generalized bi-prediction,gbi)、雙向光流(bio)(也稱為雙向光流(bdof))。
102.2.3.1.vvc中的編解碼塊結構
103.在vvc中,采用四叉樹/二叉樹/多叉樹(qt/bt/tt)結構將圖片分成正方形或矩形塊。除了qt/bt/tt之外,獨立樹(也稱為雙重編解碼樹)在vvc中也用于i條帶/片。對于獨立樹,編解碼塊結構是針對亮度和度分量而分開信令通知的。
104.2.3.2.自適應運動矢量差分辨率
105.在hevc中,當條帶頭中use_integer_mv_flag等于0時,以四分之一亮度樣點為單位信令通知(pu的運動矢量和預測運動矢量之間的)運動矢量差(mvd)。在vvc中,引入了局部自適應運動矢量分辨率(amvr)。在vvc中,mvd可以以四分之一亮度樣點、整數亮度樣點或四亮度樣點(即,1/4像素、1像素、4像素)為單位進行編解碼。mvd分辨率在編解碼單元(cu)級別被控制,并且對于具有至少一個非零mvd分量的每個cu,有條件地信令通知mvd分辨率標志。
106.對于具有至少一個非零mvd分量的cu,信令通知第一標志以指示cu中是否使用四分之一亮度樣點mv精度。當第一標志(等于1)指示沒有使用四分之一亮度樣點mv精度時,另一標志被信令通知以指示是使用整數亮度樣點mv精度還是四亮度樣點mv精度。
107.當cu的第一mvd分辨率標志為零,或未針對cu進行編解碼(意味著cu中的所有mvd都為零)時,cu使用四分之一亮度樣點mv分辨率。當cu使用整數亮度樣點mv精度或四亮度樣點mv精度時,cu的amvp候選列表中的mvp被取整到對應的精度。
108.2.3.3.仿射運動補償預測
109.在hevc中,只有平移運動模型被應用于運動補償預測(motion compensation prediction,mcp)。雖然在真實世界中,有許多種類的運動,例如放大/縮小、旋轉、透視運動和其它不規則運動。在vvc中,使用4參數仿射模型和6參數仿射模型來應用簡化的仿射變換
運動補償預測。如圖11所示,塊的仿射運動場由4參數仿射模型的兩個控制點運動矢量(cpmv)和6參數仿射模型的3個cpmv描述。
110.塊的運動矢量場(mvf)分別用等式(1)中的4參數仿射模型(其中4參數被定義為變量a、b、e和f)和等式(2)中的6參數仿射模型(其中4參數被定義為變量a、b、c、d、e和f)通過以下等式進行描述:
[0111][0112][0113]
其中(mv
h0
,mv
h0
)是左上角控制點的運動矢量,并且(mv
h1
,mv
h1
)是右上角控制點的運動矢量,并且(mv
h2
,mv
h2
)是左下角控制點的運動矢量,所有三個運動矢量被稱為控制點運動矢量(cpmv),(x,y)表示代表點相對于當前塊內的左上方樣點的坐標,并且(mvh(x,y),mvv(x,y))是為位于(x,y)的樣點推導的運動矢量。cp運動矢量可以被信令通知(如在仿射amvp模式下)或即時推導(如在仿射merge模式下)。w和h是當前塊的寬度和高度。在實踐中,除法是通過右移和取整運算實施的。在vtm中,代表點被定義為子塊的中心位置,例如,當子塊的左上角相對于當前塊內的左上方樣點的坐標為(xs,ys)時,代表點的坐標被定義為(xs+2,ys+2)。對于每個子塊(即,在vtm中為4
×
4),利用代表點來推導整個子塊的運動矢量。
[0114]
為了進一步簡化運動補償預測,應用了基于子塊的仿射變換預測。為了推導每個m
×
n(在當前vvc中,m和n都被設置為4)子塊的運動矢量,每個子塊的中心樣點的運動矢量(如圖12所示)可以根據等式(1)和(2)進行計算,并被取整到1/16分數精度。然后,可以應用1/16像素的運動補償插值濾波器來生成具有推導的運動矢量的每個子塊的預測。仿射模式引入了1/16像素的插值濾波器。
[0115]
在mcp之后,每個子塊的高精度運動矢量被取整并保存為與標準運動矢量相同的精度。
[0116]
2.3.3.1.仿射預測的信令通知
[0117]
類似于平移運動模型,由于仿射預測,也有兩種模式用于信令通知邊信息。它們是affine_inter和affine_merge模式。
[0118]
2.3.3.2.af_inter模式
[0119]
對于寬度和高度都大于8的cu,可以應用af_inter模式。在比特流中信令通知cu級別的仿射標志,以指示是否使用af_inter模式。
[0120]
在這種模式下,對于每個參考圖片列表(列表0或列表1),仿射amvp候選列表以下列順序用三種類型的仿射運動預測值進行構建,其中每個候選包括當前塊的估計的cpmv。在編碼器側發現的最佳cpmv(諸如圖15中的mv
0 mv
1 mv2)和估計的cpmv的差被信令通知。此外,進一步信令通知從其推導出估計的cpmv的仿射amvp候選的索引。
[0121]
1)繼承的仿射運動預測值
[0122]
檢查順序與hevc amvp列表中的空域mvp的檢查順序類似。第一,從{a1,a0}中被仿射編解碼并且具有與當前塊中相同的參考圖片的第一塊推導左側的繼承的仿射運動預測值。第二,從{b1,b0,b2}中被仿射編解碼并且具有與當前塊中相同的參考圖片的第一塊推導上側的繼承的仿射運動預測值。圖14中描繪了這五個塊a1、a0、b1、b0、b2。
[0123]
一旦發現鄰近塊以仿射模式而編解碼,覆蓋鄰近塊的編解碼單元的cpmv用于推導當前塊的cpmv的預測值。例如,如果a1以非仿射模式而編解碼,而a0以4參數仿射模式而編解碼,則左側的繼承的仿射mv預測值將從a0推導。在這種情況下,覆蓋a0的cu的cpmv(如在圖16b中由表示的左上方cpmv和由表示的右上方cpmv)用于推導當前塊的估計的cpmv,由表示當前塊的左上方(坐標為(x0,y0))、右上方(坐標為(x1,y1))和右下方位置(坐標為(x2,y2))。
[0124]
2)構建的仿射運動預測值
[0125]
如圖15所示,構建的仿射運動預測值包含從具有相同參考圖片的鄰近幀間編解碼塊推導的控制點運動矢量(control-point motion vector,cpmv)。如果當前仿射運動模型是4參數仿射,則cpmv的數量是2,否則如果當前仿射運動模型是6參數仿射,則cpmv的數量是3。左上方cpmv由組{a,b,c}中被幀間編解碼并且具有與當前塊中相同的參考圖片的第一塊處的mv推導。右上方cpmv由組{d,e}中被幀間編解碼并且具有與當前塊中相同的參考圖片的第一塊處的mv推導。左下方cpmv由組{f,g}中被幀間編解碼并且具有與當前塊中相同的參考圖片的第一塊處的mv推導。
[0126]
–
如果當前仿射運動模型是4參數仿射,則僅當和兩者都建立時,才將構建的仿射運動預測值插入到候選列表中,即,和被用作當前塊的左上方(坐標為(x0,y0))、右上方(坐標為(x1,y1))位置的估計的cpmv。
[0127]
–
如果當前仿射運動模型是6參數仿射,則僅當和都建立時,才將構建的仿射運動預測值插入到候選列表中,即,和被用作當前塊的左上方(坐標為(x0,y0))、右上方(坐標為(x1,y1))和右下方(坐標為(x2,y2))位置的估計的cpmv。
[0128]
當將構建的仿射運動預測值插入到候選列表中時,不應用修剪過程。
[0129]
3)正常amvp運動預測值
[0130]
應用以下情況,直到仿射運動預測值的數量達到最大值。
[0131]
1)如果可用,通過將所有cpmv設置為等于來推導仿射運動預測值。
[0132]
2)如果可用,通過將所有cpmv設置為等于來推導仿射運動預測值。
[0133]
3)如果可用,通過將所有cpmv設置為等于來推導仿射運動預測值。
[0134]
4)如果可用,通過將所有cpmv設置為等于hevc tmvp來推導仿射運動預測值。
[0135]
5)通過將所有cpmv設置為零mv來推導仿射運動預測值。
[0136]
請注意,已經在構建的仿射運動預測值中推導。
[0137]
在af_inter模式下,當使用4/6參數仿射模式時,使用2/3個控制點,因此需要為這些控制點編解碼2/3mvd,如圖13所示。提出如下推導mv,即,從mvd0預測mvd1和mvd2。
[0138][0139][0140][0141]
其中,mvdi和mv1分別是左上方像素(i=0)、右上方像素(i=1)或左下方像素(i=2)的預測運動矢量、運動矢量差和運動矢量,如圖13b所示。請注意,兩個運動矢量(例如,mva(xa,ya)和mvb(xb,yb))的相加等于兩個分量的分開求和,即,newmv=mva+mvb,并且newmv的兩個分量被分別設置為(xa+xb)和(ya+yb)。
[0142]
2.3.3.3.af_merge模式
[0143]
當cu被應用于af_merge模式時,它從有效鄰近重構塊得到以仿射模式編解碼的第一塊。并且候選塊的選擇順序是從左側、上側、右上側、左下方到左上側,如圖16a所示(由a、b、c、d、e按順序表示)。例如,如果鄰近左下方塊如圖16b中的a0所表示的在仿射模式下被編解碼,則獲取包含塊a的鄰近cu/pu的左上角、右上角和左下角的控制點(cp)運動矢量mv
0n
、mv
1n
和mv
2n
。并且基于mv
0n
、mv
1n
和mv
2n
計算當前cu/pu上的左上角/右上方/左下方的運動矢量mv
0c
、mv
1c
和mv
2c
(僅用于6參數仿射模型)。應當注意,在當前vtm中,位于左上角的子塊(例如,vtm中的4
×
4塊)存儲mv0,如果當前塊是仿射編解碼的,則位于右上角的子塊存儲mv1。如果當前塊以6參數仿射模型而編解碼,則位于左下角的子塊存儲mv2;否則(用4參數仿射模型),lb存儲mv2’。其它子模塊存儲用于mc的mv。
[0144]
在根據等式(1)和(2)中的簡化的仿射運動模型推導當前cu的cpmv mv
0c
、mv
1c
和mv
2c
之后,生成當前cu的mvf。為了標識當前cu是否用af_merge模式編解碼,當存在至少一個鄰近塊以仿射模式編解碼時,在比特流中信令通知仿射標志。
[0145]
仿射merge候選列表用以下步驟構建:
[0146]
1)插入繼承的仿射候選
[0147]
繼承的仿射候選是指該候選是從其有效鄰近仿射編解碼塊的仿射運動模型推導的。從鄰近塊的仿射運動模型中推導最大兩個繼承的仿射候選,并將其插入到候選列表中。對于左側預測值,掃描順序為{a0,a1};對于上側預測值,掃描順序為{b0,b1,b2}。
[0148]
2)插入構建的仿射候選
[0149]
如果仿射merge候選列表中的候選的數量少于maxnumaffinecand(例如,5),則構建的仿射候選被插入到候選列表中。構建的仿射候選是指通過組合每個控制點的鄰近運動信息來構建候選。
[0150]
a)控制點的運動信息首先從圖17所示的指定空域鄰居和時域鄰居進行推導。cpk(k=1,2,3,4)表示第k個控制點。a0、a1、a2、b0、b1、b2和b3是用于預測cpk(k=1,2,3)的空域位置;t是預測cp4的時域位置。
[0151]
cp1、cp2、cp3和cp4的坐標分別是(0,0)、(w,0)、(h,0)和(w,h),其中w和h是當前塊的寬度和高度。
[0152]
每個控制點的運動信息根據以下優先級順序而獲得:
[0153]-對于cp1,檢查優先級為b2-》b3-》a2。如果b2可用的話,則使用b2。否則,如果b2可用,則使用b3。如果b2和b3都不可用,則使用a2。如果所有三個候選都不可用,則不能獲得cp1的運動信息。
[0154]-對于cp2,檢查優先級為b1-》b0。
[0155]-對于cp3,檢查優先級為a1-》a0。
[0156]-對于cp4,使用t。
[0157]
b)其次,使用控制點的組合來構建仿射merge候選。
[0158]
i.需要三個控制點的運動信息來構建6參數仿射候選。三個控制點可從以下四種組合之一選擇({cp1,cp2,cp4}、{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4})。組合{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4}將被轉換為由左上方、右上方和左下方控制點表示的6參數運動模型。
[0159]
ii.需要兩個控制點的運動信息來構建4參數仿射候選。兩個控制點可以從兩個組合({cp1,cp2}、{cp1,cp3})中的一個進行選擇。該兩個組合將被轉換為由左上方和右上方控制點表示的4參數運動模型。
[0160]
iii.構建的仿射候選的組合按以下順序被插入到候選列表中:
[0161]
{cp1,cp2,cp3}、{cp1,cp2,cp4}、{cp1,cp3,cp4}、{cp2,cp3,cp4}、{cp1,cp2}、{cp1,cp3}
[0162]
i.對于每個組合,檢查每個cp的列表x的參考索引,如果它們都相同,則該組合對于列表x具有有效的cpmv。如果該組合對于列表0和列表1都不具有有效的cpmv,則該組合被標記為無效。否則,它是有效的,并且cpmv被放到子塊merge列表中。
[0163]
3)用零運動矢量填充
[0164]
如果仿射merge候選列表中的候選的數量小于5,則具有零參考索引的零運動矢量被插入到候選列表中,直到列表滿為止。
[0165]
更具體地,對于子塊merge候選列表,mv被設置為(0,0)并且預測方向被設置為來自列表0的單向預測(對于p條帶)和雙向預測(對于b條帶)的4參數merge候選。
[0166]
2.3.4.具有運動矢量差的merge(mmvd)
[0167]
給出了最終運動矢量表達(ultimate motion vector expression,umve,也稱為mmvd)。umve與一種提出的運動矢量表達方法用于跳過或merge模式。
[0168]
圖18示出了最終矢量表達(umve)搜索過程的示例。圖19示出了umve搜索點的示例。在vvc中,umve重用與被包括在常規merge候選列表中的那些相同的merge候選。在這些merge候選當中,可以選擇基本候選,并通過提出的運動矢量表達方法被進一步擴展。
[0169]
umve提供了一種新的運動矢量差(mvd)表示方法,其中,用起始點、運動幅度和運動方向來表示mvd。
[0170]
這種提出的技術按原樣使用merge候選列表。但是只有默認merge類型(mrg_type_default_n)的候選才被考慮用于umve的擴展。
[0171]
基本候選索引定義了起始點。基本候選索引指示列表中的候選當中的最佳候選,如下所示。
[0172]
表1.基本候選idx
[0173]
基本候選idx0123第n mvp第1mvp第2mvp第3mvp第4mvp
[0174]
如果基本候選的數量等于1,則基本候選idx不被信令通知。
[0175]
距離索引是運動幅度信息。距離索引指示距起始點信息的預定義距離。預定義距
離如下所示:
[0176]
表2.距離idx
[0177]
距離idx01234567像素距離1/4像素1/2像素1像素2像素4像素8像素16像素32像素
[0178]
方向索引表示mvd相對于起始點的方向。方向索引可以表示如下所示的四個方向。
[0179]
表3.方向idx
[0180]
方向idx00011011x軸+
–
n/an/ay軸n/an/a+
–
[0181]
在傳送跳過標志或merge標志之后立即信令通知umve標志。如果跳過或merge標志為真(true),則解析umve標志。如果umve標志等于1,則解析umve語法。但如果不是1,則解析affine(仿射)標志。如果affine標志等于1,即是affine模式,但如果不是1,跳過/merge索引被解析為vtm的跳過/merge模式。
[0182]
不需要由于umve候選的附加線緩沖區。因為軟件的跳過/merge候選被直接用作基本候選。使用輸入的umve索引,在運動補償之前立即決定mv的補充。沒有必要為此保留長的線緩沖區。
[0183]
在當前的通用測試條件下,可以選擇merge候選列表中的第一個或第二個merge候選作為基本候選。
[0184]
在vvc中,umve也被稱為具有mv差的merge(mmvd)。
[0185]
2.3.5.解碼器側運動矢量細化(dmvr)
[0186]
在雙向預測操作中,對于一個塊區域的預測,分別使用列表0的運動矢量(mv)和列表1的mv形成的兩個預測塊被組合以形成單個預測信號。在解碼器側運動矢量細化(dmvr)方法中,雙向預測的兩個運動矢量被進一步細化。
[0187]
2.3.5.1.jem中的dmvr
[0188]
在jem設計中,通過雙邊模板匹配過程來細化運動矢量。雙邊模板匹配應用于解碼器中,以在雙邊模板和參考圖片中的重構樣點之間執行基于失真的搜索,以便在沒有附加運動信息的傳輸的情況下獲得細化的mv值。圖20中描繪了一個示例。雙邊模板被生成作為分別來自列表0的初始mv0和列表1的初始mv1的兩個預測塊的加權組合(即平均),如圖20所示。模板匹配操作包含計算生成的模板和參考圖片中的樣點區域(初始預測塊周圍)之間的代價度量。對于兩個參考圖片中的每一個,產生最小模板代價的mv被認為是該列表的更新的mv,以替換原始mv。在jem中,為每個列表搜索九個mv候選。九個mv候選包括原始mv和在水平方向或垂直方向或兩個方向上距原始mv一個亮度樣點偏移的8個周圍mv。最后,如圖20所示的兩個新的mv(即mv0’和mv1’)用于生成最終雙向預測結果。絕對差之和(sad)被用作代價度量。請注意,當計算由一個周圍mv生成的預測塊的代價時,實際上使用取整的mv(到整數像素)來獲得預測塊,而不是實際的mv。
[0189]
2.3.5.2.vvc中的dmvr
[0190]
對于vvc中的dmvr,假設在列表0和列表1之間鏡像的mvd,如圖21所示,并且執行雙邊匹配以細化mv,即,在幾個mvd候選當中到最佳mvd。以mvl0(l0x,l0y)和mvl1(l1x,l1y)表示兩個參考圖片列表的mv。列表0的由(mvdx,mvdy)表示的能夠最小化代價函數(例如,
sad)的mvd被定義為最佳mvd。對于sad函數,它被定義為列表0的參考塊和列表1的參考塊之間的sad,其中列表0的參考塊是用列表0參考圖像中的運動矢量(l0x+mvdx,l0y+mvdy)推導的,列表1的參考塊是用列表1參考圖像中的運動矢量(l1x-mvdx,l1y-mvdy)推導的。
[0191]
運動矢量細化過程可以迭代兩次。在每次迭代中,可以以兩步檢查最多6個mvd(具有整數像素精度),如圖22所示。在第一步中,檢查mvd(0,0)、(-1,0)、(1,0)、(0,-1)、(0,1)。在第二步中,可以選擇并進一步檢查mvd(-1,-1)、(-1,1)、(1,-1)或(1,1)中的一個。假設函數sad(x,y)返回mvd(x,y)的sad值。在第二步中檢查的由(mvdx,mvdy)表示的mvd決定如下:
[0192]
mvdx=-1;
[0193]
mvdy=-1;
[0194]
if(sad(1,0)《sad(-1,0))
[0195]
mvdx=1;
[0196]
if(sad(0,1)《sad(0,-1))
[0197]
mvdy=1;
[0198]
在第一次迭代中,初始搜索點是常規merge候選的mv,并且在第二次迭代中,初始搜索點是常規merge候選的mv,加上第一次迭代中的所選擇的最佳mvd。dmvr僅在一個參考圖片是前一圖片而另一個參考圖片是后一圖片并且兩個參考圖片具有到當前圖片的相同的圖片順序計數距離時適用。
[0199]
為了進一步簡化dmvr的過程,提出了對jem中的設計的幾個改變。
[0200]
更具體地,vtm-4.0采用的dmvr設計(即將發布)具有以下主要特征:
[0201]
·
當列表0和列表1之間的(0,0)位置sad小于閾值時的提前終止。
[0202]
·
當列表0和列表1之間的sad對于某個位置為零時的提前終止。
[0203]
·
dmvr的塊尺寸:w*h》=64&&h》=8,其中w和h是塊的寬度和高度。
[0204]
·
將cu劃分為cu尺寸》16*16的dmvr的16
×
16子塊的倍數。如果僅cu的寬度或高度大于16,它僅在垂直或水平方向上被劃分。
[0205]
·
參考塊尺寸(w+7)*(h+7)(對于亮度)。
[0206]
·
25點基于sad的整數像素搜索(即(+-2)細化搜索范圍,單階段(stage))
[0207]
·
基于雙線性插值的dmvr。
[0208]
·
基于“參數誤差表面等式”的子像素細化。僅當最小sad代價不等于零,并且在最后一次mv細化迭代中最佳mvd為(0,0)時,才執行此過程。
[0209]
·
亮度/度mc w/參考塊填充(如果需要)。
[0210]
·
僅用于mc和tmvp的細化的mv。
[0211]
2.3.5.2.1 dmvr的使用
[0212]
當以下條件都為真時,可以啟用dmvr:
[0213]
–
sps中的dmvr啟用標志(即,sps_dmvr_enabled_flag)等于1
[0214]
–
tpm標志、幀間仿射標志和子塊merge標志(atmvp或仿射merge)、mmvd標志都等于0
[0215]
–
merge標志等于1
[0216]
–
當前塊是雙向預測的,并且當前圖片和列表1中的參考圖片之間的poc距離等于列表0中的參考圖片和當前圖片之間的poc距離
[0217]
–
當前cu的高度大于或等于8
[0218]
–
亮度樣點數(cu寬度*高度)大于或等于64
[0219]
2.3.5.2.2.基于“參數誤差表面等式”的子像素細化
[0220]
該方法總結如下:
[0221]
1.僅當中心位置是給定迭代中的最佳代價位置時,才計算參數誤差表面擬合。
[0222]
2.中心位置代價和距中心的(-1,0)、(0,-1)、(1,0)和(0,1)位置處的代價用于擬合形狀的2-d拋物線誤差表面等式
[0223]
e(x,y)=a(x-x0)2+b(y-y0)2+c
[0224]
其中(x0,y0)對應于最少代價的位置,并且c對應于最小代價值。通過求解5個未知數中的5個等式,(x0,y0)被計算為:
[0225]
x0=(e(-1,0)-e(1,0))/(2(((-1,0)+e(1,0)-2e(0,0)))
[0226]
y0=(e(0,-1)-e(0,1))/(2((e(0,-1)+e(0,1)-2e(0,0)))
[0227]
(x0,y0)可以通過調整執行除法的精度(即,計算多少比特的商)而計算到任何所需的子像素精度。對于1/16
th
像素精度,僅需計算商的絕對值中的4比特,這使其適合于每個cu所需的2個除法的基于快速移位減法的實施。
[0228]
3.將計算出的(x0,y0)加到整數距離細化mv,以得到子像素精確的細化增量mv。
[0229]
2.3.6.組合的幀內和幀間預測
[0230]
提出了多假設預測,其中組合的幀內和幀間預測是生成多假設的一種方式。
[0231]
當應用多假設預測來改進幀內模式時,多假設預測組合一個幀內預測和一個merge索引的預測。在merge cu中,當標志為真時,為merge模式信令通知一個標志,以從幀內候選列表選擇幀內模式。對于亮度分量,幀內候選列表從包括dc、平面、水平和垂直模式的4種幀內預測模式推導,并且取決于塊形狀,幀內候選列表的尺寸可以是3或4。當cu寬度大于cu高度的兩倍時,水平模式不包括幀內模式列表,當cu高度大于cu寬度的兩倍時,從幀內模式列表移除垂直模式。使用加權平均來組合由幀內模式索引選擇的一個幀內預測模式和由merge索引選擇的一個merge索引預測。對于度分量,總是應用dm而不需要額外的信令。用于組合預測的權重描述如下。當選擇了dc或平面模式,或者cb寬度或高度小于4時,將應用相等權重。對于cb寬度和高度大于或等于4的那些cb,當選擇水平/垂直模式時,首先將一個cb垂直/水平地劃分為四個等面積區域。每個權重集(表示為(w_intrai,w_interi),其中i是從1到4并且(w_intra1,w_inter1)=(6,2)、(w_intra2,w_inter2)=(5,3)、(w_intra3,w_inter3)=(3,5)以及(w_intra4,w_inter4)=(2,6))將被應用于對應的區域。(w_intra1,w_inter1)用于最靠近參考樣點的區域,而(w_intra4,w_inter4)用于最遠離參考樣點的區域。然后,可以通過將兩個加權預測相加并右移3位來計算組合預測。此外,可以保存預測值的幀內假設的幀內預測模式,以供隨后的鄰近cu參考。
[0232]
3.現有實施方式的缺點
[0233]
當前的dmvr可能具有以下問題:
[0234]
1.dmvr中的初始搜索點只能是merge候選的mv。
[0235]
2.在最壞的情況下,對于雙向預測,解碼器可以順序地進行dmvr、bdof和組合幀間-幀內預測。
[0236]
3.未細化的mv用于空間運動矢量預測和去方塊濾波器,而細化的mv用作tmvp。需
要附加的內存來存儲細化的mv。
[0237]
4.示例技術和實施例
[0238]
下面描述的詳細實施例應該被認為是用以解釋一般概念的示例。這些實施例不應以狹隘的方式被解釋。此外,這些實施例可以以任何方式被組合。
[0239]
在以下討論中,satshift(x,n)被定義為
[0240][0241]
shift(x,n)被定義為shift(x,n)=(x+offset0)》》n。
[0242]
在一個示例中,offset0和/或offset1被設置為(1《《n)》》1或(1《《(n-1))。在另一個示例中,offset0和/或offset1被設置為0。
[0243]
clip3(min,max,x)被定義為
[0244][0245]
在下面的討論中,兩個運動矢量之間的運算意味著該運算將被應用于運動矢量的兩個分量。例如,mv3=mv1+mv2相當于mv3
x
=mv1
x
+mv2
x
以及mv3y=mv1y+mv2y。
[0246]
1.提出dmvr中的初始搜索點可以是添加偏移的常規merge候選的mv。
[0247]
a.在一個示例中,假設參考參考列表0和參考列表1的merge候選的mv被分別表示為mv0和mv1,那么dmvr中的初始搜索點可以是mv0+offset0和mv1+offset1。
[0248]
i.在一個示例中,offset0和/或offset1可以被預定義。例如,offset0=(4,0)并且offset1=(-4.0);
[0249]
ii.替代地,可以從編碼器向解碼器信令通知offset0和offset1。
[0250]
b.在一個示例中,可以以mmvd模式從編碼器向解碼器信令通知偏移。
[0251]
i.例如,當當前塊被編解碼為mmvd和/或mmvd跳過模式時,可以應用dmvr。
[0252]
ii.當以mmvd和/或mmvd跳過模式對當前塊進行編解碼時,dmvr中的初始搜索點被設置為具有mmvd模式的mv,該mv被推導為添加信令通知的距離的merge候選的mv。
[0253]
2.提出dmvr、bdof和組合幀間-幀內預測不能全部被應用。
[0254]
a.在一個示例中,當當前塊的大小滿足某些條件時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。假設當前塊的寬度和高度分別為w和h。
[0255]
i.例如,當w》=t1并且h》=t2時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=t2=16;
[0256]
1)替代地,當w》t1并且h》t2時。
[0257]
ii.例如,當w《=t1并且h《=t2時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=t2=16;
[0258]
1)替代地,當w《t1并且h《t2時。
[0259]
iii.例如,當w》=t1或h》=t2時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=t2=16;
[0260]
1)替代地,當w》t1或h》t2時。
[0261]
iv.例如,當w《=t1或h《=t2時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=t2=16;
[0262]
1)替代地,當w《t1或h《t2時。
[0263]
v.例如,當w
×
h》=t1時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=64。
[0264]
1)替代地,當w
×
h》t1時。
[0265]
vi.例如,當w
×
h《=t1時,dmvr、bdof和組合幀間-幀內預測不能全部被應用。例如,t1=64。
[0266]
1)替代地,當w
×
h《t1時。
[0267]
b.在一個示例中,當應用bdof和幀間-幀內預測時,不能使用dmvr。
[0268]
c.在一個示例中,當應用dmvr和幀間-幀內預測時,不能使用bdof。
[0269]
d.在一個示例中,當應用dmvr和bdof時,不能使用幀間-幀內預測。
[0270]
3.提出在去方塊過程中使用dmvr細化的mv。
[0271]
4.提出在對塊進行解碼之后,計算和存儲塊中大小為w
×
h的每個基本塊的、細化的mv(表示為rmv)和非細化的mv(表示為nmv)的差(表示為dmv)。例如,w=h=4,或者w=h=8,或者w=h=16。
[0272]
a.dmv被推導為dmv=rmv-nmv。
[0273]
i.替代地,dmv=nmv-rmv。
[0274]
b.在一個示例中,在去方塊過程之前,rmv’被計算為rmv’=dmv+nmv,并且在隨后的去方塊過程和時域預測過程中被用作基本塊的mv。
[0275]
i.替代地,rmv’被計算為rmv’=-(dmv+nmv)。
[0276]
c.在一個示例中,dmvx和dmvy可以被定義在一致性比特流中的范圍中。例如,dmvx和dmvy可以滿足t1x《=dmvx《=t2x和t1y《=dmvy《=t2y。例如,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是諸如3或4的整數。
[0277]
i.在一個示例中,在dmvr中的搜索范圍可以保證dmv能夠滿足約束。
[0278]
ii.在一個示例中,t1x/t2x/t1y/t2y/k可以從編碼器被信令通知給解碼器。
[0279]
iii.在一個示例中,t1x/t2x/t1y/t2y/k可以取決于dmvr的搜索范圍。
[0280]
iv.在一個示例中,t1x/t2x/t1y/t2y/k可以取決于標準簡表和/或級別和/或層級。
[0281]
d.在一個示例中,dmv可以被裁剪。
[0282]
i.例如,dmvx被設置為clip3(t1x,t2x,dmvx),并且dmvy被設置為clip3(t1y,t2y,dmvx)。例如,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是諸如3或4的整數。
[0283]
e.在一個示例中,dmv可以被量化為dmv’,并且dmv’將被存儲。
[0284]
i.例如,dmvx’被設置為shift(dmvx,nx),并且dmvy’被設置為shift(dmvy,ny),例如,nx=ny=1。
[0285]
1)替代地,dmvx’被設置為satshift(dmvx,nx),并且dmvy’被設置為satshift(dmvy,ny),例如,nx=ny=1。
[0286]
2)在一個示例中,nx/ny可以從編碼器被信令通知給解碼器。
[0287]
3)在一個示例中,nx/ny可以取決于dmvr的搜索范圍。
[0288]
4)在一個示例中,nx/ny可以取決于標準簡表和/或級別和/或層級。
[0289]
ii.在一個示例中,dmv可以在推導rmv’之前從dmv’進行反量化。
[0290]
1)例如,dmvx=dmvx’《《nx并且dmvy=dmvy’《《ny。
[0291]
iii.在一個示例中,dmv可以在量化之前被裁剪。
[0292]
1)替代地,dmv’可以在量化之后被裁剪。
[0293]
f.在一個示例中,代替rmv,rmv’可以用于運動補償過程中。
[0294]
5.所公開的技術的示例實施方式
[0295]
圖23是視頻處理裝置2300的框圖。裝置2300可以用來實施本文描述的方法中的一種或多種。裝置2300可以體現在智能電話、平板電腦、計算機、物聯網(internet of things,iot)接收器等中。裝置2300可以包括一個或多個處理器2302、一個或多個存儲器2304、以及視頻處理硬件2306。(多個)處理器2302可以被配置為實施本文檔中描述的一種或多種方法。存儲器(多個存儲器)2304可以用于存儲用于實施本文描述的方法和技術的數據和代碼。視頻處理硬件2306可以用來以硬件電路實施本文檔中描述的一些技術,并且可以部分地或完全作為處理器2302的一部分(例如,圖形處理器核心gpu或其他信號處理電路)。
[0296]
在本文檔中,術語“視頻處理”可以指代視頻編碼、視頻解碼、視頻壓縮或視頻解壓縮。例如,可以在從視頻的像素表示到對應比特流表示的轉換期間應用視頻壓縮算法,反之亦然。當前視頻塊的比特流表示可以,例如對應于比特流內并置的或分散在不同位置的比特,如語法所定義的。例如,宏塊可以按照變換和編解碼誤差殘差值并且還使用頭和比特流中的其他字段中的比特而編碼。
[0297]
應當理解,通過允許使用在本文檔中公開的技術,所公開的方法和技術將有益于并入視頻處理設備(諸如智能電話、膝上型電腦、臺式電腦和類似設備)內的視頻編碼器和/或解碼器實施例。
[0298]
圖24是視頻處理的示例方法2400的流程圖。方法2400包括,在2410,執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括用于細化在比特流表示中信令通知的運動信息的解碼器運動矢量細化(dmvr)步驟。該方法包括,在步驟2420,在dmvr步驟期間,使用至少一個運動矢量作為用于該細化的起始值,其中,至少一個運動矢量等于添加到候選運動矢量集合中的候選運動矢量的偏移。
[0299]
可以使用以下基于條款的格式來描述一些實施例。
[0300]
1.一種可視媒體處理的方法,包括:
[0301]
執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括用于細化在比特流表示中信令通知的運動信息的解碼器運動矢量細化(dmvr)步驟;以及
[0302]
在dmvr步驟期間,使用至少一個運動矢量作為用于該細化的起始值,其中,至少一個運動矢量等于添加到候選運動矢量集合中的候選運動矢量的偏移。
[0303]
2.根據條款1所述的方法,其中,候選運動矢量被包括在merge列表中。
[0304]
3.根據條款1所述的方法,其中,添加到候選運動矢量的偏移是預定義的。
[0305]
4.根據條款1所述的方法,其中,添加到候選運動矢量的偏移在比特流表示中作為參數被信令通知。
[0306]
5.根據條款1所述的方法,其中,當前視頻塊在具有運動矢量差的merge(mmvd)模
式下被編解碼。
[0307]
6.根據條款1所述的方法,其中,當前視頻塊在具有運動矢量差的merge(mmvd)跳過模式下被編解碼。
[0308]
7.根據條款5-6中任一項或多項所述的方法,其中,候選運動矢量被包括在merge列表中,并且添加到候選運動矢量的偏移在比特流表示中作為參數被信令通知。
[0309]
8.一種可視媒體處理的方法,包括:
[0310]
執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括使用以下中的一個或多個:解碼器運動矢量細化(dmvr)步驟、雙向光流(bdof)步驟或組合幀內-幀間預測步驟,并且其中,dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存至少基于當前視頻塊的大小。
[0311]
9.根據條款8所述的方法,還包括:
[0312]
響應于確定當前視頻塊的寬度大于或等于第一閾值和/或當前視頻塊的高度大于或等于第二閾值,禁用對dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存使用。
[0313]
10.根據條款8所述的方法,還包括:
[0314]
響應于確定當前視頻塊的寬度小于或等于第一閾值和/或當前視頻塊的高度小于或等于第二閾值,禁用對dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存使用。
[0315]
11.根據條款9-10中任一項或多項所述的方法,其中,第一閾值和第二閾值都為十六(16)。
[0316]
12.根據條款8所述的方法,還包括:
[0317]
響應于確定當前視頻塊的寬度和當前視頻塊的高度的乘積大于或等于第一閾值,禁用對dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存使用。
[0318]
13.根據條款8所述的方法,還包括:
[0319]
響應于確定當前視頻塊的寬度和當前視頻塊的高度的乘積小于或等于第一閾值,禁用對dmvr步驟、bdof步驟和組合幀內-幀間預測步驟的共存使用。
[0320]
14.根據條款12-13中任一項或多項所述的方法,其中,第一閾值為六十四(64)。
[0321]
15.根據條款8-14中任一項或多項所述的方法,還包括:
[0322]
啟用對以下中的任何兩個的共存使用:dmvr步驟、bdof步驟或組合幀內-幀間預測步驟。
[0323]
16.一種可視媒體處理的方法,包括:
[0324]
執行當前視頻塊和當前視頻塊的比特流表示之間的轉換,其中,該轉換包括解碼器運動矢量細化(dmvr)步驟,該dmvr步驟用于細化在比特流表示中信令通知的原始運動信息,從而產生可用于去方塊步驟中的細化的運動信息;以及
[0325]
為當前視頻塊的至少一個子集塊計算細化的運動信息和原始運動信息的差。
[0326]
17.根據條款8所述的方法,其中,子集塊的大小為4
×
4、8
×
8或16
×
16。
[0327]
18.根據條款16-17中任一項或多項所述的方法,其中,計算差包括從原始運動信息減去細化的運動信息。
[0328]
19.根據條款16-17中任一項或多項所述的方法,其中,計算差包括從細化的運動信息減去原始運動信息。
[0329]
20.根據條款16所述的方法,其中,在去方塊步驟之前,第一運動信息被計算為(i)
細化的運動信息的差和(ii)原始運動信息的和,其中,第一運動信息可用于去方塊步驟中。
[0330]
21.根據條款20所述的方法,其中,第一運動信息乘以負一。
[0331]
22.根據條款16所述的方法,其中,細化的運動信息和原始運動信息的差是差向量,其中,差向量的x分量大于x下界和/或小于x上界。
[0332]
23.根據條款16所述的方法,其中,細化的運動信息和原始運動信息的差是差向量,其中,差向量的y分量大于y下界和/或小于y上界。
[0333]
24.根據條款22-23中任一項或多項所述的方法,其中,x上界、x下界、y上界和y下界是在比特流表示中信令通知的。
[0334]
25.根據條款22-23中任一項或多項所述的方法,其中,dmvr步驟的搜索范圍以這樣的方式被定義:使得(i)差向量的x分量大于x下界和/或小于x上界,以及(ii)差向量的y分量大于y下界和/或小于y上界。
[0335]
26.根據條款22-23中任一項或多項所述的方法,其中,差向量以這樣的方式被裁剪:使得差向量的x分量根據函數clip3(x下界、x上界、差向量的x分量)進行裁剪,并且差向量的y分量根據函數clip3(y下界、y上界、差向量的y分量)進行裁剪,其中,clip3(min,max,x)被定義為
[0336][0337]
27.根據條款22-23中任一項或多項所述的方法,其中,差向量被量化。
[0338]
28.根據條款27所述的方法,其中,差向量的x分量根據函數shift(差向量的x分量,第一值)進行量化,并且差向量的y分量根據函數shift(差向量的y分量,第二值)進行量化,其中
[0339]
shift(x,n)=(x+offset0)》》n
[0340]
其中,offset0=(1《《n)》》1,第一值和第二值是標量。
[0341]
29.根據條款27所述的方法,其中,差向量的x分量根據函數shift(差向量的x分量,第一值)進行量化,并且差向量的y分量根據函數shift(差向量的y分量,第二值)進行量化,其中
[0342]
shift(x,n)=(x+offset0)》》n
[0343]
其中,offset0=(1《《(n-1)),第一值和第二值是標量。
[0344]
30.根據條款27所述的方法,其中,差向量的x分量根據函數shift(差向量的x分量,第一值)進行量化,并且差向量的y分量根據函數shift(差向量的y分量,第二值)進行量化,其中
[0345]
shift(x,n)=(x+offset0)》》n
[0346]
其中,offset0=0,第一值和第二值是標量。
[0347]
31.根據條款27所述的方法,其中,差向量的x分量根據函數satshift(差向量的x分量,第一值)進行量化,并且差向量的y分量根據函數satshift(差向量的y分量,第二值)進行量化,其中
[0348][0349]
其中,offset0、offset1被設置為(1《《n)》》1或(1《《(n-1)),并且第一值和第二值是標量。
[0350]
32.根據條款27所述的方法,其中,差向量的x分量根據函數satshift(差向量的x分量,第一值)進行量化,并且差向量的y分量根據函數satshift(差向量的y分量,第二值)進行量化,其中
[0351][0352]
其中,offset0、offset1都被設置為0,并且第一值和第二值是標量。
[0353]
33.根據條款28-33中任一項或多項所述的方法,其中,第一值和第二值在比特流表示中被信令通知。
[0354]
34.根據條款28-33中任一項或多項所述的方法,其中,第一值和第二值與dmvr步驟的搜索范圍相關聯。
[0355]
35.根據條款28-33中任一項或多項所述的方法,其中,第一值和第二值與當前視頻塊的簡表信息或層級信息相關聯。
[0356]
36.根據條款1至35中任一項或多項所述的方法,其中,可視媒體處理是編碼器側實施方式。
[0357]
37.根據條款1至35中任一項或多項所述的方法,其中,可視媒體處理是解碼器側實施方式。
[0358]
38.一種視頻系統中的裝置,包括處理器和其上具有指令的非暫時性存儲器,其中,指令在由處理器執行時使處理器實施根據條款1至37中任一項或多項所述的方法。
[0359]
39.一種存儲在非暫時性計算機可讀介質上的計算機程序產品,該計算機程序產品包括用于執行根據條款1至37中任一項或多項所述的方法的程序代碼。
[0360]
圖25是視頻處理的示例方法2500的流程圖。方法2500包括,在2502,基于與視頻的第一塊相關聯的merge候選的一個或多個運動矢量(mv)和一個或多個偏移,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換推導要在該轉換期間被應用的解碼器側運動矢量細化(dmvr)過程中的初始搜索點;以及在2504,基于初始搜索點來執行該轉換。
[0361]
在一些示例中,初始搜索點被推導為添加偏移的merge候選的一個或多個mv。
[0362]
在一些示例中,當merge候選的一個或多個mv包括參考參考列表0的第一mv(mv0)和參考參考列表1的第二mv(mv1)時,初始搜索點被推導為mv0+offset0和mv1+offset1,offset0是對應于第一mv(mv0)的偏移,并且offset1是對應于第二mv(mv1)的偏移。
[0363]
在一些示例中,offset0和/或offset1是預定義的。
[0364]
在一些示例中,offset0=(4,0)并且offset1=(-4.0)。
[0365]
在一些示例中,offset0和/或offset1是從編碼器向解碼器信令通知的。
[0366]
在一些示例中,偏移是以具有運動矢量差的merge(mmvd)模式從編碼器向解碼器信令通知的。
[0367]
在一些示例中,當第一塊被編解碼為mmvd和/或mmvd跳過模式時,dmvr過程被應
用。
[0368]
在一些示例中,當以mmvd和/或mmvd跳過模式對第一塊進行編解碼時,dmvr過程中的初始搜索點被設置為具有mmvd模式的mv,該mv被推導為添加信令通知的偏移的merge候選的mv。
[0369]
圖26是視頻處理的示例方法2600的流程圖。方法2600包括,在2602,基于預定規則,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換確定解碼器運動矢量細化(dmvr)過程、雙向光流(bdof)過程和組合幀內-幀間預測過程中的至少一個被禁用;以及在2604,基于該確定來執行該轉換。
[0370]
在一些示例中,當第一塊的大小滿足一個或多個條件時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,第一塊的大小包括寬度w、高度h或wxh中的至少一個。
[0371]
在一些示例中,當w》=t1并且h》=t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0372]
在一些示例中,當w》t1并且h》t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0373]
在一些示例中,當w《=t1并且h《=t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0374]
在一些示例中,當w《t1并且h《t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0375]
在一些示例中,當w》=t1或h》=t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0376]
在一些示例中,當w》t1或h》t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0377]
在一些示例中,當w《=t1或h《=t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0378]
在一些示例中,當w《t1或h《t2時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。
[0379]
在一些示例中,t1=t2=16。
[0380]
在一些示例中,t1=t2=8。
[0381]
在一些示例中,t1=t2=128。
[0382]
在一些示例中,當w
×
h》=t1時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。
[0383]
在一些示例中,當w
×
h》t1時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。
[0384]
在一些示例中,當w
×
h《=t1時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。
[0385]
在一些示例中,當w
×
h《t1時,dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。
[0386]
在一些示例中,t1=64。
[0387]
在一些示例中,t1=128。
[0388]
在一些示例中,當應用bdof過程和幀間-幀內預測過程時,dmvr過程被禁用。
[0389]
在一些示例中,當應用幀間-幀內預測過程時,dmvr過程被禁用。
[0390]
在一些示例中,當應用dmvr過程和幀間-幀內預測過程時,bdof過程被禁用。
[0391]
在一些示例中,當應用幀間-幀內預測過程時,bdof過程被禁用。
[0392]
在一些示例中,當應用dmvr過程和bdof過程時,幀間-幀內預測過程被禁用。
[0393]
圖27是視頻處理的示例方法2700的流程圖。方法2700包括,在2702,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換推導與第一塊相關聯的運動矢量(mv),該mv通過應用解碼器側運動矢量細化(dmvr)過程進行細化;以及在2704,在去方塊過程中通過使用細化的mv來執行該轉換。
[0394]
圖28是視頻處理的示例方法2800的流程圖。方法2800包括,在2802,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換計算與第一塊的每個基本塊相關聯的、細化的運動矢量(mv)(rmv)和非細化的mv(nmv)之間的mv差(dmv),rmv是通過應用解碼器側運動矢量細化(dmvr)過程而細化的運動矢量,nmv是未通過dmvr過程細化的運動矢量;以及在2804,通過使用計算的mv差來執行該轉換。
[0395]
在一些示例中,基本塊具有寬度w和高度h,其中w=h=4,或者w=h=8,或者w=h=16。
[0396]
在一些示例中,mv差dmv被推導為dmv=rmv-nmv或者dmv=nmv-rmv。
[0397]
在一些示例中,去方塊過程之前的細化的mv(rmv’)被計算為rmv’=dmv+nmv,并且要在隨后的去方塊過程和時域預測過程中被用作基本塊的mv。
[0398]
在一些示例中,去方塊過程之前的細化的mv(rmv’)被計算為rmv’=-(dmv+nmv),并且要在隨后的去方塊過程和時域預測過程中被用作基本塊的mv。
[0399]
在一些示例中,mv差dmv具有水平分量(dmvx)和垂直分量(dmvy),dmvx和dmvy在一致性比特流中的范圍中。
[0400]
在一些示例中,dmvx和dmvy滿足t1x《=dmvx《=t2x并且t1y《=dmvy《=t2y,t1x、t2x、t1y和t2y是整數。
[0401]
在一些示例中,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是整數。
[0402]
在一些示例中,k為3或4。
[0403]
在一些示例中,dmvr過程中的搜索范圍保證mv差dmv能夠滿足約束。
[0404]
在一些示例中,t1x、t2x、t1y、t2y和k中的一個或多個是從編碼器向解碼器信令通知的。
[0405]
在一些示例中,t1x、t2x、t1y、t2y和k中的一個或多個取決于dmvr過程的搜索范圍。
[0406]
在一些示例中,t1x、t2x、t1y、t2y和k中的一個或多個取決于標準簡表和/或級別和/或層級。
[0407]
在一些示例中,運動矢量差dmv用函數clip3(min,max,x)進行裁剪,函數clip3(min,max,x)被定義為
[0408][0409]
在一些示例中,dmv的水平分量dmvx被設置為clip3(t1x,t2x,dmvx),并且dmv的垂直分量dmvy被設置為clip3(t1y,t2y,dmvx)。
[0410]
在一些示例中,t1x=t1y=-2k并且t2x=t2y=2
k-1,其中k是整數。
[0411]
在一些示例中,k為3或4。
[0412]
在一些示例中,mv差dmv在該轉換之后被存儲。
[0413]
在一些示例中,mv差dmv被量化為dmv’,并且dmv’被存儲。
[0414]
在一些示例中,dmv’的水平分量dmvx’被設置為shift(dmvx,nx),并且dmv’的垂直分量dmvy’被設置為shift(dmvy,ny),nx和ny是整數,其中shift(x,n)被定義為:
[0415]
shift(x,n)=(x+offset0)》》n,
[0416]
其中offset0被設置為(1《《n)》》1或(1《《(n-1)),或者offset0被設置為0。
[0417]
在一些示例中,dmv’的水平分量dmvx’被設置為satshift(dmvx,nx),并且dmv’的垂直分量dmvy’被設置為satshift(dmvy,ny),nx和ny是整數,其中satshift(x,n)被定義為:
[0418][0419]
其中offset0和/或offset1被設置為(1《《n)》》1或(1《《(n-1)),或者offset0和/或offset1被設置為0。
[0420]
在一些示例中,nx=ny=1。
[0421]
在一些示例中,nx和/或ny是從編碼器向解碼器信令通知的。
[0422]
在一些示例中,nx和/或ny取決于dmvr過程的搜索范圍。
[0423]
在一些示例中,nx和/或ny取決于標準簡表和/或級別和/或層級。
[0424]
在一些示例中,mv差dmv在推導rmv’之前從dmv’進行反量化。
[0425]
在一些示例中,dmvx=dmvx’《《nx,并且dmvy=dmvy’《《ny。
[0426]
在一些示例中,mv差dmv在量化之前被裁剪。
[0427]
在一些示例中,mv差dmv在量化之后被裁剪。
[0428]
在一些示例中,去方塊過程之前的細化的mv rmv’用于運動補償過程中。
[0429]
在一些示例中,該轉換從比特流表示生成視頻的第一塊。
[0430]
在一些示例中,該轉換從視頻的第一塊生成比特流表示。
[0431]
本文檔中描述的所公開的以及其他解決方案、示例、實施例、模塊和功能操作可以在數字電子電路中、或者在計算機軟件、固件或硬件(包括本文檔中公開的結構及其結構等同物)中、或者在它們中的一個或多個的組合中被實施。所公開的以及其他實施例可以被實施為一個或多個計算機程序產品,即編碼在計算機可讀介質上的計算機程序指令的一個或多個模塊,該計算機程序指令用于由數據處理裝置執行或控制數據處理裝置的操作。計算機可讀介質可以是機器可讀存儲設備、機器可讀存儲基板、存儲器設備、影響機器可讀傳播信號的物質的組合、或它們中的一個或多個的組合。術語“數據處理裝置”包含用于處理數
據的所有裝置、設備和機器,包括例如可編程處理器、計算機、或多個處理器或計算機。除了硬件之外,裝置還可以包括為所討論的計算機程序創建執行環境的代碼,例如,構成處理器固件、協議棧、數據庫管理系統、操作系統、或它們中的一個或多個的組合的代碼。傳播信號是被生成以對信息進行編碼以用于發送到合適的接收器裝置的人工生成的信號,例如機器生成的電信號、光學信號或電磁信號。
[0432]
計算機程序(也已知為程序、軟件、軟件應用、腳本或代碼)可以以任何形式的編程語言(包括編譯或解釋語言)編寫,并且其可以以任何形式部署,包括作為獨立程序或作為適合在計算環境中使用的模塊、組件、子例程或其他單元。計算機程序不一定對應于文件系統中的文件。程序可以存儲在保存其他程序或數據(例如,存儲在標記語言文檔中的一個或多個腳本)的文件的一部分中,存儲在專用于所討論的程序的單個文件中,或存儲在多個協調文件中(例如,存儲一個或多個模塊、子程序或代碼部分的文件)。計算機程序可以被部署以在一個計算機上或在位于一個站點上或跨多個站點分布并通過通信網絡互連的多個計算機上執行。
[0433]
本文檔書中描述的過程和邏輯流程可以由執行一個或多個計算機程序的一個或多個可編程處理器執行,以通過對輸入數據進行操作并生成輸出來執行功能。過程和邏輯流程也可以由專用邏輯電路執行,并且裝置也可以被實施為專用邏輯電路,例如,fpga(field programmable gate array,現場可編程門陣列)或asic(專用集成電路)。
[0434]
適合于執行計算機程序的處理器包括例如通用和專用微處理器、以及任何類型的數字計算機的任何一個或多個處理器。通常,處理器將從只讀存儲器或隨機存取存儲器或兩者接收指令和數據。計算機的基本元件是用于執行指令的處理器和用于存儲指令和數據的一個或多個存儲器設備。通常,計算機還將包括用于存儲數據的一個或多個大容量存儲設備(例如,磁盤、磁光盤或光盤),或可操作地耦合以從該一個或多個大容量存儲設備接收數據或向該一個或多個大容量存儲設備傳遞數據、或者從其接收數據并向其傳遞數據。然而,計算機不需要這樣的設備。適用于存儲計算機程序指令和數據的計算機可讀介質包括所有形式的非易失性存儲器、介質和存儲器設備,包括例如半導體存儲器設備,例如eprom、eeprom和閃存設備;磁盤,例如內部硬盤或可換式磁盤;磁光盤;以及cd rom和dvd-rom磁盤。處理器和存儲器可以由專用邏輯電路補充或并入專用邏輯電路中。
[0435]
雖然本專利文檔包含許多細節,但這些細節不應被解釋為對任何主題或可能要求保護的范圍的限制,而是作為特定于特定技術的特定實施例的特征的描述。在本專利文檔中在單獨的實施例的上下文中描述的某些特征也可以在單個實施例中組合實施。相反,在單個實施例的上下文中描述的各種特征也可以在多個實施例中分開實施或以任何合適的子組合實施。此外,盡管特征可以在上面描述為以某些組合起作用并且甚至最初如此要求保護,但是在一些情況下可以從組合排除來自所要求保護的組合的一個或多個特征,并且所要求保護的組合可以針對子組合或子組合的變化。
[0436]
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應該被理解為需要以所示的特定順序或以先后順序執行這樣的操作或者執行所有示出的操作以實現期望的結果。此外,在本專利文檔中描述的實施例中的各種系統組件的分離不應被理解為在所有實施例中都需要這樣的分離。
[0437]
僅描述了一些實施方式和示例,并且可以基于本專利文檔中描述和示出的內容來
進行其他實施方式、增強和變化。
技術特征:
1.一種視頻處理的方法,包括:基于預定規則,為視頻的第一塊和所述視頻的第一塊的比特流之間的轉換確定解碼器運動矢量細化dmvr過程、雙向光流bdof過程和組合幀內-幀間預測過程中的至少一個被禁用;以及基于所述確定來執行所述轉換。2.根據權利要求1所述的方法,其中,當所述第一塊的大小滿足一個或多個條件時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,所述第一塊的大小包括寬度w、高度h或wxh中的至少一個。3.根據權利要求2所述的方法,其中,當w>=t1并且h>=t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。4.根據權利要求2所述的方法,其中,當w>t1并且h>t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。5.根據權利要求2所述的方法,其中,當w<=t1并且h<=t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。6.根據權利要求2所述的方法,其中,當w<t1并且h<t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。7.根據權利要求2所述的方法,其中,當w>=t1或h>=t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。8.根據權利要求2所述的方法,其中,當w>t1或h>t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。9.根據權利要求2所述的方法,其中,當w<=t1或h<=t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。10.根據權利要求2所述的方法,其中,當w<t1或h<t2時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1和t2是整數。11.根據權利要求3所述的方法,其中,t1=t2=16。12.根據權利要求3所述的方法,其中,t1=t2=8。13.根據權利要求3所述的方法,其中,t1=t2=128。14.根據權利要求2所述的方法,其中,當w
×
h>=t1時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。15.根據權利要求2所述的方法,其中,當w
×
h>t1時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。16.根據權利要求2所述的方法,其中,當w
×
h<=t1時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。17.根據權利要求2所述的方法,其中,當w
×
h<t1時,所述dmvr過程、bdof過程和組合幀內-幀間預測過程中的至少一個被禁用,t1是整數。18.根據權利要求12所述的方法,其中,t1=64。19.根據權利要求12所述的方法,其中,t1=128。20.根據權利要求1所述的方法,其中,當應用所述bdof過程和所述組合幀內-幀間預測過程時,所述dmvr過程被禁用。
21.根據權利要求1所述的方法,其中,當應用所述組合幀內-幀間預測過程時,所述dmvr過程被禁用。22.根據權利要求1所述的方法,其中,當應用所述dmvr過程和所述組合幀內-幀間預測過程時,所述bdof過程被禁用。23.根據權利要求1所述的方法,其中,當應用所述組合幀內-幀間預測過程時,所述bdof過程被禁用。24.根據權利要求1所述的方法,其中,當應用所述dmvr過程和所述bdof過程時,所述組合幀內-幀間預測過程被禁用。25.根據權利要求1-24中任一項所述的方法,其中,所述轉換從所述比特流生成所述視頻的第一塊。26.根據權利要求1-24中任一項所述的方法,其中,所述轉換從所述視頻的第一塊生成所述比特流。27.一種視頻系統中的裝置,包括處理器和其上具有指令的非暫時性存儲器,其中,所述指令在由所述處理器執行時使所述處理器實施根據權利要求1至26中任一項所述的方法。28.一種非暫時性計算機可讀介質,其上存儲有計算機程序代碼,所述程序代碼被處理器執行時以實現權利要求1至26中任一項所述的方法。
技術總結
公開了視頻編解碼中的運動矢量細化。一種視頻處理的方法,包括:基于與視頻的第一塊相關聯的Merge候選的一個或多個運動矢量(MV)和一個或多個偏移,為視頻的第一塊和視頻的第一塊的比特流表示之間的轉換推導要在該轉換期間被應用的解碼器側運動矢量細化(DMVR)過程中的初始搜索點;以及基于初始搜索點來執行該轉換。轉換。轉換。
