TW202412526A - 視訊編解碼中的出界檢查 - Google Patents
視訊編解碼中的出界檢查 Download PDFInfo
- Publication number
- TW202412526A TW202412526A TW112126549A TW112126549A TW202412526A TW 202412526 A TW202412526 A TW 202412526A TW 112126549 A TW112126549 A TW 112126549A TW 112126549 A TW112126549 A TW 112126549A TW 202412526 A TW202412526 A TW 202412526A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- oob
- sub
- check
- video
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 109
- 239000013598 vector Substances 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000002457 bidirectional effect Effects 0.000 claims description 43
- 239000000523 sample Substances 0.000 description 37
- 238000012545 processing Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 18
- 238000013139 quantization Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000002156 mixing Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 238000009499 grossing Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101150114515 CTBS gene Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Abstract
提供了使用出界(OOB)檢查對像素塊進行編解碼的方法。視訊編解碼器接收要編碼或解碼為視訊的當前圖片的當前塊的資料。視訊編解碼器基於當前塊的第一塊向量來識別第一參考圖片中的第一參考塊。視訊編解碼器相對於第一參考圖片的子單元的邊界對第一個參考塊執行OOB檢查。視訊編解碼器基於第一參考塊並基於OOB檢查產生當前塊的預測子。當第一參考塊的樣本是OOB時,此樣本不被用於當前塊的雙向運動補償。視訊編解碼器透過使用產生的預測子對當前塊進行編碼或解碼。
Description
本發明涉及視頻編解碼系統。特別地,本發明涉及使用出界检查(out-of-bound (OOB) checks)对像素块进行编解码的方法。
除非本文另有說明,否則本節中描述的方法不是下面列出的請求項的現有技術,並且不因包含在本節中而被承認為現有技術。
高效視訊編碼(HEVC)是由視訊編碼聯合協作組(JCT-VC)制定的國際視訊編碼標準。 HEVC 是基於混合的基於塊的運動補償類別 DCT 變換編碼架構。 壓縮的基本單元稱為編碼單元 (CU),是一個 2Nx2N 的像素方塊,每個 CU 可以遞歸地分割成四個較小的 CU,直到達到預先定義的最小尺寸。 每個 CU 包含一個或多個預測單元 (PU)。
通用視頻編碼(VVC)是由ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11聯合視頻專家組(JVET)制定的最新國際視頻編碼標準。輸入視頻信號是根據從編碼圖片區域導出的重構信號預測的。預測殘差信號通過塊變換進行處理。變換係數與位元流中的其他邊信息一起被量化和熵編碼。重構信號是根據預測信號和對去量化變換係數進行逆變換後的重構殘差信號生成的。重構信號通過環路濾波進一步處理,以去除編碼偽影。解碼後的圖片存儲在幀緩衝器中,用於預測輸入視頻信號中的未來圖片。
在VVC中,編碼圖片被劃分為由相關聯的編碼樹單元(CTU)表示的非重疊方形塊區域。編碼樹的葉節點對應編碼單元(CU)。編碼圖片可以由切片集合表示,每個切片包含整數個CTU。切片中的各個CTU以光柵掃描順序處理。可以使用幀內預測或幀間預測對雙向預測(B)切片進行解碼,其中最多有兩個運動向量和參考索引來預測每個塊的樣本值。使用具有至多一個運動矢量和參考索引的幀內預測或幀間預測來解碼預測(P)切片以預測每個塊的樣本值。僅使用幀內預測對幀內 (I) 切片進行解碼。
使用具有嵌套多類型樹(MTT)結構的四叉樹(QT)可以將CTU劃分為一個或多個非重疊編碼單元(CU),以適應各種局部運動和紋理特性。可以使用五種分割類型之一將CU進一步分割成更小的CU:四叉樹分割、垂直二叉樹分割、水平二叉樹分割、垂直中心側三叉樹分割、水平中心側三叉樹分割。
每個CU包含一個或多個預測單元(PU)。預測單元與關聯的CU語法一起作為用於發送預測信息的基本單元。指定的預測過程用於預測PU內的相關像素樣本的值。每個CU可以包含一個或多個變換單元(TU)用於表示預測殘差塊。變換單元(TU)由亮度樣本的變換塊(TB)和兩個相應的色度樣本TB組成,每個TB對應於來自一種顏色分量的樣本的一個殘差塊。將整數變換應用於變換塊。量化係數的值與其他輔助信息一起在位元流中進行熵編碼。術語編碼樹塊(CTB)、編碼塊(CB)、預測塊(PB)和變換塊(TB)被定義為分別指定與CTU、CU、PU和TU相關的一種顔色分量的2維樣本陣列。因此,一個CTU由一個亮度CTB、兩個色度CTB和相關語法元素組成。類似的關係對CU、PU和TU有效。
對於每個幀間預測的CU,由運動向量、參考圖片索引和參考圖片列表使用索引組成的運動參數以及附加資訊被用於幀間預測樣本生成。可以以顯式或隱式方式用訊號發送運動參數。 當使用跳過模式對CU進行編碼時,此CU與一個PU相關聯且沒有顯著的殘餘係數、沒有編碼的運動向量增量或參考圖片索引。 指定合併模式,由此從相鄰 CU 獲得目前 CU 的運動參數,包括空間和時間候選以及 VVC 中引入的附加調度。合併模式可以應用於任何幀間預測的CU。合併模式的替代方案是運動參數的明確傳輸,其中運動向量、每個參考圖片列表的相應參考圖片索引和參考圖片列表使用標記以及其他所需資訊是針對每個CU明確地用訊號發送的。
以下概述僅是說明性的,並不旨在以任何方式進行限制。即,提供以下概述以介紹本文描述的新穎的和非顯而易見的技術的概念、亮點、好處和優勢。在下面的詳細描述中進一步描述了選擇的而不是所有的實施方式。因此,以下概述不旨在識別要求保護的主題的基本特徵,也不旨在用於確定要求保護的主題的範圍。
本揭露的一些實施例提供了一種使用出界(OOB)檢查對像素塊進行編碼的方法。視訊編解碼器接收要編碼或解碼為視訊的當前圖片的當前塊的資料。視訊編解碼器基於當前塊的第一塊向量來識別第一參考圖片中的第一參考塊。視訊編解碼器相對於第一參考圖片的子單元的邊界對第一個參考塊執行OOB檢查。子單元可以是第一參考圖片的條帶、圖塊或管線資料單元。
視訊編解碼器基於第一參考塊並基於OOB檢查產生當前塊的預測子。例如,當第一個參考塊的樣本是OOB時,此樣本不用於當前塊的雙向運動補償。編碼器可以基於當前塊的第二向量來識別第二個參考圖片中的第二參考塊,並且可以對第二參考塊執行OOB檢查。可以基於第一和第二參考塊並且基於第一和第二參考塊的OOB檢查來產生用於雙向運動補償的預測子。
在一些實施例中,當前塊可以是較大塊的多個子塊之一,並且僅對第一參考塊中的一個代表性像素位置執行第一參考塊的OOB檢查。代表性像素位置可以是分數位置。子塊的大小可以基於用於對當前塊進行編碼或解碼的編碼工具來確定。
對於每個子塊,編碼器可以識別參考圖片中的參考塊,僅在代表性像素位置而不是其他像素位置處相對於參考圖片的子單元的邊界對識別的參考塊執行OOB檢查並根據代表像素位置處的OOB檢查,決定是否對該子塊的所有樣本進行雙向運動補償。編碼器可以從子塊的多個運動向量導出對應的運動向量,並且可以使用對應的運動向量來識別子塊的參考塊。在一些實施例中,透過計算子塊的多個運動向量的水平和垂直分量的最小值或最大值來導出子塊的對應運動向量。
在一些實施例中,當第一參考塊的樣本是OOB時,此樣本不用於當前塊的雙向運動補償。在一些實施例中,當前塊是較大塊的幾個子塊之一,當代表性像素位置處的樣本是OOB時,不會對該子塊應用雙向運動補償。
在下面的詳細描述中,通過示例的方式闡述了許多具體細節,以便提供對相關教導的透徹理解。基於本文描述的教導的任何變化、導出和/或擴展都在本公開的保護範圍內。在一些情況下,可以在相對較高的水平上描述與本文公開的一個或多個示例實現有關的眾所周知的方法、處理、組件和/或電路而不詳細,以避免不必要地模糊本公開的教導的方面。
I.
出界(
Out-of-Boundary
,
OOB
)檢查
A.
雙向運動補償的
OOB
檢查
幀間預測的CU可能具有部分或全部位於參考圖片外部的參考塊。第1圖示出了利用出界(OOB)參考塊的雙向預測。 在圖中,執行雙向運動補償以產生當前圖片100中的當前塊105的幀間預測塊(預測子)。列表0(L0)參考塊120部分超出參考塊的邊界(OOB),列表1(L1)參考塊121完全位於參考圖片111内。當視訊編解碼器執行預測生成過程130時,參考塊120的OOB部分140被重複填充樣本填充。預測生成過程130使用參考塊120和121以產生當前塊105的預測塊135。由於參考塊120的OOB部分140以從參考圖片110內的邊界樣本導出的重複樣本來填充,所以對應於OOB部分140的運動補償塊的部分135可以提供較低的預測效率。
在一些實施例中,當單向運動補償樣本的參考樣本之一位於參考圖片之外超過半個樣本時,單向運動補償樣本被視為OOB。 對於雙向運動補償塊中的每個預測樣本,當其單向預測樣本之一是OOB而另一個是非OOB時,將對應的雙向樣本設定為等於非OOB樣本,而不是使用OOB 和非OOB 樣本的平均值。
在一些實施例中,當組合多於一個預測塊時,OOB預測樣本被丟棄,並且非OOB預測樣本被用來產生最終預測子。具體來說,令 Pos_x
i,j和 Pos_y
i,j表示當前塊中一個預測樣本 (i, j) 的 x 和 y 位置,MV
LX_x
i,j和 MV
LX_y
i,j(LX = L0 或 L1) 表示當前塊的 MV; PosLeftBdry、PosRightBdry、PosTopBdry、PosBottomBdry 是圖片的四個邊界的位置。 當至少滿足以下條件之一時,一個預測樣本被視為OOB:
(Pos_x
i,j+ MV
LX_x
i,j) > (Pos
RightBdry+
half_pixel),
(Pos_x
i,j+ MV
LX_x
i,j) < (Pos
LeftBdry+
half_pixel),
(Pos_y
i,j+ MV
LX_y
i,j) > (Pos
BottomBdry+
half_pixel),
(Pos_y
i,j+ MV
LX_y
i,j) > (Pos
TopBdry+
half_pixel)
其中 half_pixel 等於 8,表示 1/16 像素取樣精度下的半像素取樣距離。檢查每個樣本的 OOB 條件後,一個雙向塊的最終預測樣本產生如下:
如果 P
L0 i,j是 OOB 并且 P
L1 i,j是非OOB, 那麽P
final i,j= P
L1 i,j否則如果 P
L0 i,j是非OOB并且 P
L1 i,j是 OOB, 那麽 P
final i,j= P
L0 i,j否則 P
final i,j= (P
L0 i,j+ P
L1 i,j+ 1) >> 1
在一些實施例中,對幀內編碼塊或IBC塊執行OOB檢查。 例如,可以透過參考當前圖片中的預測樣本的塊向量來對當前塊進行譯碼,並且對參考的樣本執行OOB檢查。透過OOB檢查確定為OOB的樣本可以被填充樣本替換,或者,如果當前塊由多個預測子(例如,雙向預測或多假設)編碼,則將不使用OOB預測樣本,並且其他預測子的並置(collocated)的非OOB 樣本用於產生最終預測子。
B.
基於子圖片邊界的
OOB
檢查
在一些實施例中,OOB檢查的邊界可以是圖片邊界、子圖片(sub-picture)邊界、圖塊(tile)邊界、片(slice)邊界、虛擬管線(virtual pipeline)資料單元(例如,VPDU)邊界或虛擬邊界(virtual boundary)中的任一種。 參考第1圖,OOB檢查是基於圖片邊界來執行的。
第2A-B圖示出了基於不同類型的邊界執行的OOB檢查。 OOB 檢查是在用於雙向運動補償的 L0 和 L1 參考塊上執行的。如圖所示,當前圖片200中的當前塊210使用雙向運動補償來編碼。 當前塊210具有L0運動向量MV0和L1運動向量MV1。 MV0指向L0參考圖220中的L0參考塊215。MV1指向L1參考圖片230中的L1參考塊216。
第2A圖示出了在片邊界上執行的OOB檢查。L0參考圖片220被劃分為多個片(片0到片3)。參考塊215位於片0中,但是參考塊215的一部分跨越片邊界進入片1,因此OOB檢查失敗。視訊編解碼器可以從雙向動作補償中排除參考塊215的OOB樣本。
第2B圖示出了在圖塊邊界上執行的OOB檢查。L0參考圖片220被分割為多個圖塊(圖塊0到圖塊3)。參考塊215位於圖塊1中,但是參考塊215的一部分跨越圖塊邊界進入圖塊0,因此OOB檢查失敗。視訊編解碼器可以從雙向運動補償中排除參考塊215的OOB樣本。
C.
基於子塊的
OOB
檢查
在一些實施例中,OOB檢查被應用在子塊(sub-block)層級而不是樣本層級。在這些實施例的一些中,視訊編解碼器使用子塊中的一個代表性位置(representative position)和(子塊的)對應MV來確定子塊中所有位置的OOB結果。例如,對於4x4子塊,視訊編解碼器可以使用位置(2, 2)(假設左上角的位置為(0, 0))作為代表像素位置來確定子塊中所有位置的OOB結果。
第3圖概念性地示出了在子塊層級執行OOB檢查。 此圖示出了具有四個4×4子塊321-324的像素塊310。每個子塊都有其自己對應的MV用於引用參考塊。 在該範例中,子塊321-324的對應MV分別指向參考子塊331-334。 對於每個參考子塊,視訊編解碼器對一個代表性像素位置(在每個參考子塊中顯示為黑色方框/點)執行 OOB 檢查。 將一個代表像素位置的OOB檢查結果作為該子塊的OOB結果。 OOB是基於邊界305來決定的,邊界305可以是圖片邊界、子圖片邊界、片邊界、圖塊邊界或虛擬邊界。
在這個範例中,對於參考子塊331,代表性位置在邊界305內(整個參考子塊331也是如此)。因此,子塊321被認為完全是非OOB,以及雙向運動補償可以針對子塊執行。
對於參考子塊332,代表性位置在邊界305之外。出於雙向運動補償的目的,視訊編解碼器可以將子塊322視為完全OOB(即使參考子塊的某些部分332仍在邊界305內)。
對於參考塊333,代表性位置在邊界305之外(整個參考子塊333也是如此)。因此,出於雙向運動補償的目的,子塊323被認為完全是OOB。
對於參考子塊334,代表性位置在邊界305內部。出於雙向運動補償的目的,視訊編解碼器可以將子塊324視為完全非OOB,即使參考子塊324的某些部分塊334超出了邊界305。在這些情況下,填充樣本可用於參考子塊334位於邊界305之外的部分。
在一些實施例中,用於子塊OOB檢查的一個代表性位置可以是小數位置。 例如,對於4x4子塊,可以使用位置(1.5,1.5)。對於一些實施例,子塊的尺寸可以根據用於對當前塊進行編碼的預測模式或編碼工具而不同。 例如,4x4子塊大小可用於仿射模式,16x16子塊大小可用於DMVR模式,8x8子塊大小可用於正常雙向模式等。
在一些實施例中,如果子塊包含多個MV,則子塊的對應MV可以從多個MV導出。例如,8x8的子塊可以具有四個不同的MV,並且透過計算四個不同的MV的水平和垂直分量的最小值或最大值來導出用於OOB檢查的子塊的對應MV。
在一些實施例中,多於一個對應的MV被用於OOB檢查。例如,在一些實施例中,右邊界和下邊界的第一個對應MV以及左邊界和上邊界的第二對應MV被用於OOB檢查。在另一個範例中,8x8子塊可以具有4個不同的MV,並且右邊界和下邊界的MV是透過計算4個不同MV的水平和垂直分量的最大值而得出的,以及左邊界和上邊界的MV是透過計算 4 個不同 MV 的水平和垂直分量的最小值得出的。
前述提出的方法可以在編碼器和/或解碼器中實現。例如,所提出的方法可以在編碼器的幀間預測模組和/或幀內塊複製預測模組和/或解碼器的幀間預測模組(和/或幀內塊複製預測模組)中實現。
II.
示例視頻編碼器
第4圖説明执行预测模式时使用出界检查的實例視頻編碼器400。如圖所示,視頻編碼器400接收視頻源405輸入視頻信號並將該信號編碼為位元流495。視頻編碼器400具有用於對來自視頻源405的信號進行編碼的若干組件或模塊,至少包括選自以下的一些組件:變換模塊410、量化模塊411、逆量化模塊414、逆變換模塊415、幀內估計模塊420、幀內預測模塊425、運動補償模塊430、運動估計模塊435、環路濾波器445、重構圖片緩衝器450、MV緩衝器465、MV預測模塊475和熵編碼器490。運動補償模塊430和運動估計模塊435是幀間預測模塊440的一部分。
在一些實施例中,模塊410-490是由計算設備或電子設備的一個或多個處理單元(例如,處理器)執行的軟體指令模塊。在一些實施例中,模塊410-490是由電子裝置的一個或多個集成電路(IC)實現的硬體電路模塊。儘管模塊410-490被示為單獨的模塊,但是一些模塊可以組合成單個模塊。
視頻源405提供未壓縮的原始視頻信號,其呈現每個視頻幀的像素資料。減法器408計算視頻源405的原始視頻像素資料與來自運動補償模塊430或幀內預測模塊425的預測像素資料413之間的差異,作为预测残差409。變換模塊410將差異(或殘差像素資料或殘差信號408)轉換成變換係數(例如,通過執行離散餘弦變換或DCT)。量化模塊411將變換係數量化為量化資料(或量化係數)412,其由熵編碼器490編碼為位元流495。
逆量化模塊414對量化資料(或量化係數)412進行逆量化以獲得變換係數,逆變換模塊415對變換係數進行逆變換以產生重構殘差419。重構殘差419與預測像素資料413相加以產生重構像素資料417。在一些實施例中,重構像素資料417被臨時儲存在行緩衝器(未示出)中用於幀内預測和空間MV預測。重構像素由環路濾波器445過濾並儲存在重構圖片緩衝器450中。在一些實施例中,重構圖片緩衝器450是視頻編碼器400外部的儲存器。在一些實施例中,重構圖片緩衝器450是視頻編碼器400內部的儲存器。
幀内估計模塊420基於重構像素資料417執行幀内預測以產生幀内預測資料。幀內預測資料被提供給熵編碼器490以被編碼成位元流495。幀內預測資料也被幀內預測模塊425用來產生預測像素資料413。
運動估計模塊435通過產生MV以參考儲存在重構圖片緩衝器450中的先前解碼幀的像素資料來執行幀間預測。這些MV被提供給運動補償模塊430以產生預測像素資料。
視頻編碼器400不是在位元流中編碼完整的實際MV,而是使用MV預測來生成預測MV,並且用於運動補償的MV與預測MV之間的差異被編碼為殘差運動資料並儲存在位元流495中。
MV預測模塊475基於為先前編碼視頻幀而生成的參考MV,即用於執行運動補償的運動補償MV,生成預測MV。MV預測模塊475從MV緩衝器465中檢索來自先前視頻幀的參考MV。視頻編碼器400將為當前視頻幀生成的MV儲存在MV緩衝器465中作為用於生成預測MV的參考MV。
MV預測模塊475使用參考MV來創建預測MV。預測MV可以通過空間MV預測或時間MV預測來計算。熵編碼器490將預測MV與當前幀的運動補償MV(MC MV)之間的差異(殘差運動資料)編碼到位元流495中。
熵編碼器490通過使用諸如上下文自適應二進制算術編碼(CABAC)或霍夫曼編碼的熵編碼技術將各種參數和資料編碼到位元流495中。熵編碼器490將各種報頭元素、標誌連同量化變換係數412和殘差運動資料作為語法元素編碼到位元流495中。位元流495又儲存在儲存設備中或通過網絡通信媒介,例如網絡,傳輸到解碼器。
環內濾波器445對重構的像素資料417執行濾波或平滑操作以減少編碼的偽像,特別是在像素塊的邊界處。在一些實施例中,由環内濾波器445執行的濾波操作或平滑操作(smoothing operation)包括樣本自適應偏移(SAO)、解塊濾波器(DBF)、以及/或者自適應環路濾波器(ALF)。
第5圖示出視訊編碼器400的實現預測編碼的出界檢查的部分。 具體地,該圖示出了視訊編碼器400的運動補償模組430的組件。
如圖所示,運動補償模組430具有候選選擇器510,其從MV緩衝器465和幀內預測模組425選擇塊向量(包括運動向量和幀內預測模式)。此選擇由運動估計模組435控制。由OOB檢查模組530檢查所選擇的塊向量,其決定由塊向量識別的參考塊是否出界。所選的塊向量也被提供給預測生成模組520。
OOB檢查模組530基於視訊編碼層級的邊界來執行所識別的參考塊的OOB檢查。在一些實施例中,OOB檢查是基於從中獲得參考塊的參考圖片的圖片邊界。在一些實施例中,OOB檢查基於子圖片單元的邊界,該子圖片單元包括參考塊(的至少一部分)、子圖片單元(例如片、圖塊或管線資料單元)。
在一些實施例中,OOB檢查模組530檢查參考塊的每個像素位置或每個樣本的出界條件。在一些實施例中,OOB檢查模組530將當前塊劃分為子塊並對每個子塊(例如,4x4或8x8)執行OOB檢查。具體地,對於每個子塊,OOB檢查模組會決定對應的運動向量,然後在對應的運動向量所識別的參考子塊的代表像素位置進行OOB檢查。
預測生成模組520透過從重構圖片緩衝器450取得樣本來產生當前塊的預測子或預測塊作為預測像素資料413。運動估計模組435為當前塊選擇一個或多個預測編碼工具(例如,雙向預測、GPM、CIIP、MHP、幀內預測、IBC等),並且預測生成模組520是基於所選的預測工具產生預測子。運動估計模組435也將預測工具選擇提供給熵編碼器490以在位元流495中用訊號通知。
預測生成模組520還使用來自OOB檢查模組530的OOB檢查結果來確定在執行混合以產生用於雙向運動補償的預測子時是否排除由所選的塊向量識別的某些參考樣本。在一些實施例中,被OOB檢查模組530確定為OOB的子塊被排除在用於雙向運動補償的混合之外,而被確定為非OOB的子塊被包括在用於雙向運動補償的混合中。
第6圖概念性地顯示了執行像素塊的預測編碼時使用出界檢查的過程600。在一些實施例中,實作編碼器400的計算設備的一個或多個處理單元(例如,處理器)透過執行儲存在電腦可讀媒體中的指令來執行流程600。在一些實施例中,實現編碼器400的電子裝置執行過程600。
編碼器(在框610處)接收要被編碼為視訊的當前圖片的當前塊的資料。編碼器(在框620)是基於當前塊的第一塊向量來識別第一參考圖片中的第一參考塊。編碼器還可以基於當前塊的第二塊向量來識別第二參考圖片中的第二參考塊。
編碼器(在框630)對第一參考塊相對於第一參考圖片的子單元的邊界執行出界(OOB)檢查。編碼器也可以對第二參考塊執行OOB檢查。子單元可以是第一參考圖片的片、圖塊或管線資料單元。
在一些實施例中,當前塊可以是較大塊的多個子塊之一,並且僅對第一參考塊中的一個代表性像素位置執行第一參考塊的OOB檢查。代表性像素位置可以是分數位置。子塊的大小可以基於用於對當前塊進行編碼或解碼的編碼工具來確定。
對於每個子塊,編碼器可以識別參考圖片中的參考塊,僅在代表性像素位置而不是其他像素位置處相對於參考圖片的子單元的邊界對識別的參考塊執行OOB檢查並根據代表像素位置處的OOB檢查,決定是否對該子塊的所有樣本進行雙向運動補償。 編碼器可以從子塊的多個運動向量導出對應的運動向量,並且可以使用對應的運動向量來識別子塊的參考塊。在一些實施例中,透過計算子塊的多個運動向量的水平和垂直分量的最小值或最大值來導出子塊的對應運動向量。
編碼器(在框640)基於第一參考塊並且基於OOB檢查來產生當前塊的預測子。可以基於第一和第二參考塊並且基於第一和第二參考塊的OOB檢查來產生用於雙向運動補償的預測子。在一些實施例中,當第一參考塊的樣本是OOB時,此樣本不用於當前塊的雙向運動補償。在當前塊是較大塊的幾個子塊之一的一些實施例中,當代表性像素位置處的樣本是OOB時,不會對該子塊應用雙向運動補償。
編碼器(在塊650)透過使用產生的預測子來編碼當前塊以產生預測殘差。
Ⅲ
.
示例視頻解碼器
在一些實施例中,編碼器可以用信號通知(或生成)位元流中的一個或多個語法元素,使得解碼器可以從位元流中解析所述一個或多個語法元素。
第7圖說明執行預測模式時使用出界檢查的實例視頻解碼器700。如圖所示,視頻解碼器700是圖像解碼或視頻解碼電路,其接收位元流795並將位元流的內容解碼成視頻幀的像素資料以供顯示。視頻解碼器700具有用於解碼位元流795的若干組件或模塊,包括選自逆量化模塊711、逆變換模塊710、幀內預測模塊725、運動補償模塊730、環路濾波器745的一些組件、解碼圖片緩衝器750、MV緩衝器765、MV預測模塊775和解析器790。運動補償模塊730是幀間預測模塊740的一部分。
在一些實施例中,模塊710-790是由計算設備的一個或多個處理單元(例如處理器)執行的軟體指令模塊。在一些實施例中,模塊710-790是由電子裝置的一個或多個IC實現的硬體電路模塊。儘管模塊710-790被示為單獨的模塊,但是一些模塊可以組合成單個模塊。
解析器790(或熵解碼器)接收位元流795並根據由視頻編碼或圖像編碼標准定義的語法執行初始解析。解析的語法元素包括各種頭部元素、標誌以及量化資料(或量化係數)712。解析器790通過以下方式解析出各種語法元素使用熵編碼技術,例如上下文自適應二進制算術編碼(CABAC)或霍夫曼編碼。
逆量化模塊711對量化資料(或量化係數)712進行逆量化得到變換係數,逆變換模塊710對變換係數716進行逆變換得到重構殘差信號719。將重構殘差信號719與來自幀內預測模塊725或運動補償模塊730的預測像素資料713相加一起產生解碼像素資料717。解碼像素資料由環內濾波器745過濾並儲存在解碼圖片緩衝器750中。如圖所示,在一些實施例中,解碼圖片緩衝器750是視頻解碼器700外部的儲存。在一些實施例中,解碼圖片緩衝器750是視頻解碼器700內部的儲存。
幀內預測模塊725從位元流795接收幀內預測資料,並據此從解碼圖片緩衝器750中儲存的解碼像素資料717中生成預測像素資料713。在一些實施例中,解碼像素資料717也是儲存在行緩衝器(未示出)中用於幀内預測和空間MV預測。
在一些實施例中,解碼圖片緩衝器750的內容用於顯示。顯示設備755或者檢索解碼圖片緩衝器750的內容以直接顯示,或者檢索解碼圖片緩衝器的內容到顯示緩衝器。在一些實施例中,顯示設備通過像素傳輸從解碼圖片緩衝器750接收像素值。
運動補償模塊730根據運動補償MV(MC MV)從儲存在解碼圖片緩衝器750中的解碼像素資料717產生預測像素資料713。通過將從位元流795接收的殘差運動資料與從MV預測模塊775接收的預測MV相加來解碼這些運動補償MV。
MV預測模塊775基於為解碼先前視頻幀而生成的參考MV生成預測MV,例如,用於執行運動補償的運動補償MV。MV預測模塊775從MV緩衝器765中檢索先前視頻幀的參考MV。視頻解碼器700將為解碼當前視頻幀而生成的運動補償MV儲存在MV緩衝器765中作為用於產生預測MV的參考MV。
環內濾波器745對解碼像素資料717執行濾波或平滑操作以減少編碼偽像,特別是在像素塊的邊界處。在一些實施例中,由環内濾波器445執行的濾波操作或平滑操作(smoothing operation)包括樣本自適應偏移(SAO)、解塊濾波器(DBF)、以及/或者自適應環路濾波器(ALF)。
第8圖顯示視訊解碼器700的實現預測譯碼的出界檢查的部分。 具體地,該圖示出了視訊解碼器700的運動補償模組730的組件。
如圖所示,運動補償模組730具有候選選擇器810,其從MV緩衝器765和幀內預測模組725選擇塊向量(包括運動向量和幀內預測模式)。此選擇由熵解碼器790控制。塊向量由OOB檢查模組830檢查,其決定由塊向量識別的參考塊是否出界。所選的塊向量也被提供給預測生成模組820。
OOB檢查模組830基於視訊解碼層級的邊界來執行所識別的參考塊的OOB檢查。在一些實施例中,OOB檢查是基於從中獲得參考塊的參考圖片的圖片邊界。在一些實施例中,OOB檢查基於子圖片單元的邊界,該子圖片單元包括參考塊(的至少一部分)、子圖片單元(例如片、圖塊或管線資料單元)。
在一些實施例中,OOB檢查模組830檢查參考塊的每個像素位置或每個樣本的出界條件。在一些實施例中,OOB檢查模組830將當前塊劃分為子塊並對每個子塊(例如,4x4或8x8)執行OOB檢查。具體地,對於每個子塊,OOB檢查模組會決定對應的運動向量,然後在對應的運動向量所識別的參考子塊的代表像素位置進行OOB檢查。
預測生成模組820透過從解碼圖片緩衝器750取得樣本來產生當前塊的預測子或預測塊作為預測像素資料713。熵解碼器790為當前塊選擇一個或多個預測編碼工具(例如,雙向預測、GPM、CIIP、MHP、幀內預測、IBC等),並且預測生成模組820是基於所選的預測工具產生預測子。熵解碼器790也將預測工具選擇提供給熵解碼器790以在位元流795中用訊號通知。
預測子產生器模組820也使用來自OOB檢查模組830的OOB檢查結果來確定在執行混合以產生用於雙向運動補償的預測子時是否排除由所選的塊向量識別的某些參考樣本。在一些實施例中,被OOB檢查模組830確定為OOB的子塊被排除在用於雙向運動補償的混合之外,而被確定為非OOB的子塊被包括在用於雙向運動補償的混合中。
第9圖概念性地顯示了當執行像素塊的預測編碼時使用出界檢查的過程900。在一些實施例中,實作解碼器700的計算設備的一個或多個處理單元(例如,處理器)透過執行儲存在電腦可讀媒體中的指令來執行流程900。 在一些實施例中,實現解碼器700的電子裝置執行過程900。
解碼器(在塊910)接收要解碼為視訊的當前圖片的當前塊的資料。 解碼器(在框920)基於當前塊的第一塊向量來識別第一參考圖片中的第一參考塊。解碼器還可以基於當前塊的第二塊向量來識別第二參考圖片中的第二參考塊。
解碼器(在框930)對第一參考塊相對於第一參考圖片的子單元的邊界執行出界(OOB)檢查。解碼器也可以對第二參考塊執行OOB檢查。子單元可以是第一參考圖片的片、圖塊或管線資料單元。
在一些實施例中,當第一參考塊的樣本是OOB時,此樣本不用於當前塊的雙向運動補償。在當前塊是較大塊的幾個子塊之一的一些實施例中,當代表性像素位置處的樣本是OOB時,不會對該子塊應用雙向運動補償。
在一些實施例中,當前塊可以是較大塊的多個子塊之一,並且僅對第一參考塊中的一個代表性像素位置執行第一參考塊的OOB檢查。代表性像素位置可以是分數位置。子塊的大小可以基於用於解碼或解碼當前塊的編碼工具來確定。
對於每個子塊,解碼器可以識別參考圖片中的參考塊,針對所識別的參考塊相對於僅在參考塊中的代表像素位置而不是其他像素位置處確定參考圖片的子單元的邊界,並基於OOB校驗來確定是否對該子塊的所有樣本進行雙向運動補償在代表像素位置。 解碼器可以從子塊的多個運動向量導出對應的運動向量,並且可以使用對應的運動向量來識別子塊的參考塊。在一些實施例中,透過計算子塊的多個運動向量的水平和垂直分量的最小值或最大值來導出子塊的對應運動向量。
解碼器(在塊940)基於第一參考塊並且基於OOB檢查來產生當前塊的預測子。可以基於第一和第二參考塊並且基於第一和第二參考塊的OOB檢查來產生用於雙向運動補償的預測子。在一些實施例中,當第一參考塊的樣本是OOB時,此樣本不用於當前塊的雙向運動補償。在當前塊是較大塊的幾個子塊之一的一些實施例中,當代表性像素位置處的樣本是OOB時,不會對該子塊應用雙向運動補償。
解碼器(在塊950)透過使用產生的預測子來重建當前塊。 解碼器然後可以提供重構的當前塊以作為重構的當前圖片的一部分進行顯示。
IV
.
實例電子系統
許多上述特徵和應用被實現為軟體處理,這些軟體處理被指定為記錄在計算機可讀儲存介質(也稱為計算機可讀介質)上的一組指令。當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器、處理器核心或其他處理單元)執行時,它們會導致處理單元執行指令中指示的動作。計算機可讀介質的示例包括但不限於CD-ROM、閃存驅動器、隨機存取儲存器(RAM)芯片、硬盤驅動器、可擦除可編程只讀儲存器(EPROM)、電可擦除可編程只讀儲存器 (EEPROM)等。計算機可讀介質不包括無線或通過有線連接傳遞的載波和電子信號。
在本說明書中,術語“軟體”意味著包括駐留在只讀儲存器中的軔體或儲存在磁儲存器中的應用程序,其可以被讀入儲存器以供處理器處理。此外,在一些實施例中,多個軟體發明可以作為較大程序的子部分來實現,同時保留不同的軟體發明。在一些實施例中,多個軟體發明也可以被實現為單獨的程序。最後,一起實現這裡描述的軟體發明的單獨程序的任何組合都在本公開的範圍內。在一些實施例中,當軟體程序被安裝以在一個或多個電子系統上運行時,定義了一個或多個執行和執行軟體程序的操作的特定機器實現。
第10圖概念性地圖示了實現本公開的一些實施例的電子系統1000。電子系統1000可以是計算機(例如台式計算機、個人計算機、平板計算機等)、電話、PDA或任何其他種類的電子設備。這樣的電子系統包括各種類型的計算機可讀介質和用於各種其他類型的計算機可讀介質的接口。電子系統1000包括總線1005、處理單元1010、圖形處理單元(GPU)1015、系統儲存器1020、網絡1025、只讀儲存器1030、永久儲存設備1035、輸入設備1040和輸出設備1045。
總線1005共同表示通信連接電子系統1000的眾多內部設備的所有系統、外圍設備和芯片組總線。例如,總線1005通信連接處理單元1010和GPU1015,只讀儲存器1030、系統儲存器1020和永久儲存設備1035。
從這些不同的儲存器單元,處理單元1010檢索要執行的指令和要處理的資料以便執行本公開的處理。在不同的實施例中,處理單元可以是單處理器或多核處理器。一些指令被傳遞到GPU1015並由其執行。GPU1015可以卸載各種計算或補充由處理單元1010提供的圖像處理。
只讀儲存器(ROM)1030儲存由處理單元1010和電子系統的其他模塊使用的靜態資料和指令。另一方面,永久儲存設備1035是讀寫儲存設備。該設備是即使在電子系統1000關閉時也儲存指令和資料的非易失性儲存單元。本公開的一些實施例使用大容量儲存設備(例如磁盤或光盤及其相應的磁盤驅動器)作為永久儲存設備1035。
其他實施例使用可移動儲存設備(例如軟盤、閃存設備等及其對應的磁盤驅動器)作為永久儲存設備。與永久儲存設備1035一樣,系統儲存器1020是讀寫儲存設備。然而,與儲存設備1035不同,系統儲存器1020是易失性讀寫儲存器,例如隨機存取儲存器。系統儲存器1020儲存處理器在運行時使用的一些指令和資料。在一些實施例中,根據本公開的處理儲存在系統儲存器1020、永久儲存設備1035和/或只讀儲存器1030中。例如,各種儲存器單元包括用於處理多媒體剪輯的指令 與一些實施例。從這些不同的儲存器單元,處理單元1010檢索要執行的指令和要處理的資料以便執行一些實施例的處理。
總線1005還連接到輸入和輸出設備1040和1045。輸入設備1040使用戶能夠向電子系統傳送信息和選擇命令。輸入設備1040包括字母數字鍵盤和指點設備(也稱為“光標控制設備”)、相機(例如,網絡攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備1045顯示由電子系統生成的圖像或以其他方式輸出資料。輸出設備1045包括打印機和顯示設備,例如陰極射線管(CRT)或液晶顯示器(LCD),以及揚聲器或類似的音頻輸出設備。一些實施例包括同時用作輸入和輸出設備的設備,例如觸摸屏。
最後,如第10圖所示,總線1005還通過網絡適配器(未示出)將電子系統1000耦合到網絡1025。以這種方式,計算機可以是計算機網絡的一部分,例如局域網(“LAN”)、廣域網(“WAN”)或內聯網,或網絡網絡。電子系統1500的任何或所有組件可以結合本公開使用。
一些實施例包括電子元件,例如微處理器、儲存器和儲存器,其將計算機程序指令儲存在機器可讀或計算機可讀介質(或者稱為計算機可讀儲存介質、機器可讀介質或機器可讀儲存介質)中。此類計算機可讀介質的一些示例包括RAM、ROM、只讀光盤 (CD-ROM)、可記錄光盤(CD-R)、可重寫光盤 (CD-RW)、只讀數字多功能光盤(例如DVD-ROM,雙層DVD-ROM),各種可刻錄/可重寫DVD(例如,DVD-RAM,DVD-RW,DVD+RW,等等), 閃存(例如,SD卡,mini-SD卡、微型SD 卡等)、磁性和/或固態硬盤驅動器、只讀和可刻錄Blu-Ray® 光盤、超密度光盤、任何其他光學或磁性介質以及軟盤。計算機可讀介質可以儲存可由至少一個處理單元執行並且包括用於執行各種操作的指令集的計算機程序。計算機程序或計算機代碼的示例包括機器代碼,例如由編譯器生成的機器代碼,以及包括由計算機、電子組件或使用解釋器的微處理器執行的高級代碼的文件。
雖然上述討論主要涉及執行軟體的微處理器或多核處理器,但上述許多功能和應用都是由一個或多個集成電路執行的,例如專用集成電路 (ASIC) 或現場可編程門陣列 ( FPGA)。在一些實施例中,這樣的集成電路執行儲存在電路本身上的指令。此外,一些實施例執行儲存在可編程邏輯設備(PLD)、ROM或RAM設備中的軟體。
如本說明書和本申請的任何請求項中所用,術語“計算機”、“服務器”、“處理器”和“儲存器”均指電子或其他技術設備。 這些術語不包括人或人群。出於說明書的目的,術語顯示或顯示表示在電子設備上顯示。如本說明書和本申請的任何請求項中所使用,術語“計算機可讀介質”、“計算機可讀介質”和“機器可讀介質”完全限於以可讀形式儲存信息的有形物理對象。這些術語不包括任何無線信號、有線下載信號和任何其他臨時信號。
儘管已經參考許多具體細節描述了本公開,但是本領域的普通技術人員將認識到,在不脫離本公開的精神的情況下,可以以其他具體形式來實施本公開。此外,多個附圖(包括第6圖和第9圖)概念性地說明了處理。這些處理的特定操作可能不會按照所示和描述的確切順序執行。具體操作可以不在一個連續的系列操作中執行,並且可以在不同的實施例中執行不同的具體操作。此外,該處理可以使用多個子處理或作為更大的宏處理的一部分來實現。因此,本領域的普通技術人員將理解本公開不受前述說明性細節的限制,而是由所附請求項限定。
補充筆記
此處描述的主題有時說明包含在不同的其他組件內或與不同的其他組件連接的不同組件。應當理解,這樣描繪的架構僅僅是示例,並且實際上可以實現實現相同功能的許多其他架構。從概念上講,實現相同功能的組件的任何佈置都被有效地“關聯”,從而實現了所需的功能。因此,本文中的任何兩個組件組合以實現無論架構或中間組件如何,都可以將特定功能視為彼此“關聯”,從而實現所需的功能。同樣,如此關聯的任何兩個組件也可被視為彼此“可操作地連接”或“可操作地耦合”以實現期望的功能,並且能夠如此關聯的任何兩個組件也可被視為“可操作地連接” 耦合”,彼此實現所需的功能。可操作地耦合的具體示例包括但不限於物理上可配合和/或物理上交互的組件和/或無線上可交互和/或無線上交互的組件和/或邏輯上交互和/或邏輯上可交互的組件。
此外,關於本文中基本上任何復數和/或單數術語的使用,本領域技術人員可以根據上下文和/或從復數翻譯成單數和/或從單數翻譯成複數。 應用。為了清楚起見,可以在本文中明確地闡述各種單數/複數排列。
此外,本領域技術人員將理解,一般而言,本文使用的術語,尤其是所附請求項中使用的術語,例如所附請求項的主體,通常意在作為“開放”術語,例如,術語“包含”應解釋為“包括但不限於”、“具有”應解釋為“至少有”。本領域的技術人員將進一步理解,如果意圖引入特定數量的請求項陳述,則該意圖將在請求項中明確地陳述,並且在沒有該陳述的情況下不存在該意圖。例如,為了幫助理解,以下所附請求項可能包含使用介紹性短語“至少一個”和“一個或多個”來介紹請求項的敘述。然而,使用此類短語不應被解釋為暗示通過不定冠詞“一”或“一個”引入的請求項將包含此類引入的請求項的任何特定請求項限制為僅包含一個此類陳述的實現,即使當同一請求項包括介紹性短語“一個或多個”或“至少一個”和不定冠詞如“一個”,應解釋為“至少一個”或“一個或多個”。這同樣適用於使用定冠詞來引入索賠陳述。此外,即使明確引用了引入的請求項記載的具體數目,本領域技術人員將認識到,這種記載應被解釋為至少表示引用的數目,例如,“兩次迭代”的引用,而不包含其他修飾語,表示至少兩次迭代,或者兩次或更多次迭代。此外,在那些約定使用類似於“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”的可能性。
從上文中可以理解,為了說明的目的,本文已經描述了本公開的各種實施方式,並且在不脫離本公開的範圍和精神的情況下可以進行各種修改。因此,本文公開的各種實施方式並非旨在限制,真正的範圍和精神由所附請求項指示。
110:參考圖片
120、121:參考塊
111、230、220:參考圖片
100、200:當前圖片
105、210:當前塊
140:OOB部分
130:預測生成過程
135:預測塊
215:L0參考塊
216:L1參考塊
310:像素塊
321-324:子塊
331-334:參考子塊
305:邊界
400:視頻編碼器
405:視頻源
495、995:位元流
410:變換模塊
411:量化模塊
414、911:逆量化模塊
415、910:逆變換模塊
420:幀內估計模塊
425、925:幀內預測模塊
430、930:運動補償模塊
435:運動估計模塊
445、945:環路濾波器
450:重構圖片緩衝器
465、965:MV緩衝器
475:MV預測模塊
490:熵編碼器
413:預測像素資料
408:殘差信號
412、912:量化係數
419:重構殘差
413:預測像素資料
417:重構像素資料
510、810:候選選擇器
530、830:OOB檢查模組
520、820:預測生成模組
600、900:處理
610-650、910-960:步驟
900:視頻解碼器
950:解碼圖片緩衝器
975:MV預測模塊
990:解析器
940:幀間預測模塊
916:變換係數
919:重構殘差信號
913:預測像素資料
917:解碼像素資料
1000:電子系統
1005:總線
1010:處理單元
1015:圖形處理單元(GPU)
1020:系統儲存器
1025:網絡
1030:只讀儲存器
1035:永久儲存設備
1040:輸入設備
1045:輸出設備
所包含的附圖是為了提供對本公開的進一步理解,並且併入並構成本公開的一部分。附圖圖示了本公開的實施方式,並且與描述一起用於解釋本公開的原理。值得注意的是,附圖不一定是按比例繪製的,因為為了清楚地說明本公開的概念,一些組件可能被示出為與實際實施中的尺寸不成比例。
第1圖示出了利用出界(OOB)參考塊的雙向預測。
第2A-B圖示出了基於不同類型的邊界執行的OOB檢查。
第3圖概念性地示出了在子塊層級執行OOB檢查。
第4圖示出了在執行預測模式時可以使用出界檢查的範例視訊編碼器。
第5圖示出了實現預測編碼的出界檢查的視訊編碼器的部分。
第6圖概念性地顯示了執行像素塊的預測編碼時使用出界檢查的過程。
第7圖示出了在執行預測模式時可以使用出界檢查的範例視訊解碼器。
第8圖示出了實現預測編碼的出界檢查的視訊解碼器的部分。
第9圖概念性地顯示了當執行像素塊的預測編碼時使用出界檢查的過程。
第10圖概念性地示出了用於實現本揭露的一些實施例的電子系統。
230、220:參考圖片
200:當前圖片
210:當前塊
215:L0參考塊
216:L1參考塊
Claims (13)
- 一種視訊編解碼方法, 包括: 接收要編碼或解碼為視訊的當前圖片的當前塊的資料; 基於所述當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 對所述第一參考塊相對於所述第一參考圖片的子單元的邊界進行出界(OOB)檢查; 基於所述第一參考塊並基於OOB檢查產生所述當前塊的預測子;以及 使用產生的預測子對所述當前塊進行編碼或解碼。
- 如請求項1所述的視訊編解碼方法,其中,還包括: 基於所述當前塊的第二塊向量識別第二參考圖片中的第二參考塊;以及 對所述第二參考塊執行 OOB 檢查, 其中,基於所述第一參考塊和所述第二參考塊並且基於所述第一和第二參考塊的OOB檢查來產生所述預測子。
- 如請求項1所述的視訊編解碼方法,其中,當所述第一參考塊的樣本是OOB時,所述樣本不被用於所述當前塊的雙向運動補償。
- 如請求項1所述的視訊編解碼方法,其中,所述子單元是所述第一參考圖片的片、圖塊或管線資料單元之一。
- 如請求項1所述的視訊編解碼方法,其中所述當前塊是較大塊的多個子塊之一,其中僅對所述第一參考塊中的一個代表性像素位置執行所述第一參考塊的OOB檢查。
- 如請求項5所述的視訊編解碼方法,其中,當所述代表性像素位置處的樣本是OOB時,不對所述子塊應用雙向運動補償。
- 如請求項5所述的視訊編解碼方法,其中所述代表性像素位置是分數位置。
- 如請求項5所述的視訊編解碼方法,也包括對於所述較大塊的每個子塊: 辨識參考圖片中的參考塊; 僅在所述參考塊中的代表像素位置而不是其他像素位置處對所識別的參考塊相對於參考圖片的子單元的邊界進行OOB檢查;以及 基於所述代表像素位置的OOB檢查,確定是否對所述子塊的所有樣本進行雙向運動補償。
- 如請求項5所述的視訊編解碼方法,其中,基於用於對所述當前塊進行編碼或解碼的編解碼工具來確定子塊的尺寸。
- 如請求項5所述的視訊編解碼方法,其中從所述子塊的多個運動向量導出的相應運動向量被用來識別所述子塊的參考塊。
- 如請求項10所述的視訊編解碼方法,其中,透過計算所述子塊的多個運動向量的水平和垂直分量的最小值或最大值來導出所述子塊的相應運動向量。
- 一種電子設備,包括: 視訊編解碼電路被配置為執行包括以下操作的操作: 接收要編碼或解碼為視訊的當前圖片的當前塊的資料; 基於所述當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 對所述第一參考塊相對於第一參考圖片的子單元的邊界進行出界(OOB)檢查; 基於所述第一參考塊並基於OOB檢查產生所述當前塊的預測子;以及 使用產生的預測子對所述當前塊進行編碼或解碼。
- 一種視訊解碼方法,包括: 接收要解碼為視訊的當前圖片的當前塊的資料; 基於所述當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 對所述第一參考塊相對於第一參考圖片的子單元的邊界進行出界(OOB)檢查; 基於第一參考塊並基於OOB檢查產生當前塊的預測子; 以及 使用產生的預測子重建所述當前塊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/369,087 | 2022-07-22 | ||
WOPCT/CN2023/102691 | 2023-06-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202412526A true TW202412526A (zh) | 2024-03-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11115653B2 (en) | Intra block copy merge list simplification | |
US9148662B2 (en) | Motion picture encoding apparatus and method thereof | |
TW201946470A (zh) | 用於照度補償的信令 | |
TW201944777A (zh) | 隱式變換設置 | |
TW202007147A (zh) | 一種視訊編碼/解碼方法及裝置 | |
TWI743801B (zh) | 運動向量差值導數傳訊技術 | |
TW202126044A (zh) | 視訊編碼或解碼系統中的視訊處理方法和裝置 | |
TW202412526A (zh) | 視訊編解碼中的出界檢查 | |
WO2024016955A1 (en) | Out-of-boundary check in video coding | |
WO2024037645A1 (en) | Boundary sample derivation in video coding | |
WO2024037641A1 (en) | Out-of-boundary reference block handling | |
WO2023193769A1 (en) | Implicit multi-pass decoder-side motion vector refinement | |
WO2023198187A1 (en) | Template-based intra mode derivation and prediction | |
JP2014049875A (ja) | 画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム | |
WO2023186040A1 (en) | Bilateral template with multipass decoder side motion vector refinement | |
TW202402054A (zh) | 用於候選清單的相似性閾值 | |
TW202404354A (zh) | 利用卷積模型的預測改進 | |
WO2024017224A1 (en) | Affine candidate refinement | |
WO2023197998A1 (en) | Extended block partition types for video coding | |
TW202415075A (zh) | 基於區域的隱式幀內模式推導和預測 | |
TW202408232A (zh) | 更新合併候選的運動屬性 | |
TW202349954A (zh) | 自適應編解碼的圖像以及視訊資料 | |
TW202416713A (zh) | 仿射候選細化 | |
TW202345602A (zh) | 視訊編解碼的擴展範本匹配 | |
TW202349953A (zh) | 視訊編解碼方法及其裝置 |