TW202015426A - 共享候選列表 - Google Patents
共享候選列表 Download PDFInfo
- Publication number
- TW202015426A TW202015426A TW108129234A TW108129234A TW202015426A TW 202015426 A TW202015426 A TW 202015426A TW 108129234 A TW108129234 A TW 108129234A TW 108129234 A TW108129234 A TW 108129234A TW 202015426 A TW202015426 A TW 202015426A
- Authority
- TW
- Taiwan
- Prior art keywords
- shared
- candidate list
- coding
- boundary
- unit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/583—Motion compensation with overlapping blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一種視訊編解碼器,其使用共享的候選列表來對共享邊界內的多個像素塊進行編碼或解碼。 視訊編解碼器識別包含視訊序列中當前圖片的多個像素塊的共享邊界。 視訊編解碼器基於由共享邊界定義的區域的相鄰將一個或多個預測候選識別爲共享候選列表。 視訊編解碼器通過使用從共享候選列表中選擇的一個或多個預測候選來對共享邊界所包圍的一個或多個像素塊進行編解碼。
Description
本公開總體上涉及視訊處理。 更具體而言,本公開涉及使用共享候選列表來對共享邊界內的多個像素塊進行編碼或解碼的方法。
除非本文另外指出,否則本節中描述的方法不是後面列出的申請專利範圍的現有技術,並且不被包括在本節中而被承認爲現有技術。
高效視訊編碼(HEVC)是由視訊編碼聯合協作團隊(JCT-VC)開發的視訊編碼標準。 在HEVC中,將編碼圖片分區(partitioned)爲由編碼樹單元(CTU)表示的不重叠的正方形塊區域。 編碼圖片可以由切片的集合表示,每個切片包括整數個CTU。 切片中的各個CTU按光栅掃描順序進行處理。 可以使用至多兩個運動向量和參考索引來使用幀內預測或幀間預測來解碼雙向預測(bi-predictive)(B)切片,以預測每個塊的采樣值。 僅使用幀內預測來對幀內(intra)(I)切片進行解碼。 使用幀內預測或幀間預測使用最多一個運動向量和參考索引來解碼預測性(predictive)(P)切片,以預測每個塊的採樣值。
爲每個編碼單元(CU)指定一個或多個預測單元(PU)。 預測單元與關聯的CU語法一起,作爲用於發信預測子資訊的基本單元。 應用指定的預測過程來預測PU內部相關像素採樣的值。 根據所選的PU類型,CU可以分爲一個、兩個或四個PU。 HEVC定義了八種類型的分區,用於將CU劃分爲PU。
可以使用殘差四叉樹(RQT)結構進一步劃分CU,以表示相關的預測殘差信號。 RQT的葉節點對應於結果轉換單元(TU)。 變換單元由大小爲8x8、16x16或32x32的亮度採樣的變換塊(TB)或大小爲4x4的四個亮度採樣的變換塊和4:2:0顔色格式的圖片的色度採樣的兩個相應變換塊組成。 將整數變換應用於變換塊,並且在位元流中對量化的系數值進行編碼。 最小和最大變換塊大小在序列參數集中指定。
在HEVC中,術語編碼樹塊(CTB)、編碼塊(CB)、預測塊(PB)和變換塊(TB)被定義爲指代分別來自關聯的CTU、CU、PU和TU的一種顔色分量的二維採樣陣列。 因此,CTU由一個亮度CTB、兩個色度CTB和未使用三個單獨色平面編碼的顏色圖片中的相關語法元素組成。 發信的編碼樹劃分通常應用於亮度塊和色度塊,儘管在遇到某些最小大小約束時也會有一些例外情况。
以下發明內容僅是說明性的,而無意於以任何方式進行限制。 即,提供以下概述以介紹本文描述的新穎和非顯而易見的技術的概念、重點、益處和優點。 在下面的詳細描述中將進一步描述選擇而非全部實現。 因此,以下概述並非旨在標識所要求保護的主題的必要特徵,也不旨在用於確定所要求保護的主題的範圍。
本公開的一些實施例提供了一種視訊編解碼器,其使用共享候選列表來對共享邊界內的多個像素塊進行編解碼(例如,編碼或解碼)。 視訊編解碼器識別包含視訊序列中當前圖片的多個像素塊的共享邊界。 視訊編解碼器基於由共享邊界定義的區域的空間或時間相鄰將一個或多個預測候選識別爲共享候選列表。視訊編解碼器通過使用從共享候選列表中選擇的一個或多個預測候選來對共享邊界所包圍的一個或多個像素塊進行編解碼。 當對一個或多個像素塊進行編碼時,可以通過使用共享候選列表來並行地對第一像素塊和第二像素塊進行並行編碼。
在一些實施例中,由共享邊界定義的區域是編碼樹單元(CTU)的一部分,共享邊界對應於CTU的子樹的根,並且正被編碼的像素塊對應CTU的葉CU。 在一些實施例中,共享候選列表包括運動向量,該運動向量用於對由共享邊界定義的區域的相鄰塊進行編碼。 該區域可以對應於CU,並且共享候選列表是CU的合併或AMVP候選列表。 共享候選列表包括的運動向量可以包括各種類型的合併或AMVP候選,例如仿射候選、IBC候選、sub-PU候選、基於歷史的候選、不相鄰的候選等。
在一些實施例中,通過遍歷編碼樹單元(CTU)來識別共享邊界,該編碼樹單元(CTU)被劃分(split)成編碼單元(CU)的層次結構以識別大於或等於閾值的CU以及該CU 是小於閾值的子CU的父CU。 在一些實施例中,通過遍歷編碼樹單元(CTU)來識別共享邊界,該編碼樹單元被劃分成編碼單元(CU)的層次結構以識別小於或等於閾值的CU並且該CU是大於閾值的父CU的子 CU。
在下面的詳細描述中,通過示例的方式闡述了許多具體細節,以便提供對相關教導的透徹理解。 基於本文描述的教導的任何變化、導出和/或擴展都在本公開的保護範圍內。 在一些情况下,與本文公開的一個或多個示例實現有關的公知的方法、過程、組件和/或電路可以在沒有詳細描述的情况下以相對較高的水平進行描述,以避免不必要地混淆本公開的教導的各個方面。
I. 分區結構
在HEVC中,圖片由切片組成,而切片由CTU組成。 CTU是大小爲8x8、16x16、32x32和64x64的正方形。 一個CTU分爲幾個編碼單元(CU)。 四叉樹結構用於劃分CTU。 CTU大小爲MxM(M是64、32或16的值之一)。 CTU可以是單個CU,也可以分爲4個大小爲M / 2xM / 2的單元,它們是編碼樹節點。 如果單位是葉節點,則它們將成爲CU。 否則,可以進一步拆分四叉樹,直到節點的大小達到SPS中指定的最小CU大小爲止。第1圖示出了將CTU劃分爲四叉樹。 實綫是CU邊界。 每個CU中存在一個或多個PU(prediction unit)。
PU與CU耦合,是用於共享預測資訊的基本塊。 在每個PU內部,應用相同的預測過程。 根據PU分區類型,CU可以被分成1、2或4個PU。 PU只能拆分一次。 可替代地,可以使用二叉樹(BT)分區結構。 具體而言,可以將一個塊遞歸地劃分爲2個較小的塊。 對稱的水平和垂直劃分是最有效和最簡單的劃分類型。 在一些實施例中,僅使用這兩種劃分類型。 可以遞歸劃分二叉樹分區過程,直到劃分塊的寬度或高度達到可在視訊位元流中以高級語法定義的最小塊寬度或高度爲止。
第2圖顯示了劃分過程(左)及其二叉樹(右)的示例。 在二叉樹的每個劃分的非葉節點中,標志指示使用水平還是垂直,0指示水平劃分,1指示垂直劃分。 二叉樹劃分結構可以用於將CTU分區爲CU,即根節點是CTU,葉節點是CU。 並且爲了簡化,作爲另一個實施例,沒有從CU到PU的進一步分區。 這意味著CU等於PU,因此,它等於二叉樹的葉節點是預測的基本單位。
在一些實施例中,使用QTBT結構(四叉樹加二叉樹結構)。它結合了四叉樹和二叉樹。在QTBT結構中,首先,通過四叉樹劃分過程對塊進行分區,可以迭代四叉樹(QT)劃分過程,直到大小達到最小葉節點大小爲止。其次,如果葉四叉樹塊不大於允許的最大二叉樹根節點大小,則可以將葉四叉樹塊進一步劃分爲二叉樹(BT)分區,可以迭代二叉劃分,直到劃分塊的寬度或高度達到最小允許寬度或高度爲止,或者二叉樹劃分深度達到最大允許深度。第3圖示出了QTBT結構的示例。 QTBT結構可以用於將CTU分區爲CU,即,根節點是通過QTBT結構劃分爲多個CU的CTU,並且通過預測和變換編碼來進一步處理CU。並且爲了簡化,作爲另一個實施例,沒有從CU到PU的進一步分區。這意味著CU等於PU,因此,它等於QTBT樹的葉節點是用於預測的基本單位。
對於I切片,將QTBT結構分別應用於亮度和色度。 對於P和B切片,QTBT結構同時應用於亮度和色度(色度達到某些最小大小時除外)。 換句話說,在I切片中,QTBT結構的塊分區樹在亮度CTB和兩個色度CTB之間有所不同。 具體地,亮度CTB具有QTBT結構的塊分區,並且兩個色度編碼樹單元(CTB)具有另一QTBT結構的塊分區。
與HEVC中的四叉樹(QT)結構相比,諸如四叉樹-二叉樹(QTBT)的靈活CU結構顯示出良好的編碼性能。 如第3圖所示,在QTBT中, CTU首先被四叉樹結構分區。 四叉樹葉節點進一步由二叉樹結構分區。 爲了將一個塊遞歸地分成兩個較小的塊,除了常規的對稱水平和垂直劃分類型之外,還可以選擇非對稱水平和垂直劃分類型。 構造二叉樹結構後,二叉樹葉節點表示爲CU,無需進行任何進一步分區即可用於預測和變換。
爲了進一步支持更多的分區形狀以實現更靈活的分區,設計三叉樹(TT)分區方法以捕獲位於塊中心的對象,而四叉樹(QT)和二叉樹(BT)分區方法總是沿著塊中心劃分。
多類型樹(Multi-Type-Tree,簡寫為MTT)塊分區通過允許MTT的第二級中的二叉樹和三叉樹分區方法來擴展QTBT中的兩級樹結構的概念。 MTT中的兩個樹級別分別稱爲區域樹(region tree,簡寫為RT)和預測樹(prediction tree,簡寫為PT)。第一級RT始終是四叉樹(QT)分區,而第二級PT可以是二叉樹(BT)分區或三叉樹(TT)分區。例如,CTU首先被RT分區,這是QT分區,並且每個RT葉節點可以被PT進一步劃分,PT是BT或TT分區。可以用PT進一步劃分被PT分區的塊,直到達到最大PT深度爲止,例如,可以首先通過垂直BT分區對一個塊進行分區,以生成左子塊和右子塊,以及左子塊通過水平TT分區進一步劃分,而右子塊通過水平BT分區進一步劃分。 PT葉節點是用於預測和變換的基本CU,並且不會進一步劃分。
第4圖示出了用於在MTT結構中分區CTU的幾種劃分類型或模式(a)-(e)。 劃分類型(a)(b)和(c)分別對應於四叉樹劃分、垂直二叉樹劃分和水平二叉樹劃分。 劃分類型(d)和(e)稱爲三叉樹(或三元樹(ternary tree))劃分類型,可將一個塊劃分爲三個較小的塊。 三元樹劃分的三個較小的塊在一個空間維度上具有减小的大小,而在另一空間維度上保持相同的大小。 通過允許四分之一的垂直或水平分區,三叉樹分區方法可以提供沿著塊邊界更快定位小對象的功能。
第5圖示出了根據MTT塊分區的用於塊分區的樹型信令的示例。 RT信令可以類似於QTBT塊分區中的四叉樹信令。 爲了發信PT節點,發信一個附加的位元子(bin),以指示它是二叉樹分區還是三叉樹分區。 對於被RT劃分的塊,發信第一位元子,以指示是否還有另一個RT劃分,如果該塊未被RT進一步劃分(即,第一位元子爲0),則發信第二位元子以指示是否存在PT劃分。 如果該塊未被PT進一步劃分(即第二位元子爲0),則該塊爲葉節點。 如果該塊被PT進一步劃分(即第二位元子爲1),則發送第三位元子指示水平或垂直分區,然後發送第四位元子來區分二叉樹(BT)或三叉樹(TT)分區。
在構造MTT塊分區之後,MTT葉節點是CU,無需進一步分區即可用於預測和變換。 在MTT中,樹形結構分別針對I切片中的亮度和色度進行編碼,並同時應用於P和B切片中的亮度和色度(當達到色度的某些最小大小時除外)。 也就是說,在I切片中,亮度CTB具有其QTBT結構的塊分區,並且兩個色度CTB具有另一QTBT結構的塊分區。
II. 幀間預測模式的候選
a. 合併模式和AMVP模式
爲了獲得混合編碼架構的最佳編碼效率,HEVC爲每個PU采用幀內預測和/或幀間預測模式。 對於幀內預測模式,空間相鄰的重構像素可用於生成35個方向上的方向預測。 對於幀間預測模式,運動資訊用於重構時間參考幀,時間參考幀用於生成運動補償的預測。 運動資訊可以包括運動向量、運動向量預測子、運動向量差、用於選擇參考幀的參考索引等。
當在幀間AMVP模式下對PU進行編碼時,利用傳輸的運動向量差(MVD)執行運動補償的預測,該運動向量差可與運動向量預測子(MVP)一起用於推導運動向量(MV)。 爲了在幀間AMVP模式下確定MVP,高級運動向量預測(AMVP)方案用於在包括兩個空間MVP和一個時間MVP的AMVP候選集中選擇運動向量預測因子。 因此,在AMVP模式下,需要對MVP的MVP索引和相應的MVD進行編碼和傳輸。 另外,還指定並發送在列表0(L0)和列表1(L1)的雙向預測和單向預測中指定預測方向的幀間預測方向,以及針對每個列表的參考幀索引。
當在跳過或合併模式下對PU進行編碼時,除了所選擇的候選的合併索引(Merge index)之外,沒有運動資訊被發送。 這是因爲“跳過”和“合併”模式利用運動推斷方法(MV = MVP + MVD,其中MVD爲零)從位於同一位置的圖片的空間相鄰塊(空間候選)或時間塊(時間候選)獲得運動資訊,其中該同一位置的圖片是列表0或列表1中的第一個參考圖片,其在切片標頭中被發信。 在跳過PU(Skip PU)的情况下,殘差信號也被省略。 爲了確定跳過和合併模式(Merge mode)的合併索引,使用合併方案在包含四個空間MVP和一個時間MVP的合併候選集中選擇運動向量預測子。
第6圖示出了用於幀間預測模式(即,跳過、合併和AMVP)的MVP候選集。 該圖示出了正在被編碼或解碼的視訊圖片或幀的當前塊600。 當前塊600(可以是PU或CU)參考相鄰塊以將空間和時間MVP導出爲用於AMVP模式、合併模式或跳過模式的MVP列表或候選列表。
對於AMVP模式,左MVP是A0
、A1
中的第一個可用的,頂部MVP是B0
、B1
、B2
中的第一個可用的,時間MVP是TBR
或TCTR
中的第一個可用的 (首先使用TBR
,如果沒有TBR
,則使用TCTR
)。 如果左MVP不可用,並且頂部MVP並非按比例縮放的MVP,則在B0
、B1
和B2
之間存在按比例縮放的MVP時,可以導出第二個頂部MVP。 因此,在兩個空間MVP和一個時間MVP的推導過程之後,僅前兩個MVP可以被包括在候選列表中。 如果在删除冗餘後可用MVP的數量少於兩個,則將零向量候選添加到候選列表。
對於跳過模式和合併模式,從A0
、A1
、B0
和B1
導出多達四個空間合併索引,並且從TBR
或TCTR
導出一個時間合併索引(首先使用TBR
,如果TBR
不可用, 則使用TCTR
)。 如果四個空間合併索引中的任何一個不可用,則位置B2
用於導出合併索引作爲替換。 在導出四個空間合併索引和一個時間合併索引之後,將冗餘的合併索引删除。 如果非冗餘合併索引的數量少於五個,則可以從原始候選中導出其他候選,並將其添加到候選列表中。 有三種類型的導出候選:
1.組合的雙向預測合併候選(導出候選類型1)
2.按比例縮放的雙向預測合併候選(導出候選類型2)
3.零向量合併/ AMVP候選(導出候選類型3)
對於導出候選類型1,通過組合原始合併候選來創建組合的雙向預測合併候選。 具體地,如果當前切片是B切片,則可以通過組合來自列表0和列表1的候選來生成進一步的合併候選。 第7圖示出了包括合併的雙向預測合併候選的合併候選列表。 如圖所示,具有mvL0(列表0中的運動向量)和refIdxL0(列表0中的參考圖片索引)或mvL1(列表1中的運動向量)和refIdxL1(列表1中的參考圖片索引)的兩個原始候選用於創建雙向預測合併候選。
對於導出候選類型2,通過縮放原始合併候選來創建縮放合併候選。 第8圖示出了包括縮放的合併候選的合併候選列表。 如圖所示,原始合併候選具有mvLX(列表X中的運動向量,X可以是0或1)和refIdxLX(列表X中的參考圖片索引,X可以是0或1)。 例如,原始候選A是具有mvL0_A和參考圖片索引ref0的列表0單向預測MV。 候選A首先被複製到列表L1中,具有參考圖片索引ref0'。 通過基於ref0和ref0'縮放mvL0_A來計算縮放後的MV mvL0'_A。 創建在列表L0中具有mvL0_A和ref0,在列表L1中具有mvL0’_A和ref0’的按比例縮放的雙向預測合併候選,並將其添加到合併候選列表中。 同樣,創建一個縮放的雙向預測合併候選,該合併候選在列表0中具有mvL1’_A和ref1’,在列表1中具有mvL1_A,ref1,並將其添加到合併候選列表中。
對於導出的候選類型3,通過組合零向量和參考索引來創建零向量候選。 如果創建的零向量候選不是重複的,則將其添加到合併/ AMVP候選列表。 第9圖示出了將零向量候選添加到合併候選列表或AMVP候選列表的示例。
b. 子-PU時間運動向量預測(ATMVP)
ATMVP(高級時間運動向量預測)模式(或也稱爲子PU時間運動向量預測(SbTMVP))是用於合併候選的基於子PU的模式。 ATMVP模式使用空間相鄰獲取初始向量,該向量用於獲取並置圖片上並置塊的坐標。擷取並置圖片上的並置塊的子CU(通常爲4x4或8x8)運動資訊,並將其填充到當前合併候選的子CU(通常爲4x4或8x8)運動緩衝器中。存在ATMVP的數種實施方式。 ATMVP的描述如下:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊探索小組(JVET):第3次會議:2016年5月26日至6月1日,瑞士日內瓦,標題:“Algorithm Description of Joint Exploration Test Model 3”。在以下情况中也描述了ATMVP:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊專家組(JVET)第11次會議:盧布爾雅那,SI,2018年7月10-18日,JVET-K0346- v3,標題:“CE4-related: One simplified design of advanced temporal motion vector prediction (ATMVP)”。
c. 空間-時間運動向量預測(STMVP)
STMVP模式是用於合併候選的基於子PU的模式。 子PU的運動向量是按照光栅掃描順序遞歸生成的。 當前子PU的MV推導在MV縮放之前確定了兩個空間相鄰和一個時間相鄰。 在擷取和縮放MV之後,將所有可用的運動向量(最多3個)進行平均,並將其分配爲當前子PU的運動向量。 STMVP的描述如下:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊探索小組(JVET):第3次會議:瑞士日內瓦,2016年5月26日至6月1日,標題:“Algorithm Description of Joint Exploration Test Model 3”,特別是第2.3.1.2節:空間-時間運動向量預測(STMVP)。
d. 基於歷史的合併模式和AMVP
實施基於歷史的合併模式的視訊編解碼器可以將一些先前的CU的合併候選存儲在歷史陣列中。 對於當前正在被編碼或解碼的CU,視訊編解碼器可使用歷史陣列內的一個或多個候選來增强原始合併模式候選。 基於歷史的方法也適用於AMVP候選列表。 基於歷史的合併模式在以下文檔中有描述:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊專家組(JVET)第11次會議上:盧布爾雅那,SI,2018年7月10-18日, 文檔:JVET-K0104,“CE4-related: History-based Motion Vector Prediction”。
e. 非相鄰合併模式和AMVP
非相鄰合併候選使用遠離當前CU的一些空間候選。 基於非相鄰的方法也可以應用於AMVP候選列表。 非相鄰合併模式的示例如下所示:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊專家組(JVET),第11次會議:盧布爾雅那,SI, 2018年7月10-18,文檔:JVET-K0228,標題:“CE 4-2.1: Adding non-adjacent spatial merge candidates”。 非相鄰合併候選的示例如下:ITU-T SG 16 WP 3和ISO / IEC JTC 1 / SC 29 / WG 11的聯合視訊專家組(JVET),第11次會議:盧布爾雅那,SI, 2018年7月10-18,文檔:JVET-K0286,標題:“CE4: Additional merge candidates (Test 4.2.13)”
f. 仿射合併模式
HEVC僅將平移運動模型用於運動補償預測。 現實世界中還有許多其他類型的運動,例如放大和縮小、旋轉、透視運動和其他不規則運動。 這些其他類型的運動中的某些可以用仿射變換或仿射運動表示,它們可以保留點、直綫和平面。 仿射變換不一定要保留直綫之間的角度或點之間的距離,但其要保留直綫上點之間的距離之比。 當仿射運動塊正在移動時,可以通過兩個控制點運動向量或四個參數來描述該塊的運動向量場(vector field),如下所示:
變換後的塊是矩形塊。 此運動塊中每個點的運動向量場可以用以下公式描述:
其中,(v0x
,v0y
)是左上角的控制點運動向量,(v1x
,v1y
)是該塊右上角的另一個控制點運動向量。 在一些實施例中,對於幀間模式編碼的CU,當CU大小等於或大於16×16時,發信affine_flag以指示是否應用了仿射幀間模式。 如果當前CU處於仿射幀間模式,則使用相鄰有效重構塊來構建候選MVP對列表。第10圖示出了四參數仿射運動模型。
第11圖示出了仿射幀間模式的MVP推導。如第11圖所示,從塊A0
、A1
或A2
的運動向量中選擇v0
,並且從塊B0
和B1
的運動向量中選擇v1
。在位元流中發信候選MVP對的索引。在位元流中編碼兩個控制點的MV差(MVD)。
在一些實施例中,如果當前PU是合併PU,則檢查相鄰的五個塊(第11圖中的C0
、B0
、B1
、C1
和A0
塊)是否其中之一為仿射幀間模式或仿射合併模式。如果是,則發信affine_flag指示當前PU是否爲仿射模式。當以仿射合併模式對當前PU進行編碼時,通過仿射模式對來自有效相鄰重構塊的第一塊進行編碼。如第11圖所示,候選塊的選擇順序是從左、上、右上、左下到左上(C0
àB0
àB1
àC1
àA0
)。第一仿射編塊的仿射參數用於導出當前PU的v0
和v1
。
g. 當前圖片參考(Current Picture Referencing,簡寫為CPR)
當前圖片參考(CPR)也被稱爲幀內塊複製(IBC)。 CPR(或IBC)運動向量是指當前圖片中已經重構的參考採樣的運動向量。 CPR編碼的CU被發信爲幀間編碼的塊。 CPR編碼的CU的亮度運動(或塊)向量必須爲整數精度。 色度運動向量也被裁剪爲整數精度。 與AMVR結合使用時,CPR模式可以在1像素(1-pel)和4像素運動向量精度之間切換。 當前圖片位於參考圖片列表L0的末尾。 爲了减少記憶體消耗和解碼器複雜性,VTM3中的CPR僅允許使用當前CTU的重構部分。 該限制允許使用硬體上的本地片上記憶體來實現CPR模式。
在編碼器側,針對CPR執行基於哈希的(hash-based)運動估計。編碼器對寬度或高度不大於16個亮度採樣的塊執行RD檢查。對於非合併模式,首先使用基於哈希的搜索來執行塊向量搜索。如果哈希搜索未返回有效的候選,則將執行基於塊匹配的本地搜索。在基於哈希的搜索中,當前塊和參考塊之間的哈希密鑰匹配(hash key matching)(32位CRC)被擴展爲所有允許的塊大小。當前圖片中每個位置的哈希密鑰計算均基於4x4子塊。對於較大尺寸的當前塊,當所有4×4子塊的所有哈希密鑰與對應參考位置中的哈希密鑰匹配時,確定哈希密鑰與參考塊的哈希密鑰匹配。如果發現多個參考塊的哈希密鑰與當前塊的哈希密鑰匹配,則計算每個匹配參考的塊向量成本,然後選擇成本最小的那個。
在塊匹配搜索中,將搜索範圍設置爲當前CTU中當前塊的左側和頂部的N個採樣。 在CTU的起始處,如果沒有時間參考圖片,則將N的值初始化爲128。 如果存在至少一個時間參考圖片,則將N的值初始化爲64。 哈希命中率定義爲CTU中使用基於哈希的搜索找到匹配項的採樣的百分比。 在對當前CTU進行編碼時,如果哈希命中率低於5%,則N將减少一半。
III. 共享候選列表
爲了簡化編解碼器操作複雜度,一些實施例提供了一種使用共享候選列表來編碼或解碼多個像素塊的方法。 候選列表是指合併模式或AMVP模式候選列表,或其他類型的預測候選列表(例如DMVR或雙邊微調(bi-lateral refinement)候選列表、仿射合併模式、子塊合併模式、仿射幀間/ AMVP模式、IBC合併、IBC AMVP)。 共享候選列表是基於大於葉CU(例如,父CU,或QTBT或QTBTTT樹中子樹的一個根,或QT樹的一個節點)的邊界生成的候選列表, 並且可以爲邊界內或子樹內的所有葉CU共享生成的候選列表。
在一些實施例中,共享候選列表是由公共共享邊界(也稱爲共享邊界)包含或其內的CU共享的候選列表。 對於一些實施例,“共享邊界”被定義爲在圖片內部對準的最小塊的矩形區域(最小塊通常爲4x4)。 “共享邊界”內的每個CU可以使用基於“共享邊界”生成的公共共享候選列表。 具體地,共享候選列表的候選包括基於“共享邊界”的空間相鄰位置和時間相鄰位置,或由共享邊界定義的區域。 共享邊界可以是正方形塊或非正方形塊。 共享邊界的大小/深度/寬度/高度可以在位元流中以序列級、圖片級或切片級發信。
第12圖示出了用於定義或識別共享候選列表的共享邊界的幾個示例。 這些示例包括:與QT劃分爲四個4x4 CU的8x8 CU對應的正方形共享邊界1210; 與BT劃分成兩個4x8 CU的8x8 CU相對應的正方形共享邊界1220; 矩形共享邊界1230,其對應於BT劃分爲兩個4x8 CU的4x16根CU;以及矩形共享邊界1240,其對應於被TT劃分爲兩個4x4 CU和一個4x8 CU的4x16 CU。 對應於共享邊界的CU也被稱爲共享邊界的根CU。
在一些實施例中,共享的候選列表是由子樹內的CU共享的候選列表。 “子樹”可以指的是QTBT、QTBTTT的子樹或另一種類型的劃分樹(split tree)。 第13圖示出了劃分樹的子樹,其與可以由共享候選列表編碼的共享邊界中的CU相對應。 該圖示出了CTU 1300,其劃分結構由分層樹1350表示,該分層樹是QTBT或QTBTTT劃分樹。 在CTU 1300內,共享邊界1310定義了根CU,其被劃分成具有各種劃分深度的幾個子CU。 共享邊界1310所包含的子CU對應於劃分樹1350中的子樹1360中的節點,並且子樹1360中的葉節點對應於共享邊界1310中的葉CU。換句話說,共享候選列表由子樹1360的葉節點共享。
可以基於共享塊邊界(例如,諸如共享邊界1310或子樹1360之類的根CU邊界)來生成共享候選列表。對於子樹內的某些或全部葉CU重複使用共享候選列表。 針對子樹的根生成共享候選列表,即,基於根CU或子樹的矩形邊界(或共享邊界)來識別共享候選列表的候選的空間相鄰位置和時間相鄰位置。
共享候選列表的候選是基於由共享邊界定義的區域的空間或時間相鄰來識別的預測候選。 然後,通過使用從共享候選列表中選擇的一個或多個預測候選,對共享邊界所包圍的一個或多個CU進行編碼。
第14圖示出了用於識別共享候選列表的共享邊界1400。 共享邊界1400定義區域1410。區域1410可以對應於CU。 區域1410可以是劃分樹或CTU(例如,BT、QT、MTT等)的一部分,並且可以劃分成諸如CU 1411、1412、1413和1414的子CU。子CU可以是不能進一步劃分的葉CU。 子CU也可以被分成更大的劃分深度的子CU,直到到達葉CU爲止。 在該示例中,由共享邊界1400定義的區域1410(或與區域1410相對應的根CU)被劃分爲幾個葉CU,包括葉CU 1421、1422和1423。
葉CU 1421、1422和1423全部通過使用基於共享邊界1400識別或定義的共享候選列表來編碼。共享候選列表可以是合併模式列表、AMVP列表、IBC合併列表、IBC AMVP列表或其他類型的預測候選列表。 共享候選列表可以包括從區域1410的相鄰(例如,來自空間相鄰A0
、A1
、B0
、B1
、B2
的空間MVP以及從時間相鄰TBR
、TCTR
的時間MVP)衍生(例如,繼承)的預測候選。 通常,共享候選列表可以包括合併模式、AMVP模式候選、IBC合併模式候選、IBC AMVP模式候選、仿射合併模式候選、子塊合併模式候選、仿射AMVP模式候選或其他類型的預測候選。 共享候選列表還可以包括一個或多個CPR或IBC候選,它們引用當前圖片中已重構的參考採樣。
本公開的一些實施例提供了用於識別共享邊界的方法。 在一些實施例中,定義了用於識別共享邊界SHARED_THD的CU大小閾值。 對於任何葉CU,CU大小>= SHARED_THD的最大根CU將用作共享子樹根,或使用共享候選列表的子樹的根。 在圖12的示例中,對於共享邊界1240處的共享候選列表,兩個4x4 CU和一個4x8 CU屬於相同的4x16 CU。 在該示例中,SHARED_THD爲64,因此4x16 CU(大小爲64)是“共享子樹”的根,其邊界是共享邊界1240(因爲共享邊界1240定義的區域是4x16 CU )。 因此,合併列表是基於4x16 CU生成的,並由4x16 CU的所有子CU(在此示例中爲2個4x4 CU和一個4x8 CU)共享。
第15a圖和第15b圖示出了使用CU大小閾值來識別共享候選列表的共享邊界。該示例使用32作爲CU大小閾值(SHARED_THD)。在一些實施例中,識別共享邊界包括遍歷CTU以識別小於或等於閾值的CU並且該CU是大於該閾值的父CU的子CU。在一些實施例中,識別共享邊界包括遍歷CTU以識別大於或等於閾值的CU,並且該CU是小於閾值的子CU的父CU。該圖示出了識別三個CTU或CU 1510、1520和1530中的共享邊界。
第15a圖示出了通過識別小於或等於SHARED_THD(32)的CU並且識別出的CU是大於SHARED_THD的父CU的子CU而識別共享邊界。視訊編解碼器可從葉CU到CTU根遍歷每個CTU。
對於CTU或CU 1510,遍歷遇到大小爲16小於SHARED_THD 32的4x4 CU 1511,並且CU 1512是大小爲64大於32的8x8 CU 1512的QT子級。結果,視訊編碼器將4x4 CU 1511識別爲共享候選列表的根CU,並且將其邊界1515識別爲如第15a圖所示的實施例中的共享邊界。
對於CTU或CU 1520,遍歷遇到大小爲16小於32的4x4 CU 1521。4x4 CU 1521是大小爲32的8x4 CU 1522的BT子級,其大小小於32。遍歷繼續至8x4 CU 1522,其大小等於32。因此,視訊編碼器將8x4 CU 1522標識爲共享候選列表的根CU,並將其邊界1525標識爲如第15a圖所示的實施例中的共享邊界。
對於CTU或CU 1530,遍歷遇到大小16小於32的4x4 CU 1531,並且CU 1531是大小64大於32的4x16 CU 1532的TT子級。作為結果在第15a圖所示的實施例中,視訊編解碼器將4×4 CU 1531識別爲共享候選列表的根CU,並將其邊界1535識別爲共享邊界。
第15b圖示出了通過識別大於或等於SHARED_THD的CU並且識別出的CU是小於SHARED_THD的子CU的父CU來識別共享邊界。視訊編碼器可從CTU根向葉CU遍歷每個CTU。
對於CTU或CU 1510,遍歷遇到大小爲64大於32的8x8 CU 1512。8x8 CU 1512是大小爲16小於32的4x4 CU 1511的QT父級。結果,在第15b圖所示的實施例中,視訊編碼器將8x8 CU 1512識別爲共享候選列表的根CU,並且將其邊界1517識別爲共享邊界。
對於CTU或CU 1520,遍歷遇到大小等於32的8x4 CU 1522。8x4 CU 1522是大小爲16小於32的4x4 CU 1521的BT父級。結果在第15b圖所示的實施例中,視訊編解碼器將8×4 CU 1522識別爲共享候選列表的根CU,並將其邊界1527識別爲共享邊界。
對於CTU或CU 1530,遍歷遇到大小爲64大於32的4x16 CU 1532。4x16 CU 1532是大小爲16小於32的4x4 CU 1531的TT父級。結果,在第 15b圖所示的實施例中,視訊編碼器將4x16 CU 1532識別爲共享候選列表的根CU,並且將其邊界1537識別爲共享邊界。
在一些實施例中,用於標識共享邊界SHARED_THD的CU大小閾值是固定的,並且對於所有圖片大小和所有位元流都是預定義的。在一些實施例中,SHARED_THD可以根據圖片大小而變化,即,對於不同的圖片大小,SHARED_THD可以是不同的。在一些實施例中,可以從編碼器向解碼器發信SHARED_THD。 在發信SHARED_THD中的單元的最小大小還可以在序列級別(sequence level)、圖片級別、切片級別或PU級別中被分別編碼。在一些實施例中,要求所選擇或識別的共享子樹根完全在當前圖片內。如果子樹根在圖片邊界之外有一些像素,則該子樹將不用作共享子樹根。
在一些實施例中,共享邊界的根CU(或父CU)或大小/深度/形狀/寬度/高度被用於導出共享候選列表。導出共享候選列表時,對於任何基於位置的導出(例如,根據當前塊/ CU / PU位置/大小/深度/形狀/寬度/高度導出參考塊位置),使用根CU或共享邊界的位置和形狀/ 大小/深度/寬度/高度。
在一些實施例中,根CU或共享邊界的大小/深度/形狀/區域/寬度/高度可以是預先定義的或以序列/圖片/切片/圖塊/ CTU行級別(row-level)或預先定義的區域(例如CTU或CTU行)發信。根CU或共享候選列表的共享邊界可以是正方形或非正方形的。根CU或共享邊界的大小/深度/形狀/區域/寬度/高度可以被預先定義和/或取决於輸入圖片的大小/深度/寬度/高度。
在一些實施例中,如果當前CU大於或等於定義的閾值區域/大小/形狀/面積/寬度/高度,並且子分區之一或所有子分區或某些子分區爲小於定義的閾值區域/大小/形狀/面積/寬度/高度,則當前CU是根CU或共享邊界。在一些實施例中,如果當前CU的深度小於(例如,淺於)或等於定義的閾值深度,並且子分區之一或所有子分區或某些子分區的深度比定義的閾值深度大(例如深於),則當前CU是根CU或共享邊界。
在一些實施例中,如果當前CU小於或等於定義的閾值區域/尺寸/形狀/面積/寬度/高度,並且當前CU的父CU大於定義的閾值區域/大小/形狀/面積/寬度/高度,當前CU是共享候選列表的根CU(即共享邊界)。例如,如果定義的閾值區域爲1024,當前CU大小爲64x32(寬度爲64,高度爲32),則使用垂直TT劃分(64x32 CU分爲16x32子CU,32x32子-CU和16×32子CU),在一個實施例中,64×32當前CU是根CU。此64x32 CU中的子CU使用基於64x32 CU的共享候選列表。 64x32當前CU可能未標識爲根CU。而是將16x32子CU,32x32子CU和16x32子CU標識爲根CU。在一些實施例中,如果當前CU的深度大於(例如,深於)或等於定義的深度,並且父CU小於(例如,淺於)所定義的深度,則當前CU爲根CU。
在一些實施例中,當在當前CU上執行TT劃分爲三個不同大小的分區時,根CU或共享邊界區域/大小/深度/形狀/面積/寬度/高度在不同的TT分區中可以是不同的 。 例如,對於通過TT分爲第一、第二和第三分區的當前CU,對於第二分區,根CU或共享邊界區域/大小/深度/形狀/面積/寬度/高度的閾值爲與CU相同。 然而,對於第一和第三分區,根CU或共享邊界區域/大小/形狀/面積/寬度/高度的閾值(或用於識別其的閾值)相對於第二分區可以除以2(或深度增加1)。
在一些實施例中,爲QT分區或QT劃分CU定義了根CU或共享邊界。如果葉QT CU等於或大於定義的閾值區域/大小/ QT深度/形狀/面積/寬度/高度,則將根CU或共享邊界標識或定義爲葉QT CU區域/大小/ QT深度/形狀/面積/寬度/高度。 QT葉CU內的所有子CU(例如,被BT或TT劃分或分區)使用QT葉CU作爲根CU或共享邊界。如果QT CU(不是QT葉CU)等於定義的閾值區域/大小/ QT深度/形狀/面積/寬度/高度,則此QT CU用作根CU或共享邊界。QT CU內的所有子CU(例如,被QT、BT或TT劃分或分區)使用QT CU作爲根CU或共享邊界。在一個示例中,根CU或共享邊界的區域/大小/ QT深度/形狀/面積/寬度/高度被用於導出參考塊位置。在另一示例中,當前CU的區域/大小/ QT深度/形狀/面積/寬度/高度被用於導出參考塊位置。如果參考塊位置在根CU或共享邊界的內部,則將參考塊位置移到根CU或共享邊界的外部。在另一示例中,當前CU的區域/大小/ QT深度/形狀/面積/寬度/高度被用於導出參考塊位置。如果參考塊位置在根CU或共享邊界之內,則不使用參考塊。
在上述深度(或定義的用於識別根CU或共享候選列表的共享邊界的閾值深度)中,該深度可以等於(((A * QT深度)>> C)+(( B * MT深度)>> D)+ E)>> F + G或((((A * QT深度)>> C)+((B * BT深度)>> D)+ E)>> F + G,其中A、B、C、D、E、F、G是整數。 例如,深度可以等於2 * QT深度+ MT深度或2 * QT深度+ BT深度或QT深度+ MT深度或QT深度+ BT深度。
一些實施例爲共享的候選列表或非正方形合併估計區域(merge estimation region,簡寫為MER)提供閾值定義(或用於定義閾值的方法)。 令共享候選(或MER)閾值表示爲T。共享邊界是CU劃分樹中的祖先(例如,父代)節點,表示爲ANC_NODE。 選擇共享邊界(或ANC_NODE)以滿足以下條件:
條件1:ANC_NODE (的大小)>= T
條件2: ANC_NODE的父對象(的大小)> T
條件3:ANC_NODE的像素位於當前圖片邊界內。 視訊編碼器通過以下方式搜索滿足這些條件的ANC_NODE:(i)從葉CU追溯(在劃分樹上)追溯到CTU根,或(ii)從CTU根(在劃分樹上)向下到葉CU。 在一些實施例中,條件2可能不存在。 如果葉CU在圖片邊界附近,則對於一個節點,如果滿足條件1和2,但不滿足條件3,則該節點將不是ANC_NODE,並且視訊編解碼器轉至子CU,以搜索ANC_NODE。
在一些實施例中,對ANC_NODE的確定是從CTU根向下(在劃分樹上)到葉CU的搜索過程,並且選擇共享邊界(或ANC_NODE)以滿足這些條件:
條件 1 : ANC_NODE(的大小) >= T.
條件2:對於解碼,一個劃分子項(splitting child)(例如BT劃分或TT劃分或QT劃分)的大小>T。
條件3:ANC_NODE的像素位於當前圖片邊界內。在一些實施例中,條件1可能不存在。如果葉CU在圖片邊界附近,則對於一個節點,如果滿足條件1和2,但不滿足條件3,則該節點將不會被標識爲ANC_NODE,並且視訊編碼器將進入子CU,以搜索ANC_NODE。對於條件2,當前CU的最小劃分子項(如果當前CU大小= cur_size)爲:對於QT:cur_size / 4,對於TT:cur_size / 4,對於BT:cur_size / 2。在一些實施例中,如果滿足條件1和2但不滿足條件3,則當前CU不是ANC_NODE,並且視訊編解碼器轉至子CU以在條件1、2和3符合ANC_NODE的情況下搜索節點或子CU。如果對於葉CU,條件1、2和3不全部滿足,則該葉CU將不具有共享模式(例如,沒有共享候選列表),並且視訊編解碼器爲葉CU本身生成合併模式列表。例如,如果T = 64,並且當前節點或CU的大小爲128,則在解碼器側,此節點將進一步劃分爲TT(子節點1爲32,子節點2爲64,子節點3爲32),則ANC_NODE是當前節點(大小128)。再舉一個例子,如果T = 64並且當前節點或CU的大小爲128,則若在解碼器側該節點被進一步劃分爲BT(子節點1爲64,子節點2爲64),則當前節點不是ANC_NODE。
在一些實施例中,共享邊界是CU劃分樹中一個祖先(父)節點的CU節點組(Group of CU node),表示爲SHARED_BOUND。 “ CU節點組”是屬一個公共父節點或一個公共祖先節點的幾個非重叠CU /節點(在CU劃分樹節點中),這些CU節點可以合併爲一個矩形區域。 在一個實施例中,CU節點組的CU必須全部是公共父節點的“ 1級”子節點。 在一些實施例中,該組CU節點中的CU可以具有相同的祖先節點,但是不一定是“ 1級”公共父節點。第16圖示出了“ CU節點組”的示例。 在圖中,“ CU節點組”有2個子CU占據了一半的父節點。 SHARED_BOUND的確定是從CTU根向下(在劃分樹上)到葉CU的搜索過程。 選擇共享邊界(或SHARED_BOUND)以滿足以下條件:
條件1 : SHARED_BOUND(的大小) >= T.
條件2:對於解碼,“ CU節點組”內的一個CU節點>T。
條件3:SHARED_BOUND的像素位於當前圖片邊界內。 在一些實施例中,條件1可能不存在於圖片邊界附近。 這是因爲如果葉CU在圖片邊界附近,則爲了滿足條件3,可以在圖片邊界附近放弃或捨棄條件1。
在一些實施例中,共享列表概念可以應用於CPR。 CPR的合併列表可以在共享邊界或根CU上共享並生成(此處共享邊界是指共享根邊界或共享矩形邊界)。合併列表可以包括CPR候選或非CPR候選,但是共享列表可以存儲兩種類型,並且可以在共享邊界上生成。
對於CPR中的雙樹(dual-tree)流,在某些情况下,亮度將運行葉CU掃描,而色度將再次運行,即,對亮度和色度均執行葉CU掃描。在這種情况下,亮度情况和色度情况的共享邊界可能不同。在一些實施例中,生成用於亮度情况的CPR的共享列表,然後生成用於色度情况的CPR的共享列表。即,亮度和色度的共享閾值可以不同,並且它們的共享邊界可以不同。對於多假設合併(多假設:合併幀間+幀內,或合併幀間+合併幀間,或合併幀間+ AMVP幀間),對合併列表執行後處理以移除所有CPR候選。 (從共享候選列表中)移除CPR候選也可以在共享邊界上執行。
一些實施例基於共享候選列表爲合併模式提供共享合併索引和共享參考索引。 “用於共享的子CU”可以指代使用共享候選列表的子樹內或“共享邊界”內的CU。
爲了使用共享合併索引,在合併模式下,不僅每個“用於共享的子CU”的合併候選列表彼此相等(使用共享合併候選列表),而且每個“用於共享的子CU”的最終選擇的合併索引彼此相等(使用共享的合併候選索引)。爲了將共享參考索引用於合併模式,在合併模式下,不僅每個“用於共享的子CU”的合併候選列表彼此相等(使用共享的合併候選列表),每個“用於共享的子CU”都選擇了合併索引,其對應的候選具有的參考索引等於“用於共享的子CU”的所有其他CU的選定合併索引。
對於一些實施例,共享候選列表、共享合併索引和其他共享屬性的方法可以應用於其他類型的合併列表構造方法,諸如基於歷史的合併模式構造和非相鄰合併候選。 也就是說,共享屬性提議或共享候選列表通常適用於所有合併模式算法和AMVP模式算法。 此外,在一些實施例中,發信標記以打開或關閉候選列表共享方法。 在一些實施例中,可以發信標志以指示是否啓用了共享候選列表。 發信中單位的最小大小也可以按序列級別、圖片級別、切片級別或PU級別分別編碼。
IV. 示例的視訊編碼器
第17圖示出了可使用共享候選列表來編碼CTU內的多個CU的實例視訊編碼器1700。 如圖所示,視訊編碼器1700從視訊源1705接收輸入視訊信號,並將該信號編碼爲位元流1795。視訊編碼器1700具有若干組件或模塊,用於對來自視訊源1705的信號進行編碼,至少包括選自以下的一些組件: 變換模塊1710、量化模塊1711、逆量化模塊1714、逆變換模塊1715、圖片內估計模塊1720、幀內預測模塊1725、運動補償模塊1730、運動估計模塊1735、 環路濾波器1745、重構圖片緩衝器1750、MV緩衝器1765和MV預測模塊1775以及熵編碼器1790。運動補償模塊1730和運動估計模塊1735是幀間預測模塊1740的一部分 。
在一些實施例中,模塊1710至1790是由計算設備或電子裝置的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。在一些實施例中,模塊1710-1790是由電子裝置的一個或多個集體電路(IC)實現的硬體電路的模塊。儘管將模塊1710 – 1790圖示爲單獨的模塊,但是某些模塊可以組合爲單個模塊。
視訊源1705提供原始視訊信號,該原始視訊信號無需壓縮即可呈現每個視訊幀的像素資料。减法器1708計算視訊源1705的原始視訊像素資料與來自運動補償模塊1730或幀內預測模塊1725的預測像素資料1713之間的差。變換模塊1710將該差(或剩餘像素資料或殘差信號1709)轉換成變換係數(例如,通過執行離散余弦變換(DCT))。量化模塊1711將變換係數量化爲量化資料(或量化係數)1712,其由熵編碼器1790編碼爲位元流1795。
逆量化模塊1714對量化資料(或量化係數)1712進行逆量化以獲得變換係數,並且逆變換模塊1715對變換係數執行逆變換以産生重構殘差1719。重構殘差1719與預測像素資料1713相加産生重構像素資料1717。在一些實施例中,重構像素資料1717被臨時存儲在行緩衝器(未示出)中,用於圖片內預測和空間MV預測。 重構像素由環路濾波器1745濾波,並存儲在重構圖片緩衝器1750中。在一些實施例中,重構圖片緩衝器1750是視訊編碼器1700外部的記憶體。在一些實施例中,重構圖片緩衝器1750是視訊編碼器1700內部的記憶體。
圖片內估計模塊1720基於重構的像素資料1717執行幀內預測以産生幀內預測資料。 幀內預測資料被提供給熵編碼器1790,以被編碼爲位元流1795。幀內預測資料還被幀內預測模塊1725用來産生預測像素資料1713。
運動估計模塊1735通過産生MV來執行幀間預測,其中,MV針對存儲在重構圖片緩衝器1750中的先前解碼的幀的參考像素資料。這些MV被提供給運動補償模塊1730以産生預測像素資料。
代替對位元流中的完整的實際MV進行編碼,視訊編碼器1700使用MV預測來生成預測的MV,並且將用於運動補償的MV與預測的MV之間的差編碼爲殘差運動資料並存儲在 位元流1795。
MV預測模塊1775基於爲對先前的視訊幀進行編碼而生成的參考MV(即,用於執行運動補償的運動補償MV)來生成預測MV。 MV預測模塊1775從MV緩衝器1765中的先前視訊幀中擷取參考MV。視訊編碼器1700將爲當前視訊幀生成的MV存儲在MV緩衝器1765中,作爲用於生成預測MV的參考MV。
MV預測模塊1775使用參考MV來創建預測的MV。 可以通過空間MV預測或時間MV預測來計算預測的MV。 熵編碼器1790將當前幀的預測MV和運動補償MV(MC MV)之間的差(殘差運動資料)編碼到位元流1795中。
熵編碼器1790通過使用諸如上下文自適應二進制算術編碼(CABAC)或霍夫曼編碼的熵編碼技術將各種參數和資料編碼到位元流1795中。 熵編碼器1790將各種報頭元素、標志以及量化的變換係數1712以及殘差運動資料作爲語法元素編碼到位元流1795中。位元流1795又被存儲在存儲設備中或者通過通信介質,例如網路,被發送到解碼器。
環路濾波器1745對重構的像素資料1717執行濾波或平滑操作,以减少編碼的僞像,特別是在像素塊的邊界處。 在一些實施例中,執行的濾波操作包括採樣自適應偏移(SAO)。 在一些實施例中,濾波操作包括自適應環路濾波器(ALF)。
第18圖說明視訊編碼器1700的實施共享候選列表的部分。 如圖所示,運動補償模塊1730包括一個或多個CU運動補償模塊1831-1834。 每個CU運動補償模塊處理一個葉CU的編碼。 當對CU運動補償模塊1831-1834的各CU進行編碼時,CU運動補償模塊1831-1834可以訪問共享候選列表1800的內容以及重構的圖片緩衝器1750的內容。每個CU運動補償模塊從共享候選列表中選擇預測候選,並且從重構圖片緩衝器1750中擷取相應的採樣,以通過運動補償來執行預測。 來自不同的CU運動補償模塊1831-1834的預測被用作預測像素資料1713。
重要的是要注意,即使被編碼的CU是彼此相鄰的,不同的CU補償模塊1831-1834仍可以並行地對其各自的CU執行運動補償。 這是因爲使用共享候選列表的CU之間沒有相互依賴關係,因此可能會同時進行編碼。
從MV緩衝器1765擷取共享候選列表1800的內容,該MV緩衝器1765存儲由共享邊界定義的區域的各個相鄰的運動向量,該共享邊界可以對應於CTU的根CU或子樹。 共享候選列表1800從MV緩衝器1765包括的運動向量可以包括各種類型的合併或AMVP候選,諸如仿射候選、IBC候選、子PU候選、基於歷史的候選、非相鄰候選等。 基於歷史的候選可以被存儲在歷史緩衝器1810中,該歷史緩衝器是存儲先前編碼的CU的合併候選的FIFO。
第19圖概念性地示出了用於使用共享候選列表來編碼多個CU的過程1900。 在一些實施例中,實現編碼器1700的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程1900。 在一些實施例中,實現視訊編碼器1700的電子裝置執行過程1900。
視訊編碼器接收(在步驟1910)視訊序列中當前圖片的CTU的資料。 資料可以是來自視訊源的當前圖片中與CTU對應的區域的原始像素資料。 可以將CTU作爲QT、BT或TT劃分樹劃分爲CU或子CU。
視訊編碼器識別(在步驟1920處)包含CTU中的多個CU(或像素塊)的共享邊界。 共享邊界可以對應於CTU的子樹的根。 可以基於CU大小閾值(SHARED_THD)來識別共享邊界。 在一些實施例中,通過遍歷CTU以識別大於或等於CU大小閾值的CU並且該CU是小於閾值的子CU的父CU,來標識共享邊界。 在一些實施例中,通過遍歷CTU以標識小於或等於CU大小閾值的CU並且該CU是大於該閾值的父CU的子CU,來標識共享邊界。 然後,將所識別的CU的邊界定義爲共享邊界。
視訊編碼器基於由共享邊界定義的區域的空間或時間相鄰來識別(在步驟1930)共享候選列表的一個或多個預測候選。該區域可以對應於CU,並且共享候選列表可以用作CU的合併候選列表。共享候選列表包括的運動向量可以包括各種類型的合併或AMVP候選,例如仿射候選、IBC候選、子PU候選、基於歷史的候選、不相鄰的候選等。
視訊編碼器通過使用從共享候選列表中選擇的一個或多個預測候選來對共享邊界包含的一個或多個CU進行編碼(在步驟1940處)。所選擇的預測候選用於執行運動補償預測。被編碼的CU是CTU的葉CU。在一些實施例中,並非共享邊界內的所有葉CU都使用共享候選列表來編碼,而是僅具有與根CU相同的特徵的葉CU可以使用共享候選列表來編碼。編碼的CU作爲語法元素的編碼位元(code bit)存儲在位元流中。
V. 示例的視訊解碼器
第20圖示出實施共享候選列表的實例視訊解碼器2000。如圖所示,視訊解碼器2000是圖片解碼或視訊解碼電路,其接收位元流2095並將位元流的內容解碼爲視訊幀的像素資料以供顯示。視訊解碼器2000具有用於解碼位元流2095的若干組件或模塊,包括選自逆量化模塊2005、逆變換模塊2010、幀內預測模塊2025、運動補償模塊2030、環路濾波器2045、解碼圖片緩衝器2050、MV緩衝器2065、MV預測模塊2075和解析器2090中的一些組件。運動補償模塊2030是幀間預測模塊2040的一部分。
在一些實施例中,模塊2010-2090是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。在一些實施例中,模塊2010-2090是由電子裝置的一個或多個IC實現的硬體電路的模塊。儘管模塊2010-2090被圖示爲單獨的模塊,但是某些模塊可以組合爲單個模塊。
解析器2090(或熵解碼器)接收位元流2095,並根據由視訊編碼或圖片編碼標準定義的語法來執行初始解析。解析的語法元素包括各種報頭元素、標志以及量化的資料(或量化的係數)2012。解析器2090通過使用諸如上下文自適應二進制算術編碼(CABAC)或霍夫曼編碼的熵編碼技術解析各種語法元素。
逆量化模塊2005對量化資料(或量化係數)2012進行去量化以獲得變換係數,並且逆變換模塊2010對變換係數2016執行逆變換以産生重構殘差信號2019。將來自幀內預測模塊2025或運動補償模塊2030的預測像素資料2013添加到重構殘差信號2019,以産生解碼像素資料2017。解碼像素資料由環路濾波器2045濾波,並存儲在解碼圖片緩衝器2050中。在一些實施例中,解碼圖片緩衝器2050是視訊解碼器2000外部的記憶體。在一些實施例中,解碼圖片緩衝器2050是視訊解碼器2000內部的記憶體。
幀內預測模塊2025從位元流2095接收幀內預測資料,並據此從存儲在解碼圖片緩衝器2050中的解碼像素資料2017産生預測像素資料2013。在一些實施例中,解碼像素資料2017也存儲在用於圖片內預測和空間MV預測的行緩衝器(未示出)中。
在一些實施例中,解碼圖片緩衝器2050的內容用於顯示。顯示設備2055或者擷取解碼圖片緩衝器2050的內容以直接顯示,或者將解碼圖片緩衝器的內容擷取到顯示緩衝器。在一些實施例中,顯示設備通過像素傳輸從解碼圖片緩衝器2050接收像素值。
運動補償模塊2030根據運動補償MV(MC MV)從存儲在解碼圖片緩衝器2050中的解碼像素資料2017産生預測像素資料2013。通過將從位元流2095接收到的殘差運動資料與從MV預測模塊2075接收到的預測MV相加,對這些運動補償MV進行解碼。
MV預測模塊2075基於爲解碼先前的視訊幀而生成的參考MV(例如,用於執行運動補償的運動補償MV)生成預測的MV。 MV預測模塊2075從MV緩衝器2065中擷取先前視訊幀的參考MV。視訊解碼器2000將爲解碼當前視訊幀而生成的運動補償MV存儲在MV緩衝器2065中,作爲用於産生預測MV的參考MV。
環路濾波器2045對解碼的像素資料2017執行濾波或平滑操作以减少編碼的僞像,特別是在像素塊的邊界處。 在一些實施例中,執行的濾波操作包括採樣自適應偏移(SAO)。 在一些實施例中,濾波操作包括自適應環路濾波(ALF)。
第21圖示出視訊解碼器2000的實施共享候選列表的部分。 如圖所示,運動補償模塊2030包括一個或多個CU運動補償模塊2131-2134。 每個CU運動補償模塊處理一個葉CU的解碼。 當對CU運動補償模塊2131-2134的對應CU進行解碼時,CU運動補償模塊2131-2134可以訪問共享候選列表2100的內容以及解碼圖片緩衝器2050的內容。每個CU運動補償模塊從共享候選列表中選擇預測候選,並且從解碼圖片緩衝器2050中擷取對應的採樣,以通過運動補償執行預測。 來自不同的CU運動補償模塊2131-2134的預測被用作預測的像素資料2013。
值得注意的是,即使被編碼的CU是彼此相鄰的,不同的CU運動補償模塊2131-2134仍可以並行地對其各自的CU執行運動補償。這是因爲使用共享候選列表的CU之間沒有相互依賴關係,因此可以同時進行解碼。
從MV緩衝器2065擷取共享候選列表2100的內容,該MV緩衝器2065存儲由共享邊界定義的區域的各個相鄰(neighbor)的運動向量,該共享邊界可以對應於CTU的根CU或子樹。由來自MV緩衝器2065的共享候選列表2100包括的運動向量可以包括各種類型的合併或AMVP候選,諸如仿射候選、IBC候選、子PU候選、基於歷史的候選、非相鄰候選等。基於歷史的候選可以被存儲在歷史緩衝器2110中,該歷史緩衝器是存儲先前解碼的CU的合併候選的FIFO。
第22圖概念性地示出了用於使用共享候選列表來解碼多個CU的過程2200。 在一些實施例中,實現解碼器2000的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程2200。 在一些實施例中,實現視訊解碼器2000的電子裝置執行過程2200。
視訊解碼器接收(在步驟2210)視訊序列中當前圖片的CTU的資料。 資料可以用於在CTU中作爲語法元素在位元流中編碼或生成的像素塊。 可以將CTU作爲QT、BT或TT劃分樹劃分爲CU或子CU。
視訊解碼器識別(在步驟2220)包含CTU中的多個CU(或像素塊)的共享邊界。 共享邊界可以對應於CTU的子樹的根。 可以基於CU大小閾值(SHARED_THD)來識別共享邊界。 在一些實施例中,通過遍歷CTU以識別大於或等於CU大小閾值的CU並且該CU是小於閾值的子CU的父CU,來標識共享邊界。 在一些實施例中,通過遍歷CTU以標識小於或等於CU大小閾值的CU並且該CU是大於該閾值的父CU的子CU,來標識共享邊界。 然後,將所識別的CU的邊界定義爲共享邊界。
視訊解碼器基於由共享邊界定義的區域的空間或時間相鄰來識別(在步驟2230)用於共享候選列表的一個或多個預測候選。該區域可以對應於CU,並且共享候選列表可以用作CU的合併候選列表。共享候選列表包括的運動向量可以包括各種類型的合併或AMVP候選,例如仿射候選、IBC候選、子PU候選、基於歷史的候選、不相鄰的候選等。
視訊解碼器通過使用從共享候選列表中選擇的一個或多個預測候選來解碼(在步驟2240處)共享邊界所包圍的一個或多個CU。所選擇的預測候選用於執行運動補償預測。被解碼的CU是CTU的葉CU。在一些實施例中,並非共享邊界內的所有葉CU使用共享候選列表來進行解碼,而是僅具有與根CU相同的特徵的葉CU可以使用共享候選列表來進行解碼。解碼的CU包括可被顯示的像素資料。
VI. 示例的電子系統
許多上述特徵和應用被實現爲被指定爲記錄在計算機可讀存儲介質(也稱爲計算機可讀介質)上的一組指令的軟體過程。當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器,處理器的核心或其他處理單元)執行時,它們使處理單元執行指令中指示的動作。計算機可讀介質的示例包括但不限於CD-ROM、閃存驅動器、隨機存取記憶體(RAM)晶片、硬碟驅動器、可擦除可程式化只讀記憶體(EPROM)、電可擦除可程式化只讀記憶體(EEPROM)等。計算機可讀介質不包括無綫或通過有綫連接傳遞的載波和電子信號。
在本說明書中,術語“軟體”旨在包括駐留在只讀記憶體中的韌體或存儲在磁記憶體中的應用,其可以被讀入記憶體以供處理器處理。同樣,在一些實施例中,可以將多個軟體發明實現爲較大程式的子部分,同時保留不同的軟體發明。在一些實施例中,多種軟體發明也可以被實現爲單獨的程式。最後,一起實現這裏描述的軟體發明的單獨程式的任何組合都在本公開的範圍內。在一些實施例中,軟體程式在被安裝以在一個或多個電子系統上運行時,定義了一種或多種執行和實施軟體程式的操作的特定機器實現。
第23圖概念性地示出了實現本公開的一些實施例的電子系統2300。電子系統2300可以是計算機(例如,臺式計算機、個人計算機、平板計算機等)、電話、PDA或任何其他種類的電子設備。這樣的電子系統包括各種類型的計算機可讀介質以及用於各種其他類型的計算機可讀介質的接口。電子系統2300包括匯流排2305、(一個或多個)處理單元2310、圖形處理單元(GPU)2315、系統記憶體2320、網路2325、只讀記憶體2330、永久存儲設備2335、輸入設備2340 ,以及輸出設備2345。
匯流排2305共同表示通信地連接電子系統2300的許多內部設備的所有系統、外圍設備和晶片組匯流排。例如,匯流排2305將處理單元2310與GPU 2315、只讀記憶體2330、系統記憶體2320和永久存儲設備2335通信地連接。
處理單元2310從這些各種存儲單元中擷取要執行的指令和要處理的資料,以便執行本公開的處理。在不同的實施例中,一個或多個處理單元可以是單個處理器或多核處理器。一些指令被傳遞到GPU 2315並由其執行。GPU 2315可以卸載各種計算或補充由處理單元2310提供的圖片處理。
只讀記憶體(ROM)2330存儲靜態資料和由處理單元2310和電子系統的其他模塊使用的靜態資料和指令。另一方面,永久存儲設備2335是讀寫存儲設備。該設備是即使在電子系統2300關閉的情况下也存儲指令和資料的非易失性存儲單元。本公開的一些實施例使用大容量存儲設備(諸如磁碟或光碟及其對應的磁碟驅動器)作爲永久存儲設備2335。
其他實施例使用可移動存儲設備(例如軟碟、閃存設備等,及其對應的磁碟驅動器)作爲永久存儲設備。 像永久存儲設備2335一樣,系統記憶體2320是讀寫存儲設備。 但是,與存儲設備2335不同,系統記憶體2320是易失性讀寫記憶體,例如隨機存取記憶體。 系統記憶體2320存儲處理器在運行時使用的一些指令和資料。 在一些實施例中,根據本公開的處理被存儲在系統記憶體2320、永久存儲設備2335和/或只讀記憶體2330中。例如,根據一些實施例,各種存儲單元包括用於處理多媒體剪輯的指令。 處理單元2310從這些各種存儲單元中擷取要執行的指令和要處理的資料,以便執行一些實施例的處理。
匯流排2305還連接到輸入和輸出設備2340和2345。輸入設備2340使用戶能够向電子系統傳達資訊並選擇命令。 輸入設備2340包括字母數位鍵盤和指示設備(也稱爲“滑鼠控制設備”)、照相機(例如,網路攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備2345顯示由電子系統或輸出資料生成的圖片。 輸出設備2345包括打印機和顯示設備,例如陰極射綫管(CRT)或液晶顯示器(LCD),以及揚聲器或類似的音頻輸出設備。 一些實施例包括既充當輸入設備又充當輸出設備的設備,例如觸摸屏。
最後,如第23圖所示,匯流排2305還通過網路適配器(未示出)將電子系統2300耦合到網路2325。 以這種方式,計算機可以是計算機網路(例如局域網(“ LAN”)、廣域網(“ WAN”)或內聯網(intranet)或網路網(network of networks),例如因特網)的一部分。電子系統2300的任何或所有組件可以與本公開結合使用。
一些實施例包括電子組件,例如微處理器,將計算機程式指令存儲在機器可讀或計算機可讀介質(或者稱爲計算機可讀存儲介質、機器可讀介質或機器可讀存儲介質)中的存儲器和記憶體。這種計算機可讀介質的一些示例包括RAM、ROM、只讀光碟(CD-ROM)、可記錄光碟(CD-R)、可重寫光碟(CD-RW)、只讀數位多功能光碟(例如,DVD-ROM、雙層DVD-ROM),各種可記錄/可重寫DVD(例如DVD-RAM、DVD-RW、DVD + RW等),閃存(例如SD卡、mini-SD卡、micro-SD卡等)、磁性和/或固態硬碟驅動器、只讀和可記錄的Blu-Ray®光碟、超密度光碟,任何其他光學或磁性介質以及軟碟。該計算機可讀介質可以存儲可由至少一個處理單元執行的計算機程式,並且該計算機程式包括用於執行各種操作的指令集。計算機程式或計算機代碼的示例包括諸如由編譯器生成的機器代碼,以及包括由計算機、電子部件或使用解釋器的微處理器執行的高級代碼的文件。
儘管以上討論主要是指執行軟體的微處理器或多核處理器,但是許多上述特徵和應用是由一個或多個集體電路執行的,例如專用集體電路(ASIC)或現場可程式化控制器門陣列(FPGA)。在一些實施例中,這樣的集體電路執行存儲在電路本身上的指令。另外,一些實施例執行存儲在可程式化邏輯設備(PLD)、ROM或RAM設備中的軟體。
如在本說明書和本申請的任何申請專利範圍中使用的,術語“計算機”、“服務器”、“處理器”和“記憶體”均指電子或其他技術設備。這些術語不包括個人或人群。爲了說明的目的,術語“顯示”或“顯示中”是指在電子設備上顯示。如在本說明書和本申請的任何申請專利範圍中所使用的,術語“計算機可讀介質”、“計算機可讀媒介”和“機器可讀介質”完全限於以可被計算機讀取的形式存儲資訊的有形物理對象。這些術語不包括任何無綫信號、有綫下載信號和任何其他臨時信號。
雖然已經參考許多具體細節描述了本公開,但是所屬領域具有通常知識者將認識到,在不脫離本公開的精神的情况下,可以以其他特定形式來體現本公開。此外,許多附圖(包括第19圖和第22圖)在概念上說明了過程。這些過程的特定操作可能無法按照所示和所描述的確切順序執行。可以不在一個連續的一系列操作中執行特定操作,並且可以在不同的實施例中執行不同的特定操作。此外,該過程可以使用幾個子過程來實現,或者作爲更大的宏過程的一部分來實現。因此,所屬領域具有通常知識者將理解,本公開不受限於前述說明性細節,而是由所附申請專利範圍限定。
附加声明
文中描述的主題有時示出了包含在其它不同部件內的或與其它不同部件連接的不同部件。應當理解:這樣描繪的架構僅僅是示例性的,並且,實際上可以實施實現相同功能的許多其它架構。在概念意義上,實現相同功能的部件的任何布置是有效地“相關聯的”,以使得實現期望的功能。因此,文中被組合以獲得特定功能的任意兩個部件可以被視爲彼此“相關聯的”,以實現期望的功能,而不管架構或中間部件如何。類似地,這樣相關聯的任意兩個部件還可以被視爲彼此“可操作地連接的”或“可操作地耦接的”,以實現期望的功能,並且,能夠這樣相關聯的任意兩個部件還可以被視爲彼此“操作上可耦接的”,以實現期望的功能。“操作上可耦接的”的具體示例包含但不限於:實體地可聯結和/或實體地相互、作用的部件、和/或無線地可相互作用和/或無線地相互作用的部件、和/或邏輯地相互作用的和/或邏輯地可相互作用的部件。
此外,關於文中基本上任何複數和/或單數術語的使用,只要對於上下文和/或應用是合適的,所屬技術領域具有通常知識者可以將複數變換成單數,和/或將單數變換成複數。
所屬技術領域具有通常知識者將會理解,通常,文中所使用的術語,特別是在所附申請專利範圍(例如,所附申請專利範圍中的主體)中所使用的術語通常意在作爲“開放性”術語(例如,術語“包含”應當被解釋爲“包含但不限幹”,術語“具有”應當被解釋爲“至少具有”,術語“包含”應當被解釋爲“包含但不限幹”等)。所屬技術領域具有通常知識者還將理解,如果意在所介紹的申請專利範圍陳述對象的具體數目,則這樣的意圖將會明確地陳述在申請專利範圍中,在缺乏這樣的陳述的情況下,不存在這樣的意圖。例如,爲了幫助理解,所附申請專利範圍可以包含使用介紹性短語“至少一個”和“一個或更多個”來介紹申請專利範圍陳述對象。然而,這樣的短語的使用不應當被解釋爲:用不定冠詞“一個(a或an)”的申請專利範圍陳述對象的介紹將包含這樣介紹的申請專利範圍陳述對象的任何申請專利範圍限制爲只包含一個這樣的陳述對象的發明,即使在同一申請專利範圍包含介紹性短語“一個或更多個”或“至少一個”以及諸如“一個(a)”或“一個(an)”之類的不定冠詞的情況下(例如,“一個(a)”和/或“一個(an)”應當通常被解釋爲意味著“至少一個”或“一個或更多個”)也如此;上述對以定冠詞來介紹申請專利範圍陳述對象的情況同樣適用。另外,即使明確地陳述了介紹的申請專利範圍陳述對象的具體數目,但所屬技術領域具有通常知識者也會認識到:這樣的陳述通常應當被解釋爲意味著至少所陳述的數目(例如,僅有“兩個陳述對象”而沒有其他修飾語的陳述通常意味著至少兩個陳述對象,或兩個或更多個陳述對象)。此外,在使用類似於“A、B和C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B和C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B —起、A和C 一起、B和C 一起和/或A、B和C 一起的系統等)。在使用類似於“A、B或C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B或C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B —起、A和C 一起、B和C 一起和/或A、B和C 一起的系統等)。所屬技術領域具有通常知識者將進一歩理解,不管在說明書、申請專利範圍中還是在附圖中,表示兩個或更多個可替換的術語的幾乎任意析取詞和/或短語應當理解成考慮包含術語中的一個、術語中的任一個或所有兩個術語的可能性。例如,短語“A或B”應當被理解成包含“A”、“B”、或“A和B”的可能性。
儘管已經在文中使用不同的方法、設備以及系統來描述和示出了一些示例性的技術,但是所屬技術領域具有通常知識者應當理解的是:可以在不脫離所要求保護的主題的情況下進行各種其它修改以及進行等同物替換。此外,在不脫離文中描述的中心構思的情況下,可以進行許多修改以使特定的情況適應於所要求保護的主題的教導。因此,意在所要求保護的主題不限制於所公開的特定示例,而且這樣的要求保護的主題還可以包含落在所附申請專利範圍的範圍內的所有實施及它們的等同物。
1210~1240、1310、1400:共享邊界
1300:CTU
1350:劃分樹
1360:子樹
1410:區域
1411~1414、1510、1511、1512、1520、1521、1522、1530、1531、1532:CU
1421、1422、1423:葉CU
1515、1535、1517、1527、1537:邊界
1700:視訊編碼器
1705:視訊源
1710:變換模塊
1711:量化模塊
1712、2012:量化係數
1713、2013:預測的像素資料
1714、2005:逆量化模塊
1715、2010:逆變換模塊
1716、2016:變換係數
1719、2019:重構殘差
1720:圖片內估計模塊
1725、2025:幀內預測模塊
1730、2030:運動補償模塊
1735:運動估計模塊
1740:幀間預測模塊
1745、2045:環路濾波器
1750:重構圖片緩衝器
1765、2065: MV緩衝器
1775、2075 :MV預測模塊
1790:熵編碼器
1795、2095:位元流
1800、2100:共享候選列表
1831-1834、2131-2134 CU:運動補償模塊
1810、2110:歷史緩衝器
1900、2200:過程
1910~1940、2210~2240:步驟
2000:視訊解碼器
2017:解碼像素資料
2050:解碼圖片緩衝器
2055:顯示器
2090:解析器
2300:電子系統
2305:匯流排
2310:處理單元
2315:圖形處理單元
2320:系統記憶體
2325:網路
2330:只讀記憶體
2335:永久存儲設備
2340:輸入設備
2345:輸出設備
包括附圖以提供對本公開的進一步理解,並且附圖被並入本公開並構成本公開的一部分。 附圖示出了本公開的實施方式,並且與描述一起用於解釋本公開的原理。 可以理解的是,附圖不一定按比例繪製,因爲爲了清楚地說明本公開的概念,某些組件可能被顯示爲與實際實現中的尺寸不成比例。
第1圖示出了建立在四叉樹(QT)劃分結構上的編碼樹,該四叉樹劃分結構表示將編碼樹單元(CTU)劃分爲CU。
第2圖概念性地示出了通過二叉樹劃分對編碼單元(CU)的分區。
第3圖概念性地示出了通過四叉樹劃分和二叉樹劃分對CU進行分區。
第4圖示出了用於在MTT結構中分區CTU的幾種劃分類型或模式。
第5圖示出了在一些實施例中用於發信CTU的分區結構的决策樹。
第6圖示出爲幀間預測模式設置的MVP候選。
第7圖示出了包括合併的雙向預測合併候選的合併候選列表。
第8圖示出了包括縮放的合併候選的合併候選列表。
第9圖示出了將零向量候選添加到合併候選列表或AMVP候選列表的示例。
第10圖示出了四參數仿射運動模型。
第11圖示出了仿射幀間模式的MVP推導。
第12圖示出了用於定義或識別共享候選列表的共享邊界的幾個示例。
第13圖示出了劃分樹的子樹,其與可以由共享候選列表編碼的共享邊界中的CU相對應。
第14圖示出了用於識別共享候選列表的共享邊界。
第15a圖和第15b圖示出了使用CU大小閾值來識別共享候選列表的共享邊界。
第16圖示出了一組CU節點的示例。
第17圖示出了可使用共享候選列表來編碼CTU內的多個CU的示例視訊編碼器。
第18圖示出了視訊編碼器的實施共享候選列表的部分。
第19圖概念性地示出了使用共享候選列表來編碼多個CU的過程。
第20圖示出了實施共享候選列表的實例視訊解碼器。
第21圖示出了視訊解碼器的實現共享候選列表的部分。
第22圖概念性地示出了使用共享候選列表來解碼多個CU的過程。
第23圖概念性地示出了用於實現本公開的一些實施例的電子系統。
2200:過程
2210~2240:步驟
Claims (21)
- 一種方法,包括: 識別包含視訊序列中當前圖片的多個像素塊的共享邊界; 基於該共享邊界定義的區域的多個相鄰,將一個或多個預測候選識別爲共享候選列表;以及 通過使用從該共享候選列表中選擇的一個或多個預測候選,對該共享邊界所包圍的多個像素塊中的一個或多個像素塊進行編碼。
- 根據申請專利範圍第1項所述之方法,其中,對該一個或多個像素塊進行編碼包括:通過使用該共享候選列表來並行地對第一像素塊和第二像素塊進行編碼。
- 根據申請專利範圍第1項所述之方法,其中,由該共享邊界定義的該區域包括編碼樹單元的一部分,並且該共享邊界對應於該編碼樹單元的子樹的根。
- 根據申請專利範圍第1項所述之方法,其中,由該共享邊界定義的該區域包括編碼樹單元的一部分,並且正被編碼的該像素塊對應於該編碼樹單元的葉編碼單元。
- 根據申請專利範圍第1項所述之方法,其中,該共享候選列表包括運動向量,該運動向量用於對由該共享邊界定義的該區域的多個相鄰塊進行編碼。
- 根據申請專利範圍第5項所述之方法,其中該運動向量中的至少一者適用於該當前圖片中已重構的參考採樣。
- 根據申請專利範圍第1項所述之方法,其中,該區域對應於編碼單元,並且該共享候選列表包括該編碼單元的合併候選列表。
- 根據申請專利範圍第1項所述之方法,其中,該區域對應於編碼單元,並且該共享候選列表包括先前編碼的編碼單元的合併候選。
- 根據申請專利範圍第1項所述之方法,其中,識別該共享邊界包括:遍歷編碼樹單元,該編碼樹單元被劃分爲編碼單元的層次結構,以識別大於或等於閾值的編碼單元,並且 該編碼單元是小於該閾值的子編碼單元的父編碼單元。
- 根據申請專利範圍第1項所述之方法,其中,標識該共享邊界包括:遍歷編碼樹單元,該編碼樹單元被劃分爲編碼單元的層次結構,以標識小於或等於閾值的編碼單元,並且該編碼單元是大於該閾值的父編碼單元的子編碼單元。
- 一種電子裝置,包括: 解碼器電路,被配置爲執行包括以下內容的操作: 接收視訊序列中當前圖片的編碼樹單元的資料; 識別包含在該編碼樹單元中的多個編碼單元的共享邊界; 基於該共享邊界定義的區域的多個相鄰,將一個或多個預測候選識別爲共享候選列表;以及 通過使用從該共享候選列表中選擇的一個或多個預測候選,對該共享邊界所包圍的該多個編碼單元中的一個或多個編碼單元進行解碼。
- 根據申請專利範圍第11項所述之電子裝置,其中,對該一個或多個像素塊進行解碼包括:通過使用該共享候選列表來並行地對第一編碼單元和第二編碼單元進行編碼。
- 根據申請專利範圍第11項所述之電子裝置,其中,該共享邊界對應於該編碼樹單元的子樹的根。
- 根據申請專利範圍第11項所述之電子裝置,其中,被解碼的該編碼單元包括該編碼樹單元的葉編碼單元。
- 根據申請專利範圍第11項所述之電子裝置,其中,該共享候選列表包括運動向量,該運動向量用於對由該共享邊界定義的該區域的多個相鄰塊進行編碼。
- 根據申請專利範圍第15項所述之電子裝置,其中該運動向量中的至少一者適用於該當前圖片中已重構的參考採樣。
- 根據申請專利範圍第11項所述之電子裝置,其中,該區域對應於根編碼單元,並且該共享候選列表包括該根編碼單元的合併候選列表。
- 根據申請專利範圍第11項所述之電子裝置,其中,該區域對應於編碼單元,並且該共享候選列表包括先前編碼的編碼單元的一個或多個合併候選。
- 根據申請專利範圍第11項所述之電子裝置,其中,識別該共享邊界包括:遍歷該編碼樹單元以識別大於或等於閾值的編碼單元,並且該編碼單元是小於該閾值的子編碼單元的父編碼單元。
- 根據申請專利範圍第11項所述之電子裝置,其中,識別該共享邊界包括:遍歷該編碼樹單元以識別小於或等於閾值的編碼單元,並且該編碼單元是大於該閾值的父編碼單元的子編碼單元。
- 一種電子裝置,包括: 編碼器電路,配置爲執行包括以下內容的操作: 接收視訊序列中當前圖片的編碼樹單元的資料; 識別包含在該編碼樹單元中的多個編碼單元的共享邊界; 基於該共享邊界定義的區域的多個相鄰,將一個或多個預測候選識別爲共享候選列表;以及 通過使用從該共享候選列表中選擇的一個或多個預測候選,對該共享邊界所包圍的該多個編碼單元中的一個或多個編碼單元進行編碼。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862719175P | 2018-08-17 | 2018-08-17 | |
US62/719,175 | 2018-08-17 | ||
US201862733101P | 2018-09-19 | 2018-09-19 | |
US62/733,101 | 2018-09-19 | ||
US201862740430P | 2018-10-03 | 2018-10-03 | |
US62/740,430 | 2018-10-03 | ||
US201962789566P | 2019-01-08 | 2019-01-08 | |
US62/789,566 | 2019-01-08 | ||
US16/541,627 US11245922B2 (en) | 2018-08-17 | 2019-08-15 | Shared candidate list |
US16/541,627 | 2019-08-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202015426A true TW202015426A (zh) | 2020-04-16 |
TWI749358B TWI749358B (zh) | 2021-12-11 |
Family
ID=69523670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108129234A TWI749358B (zh) | 2018-08-17 | 2019-08-16 | 共享候選列表 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11245922B2 (zh) |
CN (1) | CN112567747A (zh) |
TW (1) | TWI749358B (zh) |
WO (1) | WO2020035064A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020048366A1 (en) * | 2018-09-03 | 2020-03-12 | Huawei Technologies Co., Ltd. | Coding method, device, system with merge mode |
US11057636B2 (en) * | 2018-09-17 | 2021-07-06 | Qualcomm Incorporated | Affine motion prediction |
US11012697B2 (en) * | 2018-12-07 | 2021-05-18 | Qualcomm Incorporated | Shared candidate list and parallel candidate list derivation for video coding |
JP7194199B2 (ja) * | 2018-12-07 | 2022-12-21 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
KR20200078378A (ko) * | 2018-12-21 | 2020-07-01 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
CN118433425A (zh) * | 2019-03-12 | 2024-08-02 | 腾讯美国有限责任公司 | 对视频进行编码或解码的方法和装置 |
US11418807B2 (en) * | 2019-03-15 | 2022-08-16 | Tencent America LLC | Temporal motion vector derivation in shared merge region at picture boundary |
EP3967040A4 (en) | 2019-06-06 | 2022-11-30 | Beijing Bytedance Network Technology Co., Ltd. | CONSTRUCTION OF MOTION CANDIDATE LISTS FOR VIDEO ENCODING |
WO2020244659A1 (en) * | 2019-06-06 | 2020-12-10 | Beijing Bytedance Network Technology Co., Ltd. | Interactions between sub-block based intra block copy and different coding tools |
WO2020259426A1 (en) | 2019-06-22 | 2020-12-30 | Beijing Bytedance Network Technology Co., Ltd. | Motion candidate list construction for intra block copy mode |
US11930208B2 (en) * | 2020-01-10 | 2024-03-12 | Tencent America LLC | Method and apparatus for signaling skip mode flag |
US11206416B2 (en) * | 2020-02-21 | 2021-12-21 | Tencent America LLC | Method and apparatus for video coding |
CN115812306A (zh) * | 2020-06-08 | 2023-03-17 | 抖音视界有限公司 | 使用非紧邻临近块的帧内块复制的约束 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915903B (zh) | 2011-03-08 | 2017-09-22 | Jvc 建伍株式会社 | 动图像编码装置以及动图像编码方法 |
CN110446037B (zh) | 2011-11-08 | 2022-01-04 | 韩国电子通信研究院 | 用于共享候选者列表的方法和装置 |
US9667995B2 (en) | 2012-01-19 | 2017-05-30 | Sony Corporation | Image processing apparatus and method |
US9729873B2 (en) * | 2012-01-24 | 2017-08-08 | Qualcomm Incorporated | Video coding using parallel motion estimation |
CN108377393A (zh) * | 2012-03-22 | 2018-08-07 | 联发科技股份有限公司 | 编码视频数据的方法以及装置 |
US20150071357A1 (en) | 2013-09-12 | 2015-03-12 | Qualcomm Incorporated | Partial intra block copying for video coding |
US9554150B2 (en) * | 2013-09-20 | 2017-01-24 | Qualcomm Incorporated | Combined bi-predictive merging candidates for 3D video coding |
EP3089452A4 (en) * | 2013-12-26 | 2017-10-25 | Samsung Electronics Co., Ltd. | Inter-layer video decoding method for performing subblock-based prediction and apparatus therefor, and inter-layer video encoding method for performing subblock-based prediction and apparatus therefor |
JP2015173404A (ja) * | 2014-03-12 | 2015-10-01 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム |
WO2016034058A1 (en) * | 2014-09-01 | 2016-03-10 | Mediatek Inc. | Method of intra picture block copy for screen content and video coding |
US20170078703A1 (en) | 2015-09-10 | 2017-03-16 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
WO2017220164A1 (en) | 2016-06-24 | 2017-12-28 | Huawei Technologies Co., Ltd. | Devices and methods for video coding using segmentation based partitioning of video coding blocks |
US10326986B2 (en) | 2016-08-15 | 2019-06-18 | Qualcomm Incorporated | Intra video coding using a decoupled tree structure |
US10812791B2 (en) * | 2016-09-16 | 2020-10-20 | Qualcomm Incorporated | Offset vector identification of temporal motion vector predictor |
KR20190053238A (ko) * | 2016-10-06 | 2019-05-17 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US10931969B2 (en) | 2017-01-04 | 2021-02-23 | Qualcomm Incorporated | Motion vector reconstructions for bi-directional optical flow (BIO) |
US10616574B2 (en) * | 2018-06-04 | 2020-04-07 | Tencent America LLC | Methods and apparatus for extended merge mode with adaptive grid size in video coding |
-
2019
- 2019-08-15 US US16/541,627 patent/US11245922B2/en active Active
- 2019-08-16 CN CN201980053460.1A patent/CN112567747A/zh active Pending
- 2019-08-16 TW TW108129234A patent/TWI749358B/zh active
- 2019-08-16 WO PCT/CN2019/101116 patent/WO2020035064A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11245922B2 (en) | 2022-02-08 |
WO2020035064A1 (en) | 2020-02-20 |
US20200059659A1 (en) | 2020-02-20 |
CN112567747A (zh) | 2021-03-26 |
TWI749358B (zh) | 2021-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI749358B (zh) | 共享候選列表 | |
TWI774141B (zh) | 視訊編解碼方法及裝置 | |
TWI737201B (zh) | 用於發信合併工具的方法及裝置 | |
TWI749503B (zh) | 核心轉換和次級轉換間之交互作用及其裝置 | |
TWI711300B (zh) | 照度補償方法及相應之視訊處理裝置 | |
TWI706667B (zh) | 隱式變換設置 | |
TWI749467B (zh) | 幀內塊複製合併列表簡化 | |
TWI719542B (zh) | 一種視訊編碼/解碼方法及裝置 | |
AU2015206771B2 (en) | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning | |
TWI729526B (zh) | 用於多重假設之幀內預測 | |
TWI737142B (zh) | 視訊編碼中結合畫面間和畫面內預測之方法和裝置 | |
CN114073083A (zh) | 用于帧间预测中的合并模式候选的全局运动 | |
TWI718079B (zh) | 用於視訊編解碼的簡化子模式的方法和裝置 | |
TWI737141B (zh) | 視訊編碼中用於畫面內分區之轉換類型分配方法和裝置 | |
TW202416713A (zh) | 仿射候選細化 | |
TW202402054A (zh) | 用於候選清單的相似性閾值 | |
CN116684577A (zh) | 基于运动矢量差的快速仿射模式决策 | |
TW202423116A (zh) | 視訊編解碼方法和電子裝置 | |
TW202404354A (zh) | 利用卷積模型的預測改進 | |
CN116684578A (zh) | 基于控制点运动矢量的仿射模型优化 |