TWI841265B - 視訊編解碼方法和裝置 - Google Patents
視訊編解碼方法和裝置 Download PDFInfo
- Publication number
- TWI841265B TWI841265B TW112107255A TW112107255A TWI841265B TW I841265 B TWI841265 B TW I841265B TW 112107255 A TW112107255 A TW 112107255A TW 112107255 A TW112107255 A TW 112107255A TW I841265 B TWI841265 B TW I841265B
- Authority
- TW
- Taiwan
- Prior art keywords
- current block
- decoding
- mode
- size
- coding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000000638 solvent extraction Methods 0.000 claims abstract description 32
- 238000005192 partition Methods 0.000 claims description 101
- 238000002156 mixing Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 23
- 238000012360 testing method Methods 0.000 abstract description 19
- 238000005457 optimization Methods 0.000 abstract description 6
- 239000013598 vector Substances 0.000 description 32
- 230000008569 process Effects 0.000 description 16
- 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 13
- 238000013461 design Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 230000002457 bidirectional effect Effects 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 239000000523 sample Substances 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000002553 single reaction monitoring Methods 0.000 description 6
- 238000013426 sirius red morphometry Methods 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 5
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 5
- 239000013074 reference sample Substances 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 101100346438 Caenorhabditis elegans mrg-1 gene Proteins 0.000 description 1
- 208000010378 Pulmonary Embolism Diseases 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Abstract
一種視訊編解碼方法和裝置,包括接收與當前塊相關的輸入資料,當當前塊的大小大於或等於閾值大小時,藉由禁用幾何分區模式(Geometric Partitioning Mode,簡稱GPM)來確定當前塊的編碼模式,以及根據確定的編解碼模式對當前塊進行編碼或解碼。在藉由並行處理組件(processing element,簡稱PE)執行速率失真優化(Rate Distortion Optimization,簡稱RDO)的高輸送量視訊編碼器中,所有或部分PE以廣播形式接收搜索範圍參考樣本。並行PE在當前塊的各種分區上測試多種編解碼模式,決定將當前塊劃分為一個或多個編解碼塊的塊分區結構,以及決定每個編解碼塊的編解碼模式。
Description
本發明涉及高輸送量視訊編碼或解碼方法和裝置。具體地,本發明涉及在視訊編碼系統的速率失真優化階段實現的高輸送量視訊編碼方法和裝置。
通用視訊編解碼(Versatile Video Coding,簡稱VVC)標準是由來自ITU-T研究組的視訊編解碼專家的視訊編解碼聯合協作組(Joint Collaborative Team on Video Coding,簡稱JCT-VC)組開發的最新視訊編解碼標準。VVC標準依賴於基於塊的編解碼結構,該結構將每個圖片分成多個編解碼樹單元(Coding Tree Units,簡稱CTU)。CTU由NxN亮度(luma)樣本塊以及一個或多個相應的色度(chroma)樣本塊組成。例如,每個4:2:0色度子採樣CTU由一個128x128亮度編解碼樹塊(Coding Tree Block,簡稱CTB)和兩個64x64色度CTB組成。每個CTU中的CTB進一步遞迴地劃分為編解碼單元中的一個或多個編解碼塊(Coding Block,簡稱CB)用於編碼或解碼,以適應各種本地特性。與高效視訊編解碼 (High-Efficiency Video Coding,簡稱HEVC)標準中採用的四叉樹(Quad-Tree,簡稱QT)結構相比,四叉樹二叉樹(Quad-Tree-Binary-Tree,簡稱QTBT)結構等靈活的CU結構提高了編解碼性能。第1圖示出藉由QTBT結構分割CTB的示例,其中CTB根據四叉樹結構適應性分區,然後每個四叉樹葉節點根據二叉樹結構適應性分區。二叉樹葉節點被表示為用於預測和變換的CB,無需進一步劃分。除了二叉樹分區之外,在四叉樹分區之後三叉樹分區可被選擇用來獲取四叉樹葉節點中心的對象。水平三叉樹分區將四叉樹的葉節點分成三個分區,頂部和底部分區中的每個分別是四叉樹葉節點大小的四分之一,中間分區的大小是四叉樹葉節點大小的一半。垂直三叉樹分區將四叉樹葉節點分成三個分區,左側和右側分區中的每個分別是四叉樹葉節點大小的四分之一,中間分區的大小是四叉樹葉節點大小的一半。在靈活的結構中,CTB首先按照四叉樹結構進行分區,然後四叉樹的葉節點進一步按照包含二叉和三叉分區的子樹結構進行分區。在這種靈活的結構中,子樹的葉節點被表示為CB。
視訊編碼或解碼中的預測決策是在編解碼單元(coding unit,簡稱CU)級別做出的,其中每個CU藉由在速率失真優化(Rate Distortion Optimization,簡稱RDO)階段中選擇的一種或多種編解碼模式的組合進行編解碼。在得到預測處理產生的殘差訊號後,屬於CU的殘差訊號被進一步變換為變換係數,用於緊湊的資料表示,這些變換係數被量化並傳送給解碼器。下面簡要介紹VVC標準中引入的幾種編解碼工具或編解碼模式。
具有 MVD 的合併模式( MMVD )對於由合併模式編解碼的CU,隱式導出的運動資訊被直接用於預測樣本生成。VVC標準中引入的具有運動向量差的合併模式(merge mode with Motion Vector Difference,簡稱MMVD)藉由發送運動向量差(Motion Vector Difference,簡稱MVD) 資訊來進一步細化選擇的合併候選。MMVD標誌在常規合併標誌之後立即發送,以指定MMVD模式是否用於CU。在位元流中發送的MMVD資訊包括MMVD候選標誌、指定運動幅度的索引和用於指示運動方向的索引。在MMVD模式中,合併列表中的前兩個候選之一被選擇作為MV基礎。MMVD候選標誌被發送以指定前兩個合併候選中的哪一個被使用。距離索引指定運動幅度資訊以及指示距起點的預定偏移。偏移量被添加到起始MV的水平或垂直分量。距離索引與預定偏移量的關係如表1所示。
表 1 – 距離索引與預定偏移量的關係
距離索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
偏移量(以亮度樣本為單位) | 1/4 | 1/2 | 1 | 2 | 4 | 8 | 16 | 32 |
方向索引表示MVD相對於起點的方向。方向索引表示沿水平和垂直方向的四個方向之一。需要注意的是,MVD符號的含義可以根據起始MV的資訊而變化。例如,當起始MV是單向預測MV或雙向預測MV,其中兩個列表都指向當前圖片的相同方向時,表2所示的符號指定添加到起始MV的MV偏移量的符號。如果兩個參考圖片的圖片順序計數(Picture Order Count,簡稱POC)都大於當前圖片的POC,或者兩個參考圖片的POC都小於當前圖片的POC,則兩個列表都指向當前圖片的相同方向。當起始MV是雙向預測MV,其中兩個MV指向當前圖片的不同方向,以及列表0中的POC的差值大於列表1中的POC時,表2中的符號指定添加到起始MV的列表0 MV分量的MV偏移量的符號,以及列表1 MV的符號具有相反的符號。否則,當列表1中的POC的差值大於列表0中的POC時,表2中的符號指定添加到起始MV的列表1 MV分量的MV偏移量的符號,以及列表0 MV的符號具有相反的符號。MVD根據每個方向上POC的差值進行縮放。如果兩個列表中POC的差值相同,則縮放不被需要;否則,如果列表0中的POC差值大於列表1的POC差值,則藉由將列表0的POC差值定義為td以及將列表1的POC差值定義為tb來縮放列表1的MVD。如果列表1的POC差值大於列表0,則列表0的MVD以相同的方式縮放。如果起始MV是單向預測的,則MVD被添加到可用MV。
表 2 – 方向索引指定的 MV 偏移量的符號
方向IDX | 00 | 01 | 10 | 11 |
x-axis | + | − | N/A | N/A |
y-axis | N/A | N/A | + | − |
具有 CU 級別權重( Bi-prediction with CU-level Weight ,簡稱 BCW )的雙向預測在HEVC標準中,藉由對從兩個不同參考圖片獲得的兩個預測訊號進行平均和/或使用的兩個不同運動向量,雙向預測訊號被生成。在VVC標準中,雙向預測模式被擴展到簡單平均之外,以允許對兩個預測訊號進行加權平均。
在VVC標準中,加權平均雙向預測中允許有五個權重wϵ{-2,3,4,5,10}。在每個雙向預測的CU中,權重w以下兩種方式之一確定:1)對於非合併CU,權重索引在運動向量差之後發送;2)對於合併CU,權重索引基於合併候選索引從相鄰塊中推斷出來。BCW僅適用於具有256或更多亮度樣本的 CU,這意味著CU寬度乘以CU高度必須大於或等於256。對於低延遲圖片,所有5個權重被使用。對於非低延遲圖片,僅3個權重wϵ{3,4,5}被使用。
快速搜索演算法被用來找到權重索引,而不會顯著增加視訊編碼器處的編碼器複雜度。當BCW與適應性運動向量解析度(Adaptive Motion Vector Resolution,簡稱AMVR)相結合時,如果當前圖片是低延遲圖片,則僅對1像素和4像素運動向量精度有條件地檢查不相等的權重。當BCM與仿射模式相結合時,只有當仿射模式被選為當前最佳模式時,仿射運動估計(affine Motion Estimation,簡稱ME)才會被執行用於不相等的權重。只有當雙向預測中的兩個參考圖片相同時,不相等的權重才會被有條件地檢查。當特定條件被滿足時,不相等的權重不被搜索,這取決於當前圖片與其參考圖片之間的POC距離、編解碼QP和時間級別。
BCW權重索引使用一個上下文編解碼的二進位位元(bin)進行編解碼,然後是旁路編解碼的二進位位元。第一上下文編解碼的bin指示是否使用相等的權重;以及如果不相等的權重被使用,則額外的bin使用旁路編解碼發送,以指示哪個不相等的權重被使用。加權預測(weighted prediction,簡稱WP) 是一種受H.264/AVC和HEVC標準支援的編解碼工具,可有效編解碼具有衰落的視訊內容。對WP的支援也被添加到VVC標準中。WP允許對每個參考圖片列表L0和L1中的每個參考圖片發送加權參數(權重和偏移量)。在運動補償期間,相應參考圖片的權重和偏移量被應用。WP和BCW被設計用於不同類型的視訊內容。為了避免WP和BCW之間的交互(這會使VVC解碼器設計複雜化),如果CU 使用WP,則BCW權重索引不被通知,以及w被推斷為4,意味著相等的權重被應用。對於合併CU,權重索引從基於合併候選索引的相鄰塊中推斷。這可以應用於普通合併模式(normal Merge mode)和繼承仿射合併模式(inherited affine Merge mode)。對於構建的仿射合併模式,仿射運動資訊基於最多3個塊的運動資訊構建。使用構建的仿射合併模式的CU的BCW索引被簡單地設置為等於第一控制點MV的BCW索引。在VVC標準中,組合幀間和幀內預測(Combined Inter and Intra Prediction,簡稱CIIP)和BCW不能聯合應用於CU。當CU使用CIIP模式編解碼時,當前CU的CBW索引被設置為4,意味著相等的權重被應用。
幾何分區模式( Geometric Partitioning Mode ,簡稱 GPM )在VVC標準中,GPM被支援用於幀間預測。GPM的應用使用CU級別標誌作為一種合併模式發送,其他合併模式包括常規合併模式、MMVD模式、CCIP模式和子塊合併模式。整個地,對於每個可能的CU大小w×h=2
m×2
n,GPM總共支援64個分區,其中m,nϵ{3···6}不包括8x64和64x8。以前,當這種模式被使用時,CU被一條幾何定位的直線分成兩部分,如第2圖所示。分割線的位置在數學上從特定分區的角度和偏移參數得出。CU中幾何分區的每個部分都使用自己的運動資訊進行幀間預測;每個分區只允許單向預測,即每個部分有一個運動向量和一個參考索引。單向預測運動約束被用來確保僅兩個運動補償預測子被計算用於每個CU,這與傳統的雙向預測相同。
如果幾何分區模式用於當前CU,則指示幾何分區的分區模式(角度和偏移)的幾何分區索引和兩個合併索引(每個分區一個)被進一步發送。最大GPM候選大小的數量在序列參數集(Sequence Parameter Set,簡稱SPS)中明確表示,以及指定GPM合併索引的語法二值化(syntax binarization)。樣本值使用具有適應性權重的混合處理來調整,以獲取整個CU的預測訊號。與其他預測模式一樣,變換和量化過程將被應用於整個CU。最後,使用幾何分區模式預測的CU的運動場被存儲。
根據擴展的合併預測處理,單向預測候選列表是直接從構建的合併候選列表導出。將n表示為幾何單向預測候選列表中單向預測運動的索引。第n個擴展合併候選的LX運動向量(X等於n的奇偶性)被用作幾何分區模式的第n個單向預測運動向量。例如,合併索引0的單向預測運動向量是L0 MV,合併索引1的單向預測運動向量是L1 MV,合併索引2的單向預測運動向量是L0 MV,合併索引3的單向預測運動向量是L1 MV。在第n個擴展合併候選的對應LX運動向量不存在的情況下,相同候選的L(1-X)運動向量被用來代替幾何分區模式的單向預測運動向量。
在使用其自己的運動資訊預測幾何分區的每個部分之後,混合被應用於兩個預測訊號以導出當前CU的樣本。CU的每個位置的混合權重根據每個樣本的位置和當前CU的幾何分區的分區模式資訊(例如角度和偏移量)導出。
由GPM編解碼的CU可以基於第一組預測子進行幀間預測,基於第二組預測子進行幀間預測,以及基於第三組預測子進行幀間預測。第三組預測子藉由基於第一組預測子和第二組預測子進行混合導出。對應於第一組預測子的Mv1、對應於第二組預測子的Mv2以及Mv1和Mv2的組合運動向量被存儲在幾何分區模式編解碼的CU的運動場中。運動場中每個單獨位置的存儲運動向量類型由以下確定:
其中motionIdx等於
d(4
x+2,4
y+2),它根據上述等式重新計算。partIdx取決於角度索引
i。如果sType等於0或1,Mv0或Mv1被存儲在相應的運動場中,否則如果sType等於2,則來自Mv0和Mv2的組合運動向量被存儲。組合運動向量使用以下處理生成:如果Mv1和Mv2來自不同的參考圖片列表(一個來自L0,另一個來自 L1),則Mv1和Mv2被簡單地組合以形成雙向預測運動向量;否則,如果Mv1和Mv2來自同一個列表,則僅單向預測運動向量Mv2被存儲。
組合幀間和幀內預測( Combined Inter and Intra Prediction ,簡稱 CIIP )在VVC標準中,當CU以合併模式編解碼時,如果該CU包含至少64個亮度樣本(即CU寬度乘以CU高度等於或大於64),以及如果CU寬度和CU高度都小於128亮度樣本,則額外標誌被發送以指示組合幀間和幀內預測(CIIP)模式是否被應用於當前CU。顧名思義,CIIP模式將幀間預測訊號與幀內預測訊號相結合。CIIP模式下的幀間預測訊號
P
inter 使用與常規合併模式應用的幀間預測處理相同的幀間預測處理導出;以及幀內預測訊號
P
intra 按照平面模式的常規幀內預測處理導出。然後,幀內和幀間預測訊號使用加權平均來組合,其中加權值根據頂部和左側相鄰塊的編解碼模式計算如下。如果頂部相鄰塊可用並且進行幀內編解碼,則變數isIntraTop被設置為1,否則isIntraTop被設置為0,以及如果左側相鄰塊可用並且進行幀內編解碼,則變數isIntraLeft被設置為1,否則isIntraLeft被設置為0。如果兩個變數isIntraTop和isIntraLeft之和等於2,則加權值wt被設置為3,否則如果兩個變數之和等於1,則加權值wt被設置為2;否則,加權值wt被設置為1。CIIP預測計算如下:
用於視訊編碼系統或視訊解碼系統的視訊編碼方法的實施例包括接收與當前塊相關的輸入資料,將當前塊的大小與閾值大小進行比較,當當前塊的大小大於或等於閾值大小時,藉由禁用GPM來確定當前塊的編解碼模式,以及按照確定的編解碼方式對當前塊進行編碼或解碼。當編碼模式為GPM時,當前塊基於第一組預測子進行幀間預測,基於第二組預測子進行幀間預測,以及基於第三組預測子進行幀間預測。第三組預測子藉由基於第一組預測子和第二組預測子進行混合導出。這些實施例中的當前塊是編解碼塊(Coding Block,簡稱CB)或從編解碼樹塊(Coding Tree Block,簡稱CTB)或編解碼樹單元(Coding Tree Unit,簡稱CTU)分割的編解碼單元。
在視訊編碼或解碼方法的一些實施例中,閾值大小是2048個樣本,以及當當前塊的大小是64x64、64x32或32x64個樣本時,對當前塊禁用GPM。在一些實施例中,當合併候選列表中的候選數量較少時,GPM被致能於大尺寸塊。例如,視訊編碼或解碼系統確定當前塊的合併候選列表中的候選數量,將候選數量與閾值數量進行比較,當候選數量大於閾值數量時,對當前塊禁用GPM。在這種情況下,當當前塊的大小小於閾值大小,或者當前塊的大小大於或等於閾值大小和合併候選列表中的候選數量小於或等於閾值數量時,GPM被致能於當前塊。閾值數量的示例是3。
視訊編碼方法的實施例使用並行處理組件(Processing Element,簡稱PE)確定塊分區結構和編解碼模式。視訊編碼方法包括接收與當前塊相關的輸入資料,由並行PE處理輸入資料以確定當前塊的塊分區結構以及當前塊中每個編解碼塊的對應編解碼模式,以及根據對應的編解碼方式對當前塊中的每個編解塊進行編碼。每個PE在每個PE運行中執行速率失真優化(Rate Distortion Optimization,簡稱RDO)操作的任務。PE讀取搜索範圍記憶體(Search Range Memory,簡稱SRM)以獲取PE的搜索範圍參考樣本。兩個或多個PE以廣播形式接收搜索範圍參考樣本。PE在當前塊的可能分區和子分區上測試多種編解碼模式,以及基於與PE組測試的編解碼模式相關的速率失真成本,用於將當前塊分割成一個或多個的編解塊的分割結構以及每個編解碼塊對應的編解碼模式被確定。這些實施例中的當前塊是CTB或CTU,CTB中的編解碼塊是CB,CTU中的編解碼塊是CU。
在本發明的一些實施例中,SRM是三層SRM結構,包括第三層SRM、多個第二層SRM和至少一個廣播SRM。搜索範圍參考樣本藉由時間交錯讀取從第三層SRM輸出到第二層SRM,用於將搜索範圍參考樣本分配給相應的PE。至少一個第二層SRM將搜索範圍參考樣本輸出到一個廣播SRM,以及每個廣播SRM將搜索範圍參考樣本廣播給兩個或多個PE。在三層SRM結構的一個實施例中,三層緩存埠(cache point)由兩個或多個第二層SRM共用。在一些優選實施例中,每個廣播SRM的掃描順序與對應PE的掃描順序相同,因此廣播SRM是外掛程式式(plug-in)設計。
根據本發明的實施例,常規合併候選的搜索範圍參考樣本被廣播到測試常規合併候選、GPM候選或CIIP候選的PE。類似地,高級運動向量預測(Advanced Motion Vector Prediction,簡稱AMVP)候選的搜索範圍參考樣本可被廣播到測試AMVP候選或對稱運動向量差(Symmetric Motion Vector Difference,簡稱SMVD)候選的PE,或者適應性運動向量解析度(Adaptive Motion Vector Resolution,簡稱AMVR)的搜索範圍參考樣本(AMVR)候選可被廣播到測試AMVR候選、SMVD候選或具有CU級別權重的雙向預測(Bi-prediction with CU-level Weight,簡稱BCW)候選的PE。根據本發明的一些實施例,接收廣播搜索範圍參考樣本的兩個或更多PE的掃描順序是相同的,因此從SRM讀出的搜索範圍參考樣本被這些PE直接使用而進行緩存。
在視訊編碼方法的一些實施例中,SRM和PE之間的頻寬可以藉由預載入(pre-loadable)可預載入候選的搜索範圍參考樣本來進一步減少。例如,在後續運行中需要的可預載入候選的搜索範圍參考樣本在當前運行中被預載入。可預載入候選的一些示例是AMVP候選、AMVR候選和基於仿射幀間的候選。
由一些PE測試的編解碼模式根據實施例被重新排序,使得高頻寬模式與低頻寬模式並行處理。在示例性PE中,由一個PE執行緒(PE thread)測試的具有運動向量差(Merge mode with Motion Vector Difference,簡稱MMVD)候選的合併模式被重新排序以與由另一PE測試的幀內模式並行執行。
當搜索範圍參考樣本在同一窗口中或旋轉索引在同一窗口中時,處理小編解碼塊的至少一個PE同時從SRM載入候選的搜索範圍參考樣本。在另一實施例中,在低複雜度(Low Complexity,簡稱LC)操作中使用雙線性濾波器來測試一個或多個MMVD候選,以便減少所需的搜索範圍參考樣本的參考區域。
本公開的方面還提供了一種用於視訊編碼或解碼系統的裝置。該裝置包括一個或多個電子電路,被配置用於接收與當前塊相關的輸入資料,檢查當前編解碼塊的大小是否大於或等於閾值大小,如果當前編解碼塊的大小大於或等於閾值大小,藉由禁用GPM來確定當前編解碼塊的編解碼模式,以及藉由確定的編解碼模式對當前塊進行編碼或解碼。
將容易理解的是,如本文附圖中大體描述和圖示的本發明的組件可被佈置和設計成多種不同的配置。因此,如附圖中所表示的本發明的系統和方法的實施例的以下更詳細的描述並不旨在限制所要求保護的本發明的範圍,而僅代表本發明的選定實施例。
在整個說明書中對“一個實施例”、“一些實施例”或類似語言的引用意味著結合實施例描述的特定特徵、結構或特性可以包括在本發明的至少一個實施例中。因此,貫穿本說明書的各個地方出現的短語“在一個實施例中”或“在一些實施例中”不一定都指同一實施例,這些實施例可以單獨實施,也可以結合一個或多個其他實施例實施。此外,所描述的特徵、結構或特性可以在一個或多個實施例中以任一合適的方式組合。然而,相關領域的技術人員將認識到,本發明可以在沒有一個或多個具體細節的情況下,或使用其他方法、組件等來實踐。在其他情況下,未示出或未示出眾所周知的結構或操作。詳細描述以避免模糊本發明的方面。
高輸送量視訊編碼器用於將視訊圖片編碼成視訊位元流的高輸送量視訊編碼器300如第3圖所示。高輸送量視訊編碼器300的編碼處理可被分為四個階段:預處理階段32,整數運動估計(Interger Motion Estimation,簡稱IME)階段34、速率失真優化(Rate-Distortion Optimization,簡稱RDO)階段36、以及環路濾波和熵編碼階段38。在這些階段,視訊圖像中的塊被連續處理。常見的運動估計架構由整數運動估計(Integer Motion Estimation,簡稱IME)和分數運動估計(Fraction Motion Estimation,簡稱FME)組成,其中IME在大面積上執行整數像素搜索,以及FME在最佳選擇的整數像素周圍執行子像素搜索。在RDO階段36中,包含並行PE的多個處理組件(Processing Element,簡稱PE)組中的每個被用於確定塊分區結構,該塊分區結構用於將當前塊分割為一個或多個編解碼塊,以及這些PE組還用於確定每個編解碼塊對應的編解碼模式。PE是一個通用術語,用於引用硬體元素,該硬體元素執行指令流以對資料執行算術和邏輯運算。在一個或多個PE運行(run)中,每個PE執行與編解碼模式或編解碼模式的一個或多個候選相關的任務。當前塊的示例是CTB,以及編解碼塊是從CTB分離的CB。視訊編碼器根據塊分區結構將當前塊分割為一個或多個編解碼塊,以及根據RDO階段36決定的編解碼模式對每個編解碼塊進行編碼。在RDO階段36中,每個PE組具有多個並行PE,以及在一個或多個PE運行中,每個PE執行與用於RDO操作的編解碼模式相關的任務。每個PE組依次計算一個或多個分區上應用的編解碼模式的速率失真成本,每個分區具有特定的塊大小和加起來為特定塊大小的子分區。對於每個PE組,當前塊被劃分為一個或多個分區,每個分區具有與PE組相關的特定塊大小,以及每個分區根據一種或多種分區類型被劃分為子分區。用於將每個分區劃分為子分區的一些示例性分區類型是水平二叉樹分區和垂直二叉樹分區。例如,PE組0的分區和子分區包括128x128的分區、頂部128x64的子分區、底部128x64的子分區、左側64x128的子分區和右側128x64的子分區。每個PE組中的PE在當前塊的每個分區上測試各種編解碼模式,該分區具有特定的塊大小以及從每個分區分割出的相應子分區。因此,當前塊的最佳塊分區結構和編解碼塊的最佳編解碼模式根據與RDO階段36中測試的編解碼模式相關的速率失真成本來決定。在每個PE運行(run)中,藉由低複雜度(Low-Complexity,簡稱LC)速率失真優化(Rate Distortion Optimization,簡稱RDO)操作,接著是高複雜度(High-Complexity,簡稱HC)RDO操作,PE計算分區或子分區的視訊資料。
用於高輸送量視訊編碼器的新型 SRM 設計術語PE運行(PE run)或埠運行(port run)用於計算由PE測試一種或多種編解碼模式所需的時間間隔的數量。例如,PE在一次PE運行中藉由幀內模式對預定分區進行編碼。高輸送量編碼器的搜索範圍記憶體(Search Range Memory,簡稱SRM)讀取中出現的瓶頸是並行PE所需的高頻寬。視訊編碼器中使用的並行PE越多,輸送量就越好,然而,這意味著大量並行PE同時讀取SRM。降低SRM和PE之間的高頻寬需求的兩種可能的解決方案包括安裝N次SRM副本和時間交錯讀取。擁有N次SRM副本的主要缺點是編碼器成本會大大增加。大量PE的時間交錯讀取導致巨大的讀取路徑緩衝區和較長的閒置時間。例如,當有64個PE同時藉由64個埠讀取SRM時,需要每個解析度720個SRM記憶體庫(bank),因此在適應性運動向量解析度(Adaptive Motion Vector,簡稱AMVR)中測試四種解析度總共需要2880個單獨的SRAM。對於處理較少計算的PE,由於時間交錯讀取延遲,將有較長的閒置時間。此外,要為時間交錯讀取保留大約60個週期的資料,讀取緩衝區的成本非常高。例如,一個PE所需的讀取緩衝區大小為60個週期*12*4像素*10位元元/像素=28800位元,這也是非常昂貴的。
第4圖示出用於將資料輸出到64個並行PE的示例性三層SRM架構。藉由時間交錯讀取,搜索範圍參考樣本從第三層SRM 42輸出到五個第二層SRM 441~445。第二層SRM 441-445中的每一個都向五個PE組(大PE(LPE) 461、中PE(MPE)462、小PE(SPE)463、第一微小PE(TPE-N)464和第二微小PE(TPE-B)465)中的一個提供搜索範圍參考樣本。五個PE組處理不同大小的塊分區。例如,PE組LPE 461處理64×64的分區和對應的子分區,PE組MPE 462處理32×32的分區和對應的子分區。如第4圖的示例所示,PE組LPE 461由5個PE組成,PE組MPE 462由10個PE組成,PE組SPE 463由18個PE組成,PE組TPE-N 464由9個PE組成,PE組TPE-B465由22個PE組成。第二層SRM中的搜索範圍參考樣本被預載入以及分發給相應PE組的PE。PE組LPE 461中的5個PE中的每一個以時間交錯的形式接入第二層SRM 441,PE組MPE 462中的10個PE中的每一個以時間交織的形式接入第二層SRM 442。對於第二層SRM 443、444和445中的每一個,廣播SRM用於同時向一些PE廣播搜索範圍參考樣本。第二層SRM 444中的第三層緩存埠可由第二層SRM 445重用。將搜索範圍參考樣本廣播到多個PE是有益的,因為許多相關模式可以重用一些基本模式的搜索範圍參考樣本。例如,使用GPM對當前分區或子分區進行編碼可以重用常規合併模式的搜索範圍參考樣本,以及使用MMVD對當前分區或子分區進行編碼可以重用合併0和合併1的搜索範圍參考樣本。使用對稱運動向量差(Symmetric Motion Vector Difference,簡稱SMVD)對當前分區或子分區進行編碼可以重用AMVR的搜索範圍參考樣本。編解碼模式或編解碼模式候選的搜索範圍參考樣本在下文中可被稱為參考範圍。實現這種三層SRM架構可以減少埠的數量,因為第三層SRM會遇到常規合併模式和AMVR等基本模式的埠運行,以及一些PE處理相關模式可以重用資料。對於負責模式(responsible mode)需要較少計算的PE,藉由增加PE數量來交換輸送量,空閒率不會大幅增加。為了減少接入埠的數量,常用候選以候選方式(candidate-wise)被存儲用於多個PE存儲。以下表3示出根據本發明實施例藉由實現三層SRM架構來減少執行各種編解碼模式所需的埠運行的數量的示例。在一些實施例中,所有解析度的參考區域對於AMVR被限制為相同,以便減少AMVR所需的埠運行的數量。由於所有解析度共用相同的參考區域,AMVR的一些編解碼增益可能會丟失,但只需要4個埠運行而不是13個埠運行。GPM所需的原始頻寬可被節省,因為每個GPM對的參考範圍重用兩個常規合併候選的參考範圍。類似地,每個CIIP對的參考範圍重用相應的常規合併候選者的參考範圍。
表 3
編解碼工具 | 所需參考範圍 | 需要的埠運行的原始數量 | 本地緩存下 埠運行的數量 |
AMVR (四個解析率 Q, H, 1, 4) | 4(Q), 4(H), 4(1), 4(4) | 4+3+3+3 | 4 |
常規合併 | 6 (候選)*2 (L0, L1) | 6 | 6 |
仿射幀間 | 4 (4參數), 4 (6參數) | 8 | 2 |
仿射合併 | 5 (候選)*2 (L0, L1) | 5 | 5 |
sbTMVP | 2 (L0, L1) | 1 | 1 |
GPM | 5 (候選)*2 (部分1, 部分2) | 10 (PE呼叫) | 0 (重用合併的參考範圍) |
CIIP | 6 (候選)*2 (L0,L1) | 6 | 0 (重用合併的參考範圍) |
MMVD | 2 | 8 | 2 |
BCW | 8+4+4+4 | 0 (重用AMVR的參考範圍) | |
SMVD | 9 | 3+3+3 | 2+2+2 (組合鏡像參考) |
對於要在仿射幀間模式中編碼的塊,藉由強制仿射幀間候選的所有預調用使用四個共用參考區域來將埠運行的數量從8減少到2。對於要藉由 MMVD模式編碼的PE處理塊,埠運行的數量可以從8個減少到2 個,因為2個MMVD候選重用2個合併模式候選的參考區域,其具有擴大的範圍。MMVD編解碼模式共用一些原本對合併模式執行任務的PE。藉由使用本地緩存實現SRM架構以及將常用候選存儲為候選方式(candidate-wise manner),埠運行的數量被大大減少。
第5圖示出根據本發明實施例的由多個並行處理PE對SRM的基於廣播的讀取。所有或部分PE以廣播形式從SRM 52獲取搜索範圍參考樣本。例如,用於執行合併模式的PE 541、用於執行GPM模式的PE 542和用於執行CIIP模式的PE 543從SRM 521獲取用於基於合併的候選的廣播搜索範圍參考樣本。類似地,用於執行高級運動向量預測(Advanced Motion Vector Prediction,簡稱AMVP)模式的PE 544和用於執行對稱運動向量差(Symmetric Motion Vector Difference,簡稱SMVD)模式的PE 545以廣播形式從SRM 522獲取基於AMVP的候選的搜索範圍參考樣本。藉由廣播獲取同一候選的搜索範圍參考樣本的所有PE的讀取模式都是相同的。這樣,SRAM讀出的資料可以藉由硬接線直接廣播到所有PE,無需任何仲裁。與GPM和CIIP等編解碼工具相關的候選被分組為合併候選,以便重用合併候選SRAM頻寬,與SMVD等編解碼工具相關的候選被分組為AMVP候選以及重用AMVP候選的SRAM頻寬。藉由實施基於廣播的SRM架構,不再需要額外的SRAM頻寬來處理GPM、CIIP和SMVD候選。
在一些實施例中,本發明的基於廣播的SRM架構與一些編解碼工具的並行PE中的硬體共用(hardware sharing)一起使用。在一個實施例中,GPM的候選列表直接從合併候選列表導出,例如,六個GPM候選分別從合併候選0和1、合併候選1和2、合併候選0和2、合併候選3和4, 合併候選4和5,合併候選3和5導出。在根據兩個合併候選得到幾何分區各部分對應的合併預測樣本後,幾何分區邊緣周圍的合併預測樣本被混合導出GPM預測樣本。利用並行PE設計中的硬體共用,GPM PE的一個實施例直接共用來自一個或多個合併PE的合併預測樣本,而不將合併預測樣本臨時存儲在緩衝區中。這種具有硬體共用的並行PE設計的一個好處是節省了頻寬,這是因為GPM PE直接使用來自合併PE的合併預測樣本來進行GPM算術計算,而不是從緩衝區中獲取參考樣本。藉由將基於廣播的SRM架構和並行PE中的硬體共用相結合,GPM候選的合併候選的搜索範圍參考樣本從基於廣播的SRM中獲取,以及GPM候選的合併候選的預測子直接從合併PE中共用。
在一些優選實施例中,共用搜索範圍參考樣本的所有PE的掃描順序是相同的,在這種情況下,從SRM讀出的搜索範圍參考樣本被PE直接使用而無需緩存。藉由廣播與同一候選相關的所有PE的讀取模式都是相同的,因此基於廣播的SRM架構直接藉由硬接線(hard-wiring)將SRAM讀出資料廣播到所有PE,無需任何仲裁。PE和緩存之間的臨時緩衝區可以最小化。在本發明的一個實施例中,當廣播緩存和PE引擎採用相同的掃描順序時,PE組的廣播SRM可以是外掛程式式(plug-in)設計。換句話說,在廣播緩存的掃描順序等於PE讀取順序時,基於廣播的SRM架構是PE引擎從SRM讀取搜索範圍參考樣本或將參考樣本寫入SRM的透明讀取設計(transparent accesing design)。只要這些參考樣本在1級SRM(即第4圖所示的廣播SRAM)中可用,所有或部分PE就可以廣播形式獲取參考樣本。這種透明讀取設計的好處包括不同擴展版本的外掛程式靈活性,以及PE與二級/三級緩存之間或一級緩存與二級/三級緩存之間的讀取是統一的。
藉由預載入對 SRM 設計的進一步改進本發明的一些實施例藉由在每個PE運行中更均勻地分配載入時間來進一步改進基於廣播的SRM設計。第6A-6C圖展示由24個並行PE對PE組TPE-B中的MVRM-3進行視訊編碼的一些示例。第6A圖示出當廣播SRM不被使用時在每次運行中獲取搜索範圍參考樣本需要24個埠。第6B圖示出藉由廣播SRM載入搜索範圍參考樣本的實施例。當廣播SRM被使用時,運行1中需要19個埠而運行2中不需要任一埠,而不是每次運行中佔用24個埠。儘管運行1和運行2的埠數量顯著減少,但載入頻寬非常不平衡,因為運行1需要19個埠,運行2需要0個埠。第6C圖示出藉由使用預載入技術均勻分佈載入時間的實施例。一些候選,例如AMVP、AMVR和基於仿射幀間的候選是可預載入的,因為在IME階段一切都是已知的。其他一些候選,例如基於合併的候選,必須與當前CU共同開始(co-start),因為它需要空間相鄰資訊。如第6C圖所示,當前分區的10個候選(例如基於合併的候選)在低複雜度RDO階段(PRED1~PRED24)的運行1中載入,而當前分區的4個候選(例如AMVR、AMVP或基於仿射幀間的候選)已經從以前的運行中預載入。在低複雜度RDO階段的運行2中,當前分區的另外6個候選被載入,加上後續分區的4個候選被預載入。由於實施了預載入技術,每次運行只需要10個埠。
在傳統設計中,N個PE以時間交錯的方式讀取SRM,其中每個PE需要等待N個週期才能讀取SRAM,因此每個PE需要一個很大的內部緩衝區(regFile)來緩衝N個迴圈資料。與傳統設計相比,對所有或部分PE採用基於廣播的緩存的好處包括消除或減少PE讀取SRM的等待時間,消除或減少PE處理短任務的閒置時間,以及消除對用於所有或部分PE的大型內部緩衝區的需求。藉由進一步使用部分預載入技術,最壞情況埠數量可被減少,從而最小化參考緩存(refCache)最壞情況頻寬。
用於高輸送量視訊編碼器中的 SRM 讀取的代表性流程圖第7 圖示出由並行PE組確定當前塊的塊分區結構和編解碼模式的實施例的流程圖。在步驟S702中,視訊編碼系統中的並行PE組接收當前塊的輸入資料,例如當前塊為CTU或CTB。在步驟S704中,每個並行PE組藉由以時間交錯的形式依次讀取SRM來讀取搜索範圍參考樣本。至少一個PE組中的兩個或多個PE藉由廣播形式接收搜索範圍參考樣本。例如,基於合併的候選的搜索範圍參考樣本被廣播到測試合併、GPM或CIIP模式的PE。在步驟S706中,每個PE組中的PE在一個或多個分區和子分區上測試各種編解碼模式。在步驟S708中,根據PE組測試的編解碼模式的速率失真成本,將當前塊劃分為一個或多個編解碼塊的塊分區結構以及每個編解碼塊對應的編解碼模式被確定。在步驟S710,視訊編碼系統根據對應的編解碼模式對當前塊中的編解碼塊進行編碼。
適應性禁用 GPM在本發明的一些實施例中,編碼器和解碼器根據塊大小適應性地禁用GPM編解碼工具。一些實施例的編碼器或解碼器關閉用於具有大於或等於閾值大小的大小的任一分區或子分區的GPM編解碼工具。分區或子分區是從CTB或CTU中分割出來的塊,該CTB或CTU在RDO階段藉由各種編解碼模式進行測試,當分區或子分區在RDO階段被選擇,該分區或子分區被稱為編解碼塊(Coding Block,簡稱CB)或編解碼單元(coding unit,簡稱CU)。例如,閾值大小為2048個樣本,因此在RDO階段,PE組處理64x64分區、64x32子分區和32x64子分區,跳過在64x64分區、64x32子分區和32x64子分區上評估 GPM編解碼工具。在一些實施例中,編碼器或解碼器對大小大於NxN個樣本的任一塊禁用GPM,例如N是32或16。在一些其他實施例中,根據合併候選列表,GPM編解碼工具被適應性地禁用。具體地,根據本發明的一些實施例,對於合併候選列表中的合併候選的數量大於閾值數量的任一塊,編碼器關閉GPM編解碼工具。例如,GPM編解碼工具僅致能用於具有2個或3個候選的合併候選列表的塊,而GPM編解碼工具對具有4個或更多候選的合併候選列表的塊禁用。相應的視訊解碼器也不允許使用GPM模式解碼具有多於閾值數量的合併候選的塊。在一個實施例中,編碼器或解碼器根據塊大小和合併候選列表中的候選數量來適應性地禁用GPM。例如,編碼器或解碼器僅在合併候選列表中有少數候選時才致能大塊的GPM,否則編碼器或解碼器會禁用具有大量候選的大塊的GPM。為了藉由GPM對當前塊進行編碼或解碼,當前塊由第一組預測子進行幀間預測,以及由第二組預測子進行幀間預測。第一或第二組預測子使用其自己的運動資訊(例如運動向量和參考索引)導出。當前塊的第三部分基於第三組預測子進行幀間預測,其中第三組預測子藉由基於第一組預測子和第二組預測子進行混合得。
第8圖示出根據塊大小和合併候選的數量適應性地禁用GPM的實施例的流程圖。在步驟S802,編碼器或解碼器接收與當前塊相關的輸入資料,以及在步驟S804,將當前塊的大小與閾值大小進行比較以檢查當前塊的大小是否大於或等於2048個樣本。例如,當大小為64x64、64x32或32x64的樣本時,當前塊的大小大於或等於2048個樣本。在步驟S806,在當前塊的大小大於或等於2048個樣本的情況下,編碼器或解碼器進一步將合併候選列表中的候選數量與閾值數量進行比較,以檢查候選數量是否小於或等於3。在步驟S804中,當當前塊的大小小於2048個樣本時,編碼器或解碼器致能GPM以對當前塊進行編碼或解碼。如果當前塊的大小大於或等於2048個樣本以及在步驟S806中合併候選列表中的候選數量小於或等於3,則編碼器或解碼器仍然致能GPM以對當前塊進行編碼或解碼;否則,如果在步驟S804中當前塊的大小大於或等於2048個樣本以及在步驟S806中候選的數量大於3,則在步驟S810中GPM被禁用。
用
於最小化 SRAM 頻寬的重新排序的 PE 模式在本發明的一些實施例中,編解碼工具或編解碼模式被重新排序以最小化SRAM頻寬。藉由對處理模式進行適當的重新排序,SRAM頻寬被進一步降低。第9A圖示出在並行處理PE中重新排序編解碼模式以將SRAM記憶體庫(bank)的數量從三個減少到兩個的實施例。最初,第一PE的一個SRAM記憶體庫存儲合併候選0和合併候選3的搜索範圍參考樣本,第二PE的一個SRAM記憶體庫存儲合併候選1和合併候選4的搜索範圍參考樣本,第三PE的一個SRAM記憶體庫存儲合併候選2和合併候選5的搜索範圍參考樣本。藉由重新排序這三個PE處理的編解碼模式,僅兩個SRAM記憶體庫被需要。一個SRAM記憶體庫存儲合併候選0到4的搜索範圍參考樣本,另一個SRAM記憶體庫存儲合併候選5的搜索範圍參考樣本。第一PE測試合併候選0的同時,第二PE測試CIIP候選0。類似地,第一PE測試合併候選1到4的同時,第二PE測試相應的CIIP候選1到4。
在PE模式重新排序的一些其他實施例中,高頻寬模式被重新排序以與低頻寬模式一起被處理,以便平衡從SRM讀取搜索範圍參考樣本所需的頻寬。用於計算低頻寬模式(例如幀內模式)的PE不需要讀取運動補償參考樣本。第9B圖示出在並行處理PE中重新排序編解碼模式的另一實施例。與其他編解碼工具相比,測試MMVD編解碼工具需要更大的頻寬來讀取參考樣本,因此在藉由MMVD候選測試當前分區的PE被處理的同時,藉由幀內模式測試當前分區的PE被處理。在第9B圖中,在第一PE運行中,第一MMVD候選MMVD-0由第一PE測試的同時,第一幀內模式Intra-0由第二PE測試。在第二PE運行中,第一合併候選Mrg0由第一PE測試的同時,第二合併候選Mrg1由第二PE測試。在第三PE運行中,第二MMVD候選MMVD-1由第一PE測試的同時,第二幀内模式Intra-1由第二PE測試。
用於高深度 BT/TT 分割的空間破碎 SRAM 讀取處理高深度二叉樹(Binary-Tree,簡稱BT)或三叉樹(Ternary-tree,簡稱TT)分割節點的PE組是搜索範圍記憶體讀取的瓶頸,因為在這些PE組中並行PE的數量大於其他PE組。例如第4圖中與高深度BT/TT分割節點對應的PE組TPE-B有22個並行PE,而與低深度BT/TT分裂節點對應的PE組LPE只有5個並行PE。對於由高輸送量編碼器中的許多並行PE執行緒處理這些小分區,每個PE的讀取資料非常少,以及很難進行多讀取。高輸送量編碼器中讀取搜索範圍記憶體的頻寬通常很高,這意味著每個週期可以獲取一個大窗口。但是,每個PE處理8x8、8x4等小分區的資料量通常很低,對讀取搜索範圍記憶體的頻寬造成巨大浪費。第10A圖示出浪費大量頻寬用於處理小分區的PE的示例。SRM 102內的虛線矩形窗口1022示出在每個週期可以獲取的參考樣本的數量。如第10A圖所示,處理小分區的PE106僅需要窗口104内的少量參考樣本。由於可用於讀取SRM 102的窗口1022遠大於PE 106所需的窗口104,因此大量頻寬被浪費。在本發明的一些實施例中,如果窗口中可以包括由不同PE獲取的左上8x8運動補償參考區域,則多個候選的多個運動補償參考區域被同時載入。在任一運動補償參考區域不在同一個窗口中的情況下,如果旋轉索引在同一個窗口中,則它可被同時載入。第10B圖示出高深度BT/TT分割節點的空間破碎SRAM讀取的示例。每個候選對應具有16x16個樣本的參考區域,每個獲取週期可以載入8x8個樣本,因此從SRM獲取整個運動補償參考區域需要4個週期。最初,只有4個候選的運動補償參考區域在4個週期(即4x8x8)中載入。根據本發明的一些實施例,7個候選的運動補償參考區域可以藉由空間破碎SRAM讀取在4個週期內並行載入。在空間破碎SRAM讀取的一些實施例中,每個小分區的調製位置由pos_x%window_w、pos_y%window_y計算。SRAM記憶體庫對window_w和window_y進行輪換。如果調製位置發生衝突,一個窗口可以同時獲取多個小塊。如果一些調製位置發生衝突,則根據一個實施例一個或多個小分區的運動補償參考區域被放棄,或者根據另一實施例反向掃描被用於衝突的分區。
減少 LC 的 MMVD 頻寬用於各種MMVD距離索引的MMVD的使用範圍如表4所示。在本發明的一些實施例中,MMVD低複雜度(low Complexity,簡稱LC)頻寬可藉由LC操作中應用雙線性濾波器而大大降低。第11圖示出根據實施例減小MMVD候選的運動補償參考區域的大小以及藉由填充來填滿參考區域的示例。當前MMVD候選需要參考圖片1102中的原始運動補償參考區域1104,以及該區域可藉由雙線性濾波器縮小為縮小的參考區域1106。縮小的參考區域1106在參考圖片1102之外的部分藉由填充來確定。在一個實施例中,8抽頭雙線性濾波器用於靠近中心的候選,而2抽頭雙線性濾波器用於遠離中心的候選。
表 4
mmvd_distance_idx[x0][y0] | MmvdDistance[x0][y0] 當pic_fpel_mmvd_enable_flag == 0 | MmvdDistance[x0][y0] 當 pic_fpel_mmvd_enable_flag == 1 |
0 | 1 | 4 |
1 | 2 | 8 |
2 | 4 | 16 |
3 | 8 | 32 |
4 | 16 | 64 |
5 | 32 | 128 |
6 | 64 | 256 |
7 | 128 | 512 |
實現本發明的示例性視訊編碼器和視訊解碼器本發明的實施例可以在視訊編碼器中實現。例如,所公開的方法之一或組合可以在視訊編碼器中的熵編碼模組、幀間、幀內或預測模組和/或變換模組中實現。可選地,任一公開的方法可以實現為耦合到視訊編碼器中的熵編碼模組、幀間、幀內或預測模組以及變換模組的電路,以提供任一模組所需的資訊。第12圖示出用於實現本發明的各種實施例中的一個或多個的視訊編碼器1200的示例性系統框圖。視訊編碼器1200接收由多個CTU組成的當前圖片的輸入視訊資料。每個CTU由一個CTB 的亮度樣本和一個或多個相應的CTB的色度樣本組成。在RDO階段中,每個CTB由並行PE處理。PE並行處理每個CTB,以在CTB的各個分區上測試各種編解碼模式。在一個實施例中,PE被分組成PE組,以及每個PE組與特定的塊大小相關。每個PE組中的PE計算在具有特定塊大小和相應子分區的分區上應用各種編解碼模式的速率失真成本。根據最低組合速率失真成本,用於將CTB分割成編解碼塊的最佳塊分區結構和每個編解碼塊的最佳編解碼模式被確定。為了測試各種編解碼模式,PE讀取SRM以獲取參考樣本,其中全部或部分PE藉由廣播接收搜索範圍參考樣本。在一些實施例中,當當前塊的大小大於或等於閾值大小時,對當前塊禁用GPM。在具體實施例中,合併候選列表中的候選數量也被考慮,以及僅當候選數量小於或等於閾值數量時,GPM才致能於大編解碼塊。在第12圖中,幀內預測模組1210基於當前圖片的重構視訊資料提供幀內預測子。幀間預測模組1212執行運動估計(Motion Estimation,簡稱ME)和運動補償(Motion Compensation,簡稱MC)以基於參考來自其他圖片的視訊資料提供幀間預測子。幀內預測模組1210或幀間預測模組1212使用開關1214向加法器1216提供當前圖片中的當前編解碼塊的選定預測子,以藉由從當前編解碼塊的原始視訊資料中減去選定預測子來形成殘差。當前編解碼塊的殘差由變換模組(Transformation module,簡稱T)1218和隨後的量化模組(Quantization module,簡稱Q)1220進一步處理。然後,經變換和量化的殘差由熵編碼器1234編碼以形成視訊位元流。當前塊的變換和量化的殘差也由逆量化模組(Inverse Quantization module,簡稱IQ)1222和逆變換模組(Inverse Transformation module,簡稱IT)1224處理以恢復預測殘差。如第12圖所示,殘差藉由在重構模組(Reconstruction module,簡稱REC)1226處添加回所選預測子來恢復,以產生重構的視訊資料。重構的視訊資料可被存儲在搜索範圍記憶體(Search Range Memory,簡稱SRM)1232中並用於其他圖片的預測。由於編碼處理,來自REC 1226的重構視訊資料可能會受到各種損害,因此,在重構視訊資料被存儲在SRM 1232中之前,至少一個環路處理濾波器(In-loop Processing Filter,簡稱ILPF)1228有條件地應用於重構視訊資料的亮度和色度分量以進一步提升畫質。去塊濾波器是ILPF1228的一個示例。語法元素被提供給熵編碼器1234以結合到視訊位元流中。
用於解碼由第12圖的視訊編碼器1200生成的視訊位元流的對應視訊解碼器1300在第13圖中示出。到視訊解碼器1300的輸入由熵解碼器1310解碼以解析和恢復每個變換塊的變換係數級別和其他系統資訊。解碼器1300的解碼過程類似於編碼器1200處的重構迴圈,除了解碼器1300僅需要幀間預測模組1316的運動補償預測。視訊圖片中的每個葉塊由幀內預測模組1314或幀間預測模組1316解碼,開關1318根據解碼的模式資訊選擇幀內預測子或幀間預測子。在本發明的一個實施例中,對於任一大小大於或等於閾值大小的塊,GPM被禁用。在一些實施例中,如果塊大小大於或等於閾值大小,則與GPM相關的語法元素中的至少一個可被跳過而不被解析。與當前變換塊相關的變換係數級別由逆量化(Inverse Quantization,簡稱IQ)模組1322和逆變換(Inverse Transform,簡稱IT)模組1324恢復。恢復的殘差藉由在重構(Reconstruction,簡稱REC)模組1320中加回預測子來重構以產生重構的視訊。重構的視訊由環路處理濾波器(In-loop Processing Filter,簡稱ILPF)1326進一步處理,以生成最終的解碼視訊。如果當前解碼的視訊圖片是參考圖片,則當前解碼的視訊圖片的重構視訊也被存儲在參考圖片緩衝器1328中以用於按解碼順序的後續圖片。
第12圖和第13圖中的視訊編碼器1200和視訊解碼器1300的各種組件可以由硬體組件、被配置為執行存儲在記憶體中的程式指令的一個或多個處理器、或者硬體和處理器的組合來實現。例如,處理器執行程式指令來控制GPM是否致能或禁用於當前塊。處理器配備單個或多個處理核心。在一些示例中,處理器執行程式指令以在編碼器1200和解碼器1300中的一些組件中執行功能,以及與處理器電耦合的記憶體用於存儲程式指令、與塊的重構圖像相對應的資訊,和/或編碼或解碼過程中的中間資料。在一些示例中,視訊編碼器1200可以藉由在視訊位元流中包括一個或多個語法元素來發送資訊,以及對應的視訊解碼器藉由解析和解碼一個或多個語法元素來導出此類資訊。在一些實施例中,SRM是靜態隨機存取記憶體(Static Random Access Memory,簡稱SRAM),或者SRM可以由非瞬態電腦可讀介質實現,例如半導體或固態記憶體、隨機存取記憶體(Random Access Memory,簡稱RAM)、只讀記憶體(Read-Only Memory,簡稱ROM)、硬碟、光碟或其他合適的存儲介質。記憶體緩衝器也可以是上面列出的兩種或更多種非暫時性電腦可讀介質的組合。如第12圖和第13圖所示,編碼器1200和解碼器1300可以在同一電子設備中實現,因此如果在同一電子設備中實現,編碼器1200和解碼器1300的各種功能組件可以共用或重用。本發明的任一實施例可以在編碼器1200的熵編碼器1234和/或解碼器1300的熵解碼器1310中實現。或者,任一實施例可以被實現為耦合到編碼器1200的熵編碼器1234和/或解碼器1300的熵解碼器1310,以分別提供熵編碼器1234或熵解碼器1310所需的資訊。
視訊編解碼方法的實施例可以在集成到視訊壓縮晶片中的電路或集成到視訊壓縮軟體中以執行上述處理的程式碼中實現。例如,編碼或解碼編解碼塊可以在要在電腦處理器、數位訊號處理器(Digital Signal Processor,簡稱DSP)、微處理器或現場可程式設計閘陣列(Field Programmable Gate Array,簡稱FPGA)上執行的程式碼中實現。這些處理器可以被配置為藉由執行定義本發明所體現的特定方法的機器可讀軟體代碼或韌體代碼來執行根據本發明的特定任務。
在不背離其精神或基本特徵的情況下,本發明可以以其他特定形式體現。所描述的示例在所有方面都僅被認為是說明性的而不是限制性的。因此,本發明的範圍由所附申請專利範圍而不是由前述描述指示。在申請專利範圍的等效含義和範圍內的所有變化都應包含在其範圍內。
32:預處理階段
34:IME階段
36:RDO階段
38:環路濾波和熵編碼階段
42:固定歸一化函數
441-445:L2 SRAM
461:PE組LPE
462:PE組MPE
463:PE組SPE
464:PE組TPE-N
465:PE組TPE-B
52:SRM
541:合併PE
542:GPM PE
543:CIIP PE
544:AMVP PE
545:SMVD PE
S702、S704、S706、S708、S710、S802、S804、S806、S808、S810:步驟
102:SRM
104:窗口
106:PE
1022:窗口
1102:參考圖片
1104:原始運動補償參考區域
1106:縮小的參考區域
1200:編碼器
1210:幀內預測模組
1212:幀間預測模組
1214:開關
1216:加法器
1218:變換模組
1220:量化模組
1222:逆量化模組
1224:逆變換模組
1226:重構模組
1228:環路處理濾波器
1232:搜索範圍記憶體
1234:熵編碼器
1300:解碼器
1310:熵解碼器
1312:塊結構分區
1314:幀內預測模組
1316:幀間預測模組
1318:開關
1320:重構模組
1322:逆量化模組
1324:逆變換模組
1326:環路處理濾波器
1328:參考圖片緩衝器
作為示例提出的本公開的各種實施例將參考以下附圖詳細描述,其中相同的標號指代相同的組件,以及其中:
第1圖示出藉由QTBT結構分割CTB的示例。
第2圖示出按相同角度分組的GPM分區示例。
第3圖示出在每個PE組中採用並行PE的高輸送量視訊編碼器。
第4圖示出根據本發明實施例的用於高輸送量視訊編碼器的新搜索範圍記憶體(Serch Range Memory,簡稱SRM)設計。
第5圖示出根據本發明的一些實施例的向多個PE廣播基於合併的候選的搜索範圍參考樣本和向多個PE廣播基於高級運動向量預測(Advanced Motion Vector Prediction,簡稱AMVP)的候選的搜索範圍參考樣本。
第6A-6C圖示出根據本發明實施例的藉由搜索範圍記憶體廣播和預載入技術減少24個並行PE所需的埠數量。
第7圖示出根據本發明實施例的高輸送量視訊編碼器中由並行PE對當前塊進行編碼的流程圖。
第8圖示出根據本發明實施例的判斷GPM是否被致能用於當前塊的流程圖。
第9A圖示出重新排序編解碼模式以減少SRAM頻寬的實施例;以及第9B圖示出重新排序編解碼模式以減少SRAM頻寬的另一實施例。
第10A圖示出用於處理小分區的PE浪費的SRAM頻寬的示例; 以及第10B圖示出根據本發明實施例的並行載入多個運動補償參考區域的示例。
第11圖示出藉由雙線性濾波器減小MMVD LC頻寬的實施例。
第12圖示出用於視訊編碼系統的示例性系統框圖,該視訊編碼系統結合根據本發明實施例的視訊編碼方法之一或它們的組合。
第13圖示出用於解碼由第12圖的視訊編碼器生成的視訊位元流的對應視訊解碼器的實施例。
S702、S704、S706、S708、S710:步驟
Claims (12)
- 一種視訊編解碼方法,用於視訊編碼系統或視訊解碼系統,該方法包括: 接收與一當前塊相關的輸入資料; 將該當前塊的一大小與一閾值大小進行比較; 確定該當前塊的一編解碼模式,其中當該當前塊的該大小大於或等於該閾值大小時,對該當前塊禁用幾何分區模式;以及 將該當前塊劃分為一個或多個編解碼塊; 確定該當前塊中一編解碼塊的一合併候選列表中的一候選數量,將該編解碼塊的該合併候選列表中的該候選數量與一閾值數量進行比較,當該候選數量大於該閾值數量時,對該編解碼塊禁用該幾何分區模式。
- 如請求項1所述之視訊編解碼方法,其中,該閾值大小是2048個樣本。
- 如請求項2所述之視訊編解碼方法,其中,該當前塊的該大小為64x64、64x32或32x64個樣本時,對該當前塊禁用該幾何分區模式。
- 如請求項1所述之視訊編解碼方法,進一步包括: 藉由確定的該編解碼模式對該當前塊進行編碼或解碼,其中,當該編解碼模式為該幾何分區模式時,該當前塊基於一第一組預測子進行幀間預測,該當前塊基於一第二組預測子進行幀間預測,該當前塊基於一第三組預測子進行幀間預測,其中該第三組預測子藉由基於該第一組預測子和該第二組預測子進行混合導出。
- 如請求項1所述之視訊編解碼方法,其中,當該當前塊的該大小小於該閾值大小或該當前塊的該大小大於或等於該閾值大小時,該幾何分區模式被致能用於該當前塊,且該合併候選列表中的該候選數量小於或等於該閾值數量時,該幾何分區模式被致能用於該編解碼塊。
- 如請求項1所述之視訊編解碼方法,其中,該閾值數量是3。
- 一種視訊編解碼裝置,在視訊編碼系統或視訊解碼系統中適應性地致能幾何分區模式,該裝置包括一個或多個電子電路,被配置為用於: 接收與一當前塊相關的輸入資料; 將該當前塊的一大小與一閾值大小進行比較; 確定該當前塊的一編解碼模式,其中當該當前塊的該大小大於或等於該閾值大小時,對該當前塊禁用該幾何分區模式;以及 將該當前塊劃分為一個或多個編解碼塊; 確定該當前塊中一編解碼塊的一合併候選列表中的一候選數量,將該編解碼塊的該合併候選列表中的該候選數量與一閾值數量進行比較,當該候選數量大於該閾值數量時,對該編解碼塊禁用該幾何分區模式。
- 如請求項7所述之視訊編解碼裝置,其中,該閾值大小是2048個樣本。
- 如請求項8所述之視訊編解碼裝置,其中,該當前塊的該大小為64x64、64x32或32x64個樣本時,對該當前塊禁用該幾何分區模式。
- 如請求項7所述之視訊編解碼裝置,進一步包括: 藉由確定的該編解碼模式對該當前塊進行編碼或解碼,其中,當該編解碼模式為該幾何分區模式時,該當前塊基於一第一組預測子進行幀間預測,該當前塊基於一第二組預測子進行幀間預測,該當前塊基於一第三組預測子進行幀間預測,其中該第三組預測子藉由基於該第一組預測子和該第二組預測子進行混合導出。
- 如請求項7所述之視訊編解碼裝置,其中,當該當前塊的該大小小於該閾值大小或該當前塊的該大小大於或等於該閾值大小時,該幾何分區模式被致能用於該當前塊,且該合併候選列表中的該候選數量小於或等於該閾值數量時,該幾何分區模式被致能用於該編解碼塊。
- 如請求項7所述之視訊編解碼裝置,其中,該閾值數量是3。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163280178P | 2021-11-17 | 2021-11-17 | |
US63/280,178 | 2021-11-17 | ||
US17/685,812 | 2022-03-03 | ||
US17/685,812 US20230156181A1 (en) | 2021-11-17 | 2022-03-03 | Methods and Apparatuses for a High-throughput Video Encoder or Decoder |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202325021A TW202325021A (zh) | 2023-06-16 |
TWI841265B true TWI841265B (zh) | 2024-05-01 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021104433A1 (en) | 2019-11-30 | 2021-06-03 | Beijing Bytedance Network Technology Co., Ltd. | Simplified inter prediction with geometric partitioning |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021104433A1 (en) | 2019-11-30 | 2021-06-03 | Beijing Bytedance Network Technology Co., Ltd. | Simplified inter prediction with geometric partitioning |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7483035B2 (ja) | ビデオ復号方法並びにその、ビデオ符号化方法、装置、コンピュータデバイス及びコンピュータプログラム | |
US8743972B2 (en) | Coding adaptive deblocking filter and method for use therewith | |
CN113039782B (zh) | 视频编解码中的子块去块方法及装置 | |
US11871034B2 (en) | Intra block copy for screen content coding | |
TWI815377B (zh) | 視訊編解碼方法和裝置 | |
TWI831358B (zh) | 用於仿射預測或運動補償的共享預加載區域的方法和裝置 | |
TWI841265B (zh) | 視訊編解碼方法和裝置 | |
KR20230157507A (ko) | 명시적 모션 시그널링을 갖는 기하학적 파티션 모드 | |
CN112532988B (zh) | 视频编码方法、视频解码方法及相关设备 | |
US11477444B2 (en) | Method and apparatus of encoding or decoding video data with intra prediction mode mapping | |
CN112543333B (zh) | 视频解码方法、视频编码方法及相关设备 | |
TWI796979B (zh) | 視訊編碼方法及相關裝置 | |
US11800102B2 (en) | Low-latency video coding methods and apparatuses for chroma separated tree | |
CN112532989B (zh) | 视频编码方法、视频解码方法及相关设备 | |
TWI847227B (zh) | 視頻編解碼系統中低延遲模板匹配的方法和裝置 | |
KR102435445B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
KR20240008934A (ko) | 모션 벡터 리파인먼트를 사용하는 기하학적 파티션 모드 | |
WO2023141338A1 (en) | Methods and devices for geometric partitioning mode with split modes reordering | |
WO2023158765A1 (en) | Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order | |
JP2024516850A (ja) | 動きベクトル洗練化による幾何区画モードのための方法およびデバイス | |
WO2023200907A1 (en) | Methods and devices for geometric partitioning mode with adaptive blending | |
KR101895389B1 (ko) | 영상 부호화 방법 및 장치 | |
CN118285103A (zh) | 视频编解码系统中低延迟模板匹配的方法和装置 | |
CN116193125A (zh) | 用于针对视频编解码的预测相关残差缩放的方法和设备 |