TWI796979B - 視訊編碼方法及相關裝置 - Google Patents

視訊編碼方法及相關裝置 Download PDF

Info

Publication number
TWI796979B
TWI796979B TW111111221A TW111111221A TWI796979B TW I796979 B TWI796979 B TW I796979B TW 111111221 A TW111111221 A TW 111111221A TW 111111221 A TW111111221 A TW 111111221A TW I796979 B TWI796979 B TW I796979B
Authority
TW
Taiwan
Prior art keywords
partition
processing unit
codec
block
current
Prior art date
Application number
TW111111221A
Other languages
English (en)
Other versions
TW202316857A (zh
Inventor
蔡佳銘
陳俊嘉
徐志瑋
莊子德
陳慶曄
黃毓文
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Application granted granted Critical
Publication of TWI796979B publication Critical patent/TWI796979B/zh
Publication of TW202316857A publication Critical patent/TW202316857A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

本發明提供了一種視訊編碼方法及相關裝置。視訊編碼方法包括接收輸入資料;確定當前塊的塊分區結構,將當前塊劃分爲一個或多個編解碼塊,其中每個PE組具有多個並行執行RDO任務的PE,並且每個PE組與特定塊大小相關聯,對當前塊的每個分區以及由每個PE組的並行PE從每個分區劃分出的對應子分區測試多種編解碼模式;以及根據PE組測試的編解碼模式相關的速率失真成本,决定當前塊的塊分區結構和當前塊中每個編解碼塊對應的編解碼模式;以及根據PE組確定的對應的編解碼模式對當前塊中的一個或多個編解碼塊進行熵編碼。本發明的視訊編碼方法及相關裝置可以節省帶寬。

Description

視訊編碼方法及相關裝置
本發明涉及視訊編碼器中的分層架構(hierarchical architecture)。 特別地,本發明涉及用於决定視訊編碼中的塊分區結構(block partition structure)和對應的編解碼模式(coding mode)的速率失真優化(rate-distortion optimization)。
通用視訊編解碼(Versatile Video Coding,簡寫爲VVC)標準是由來自ITU-T研究組的視訊編解碼專家的視訊編解碼聯合協作組(JCT-VC)組開發的最新視訊編解碼標準。VVC標準依賴於基於塊的編解碼結構,該結構將每個圖片劃分爲多個編解碼樹單元 (CTU)。一個 CTU 由 NxN 亮度 (luma) 樣本塊以及一個或多個相應的色度 (chroma) 樣本塊組成。例如,每個 4:2:0 色度子樣本CTU 由一個 128x128 亮度編解碼樹塊 (Coding Tree Block,簡寫爲CTB) 和兩個 64x64 色度 CTB 組成。 CTU中的每個CTB進一步遞歸地劃分爲編解碼單元(CU)中的一個或多個編解碼塊(CB),用於編碼或解碼以適應各種局部特性。與高效視訊編解碼 (HEVC) 標準中采用的四叉樹 (QT) 結構相比,四叉樹二叉樹 (Quad-Tree-Binary-Tree,簡寫爲QTBT) 結構等靈活的 CU 結構可以提高編碼性能。第1圖 展示了通過 QTBT 結構拆分 CTB 的示例,其中 CTB 通過四叉樹結構自適應分區,然後每個四叉樹葉節點通過二叉樹結構自適應分區。二叉樹葉節點被表示爲用於預測和變換的 CB,無需進一步劃分。除了二叉樹劃分之外,四叉樹劃分之後還可以選擇三叉樹劃分來捕獲四叉樹葉節點(leaf node)中心的對象。水平三叉樹劃分將一個四叉樹的葉節點分成三個分區,頂部和底部分區的大小分別是四叉樹葉節點的四分之一,中間分區的大小是四叉樹葉節點的一半。垂直三叉樹劃分將一個四叉樹葉節點分成三個分區,左右分區各有四叉樹葉節點大小的四分之一,中間分區有四叉樹葉節點大小的一半。在這種靈活的結構中,CTB首先由四叉樹結構劃分,然後四叉樹的葉節點被進一步劃分爲包含二元和三元劃分的子樹結構。子樹的葉節點表示爲CB。
視訊編碼或解碼中的預測决策是在CU級別做出的,其中每個CU由一種選擇的編解碼模式或其組合進行編解碼。在得到預測過程産生的殘差信號後,將屬CU的殘差信號進一步變換爲變換係數,用於緊凑的資料表示(compact data representation),這些變換係數被量化並傳送給解碼器。
用於將視訊圖像編碼成位元流的傳統視訊編碼器如第2圖所示。傳統視訊編碼器的編碼處理可以分爲四個階段:預處理階段22、整數運動估計(IME) 階段 24,速率失真優化 (Rate-Distortion Optimization,簡寫爲RDO) 階段 26,以及環路濾波和熵編碼階段 28。在 RDO 階段 26 中,單個處理單元 (Processing Element,簡寫爲PE) 用於搜索用於編碼CTU 內的目標 NxN 塊的最佳編解碼模塊。 PE 是一個通用術語,指執行指令流以對資料執行算術和邏輯運算的硬體元素。 PE 執行排程的 RDO 任務以對目標 NxN 塊進行編碼。 PE 的排程稱爲 PE 線程(PE thread),它顯示在多個 PE 調用(PE call)中分配給 PE 的 RDO 任務。術語 PE 調用或 PE 運行(PE run)是指 PE 執行一個或多個任務的固定時間間隔。例如,包含 M+1 個 PE 調用的第一個 PE 線程專用於第一個 PE 計算通過多種編解碼模式編碼 8x8 塊的速率和失真成本,並且也包含 M+1 個 PE 調用的第二個 PE 線程專用於讓第二個 PE 計算通過多種編解碼模式對 16x16 塊進行編碼的速率和失真成本。在每個 PE 線程中,PE 依次測試各種編解碼模式,以便爲分配的塊大小對應的塊分區選擇最佳編解碼模式。 VVC標準支持更多的視訊編解碼工具,因此需要在每個PE線程中測試更多的編解碼模式,導致RDO階段26中的每個PE線程鏈變得更長。因此,做出最佳編解碼模式决策需要更長的延遲,並且視訊編碼器的吞吐量變得更低。下面簡要介紹VVC標準中引入的幾種編解碼工具。
具有 MVD 的合並模式 ( Merge mode with MVD ,簡寫爲 MMVD)對於由合並模式編碼的CU,隱式導出的運動信息直接用於預測樣本生成。 VVC 標準中引入的具有 MVD 的合並模式 (MMVD) 通過發信運動向量偏移量 (Motion Vector Difference,簡寫爲MVD) 信息來進一步微調(refine)選定的合並候選。 MMVD 標志在常規合並標志之後立即發信,以指定 MMVD 模式是否用於 CU。在位元流中發信的 MMVD 信息包括 MMVD 候選標志、指定運動幅度的索引和用於指示運動方向的索引。在 MMVD 模式中,選擇 Merge 列表中的前兩個候選之一作爲 MV 基礎。發信 MMVD 候選標志以指定使用前兩個合並候選中的哪一個。距離索引(distance index)指定運動幅度信息並指示距起點的預定義偏移。偏移量被添加到起始 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(s)是單向預測(uni-prediction)MV或雙向(bi-prediction)預測MV,兩個列表都指向當前圖片的同一方向時,表2所示的符號指定了添加到起始MV的MV偏移的符號(sign)。如果兩個參考圖片的圖片順序計數(Picture Order Count,簡寫爲POC)都大於當前圖片的POC,或者兩個參考圖片的POC都小於當前圖片的POC,則兩個列表都指向當前圖片的相同方向。當起始 MV 是雙向預測 MV,兩個 MV 指向當前圖片的不同方向,並且列表 0 中的 POC 的差值大於列表 1 中的 POC差值時,表 2 中的符號指定了添加到起始 MV中列表 0的 MV 分量的偏移量符號和列表 1的 MV的偏移量符號具有相反的符號。否則,當列表 1 中的 POC 的偏移量大於列表 0 中的 POC 的偏移量時,表 2 中的符號指定添加到起始 MV 的 列表 1 MV 分量的 MV 偏移的符號和列表 0MV 的符號有相反的符號。 MVD 根據每個方向上 POC 的偏移量進行縮放。如果兩個列表中 POC 的偏移量相同,則不需要縮放;否則,如果列表 0 中的 POC 偏移量大於列表 1 中的偏移量,則通過列表 0 的 POC 偏移量及列表 1 的 POC 偏移量來縮放列表 1 的 MVD。如果列表 1 的 POC 偏移量大於列表 0,則列表 0 的 MVD 以相同的方式縮放。如果起始 MV 是單向預測的,則將 MVD 添加到可用 MV。 2 – 由方向索引指定的 MV 偏移的符號
方向 IDX 00 01 10 11
X軸 + N/A N/A
y軸 N/A N/A +
具有CU級權重(Bi-prediction with CU-level Weight,簡寫爲BCW)的雙向預測 通過對從兩個不同參考圖片獲得的兩個預測信號進行平均和/或使用HEVC標準中的兩個不同運動向量來生成雙向預測信號。 在 VVC 標準中,雙向預測模式擴展到超出簡單平均,以允許對兩個預測信號進行加權平均。
Figure 02_image001
在 VVC 標準中,加權平均雙向預測中允許有五個權重 w∈{-2,3,4,5,10}。在每個雙向預測的 CU 中,權重 w 由以下兩種方式之一確定: 1) 對於非合並 CU(non-Merge CU),權重索引在運動向量差之後發信; 2) 對於 合並CU(merge CU),權重索引是根據合並候選索引從相鄰塊中推斷出來的。 BCW 僅適用於具有 256 或更多亮度樣本的 CU,這意味著 CU 寬度乘以 CU 高度必須大於或等於 256。對於低延遲圖片,使用所有 5 個權重。對於非低延遲圖片,僅使用 3 個權重 w∈{3,4,5}。
應用快速搜索算法來查找權重索引,而不會顯著增加視訊編碼器的編碼器複雜度。當與自適應運動向量分辨率 (Adaptive Motion Vector Resolution,簡寫爲AMVR) 結合使用時,如果當前圖片是低延遲圖片,則僅對 1 像素和 4 像素運動向量精度有條件地檢查不相等的權重(unequal weight)。當 BCM 與仿射模式相結合時,只有當仿射模式被選爲當前最佳模式時,才會對不相等的權重執行仿射運動估計 (Motion Estimation,簡寫爲ME)。只有當雙向預測中的兩個參考圖片相同時,才會有條件地檢查不相等的權重。當滿足某些條件時不搜索不相等的權重,這取决於當前圖片與其參考圖片之間的POC距離、編碼QP和時間級別(temporal level)。
BCW 權重索引使用一個上下文編解碼的位元子(bin),然後是旁路編解碼的位元子(bypass coded bin)編解碼。第一個上下文編解碼的位元子指示是否使用相等的權重;如果使用了不相等的權重,則使用旁路編解碼發信附加位元子,以指示使用了哪個不相等的權重。加權預測 (weighted Prediction,簡寫爲WP) 是一種受 H.264/AVC 和 HEVC 標準支持的編解碼工具,可有效編解碼視訊內容(伴隨衰减)。對 WP 的支持也被添加到 VVC 標準中。 WP允許爲每個參考圖片列表L0和L1中的每個參考圖片發信加權參數(權重和偏移)。在運動補償期間應用相應參考圖片的權重和偏移量。 WP 和 BCW 專爲不同類型的視訊內容而設計。爲了避免 WP 和 BCW 之間的交互(這會使 VVC 解碼器設計複雜化),如果 CU 使用 WP,則不發信 BCW 權重指數,並且推斷 w 爲 4,意味著應用了相等的權重。對於合並 CU,權重索引是根據合並候選索引從相鄰塊中推斷出來的。這可以應用於普通合並模式和繼承的仿射合並模式。對於構建的仿射合並模式,仿射運動信息是基於最多 3 個塊的運動信息構建的。使用構建的仿射合並模式的 CU 的 BCW 索引簡單地設置爲等於第一個控制點 MV 的 BCW 索引。在 VVC 標準中,組合的幀間和幀內預測 (Combined Inter and Intra Prediction,簡寫爲CIIP) 和 BCW 不能聯合應用於一個 CU。當一個 CU 使用 CIIP 模式編解碼時,當前 CU 的 CBW 索引設置爲 4,意味著應用了相等的權重。
用於核心變換的多重變換選擇(Multiple Transform Selection,簡寫爲MTS)  除了已經在HEVC標準中采用的DCT-II變換之外,MTS方案被用於幀間和幀內編解碼塊的殘差編碼。 它提供了從多個變換(例如 DCT-II、DCT-VIII 和 DST-VII)中選擇變換編解碼設置的靈活性。 新引入的變換矩陣是 DST-VII 和 DCT-VIII。 表 3 顯示了 DST 和 DCT 變換的基本功能。 3 - N 點輸入( N-point input )的 DCT-II/VIII DSTVII 變換基函數 transform basis function
變換類型 基函數 T i ( j), i, j= 0, 1,…, N−1
DCT-II
Figure 02_image003
其中,
Figure 02_image005
DCT-VIII
Figure 02_image007
DST-VII
Figure 02_image009
爲了保持變換矩陣的正交性,變換矩陣的量化比HEVC標準中的變換矩陣更精確。爲了將變換後的係數的中間值保持在16位範圍內,水平和垂直變換後的所有係數都是10位係數。爲了控制 MTS 方案,分別在序列參數集 (SPS) 級別爲幀內和幀間預測指定了單獨的啓用標志。當 MTS 在 SPS 處啓用時,會發信 CU 級別標志來指示是否應用了 MTS。 MTS 僅適用於亮度分量。當應用以下條件之一時,將跳過 MTS 信令。亮度變換塊 (Transform Block,簡寫爲TB) 的最後一個有效係數(significant coefficient)的位置小於 1(即僅 DC);亮度 TB 的最後一個有效係數位於 MTS 零輸出區域(zero-out region)內。
如果MTS CU標志等於0,則在兩個方向上應用DCT-II。然而,如果 MTS CU 標志等於 1,則另外發送兩個其他標志以分別指示水平和垂直方向的變換類型。變換和標志信令映射表如表 4 所示。通過去除幀內模式和塊形狀依賴性(block-shape dependency),統一了幀內子分區 (ISP) 和隱式 MTS 的變換選擇。如果當前塊以 ISP 模式編碼,或者如果當前塊是幀內塊並且幀內和幀間 顯示MTS 均打開,則僅 DST-VII 用於水平和垂直變換核心。在變換矩陣精度方面,使用了 8 位主(primary)變換核心。因此,HEVC 標準中使用的所有變換核都保持不變,包括 4 點 DCT-II 和 DST-VII、8 點、16 點和 32 點 DCT-II。此外,包括 64 點 DCT-II、4 點 DCT8、8 點、16 點、32 點 DST-VII 和 DCT-VIII 在內的其他變換內核使用 8 位主變換內核。 4 – 轉換和標誌信令映射表
MTS CU標志 MTS 水平標志 MTS垂直標志 幀內/幀間
      水平 垂直
0     DCT-II
1 0 0 DST-VII DST-VII
0 1 DCT-VIII DST-VII
1 0 DST-VII DCT-VIII
1 1 DCT-VIII DCT-VIII
爲了降低大尺寸 DST-VII 和 DCT-VIII 的複雜性,對於尺寸(寬度或高度,或寬度和高度)等於 32 的 DST-VII 和 DCT-VIII 塊,高頻變換係數被置零(zeroed out)。僅保留 16x16 低頻區域內的係數。
與 HEVC 標準一樣,可以使用變換跳過(transform skip)模式對塊的殘差進行編解碼。爲了避免語法編解碼的冗餘,當 CU 級 MTS CU 標志不等於 0 時,不發信變換跳過標志。請注意,當爲當前 CU 激活低頻不可分離變換 (Low-Frequency Non-Separable Transform,簡寫爲LFNST) 或基於矩陣的幀內預測 (Matrix-based Intra Prediction,簡寫爲MIP) 時,隱式 MTS 變換設置爲 DCT-II。此外,當爲幀間編解碼塊啓用 MTS 時,仍然可以啓用隱式 MTS。
幾何分區模式 (Geometric Partitioning Mode,簡寫爲GPM) 在 VVC 標準中,支持 GPM 進行幀間預測。 GPM 使用 CU 級標志作爲一種合並模式發信,其他合並模式包括常規合並模式、MMVD 模式、CCIP 模式和子塊合並模式。對於每個可能的 CU 大小
Figure 02_image011
(其中
Figure 02_image013
),GP​​M 總共支持 64 個分區,不包括 8x64 和 64x8。當使用這種模式時,一個 CU 被一條幾何定位的直綫分割成兩部分,如第3圖 所示。第3圖示出了GPM分區的示例。分割綫的位置在數學上由特定分區的角度和偏移參數得出。 CU 中幾何分區的每個部分都使用其自身的運動進行幀間預測;每個分區只允許單向預測,即每個部分有一個運動向量和一個參考索引。應用單向預測運動約束以確保爲每個 CU 僅計算兩個運動補償預測子,這與傳統的雙向預測相同。
如果幾何分區模式用於當前CU,則指示幾何分區的分區模式(角度和偏移)的幾何分區索引,以及兩個合並索引(每個分區一個)被進一步發信。最大 GPM 候選大小的數量在 SPS 中明確表示,並指定 GPM 合並索引的語法二值化(syntax binarization)。在預測幾何分區的每個部分後,沿幾何分區邊緣的樣本值通過自適應權重的混合處理進行調整,以獲得整個 CU 的預測信號。與其他預測模式一樣,變換和量化過程將應用於整個 CU。最後,存儲使用幾何分區模式預測的 CU 的運動字段(motion field)。
單向預測候選列表直接從根據擴展的合並預測過程構建的合並候選列表導出。將n表示爲幾何單向預測候選列表中單向預測運動的索引。第n個擴展的合並候選的LX運動向量(X等於n的奇偶性(parity))用作幾何分割模式的第n個單向預測運動向量。例如,合並索引 0 的單向預測運動向量是 L0 MV,合並索引 1 的單向預測運動向量是 L1 MV,單向預測運動向量或合並索引 2 是 L0 MV,合並索引 3 的單向預測運動向量是 L1 MV。在不存在第n個擴展的合並候選的對應LX運動向量的情况下,相同候選的L(1-X)運動向量被用作幾何分割模式的單向預測運動向量。
在使用其自身的運動預測幾何分區的每個部分之後,將混合應用於兩個預測信號以導出幾何分區邊緣周圍的樣本。 CU 的每個位置的混合權重是基於各個位置與分區邊緣(partition edge)之間的距離得出的。
位置
Figure 02_image015
與分區邊緣之間的距離的導出如下:
Figure 02_image017
Figure 02_image019
Figure 02_image021
Figure 02_image023
其中
Figure 02_image025
是幾何分區的角度和偏移的索引,其依賴於發信的集合分區索引。
Figure 02_image027
Figure 02_image029
的符號取决於角度索引
Figure 02_image031
幾何分區各部分的權重的導出如下:
Figure 02_image033
Figure 02_image035
Figure 02_image037
partIdx 取决於角度索引
Figure 02_image039
來自幾何分區的第一部分的Mvl、來自幾何分區的第二部分的Mv2以及Mvl和Mv2的組合運動向量被存儲在幾何分區模式編解碼的CU的運動字段中。 運動字段中每個單獨位置的存儲的運動向量類型確定爲:
Figure 02_image041
其中 motionIdx 等於 d(4x+2,4y+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 預測計算如下:
Figure 02_image043
針對上述問題,提供了一種視訊編碼方法及相關裝置。以下發明內容僅是說明性的,而無意於以任何方式進行限制。即,提供以下概述以介紹本文描述的新穎和非顯而易見的技術的概念、重點、益處和優點。在下面的詳細描述中將進一步描述選擇而非全部實現。因此,以下概述並非旨在標識所要求保護的主題的必要特徵,也不旨在用於確定所要求保護的主題的範圍。
本公開的一些實施例提供了一種視訊編碼方法,在視訊編碼系統中通過分層架構進行速率失真優化,包括:接收與視訊圖片中的當前塊相關聯的輸入資料;確定當前塊的塊分區結構,通過多個處理單元組爲當前塊中的每個編解碼塊確定對應的編解碼模式,並根據塊分區結構將當前塊劃分爲一個或多個編解碼塊,其中每個處理單元組具有多個並行執行處理單元任務的處理單元,並且每個處理單元組與特定塊大小相關聯,對於每個處理單元組,當前塊被劃分爲一個或多個分區,每個分區具有與處理單元組相關聯的特定塊大小,並且每個分區根據一種或多種分區類型劃分爲子分區,確定當前塊的塊分區結構和編解碼模式包括:對當前塊的每個分區以及由每個處理單元組的並行處理單元從每個分區劃分出的對應子分區測試多種編解碼模式;以及根據處理單元組測試的編解碼模式相關的速率失真成本,决定當前塊的塊分區結構和當前塊中每個編解碼塊對應的編解碼模式;以及根據處理單元組確定的對應的編解碼模式對當前塊中的一個或多個編解碼塊進行熵編碼。
本公開的一些實施例提供了一種視訊編碼裝置,在視訊編碼系統中通過分層架構進行速率失真優化,視訊編碼裝置包括一個或多個電子電路,配置用於:接收與視訊圖片中的當前塊相關聯的輸入資料;確定當前塊的塊分區結構,通過多個處理單元組爲當前塊中的每個編解碼塊確定對應的編解碼模式,並根據塊分區結構將當前塊劃分爲一個或多個編解碼塊,其中每個處理單元組具有多個並行執行處理單元任務的處理單元,並且每個處理單元組與特定塊大小相關聯,對於每個處理單元組,當前塊被劃分爲一個或多個分區,每個分區具有與處理單元組相關聯的特定塊大小,並且每個分區根據一種或多種分區類型劃分爲子分區,確定當前塊的塊分區結構和編解碼模式包括:對當前塊的每個分區以及由每個處理單元組的並行處理單元從每個分區劃分出的對應子分區測試多種編解碼模式;以及根據處理單元組測試的編解碼模式相關的速率失真成本,决定當前塊的塊分區結構和當前塊中每個編解碼塊對應的編解碼模式;以及根據處理單元組確定的對應的編解碼模式對當前塊中的一個或多個編解碼塊進行熵編碼接路徑。
本發明的視訊編碼方法及相關裝置可以節省帶寬。
很容易理解,本發明的組件,如本文附圖中一般描述和圖示的,可以以多種不同的配置布置和設計。因此,如附圖中所表示的本發明的系統和方法的實施例的以下更詳細的描述並不旨在限制所要求保護的本發明的範圍,而僅代表本發明的選定實施例。
在整個說明書中對“一個實施例”、“一些實施例”或類似語言的引用意味著結合實施例描述的特定特徵、結構或特性可以包括在本發明的至少一個實施例中。因此,貫穿本說明書的各個地方出現的短語“在一個實施例中”或“在一些實施例中”不一定都指同一實施例,這些實施例可以單獨實施或結合一個或多個其他實施例來實施。此外,所描述的特徵、結構或特性可以在一個或多個實施例中以任何合適的方式組合。然而,相關領域的技術人員將認識到,本發明可以在沒有一個或多個具體細節的情况下,或使用其他方法、組件等來實踐。在其他情况下,未示出或展示出衆所周知的結構或操作。詳細描述以避免模糊本發明的方面。
高吞吐量視訊編碼器第4圖示出了根據本發明實施例的具有用於RDO階段中的資料處理的分層架構的高吞吐量視訊編碼器。高吞吐量視訊編碼器的編碼處理一般分爲四個編碼階段:預處理階段42、IME階段44、RDO階段46、環路濾波和熵編碼階段48。預處理階段42、IME階段44、RDO階段46以及環路濾波和熵編碼階段48順序處理視訊圖片中的資料以生成位元流。常見的運動估計架構由整數運動估計 (Integer Motion Estimation,簡寫爲IME) 和分數運動估計 (Fraction Motion Estimation,簡寫爲FME) 組成,其中 IME 在大面積上執行整數像素搜索,而 FME 在最佳選擇的整數像素周圍執行子像素搜索(sub-pixel search)。 RDO階段46中的多個PE組用於確定當前塊的塊分區結構,這些PE組還用於確定當前塊中每個編解碼塊的對應編解碼模式。視訊編碼器根據塊分區結構將當前塊拆分爲一個或多個編解碼塊,並根據RDO階段46决定的編解碼模式對每個編解碼塊進行編碼。在RDO階段46中,每個PE組具有多個並行PE,每個 PE 處理一個 PE 線程中分配的 RDO 任務。每個 PE 組依次計算在一個或多個分區上測試的編解碼模式的速率失真性能,每個分區具有特定的塊大小和加起來爲特定塊大小的子分區。對於每個PE組,當前塊被劃分爲一個或多個分區,每個分區具有與PE組相關聯的特定塊大小,並且每個分區根據一種或多種分區類型被劃分爲子分區。例如,每個分區通過包括水平二叉樹分區和垂直二叉樹分區的兩種分區類型劃分爲子分區。在一些實施例中,第一PE組的分區和子分區包括128x128分區、頂部128x64子分區、底部128x64子分區、左側64x128子分區和128x64子分區。在另一示例中,每個分區通過四種分區類型劃分爲子分區,包括水平二叉樹分區、垂直二叉樹分區、水平三叉樹分區和垂直三叉樹分區。每個PE組中的一個PE在當前塊的每個分區上測試各種編解碼模式,該當前塊具有特定的塊大小以及從每個分區拆分出的相應子分區。當前塊的最佳塊分區結構和編解碼塊的最佳編解碼模式因此根據與RDO階段46中測試的編解碼模式相關聯的速率失真成本來决定。
每個PE在PE調用中測試編解碼模式或編解碼模式的一個或多個候選,或者每個PE在多個PE調用中測試編解碼模式或編解碼模式的候選。 PE調用是一個時間間隔(time interval)。每個PE組中PE所需的緩衝區大小可以根據與PE組關聯的特定塊大小進一步優化。對於每個編解碼模式或編解碼模式的每個候選,分區或子分區中的視訊資料可以通過低複雜度的速率失真優化(RDO)操作,然後是高複雜度的RDO操作來計算。編解碼模式或編解碼模式候選的低複雜度RDO操作和高複雜度RDO操作可以由一個PE或多個PE計算。第5圖說明了PE 組0的第一PE和第二PE中的資料處理的示例性時序圖。在該示例中,第一和第二PE 被分配用於測試正常的幀間候選模式,其中由第一PE在低複雜度 RDO 操作中執行預測,而第二PE 在高複雜度 RDO 操作中執行差分脉沖編碼調制 (Differential Pulse Code Modulation,簡寫爲DPCM)。在第5圖所示的示例中,PE 組 0 與允許兩種可能的分區類型的 128x128 塊相關聯。 128x128塊可以通過水平二叉樹分割被分成兩個水平子分區H1和H2,或者通過垂直二叉樹分割被分成兩個垂直子分區V1和V2,或者128x128塊不被分割。在第5圖 中,第一PE 在每個 PE 調用中計算的任務是低複雜度 RDO 操作(例如 PE1_0),而第二PE 在每個 PE 調用中計算的任務是高複雜度 RDO 操作(例如 PE2_1)。 PE組0中的第一PE在PE調用PE1_0(PE call PE1_0)處通過正常幀間候選模式預測第一水平二叉樹子分區H1,在PE調用PE1_1處通過正常幀間候選模式預測第一垂直二叉樹子分區V1。第一PE在PE調用PE1_2處通過正常幀間候選模式預測第二水平二叉樹子分區H2,在PE調用PE1_3處通過正常幀間候選模式預測第二垂直二叉樹子分區V2。第一PE在PE調用PE1_4處通過正常幀間候選模式預測非分割分區N。第二PE在PE調用PE2_1處對第一水平二叉樹子分區H1執行DPCM,在PE調用PE2_2處對第一垂直二叉樹子分區V1執行DPCM。第二PE在PE調用PE2_3對第二個水平二叉樹子分區H2執行DPCM,在PE調用PE2_4對第二個垂直二叉樹子分區V2執行DPCM,在PE調用PE2_5對非分割分區N執行DPCM。在本例中,第二PE執行的高複雜度RDO操作與後續分區/子分區的低複雜度RDO並行處理。例如,在PE調用PE1_0處處理了當前分區的低複雜度RDO操作後,PE調用PE2_1處當前分區的高複雜度RDO操作與在PE調用PE1_1處後續分區的低複雜度RDO操作並行處理。
第6圖展示了用於RDO階段的分層架構的實施例,其采用PE組0和PE組1中的多個PE來處理128×128個CTU。 PE 組 0 用於計算應用於非分割 128x128 分區和從 128x128 分區拆分的子分區的各種編解碼模式的速率失真性能。 PE組0確定非分割的128x128分區、兩個128x64子分區和兩個64x128子分區中的最佳塊分區結構對應的最佳編解碼模式。在本實施例中,PE組0中的塊分區測試順序是水平二叉樹子分區H1和H2,垂直二叉樹子分區V1和V2,然後是非分割分區N。本實施例中的PE組0中分配了四個PE,其中每個PE用於評估應用於128x128分區和子分區的一種或多種對應編解碼模式的速率失真性能。例如,四個PE評估的編解碼模式分別是正常的幀間模式、合並模式、仿射模式和幀內模式。在PE組0中的每個 PE 線程中,使用四個 PE 調用將相應的編解碼模式應用於每個分區或子分區,以計算速率失真性能。通過比較四個PE線程中的速率失真成本,選擇PE組0的最佳編解碼模式和最佳塊分區結構。類似地,PE 組 1 用於測試應用於 128x128 CTU 的四個 64x64 分區和從四個 64x64 分區拆分的子分區的各種編解碼模式的速率失真性能。在本實施例中,PE組1中的塊劃分測試順序與PE組0中的塊劃分測試順序相同,但是,有六個並行PE用於評估應用於64x64分區、 64x32 子分區和 32x64 子分區的相應編解碼模式的速率失真性能。在PE組1的每個PE線程中,使用三個PE調用將對應的編解碼模式應用於每個分區或子分區。通過比較六個PE線程的速率失真成本,選擇PE組1的最佳編解碼模式和最佳塊分區結構。除了圖 6 所示的 PE 組 0 和 PE 組 1 之外,還有 RDO 階段的 PE 組用於在其他塊大小上測試多種編解碼模式。根據PE組計算的最低組合速率失真成本選擇每個CTU的最佳塊分區結構和CTU內編解碼塊的最佳編解碼模式。例如,如果在組合與應用於 PE 組 0 中 64x128 左側水平子分區 H1 的 合並候選對應的速率失真成本時,組合速率失真成本最低,CIIP 候選應用於 在PE組1的CTU右上方的64x64 非拆分分區N,且仿射候選應用於PE組1中CTU右下角的64x64非分割分區N,則首先通過垂直二叉樹分區拆分CTU的最佳塊分區結構,然後通過水平二叉樹分區進一步拆分右二叉樹分區。 CTU中得到的編解碼塊爲1個64x128編解碼塊和2個64x64編解碼塊,用於對這些編解碼塊進行編碼的對應編解碼模式分別爲合並、CIIP和仿射模式。
在高吞吐量視訊編碼器的各個實施例中,由於在每個PE組中采用多於一個並行PE來縮短PE組的原始PE線程鏈,在保持最高速率失真性能的同時减少PE組的編碼器延遲。本發明的高吞吐量視訊編碼器增加了編碼器吞吐量以能够支持超高清(UHD)視訊編碼。可以根據每個PE組的特定塊大小來優化分層架構的各種實施例中PE的所需緩衝區大小。每個 PE 組被設計用於處理特定的塊大小,每個 PE 組所需的緩衝區大小與對應的特定塊大小有關。例如,較小的緩衝區用於處理較小大小塊的 PE 組的 PE。在第6圖所示的實施例中,PE組0的緩衝區大小是通過考慮處理128x128塊所需的緩衝區大小來確定的,PE組1的緩衝區大小是僅考慮處理64x64塊所需的緩衝區大小來確定的。PE 組所需的緩衝區大小可以根據與每個 PE 組相關聯的特定塊大小進行優化,因爲每個 PE 組僅對具有特定大小的分區或加總到特定塊大小的子分區進行模式决策。通過對 PE 組中的所有 PE 設置相同的塊劃分測試順序,可以進一步减少每個 PE 組所需的緩衝區大小,例如,PE 組 0 中的順序是水平二叉樹劃分、垂直二叉樹劃分,隨後是不分割。理論上,需要三組重建緩衝區來存儲對應於三種塊分區類型的重建樣本。然而,在測試了水平二叉樹子分區和垂直二叉樹子分區之後,在測試非分割分區時,只需要兩組重建緩衝區。一組重建緩衝區最初用於存儲水平二叉樹子分區的重建樣本,另一組重建緩衝區最初用於存儲垂直二叉樹子分區的重建樣本。選擇與較低的組合速率失真成本對應的較好的二叉樹分區類型,並釋放原始存儲具有較高組合速率失真成本的二叉樹子分區的重建樣本的重建緩衝區集合。在處理非分割分區時,可以將非分割分區的重建樣本存儲在釋放的重建緩衝區中。爲了進一步考慮關於RDO階段架構的編解碼吞吐量提高和硬體資源優化,本公開提供了在所提出的分層架構中實現的以下方法。
方法 1 :在 PE 線程中組合具有相似屬性的編解碼工具或編解碼模式本發明的一些實施例通過在同一PE線程中組合具有相似屬性的編解碼工具或編解碼模式,在提高編碼吞吐量的同時進一步减少所需資源。表5顯示了根據在同一PE線程中組合具有相似屬性的編解碼工具或編解碼模式的實施例,PE組中的六個PE測試的編解碼模式。 Call 0、Call 1、Call 2和Call 3代表PE線程的四個PE調用,依次用於處理CTB內的當前分區或子分區。每個 PE 線程被排程在每個 PE 調用中測試專用的一種或多種編解碼工具、編解碼模式和候選。在該實施例中,第一PE測試正常幀間候選模式以對當前分區或子分區進行編碼,其中單向預測候選被測試,然後是雙向預測候選被測試。第二PE 通過幀內角候選模式(intra angular candidate mode)對當前分區或子分區進行編碼。第三PE通過仿射候選模式對當前分區或子分區進行編碼,第四PE通過MMVD候選模式對當前分區或子分區進行編碼。第五 PE 應用 GEO 候選模式,第六 PE 應用幀間合並候選模式來編碼當前分區或子分區。如表5所示,在同一個PE線程中相似屬性的編解碼工具或編解碼模式組合在一起,例如幀間合並模式的評估可以放在PE線程1中,仿射模式的評估可以放在PE線程3中。如果屬性相似的編解碼工具或編解碼模式沒有放在同一個PE線程中,每個PE需要有更多的硬體電路來支持多種編解碼工具。例如,如果某些MMVD候選模式由PE 1測試,而某些MMVD候選模式由PE 4測試,則硬體實現需要兩組MMVD硬體電路,一組用於PE 1,另一組用於PE 4。如果所有MMVD候選模式均由PE 4測試,如表5所示,則PE 4僅需要一組MMVD硬體電路。根據表5所示的實施例,相似屬性的編解碼工具或編解碼模式被安排爲由相同的PE線程執行,例如仿射相關的編解碼工具都放在PE線程3,MMVD相關的編解碼工具都放在PE線程4,GEO相關的編解碼工具都放在PE線程5。 5
PE Call 0 Call 1 Call 2 Call 3
1 InterUniMode_0 InterUniMode_1 InterBiMode_0 InterBiMode_1
2 IntraMode_0 IntraMode_0_C IntraMode_1 IntraMode_1_C
3 AffineMode_0 AffineMode_1 AffineMode_2 AffineMode_3
4 MMVD_0 MMVD_1 MMVD_2 MMVD_3
5 GEO_0 GEO_1 GEO_2 GEO_3
6 InterMergeMode_0 InterMergeMode_1 InterMergeMode_2 InterMergeMode_3
方法 2 PE 線程的自適應編解碼模式在分層架構的一些實施例中,根據一個或多個預定義條件自適應地選擇與PE組中的一個或多個PE線程相關聯的編解碼模式。預定義條件的一些實施例與當前分區/子分區與當前分區/子分區的一個或多個相鄰塊、當前時間層(temporal layer)ID、歷史MV列表或預處理結果之間的信息比較相關聯。例如,預處理結果可以對應於IME階段的搜索結果。在一些實施例中,預定義條件涉及當前分區/子分區與一個或多個相鄰塊的編解碼模式、塊大小、塊分區類型、運動向量、重建樣本、殘差或係數之間的比較。例如,當以幀內模式編碼的相鄰塊的數量大於或等於閾值TH 1時,滿足預定條件。在另一示例中,當當前時間標識符小於或等於閾值TH 2時,滿足預定條件。根據方法二,檢查一個或多個預定義條件,爲PE組中的PE自適應地選擇編解碼模式。當滿足一個或多個預定義條件時,PE對預先指定的編解碼模式進行評估,否則,PE對默認編解碼模式進行評估。在爲當前分區自適應選擇編解碼模式的一個實施例中,當當前分區的任一相鄰塊被幀內模式編碼時,滿足預定條件,如果至少一個相鄰塊以幀內模式編碼,則在當前分區上測試具有更多幀內模式的PE表;否則,在當前分區上測試具有較少或沒有幀內模式的 PE 表。第7圖示出了根據預定義條件自適應地選擇包含不同編解碼模式的兩個PE表之一的示例。如果滿足預定義條件,PE 0 到 4 評估 PE 表 A 中的編解碼模式;否則,PE 0 到 4 評估 PE 表 B 中的編解碼模式。在第7圖中,n 是大於或等於 0 的整數。每個 PE 線程中的三個調用根據如第7圖所示表中的預定義條件自適應選擇,然而,在其他示例中,可以根據一個或多個預定義條件自適應地選擇一個或多個PE線程中的更多或更少調用。編解碼模式也可以在調用之間自適應地切換。例如,當 PE 在 call(n) 計算的速率失真成本對於特定模式來說太高時,PE 線程中的下一個 PE 調用 call(n+1) 自適應地運行另一種模式或下一個 PE call(n+1) 直接跳過編解碼。
方法 3 :在同一 PE 組的 PE 之間共享緩衝區在分層架構的一些實施例中,可以通過統一PE線程之間的資料掃描順序在同一PE組內的PE之間共享某些緩衝區。例如,共享緩衝區是源樣本緩衝區、相鄰重建樣本緩衝區、相鄰運動向量緩衝區和相鄰輔助信息(side information)緩衝區中的一個或其組合。通過在特定掃描順序的PE線程之間統一源樣本加載方法,只需要一組源樣本緩衝區與同一PE組中的所有PE共享。在完成當前PE組中的每個PE的編解碼後,每個PE將最終編解碼結果輸出到重建緩衝區、係數緩衝區、輔助信息緩衝區和更新的相鄰緩衝區,視訊編碼器比較速率失真成本來决定當前 PE 組的最佳編解碼結果。第8圖示出了PE組0的PE之間共享源緩衝區和相鄰緩衝區的示例。通過統一PE 線程之間的資料掃描順序,在PE組0中的PE 0到PE Y0之間共享CTU源緩衝器82和相鄰緩衝器84。在第一次調用中,PE 組 0 中的每個 PE,例如 PE PE0_0、PE1_0、PE2_0、…、PEY0_0,通過分配的編解碼模式對當前分區或子分區進行編碼,然後多路複用器86根據速率失真成本爲當前分區/子分區選擇最佳編解碼模式。最佳編解碼模式的對應編解碼結果,例如重建樣本、係數、模式、MV和相鄰信息,存儲在排列緩衝器(Arrangement Buffer)88中。
GPM 的並行 PE 中的硬體共享在GPM中編解碼的當前編解碼塊被幾何定位的直綫分成兩部分,並且當前編解碼塊中幾何分區的每個部分使用其自身的運動進行幀間預測。 GPM 的候選列表是直接從合並候選(Merge Candidate)列表推導出來的,例如分別從合並候選0 和 1、合並候選1 和 2、合並候選0 和 2、合並候選3 和 4、合並候選4 和 5,以及合並候選 3 和 5導出 6 個 GPM 候選。根據兩個合並候選得到幾何分區各部分對應的合並預測樣本後,將幾何分區邊緣周圍的合並預測樣本混合,得到GPM預測樣本。在用於計算GPM預測樣本的傳統​​硬體設計中,需要額外的緩衝資源來存儲合並預測樣本。利用並行PE線程設計,GPM PE的一個實施例直接共享來自兩個或多個合並PE的合並預測樣本,而無需將合並預測樣本臨時存儲在緩衝區中。這種具有硬體共享的並行 PE 設計的一個好處是節省帶寬,這是因爲 GPM PE 直接使用來自 Merge PE 的合並預測樣本進行 GPM 算術計算,而不是從緩衝區中獲取參考樣本。直接將預測子從合並PE傳遞到GPM PE的其他一些好處包括减少GPM PE中的電路並爲GPM PE節省運動補償(MC)緩衝區。第9圖說明了一個並行 PE 設計的示例,該設計具有用於 合並 和 GPM 編解碼工具的硬體共享。在這個例子中,若PE 4 測試的 GPM0 需要合並候選 0、1 和 2 的合並預測樣本以生成 GPM 預測樣本時,它將共享分別來自 PE 1、2 和3的合並候選 0、1 和 2 的合並預測樣本。類似地,若PE 4 測試的 GPM1 需要合並候選3、4 和 5 的合並預測樣本以生成 GPM 預測樣本時, PE 4將共享分別從 PE 1、2 和 3產生的合並候選 3、4 和 5 的合並預測樣本。
利用並行PE設計,當測試兩個或更多GPM候選時,實施例根據當前GPM候選的速率失真成本自適應地跳過分配給一個或多個剩餘GPM候選的任務。最初分配給剩餘 GPM 候選的 PE調用可能會被重新分配以執行一些其他任務,或者可能處於空閑狀態。 合並候選的順序首先按運動向量差 (Motion Vector Difference,簡寫爲MVD) 所需的位從最佳到更差(即從最少(least) MVD 位元到最多 (most)MVD 位元)排序。例如,在第一PE調用中測試一個或多個GPM候選,該一個或多個GPM候選結合了與較少MVD位相關聯的合並候選。如果在第一PE 調用中計算的速率失真成本大於另一個編解碼工具的當前最佳速率失真成本,則跳過剩餘 GPM 候選的 GPM 任務。它基於這樣的假設:將與最少 MVD 位元相關聯的合並候選組合在一起的 GPM 候選是所有 GPM 候選中的最佳 GPM 候選。如果與其他編解碼工具生成的預測子相比,這個最佳 GPM 候選無法生成更好的預測子,則其他 GPM 候選不值得嘗試。第9圖示出了並行PE線程設計的實施例。在第9圖所示的例子中,合並候選Merge0、Merge1和Merge2的MVD所需的位少於合並候選Merge3、Merge4和Merge5的MVD所需的位; GPM0 需要 Merge0、Merge1 和 Merge2 預測樣本,GPM1 需要 Merge3、Merge4 和 Merge5 預測樣本。如果 GPM0 的速率失真成本比當前最佳速率失真成本差,則跳過分配給 GPM1 的原始任務。在一些其他實施例中,合並候選通過當前源樣本和預測樣本之間的絕對變換差之和(Sum of Absolute Transformed Difference,簡寫爲SATD)或絕對差之和(Sum of Absolute Difference,簡寫爲SAD)來排序。通過僅計算塊分區中某些特定位置處的預測樣本,可以在啓動 PE 線程 1 到 4 之前計算 SATD 或 SAD。由於每個合並候選的 MV 是已知的,因此可以估計某些特定位置的預測樣本以得出失真值。例如,當前分區有 64x64 個樣本,在進行 PE 線程 1 到 4 之前,估計每間隔7個樣本點位置(every 8 thsample points)的預測值(例如,估計位置0、8、16…樣本點位置處的預測值),因此總共收集了 (64/8)*(64/8) = 64 個預測樣本。可以計算當前分區的這64個樣本點的SATD或SAD。 合並候選根據SATD 或SAD 排序,具有較低SATD 或SAD 的合並候選首先用於GPM 推導。
CIIP 的並行 PE 中的硬體共享通過組合幀間預測樣本和幀內預測樣本來預測以CIIP編解碼的當前塊。幀間預測樣本是基於使用合並候選的幀間預測過程導出的,幀內預測樣本是基於平面模式的幀內預測過程導出的。使用加權平均來組合幀內和幀間預測樣本,其中根據頂部和左側相鄰塊的編解碼模式計算權重值。利用根據如第10圖所示的實施例的並行PE線程設計,在PE線程3中測試的CIIP候選直接從PE線程2中的幀內候選和PE線程1中的合並候選共享預測樣本。 CIIP編碼的常規方法需要再次獲取參考像素或檢索存儲在緩衝區中的合並和幀內預測樣本。與傳統方法相比,第10圖所示的實施例節省了帶寬,因爲預測樣本直接從PE 1和PE 2傳遞到PE 3,减少了PE中測試CIIP候選的電路,節省了用於這些PE的MC緩衝區。在圖 10 中,第一 CIIP 候選(CIIP0)需要第一合並候選(Merge0)和第一幀內平面模式(Intra0)預測樣本,第二 CIIP 候選(CIIP1)需要第二合並候選(Merge1)和第二幀內平面模式 (Intra1) 預測樣本。計算Merge0和Intra0的PE中的預測樣本與計算CIIP0的PE共享,計算Merge1和Intra1的PE中的預測樣本與計算CIIP1的PE共享。第一幀內平面模式(Intra0)和第二幀內平面模式(Intra1)其實是一樣的,如第10圖所示的實施例沒有足够的預測緩衝區來緩存當前塊分區的幀內預測樣本,所以Intra1 PE 必須再次通過平面模式生成預測樣本。在另一個預測緩衝區容量足够的實施例中,不需要對 Intra1 進行額外的 PE 調用,因爲 Intra0 生成的預測樣本可以被緩衝,隨後由 PE 計算 CIIP1 (PE computing CIIP1)用於與 Merge1 組合。
通過並行PE設計,一個或多個PE計算CIIP候選中的任務可以根據同一PE線程中前一個CIIP候選産生的預測結果的速率失真性能自適應地跳過一些CIIP候選。在一個實施例中,如果在 PE 線程中測試了兩個或更多 CIIP 候選,則通過按從最佳(例如,最少 MVD 位元、最低 SATD 或最低 SAD)到最差(例如,最多MVD 位元,最高 SATD 或最高 SAD)的順序排序合並候選,當與當前 CIIP 候選相關的速率失真成本大於當前最佳成本時,將跳過爲後續 CIIP 候選分配的原始任務。例如,第一合並候選 (Merge0) 的 SAD 低於第二合並候選 (Merge1),若第一 CIIP 候選 (CIIP0) 的速率失真性能比另一編解碼工具的當前最佳速率失真性能差,則跳過第二 CIIP 候選 (CIIP1)。這是因爲如果合並候選被正確排序,那麽第二 CIIP 候選的速率失真性能很可能比第一 CIIP 候選差。
用於 AMVP-BI 的並行 PE 中的硬體共享通過組合來自 AMVP 列表 0 (L0) 和列表 1 (L1) 的單向預測樣本來預測以雙向先進運動向量預測 (Bi-directional Advance Motion Vector Prediction,簡寫爲AMVP-BI) 編解碼的當前塊)。利用根據如第11圖所示的實施例的並行PE設計,在PE線程3中測試的AMVP-BI候選直接共享來自在PE線程1中測試的AMVP-UNI_L0候選和在PE線程2中測試的AMVP-UNI_L1候選的預測樣本。AMVP-BI 編碼的傳統方法獲取存儲在緩衝區中的參考像素。與傳統方法相比,第11圖所示的實施例節省了帶寬,因爲預測樣本直接從PE 1和PE 2傳遞到PE 3,有效地减少了測試AMVP-BI的PE的電路,節省了這些 PE 的 MC 緩衝區。在第11圖中,PE 計算 AMVP-BI 需要 List 0 單向 AMVP 和 List 1 單向 AMVP 預測樣本。計算 AMVP-UNI_L0 和 AMVP-UNI_L1 的 PE 中的預測樣本與計算 AMVP-BI 的 PE 共享。
用於 BCW 的並行 PE 中的硬體共享以BCW編解碼的當前塊的預測子通過對從兩個不同的參考列表L0和L1獲得的兩個單向預測信號進行加權平均來生成。利用根據如第12A圖所示的實施例的並行PE設計,在PE線程3中測試的BCW0和在PE線程4中測試的BCW1直接共享來自測試AMVP-UNI_L0的PE線程1和測試AMVP-UNI_L1的PE線程2的預測樣本。傳統的 BCW 編碼方法需要獲取存儲在緩衝區中的參考像素。與傳統方法相比,第12A圖所示的實施例節省了帶寬,因爲預測樣本直接從PE 1和PE 2傳遞到PE 3和PE 4,减少了PE中計算BCW0和BCW1的電路,節省了這些 PE 的 MC 緩衝區。在第12A圖中,PE 測試 BCW0 獲取 List 0 單向 AMVP 和 List 1 單向 AMVP 預測樣本,然後通過根據權重模式 1 和 2 對預測樣本進行加權平均來測試這兩個預測子的組合。 PE 測試 BCW1 還獲取 List 0 單向 AMVP 和 List 1 單向 AMVP 預測樣本,然後根據權重模式 3 和 4 對預測樣本進行加權平均來測試這兩個預測子的組合。測試AMVP-UNI_L0 和 AMVP-UNI_L1 的PE中的預測樣本與測試 BCW0的PE共享。第12B圖顯示了並行PE設計的另一個實施例,不是分配兩個PE來測試BCW的速率失真性能,而是只使用一個PE。與第12A圖相比,這種設計的好處是可以根據第一 BCW 候選(即 BCW0)的速率失真成本跳過第二 BCW 候選(即 BCW1)。類似於GPM和CIIP的並行PE設計的實施例,如果當前BCW候選的速率失真成本大於當前最佳速率失真成本,則跳過剩餘的BCW候選。例如,如第12B圖所示,如果 PE 測試 BCW0 將 AMVP L0 和 AMVP L1 單向預測樣本與權重模式 1 和 2 組合起來,且這兩種組合的速率失真成本都比當前最好的速率失真成本,則BCW1 候選被跳過。假設根據權重模式 1 和 2 生成的預測子將優於根據權重模式 3 和 4 生成的預測子。
並行 PE 中的相鄰共享利用並行PE設計,根據本發明的實施例,可以在不同PE之間共享相鄰重建樣本的緩衝區。例如,只需要一組相鄰緩衝區,因爲幀內 PE 和基於矩陣的幀內預測 (Matrix-based Intra Prediction,簡寫爲MIP) PE 都可以從該共享緩衝區獲取相鄰重建樣本。如第13圖所示,PE 1 測試幀內預測,​​而 PE 2 測試 MIP 預測。塊分割測試順序是水平二叉樹分區1(HBT1)、垂直二叉樹分區1(VBT1)、水平二叉樹分區2(HBT2)和垂直二叉樹分區2(VBT2)。 PE 線程 1 中的第一個 PE 調用和 PE 線程 2 中的第一個 PE 調用都需要水平二叉樹分區 1 的相鄰重建樣本來導出預測樣本。使用並行 PE 設計,可以爲這兩個 PE 共享一組相鄰緩衝區。類似地,PE線程1中的第二次PE調用和PE線程2中的第二次PE調用都需要垂直二叉樹分區1的相鄰重建樣本來導出預測樣本,因此相鄰緩衝區將對應的相鄰重建樣本傳遞給這兩個PE。
其他 PE 的運行中終止處理( On-the-Fly Terminate Processing 在多PE設計的一些實施例中,根據並行PE的累積速率失真成本提前終止至少一個其他PE線程的剩餘處理。例如,如果一個PE線程的當前累積速率失真成本遠優於其他PE線程(即當前累積速率失真成本遠低於每個其他PE線程的累積速率失真成本),則其他 PE 線程的剩餘處理提前終止以節省電力。第14圖展示了根據三個並行 PE 線程的累積速率失真成本提前終止兩個並行 PE 線程的示例。在這個例子中,在完成編解碼處理之前的某個時間點,其中編解碼處理通過並行PE進行測試,如果PE線程1的累積速率失真成本遠低於PE線程2和3,則視訊編碼提前關閉PE線程2和3的剩餘處理。例如, PE線程2和3中的每一個與PE線程1的累積速率失真成本之間的偏移量大於預定義的閾值。假設PE 線程 1 和 2 的累積速率失真成本之差與PE線程1和3的累積速率失真成本之差在檢查時間點均超過閾值,PE 線程 2 和 3 的最終速率失真成本肯定會超過 PE 線程 1 的最終率失真成本。
用於並行 PE 架構的 MTS 共享多重變換選擇(MTS)方案利用多個選擇的變換處理殘差。例如,不同的變換包括 DCT-II、DCT-VIII 和 DST-VII。第15圖說明瞭用於通過並行PE設計實現的變換編解碼的殘差共享的實施例。在第15圖中,爲了使用兩種不同的變換編解碼設置 DCT-II 和 DST-VII 測試相同的預測,一個 PE 可以通過並行 PE 設計將其殘差共享給另一個 PE。通過將殘差共享給 DCT-II 和 DST-VII 變換編解碼來實現僅具有單個殘差緩衝區的硬體優勢。在圖 15 中,可以省略與 PE 2 中的預測處理相關的電路,因爲從同一預測子生成的殘差可以直接從 PE 1 傳遞。
低複雜度 SATD 動態重新分配( on-the-fly Re-allocation 利用並行PE設計,SATD單元可以在並行PE之間共享。第16圖示出了從一個PE共享SATD單元到另一個PE的實施例。在本實施例中,PE 1在第一次PE調用時通過合並模式對當前塊分區進行編碼,然後通過MMVD模式對當前或後續塊分區進行編碼。 PE 2 在第一PE 調用時通過 BCW 模式對當前塊分區進行編碼,並在第二次 PE 調用時通過 AMVP 模式對當前或後續塊分區進行編碼。假設合並、BCW、MMVD和AMVP PE分別需要2、90、50和50組SATD單元,計算BCW候選的PE 2可以從計算合並候選的PE 1借用40組SATD單元。通過允許在並行 PE 之間動態重新分配 SATD 單元,可以更有效地使用低複雜度速率失真優化决策電路。
用於高吞吐量視訊編碼的代表性流程圖第17圖是說明藉由通過具有並行PE的PE組的分層架構來編碼視訊資料的視訊編碼系統的實施例的流程圖。在步驟S1702中,視訊編碼系統接收當前視訊畫面中的當前編解碼樹塊(CTB),根據本實施例,當前CTB是具有128x128個樣本的亮度CTB。在本實施例中,編解碼塊(CB)的最大尺寸設置爲128x128,CB的最小尺寸設置爲2x4或4x2。步驟S17040、S17041、S17042、S17043、S17044、S17045分別對應PE組0、PE組1、PE組2、PE組3、PE組4、PE組5。 PE 組 0 與特定塊大小 128x128 相關聯,PE 組 1、2、3、4 或 5 與特定塊大小 64x64、32x32、16x16、8x8 或 4x4 相關聯。對於PE組0,在步驟S17040中,將當前CTB設置爲一個128x128的分區,並根據預設的分區類型劃分爲子分區。例如,預設的分區類型爲水平二叉樹分區和垂直二叉樹分區,因此按照水平二叉樹分區當前CTB分爲兩個128x64的子分區,按照垂直二叉樹分區當前CTB分爲兩個64x128的子分區。在步驟S17041中,對於PE組1,首先將當前CTB劃分爲4個64x64的分區,將每個64x64的分區按照預設的分區類型劃分爲子分區。 PE組2到PE組4執行類似的處理步驟,將當前CTB劃分爲分區和子分區,爲簡潔起見,這些步驟未在第17圖中示出。對於PE組5,在步驟S17045中,將當前CTB劃分爲4x4分區,將每個4x4分區按照預設的分區類型劃分爲子分區。每個 PE 組中有多個並行 PE。在步驟S17060,PE組0中的PE在128x128分區和每個子分區上測試一組編解碼模式。在步驟S17061中,PE組1中的PE在每個64x64分區和每個子分區上測試一組編解碼模式。 PE組2、3或4中的PE也在每個對應的分區和子分區上測試一組編解碼模式。在步驟S17065中,PE組5中的PE在每個4x4分區和子分區上測試一組編解碼模式。在步驟S1708中,視訊編碼系統决定當前CTB的塊分區結構,用於分割成CB,並且視訊編碼系統還根據測試的編解碼模式的速率失真成本爲每個CB决定對應的編解碼模式。在步驟S1710,視訊編碼系統對當前CTB中的CB執行熵編碼。
實現本發明的示例性視訊編碼器可以在視訊編碼器中實現本發明的實施例。例如,所公開的方法可以在熵編碼模塊、幀間、幀內或預測模塊以及視訊編碼器的變換模塊中的一個或組合中實現。可選地,任何公開的方法可以實現爲耦合到熵編碼模塊、幀間、幀內或預測模塊以及視訊編碼器的變換模塊的電路,以提供任何模塊所需的信息。第18圖示出了用於實現本發明的各種實施例中的一個或多個的視訊編碼器1800的示例性系統框圖。視訊編碼器1800接收由多個CTU組成的當前圖片的輸入視訊資料。每個 CTU 由一個亮度樣本的CTB和一個或多個相應的色度樣本的CTB組成。在 RDO 階段使用分層架構,由多個由並行處理 PE 組成的 PE 組處理每個 CTB。 PE 並行處理每個 CTB,以在不同的塊大小上測試各種編解碼模式。例如,每個 PE 組與特定的塊大小相關聯,每個 PE 組中的 PE 線程計算速率失真率,以便在具有特定塊大小的分區和相應的子分區上應用各種編解碼模式。根據最低組合速率失真率確定用於將CTB劃分爲CB的最佳塊分區結構和每個CB的最佳編解碼模式。在本發明的一些實施例中,硬體在PE組內的並行PE之間共享,以减少編碼所需的帶寬、電路或緩衝器。例如,預測樣本直接在並行PE之間共享,而無需將預測樣本臨時存儲在緩衝區中。在另一個示例中,存儲相鄰重建樣本的一組相鄰緩衝區在PE組中的並行PE線程之間共享。在又一個示例中,SATD單元可以在PE組中的並行PE線程之間動態共享。在第18圖中,幀內預測模塊1810基於當前圖片的重建視訊資料提供幀內預測子。幀間預測模塊1812執行運動估計(ME)和運動補償(MC)以基於來自一個或多個其他圖片的參考視訊資料提供幀間預測子。幀內預測模塊1810或幀間預測模塊1812使用開關1814向加法器1816提供當前圖片中的當前編解碼塊的選定預測子,以通過從當前編解碼塊的原始視訊資料中减去所選預測子來形成殘差。當前編解碼塊的殘差由變換模塊(T) 1818和量化模塊(Q) 1820進一步處理。在硬體共享的一個示例中,在並行PE線程之間共享殘差以根據不同的變換編解碼設置進行變換處理。變換和量化的殘差然後由熵編碼器 1834 編碼以形成視訊位元流。當前塊的變換和量化的殘差也由逆量化模塊(IQ)1822和逆變換模塊(IT)1824處理以恢復預測殘差。如第18圖所示,通過在重建模塊 (REC) 1826 處添加回選定的預測子來恢復殘差,以産生重建的視訊資料。重建的視訊資料可以存儲在參考圖片緩衝器(Ref. Pict. Buffer)1832中並且用於其他圖片的預測。由於編碼處理,來自 REC 1826 的重建視訊資料可能會受到各種損害,因此,在重建視訊資料的亮度和色度分量存儲到參考圖片緩衝區 1832 中之前,至少一個環路處理濾波器 (In-loop Processing Filter,簡寫爲ILPF) 1828 有條件地應用於重建視訊資料的亮度和色度分量,以進一步提高圖片質量。ILPF 1828 的一個示例是去塊濾波器。語法元素被提供給熵編碼器 1834 以結合到視訊位元流中。
第18圖中的視訊編碼器1800的各種組件可以由硬體組件、被配置爲執行存儲在記憶體中的程式指令的一個或多個處理器、或硬體和處理器的組合來實現。例如,處理器執行程式指令以控制接收當前塊的輸入資料以進行視訊編碼。處理器配備單個或多個處理核心。在一些示例中,處理器執行程式指令以在編碼器1800中的一些組件中執行功能,並且與處理器電耦合的記憶體用於存儲程式指令、對應於塊的重建圖像的信息和/或在編碼或解碼過程中的中間資料。在一些示例中,視訊編碼器1800可以通過在視訊位元流中包括一個或多個語法元素來發信信息,並且對應的視訊解碼器通過解析和解碼一個或多個語法元素來導出此類信息。在一些實施例中,記憶體緩衝器包括非瞬態計算機可讀介質,例如半導體或固態記憶體、隨機存取記憶體(RAM)、只讀記憶體(ROM)、硬碟、光碟、或其他合適的存儲介質。記憶體緩衝器也可以是上面列出的兩種或更多種非暫時性計算機可讀介質的組合。
高吞吐量視訊編碼處理方法的實施例可以在集成到視訊壓縮晶片中的電路或集成到視訊壓縮軟體中以執行上述處理的程式代碼中實現。例如,編碼編解碼塊可以在要在計算機處理器、數位信號處理器(DSP)、微處理器或現場可編程門陣列(FPGA)上執行的程式代碼中實現。這些處理器可以被配置爲通過執行定義本發明所體現的特定方法的機器可讀軟體代碼或韌體代碼來執行根據本發明的特定任務。
本發明可以在不背離其精神或基本特徵的情况下以其他特定形式體現。所描述的示例在所有方面都僅被認爲是說明性的而不是限制性的。因此,本發明的範圍由所附申請專利範圍而不是由前述描述指示。在申請專利範圍的等效含義和範圍內的所有變化都應包含在其範圍內。
在本公開和申請專利範圍中使用諸如“第一”、“第二”等序數術語是爲了說明。它本身並不意味著任何順序或關係。
結合本文所公開的方面描述的方法的步驟可以直接體現在硬體中、在由處理器執行的軟體模塊中、或者在兩者的組合中。軟體模塊(例如,包括可執行指令和相關資料)和其他資料可以駐留在資料記憶體中,例如RAM記憶體、閃存、ROM記憶體、EPROM記憶體、EEPROM記憶體、寄存器、硬碟、可移動磁碟、 CD-ROM,或本領域已知的任何其他形式的計算機可讀存儲介質。樣本存儲介質可以耦合到機器,例如計算機/處理器(爲方便起見,這裏可以稱爲“處理器”),使得處理器可以從以下位置讀取信息(例如,代碼)並將信息寫入存儲介質。樣本存儲介質可以集成到處理器中。處理器和存儲介質可以駐留在ASIC中。 ASIC可以駐留在用戶設備中。或者,處理器和存儲介質可以作爲分立的組件駐留在用戶設備中。此外,在一些方面,任何合適的計算機程式産品可以包括計算機可讀介質,該計算機可讀介質包括與本公開的一個或多個方面相關的代碼。在一些方面,計算機軟體産品可以包括包裝材料。
應當注意,雖然沒有明確規定,但是本文描述的方法的一個或多個步驟可以包括用於根據特定應用的需要進行存儲、顯示和/或輸出的步驟。換言之,方法中討論的任何資料、記錄、字段和/或中間結果可以根據特定應用的需要被存儲、顯示和/或輸出到另一設備。雖然前述內容針對本發明的實施例,但是在不脫離其基本範圍的情况下可以設計本發明的其他和進一步的實施例。在此呈現的各種實施例或其部分可以組合以産生進一步的實施例。以上描述是實施本發明的最佳設想模式。該描述是爲了說明本發明的一般原理而進行的,不應被理解爲限制性的。本發明的範圍最好通過參考所附申請專利範圍來確定。
以上段落描述了許多方面。顯然,本發明的教導可以通過多種方式來實現,所公開的實施例中的任何具體配置或功能僅代表一種代表性情况。本技術領域的技術人員將理解,本發明中公開的所有方面都可以獨立應用或被並入。
雖然已經通過示例和優選實施例的方式描述了本發明,但是應當理解,本發明不限於此。本技術領域的技術人員在不脫離本發明的範圍和精神的情况下,仍然可以進行各種改動和修改。因此,本發明的範圍應由所附申請專利範圍及其等同物來界定和保護。
22、42:預處理階段 24、44:整數運動估計階段 26、46:速率失真優化階段 28、48:環路濾波和熵編碼階段 82:CTU源緩衝器 84:相鄰緩衝器 86:多路複用器 88:排列緩衝器 S1702~S1710:步驟 1800:視訊編碼器 1810:幀內預測模塊 1812:幀間預測模塊 1814:開關 1816:加法器 1818:變換模塊 1820:量化模塊 1822:逆量化模塊 1824:逆變換模塊 1826:重建模塊 1832:參考圖片緩衝器 1828:環路處理濾波器 1834:熵編碼器
包括附圖以提供對本公開的進一步理解,並且附圖被並入本公開並構成本公開的一部分。附圖示出了本公開的實施方式,並且與描述一起用於解釋本公開的原理。可以理解的是,附圖不一定按比例繪製,因爲爲了清楚地說明本公開的概念,某些組件可能被顯示爲與實際實現中的尺寸不成比例。 第1圖 展示了通過 QTBT 結構拆分 CTB 的示例。 第2圖示出了根據傳統視訊編碼器的使用單個PE來測試每個塊大小的視訊編碼處理。 第3圖示出了GPM分區的示例。 第4圖示出了根據本發明實施例的具有用於RDO階段中的資料處理的分層架構的高吞吐量視訊編碼器。 第5圖爲PE 組 0 的第一PE 和第二PE 中的資料處理的示例性時序圖。 第6圖展示了用於RDO階段的分層架構的實施例,其采用PE組0和PE組1中的多個PE來處理128×128個CTU。 第7圖示出了根據預定義條件自適應地選擇包含不同編解碼模式的兩個PE表之一的示例。 第8圖示出了PE組0的PE之間共享源緩衝區和相鄰緩衝區的示例。 第9圖示出了在PE組中的並行PE之間直接傳遞預測樣本以用於生成GPM預測子的實施例。 第10圖示出了在PE組中的並行PE之間直接傳遞預測樣本以用於生成CIIP預測子的實施例。 第11圖示出了在PE組中的並行PE之間直接傳遞預測樣本以用於生成雙向AMVP預測子的實施例。 第12A圖示出了在PE組中的並行PE之間直接傳遞預測樣本以用於生成BCW預測子的實施例。 第12B圖示出了在PE組中的並行PE之間直接傳遞預測樣本以用於生成BCW預測子的另一個實施例。 第13圖示出了在並行PE架構中的不同PE之間共享相鄰重建樣本的緩衝器的實施例。 第14圖示出了在並行PE架構中爲了省電而對一些PE進行動態終止處理的實施例。 第15圖示出了並行PE架構中不同變換編解碼設置的殘差共享的實施例。 第16圖示出了在並行PE架構中的PE之間共享SATD單元的實施例。 第17圖是根據本發明實施例的由每個具有並行PE的多個PE組對CTB的視訊資料進行編碼的流程圖。 第18圖示出了用於結合根據本發明實施例的高吞吐量視訊處理方法或多個方法的組合的視訊編碼系統的示例性系統框圖。
S1702~S1710:步驟

Claims (24)

  1. 一種視訊編碼方法,在視訊編碼系統中通過分層架構進行速率失真優化,包括: 接收與視訊圖片中的當前塊相關聯的輸入資料; 確定該當前塊的塊分區結構,通過多個處理單元組爲該當前塊中的每個編解碼塊確定對應的編解碼模式,並根據該塊分區結構將該當前塊劃分爲一個或多個編解碼塊,其中每個處理單元組具有多個並行執行處理單元任務的處理單元,並且每個處理單元組與特定塊大小相關聯,對於每個處理單元組,該當前塊被劃分爲一個或多個分區,每個分區具有與該處理單元組相關聯的特定塊大小,並且每個分區根據一種或多種分區類型劃分爲子分區,確定該當前塊的該塊分區結構和編解碼模式包括: 對該當前塊的每個分區以及由每個處理單元組的該並行處理單元從每個分區劃分出的對應子分區測試多種編解碼模式;以及 根據該處理單元組測試的該編解碼模式相關的速率失真成本,决定該當前塊的該塊分區結構和該當前塊中每個編解碼塊對應的編解碼模式;以及 根據該處理單元組確定的該對應的編解碼模式對該當前塊中的該一個或多個編解碼塊進行熵編碼。
  2. 如請求項1所述之視訊編碼方法,其中,每個處理單元組所需的緩衝區大小與該處理單元組的該特定塊大小有關。
  3. 如請求項2所述之視訊編碼方法,還包括爲該處理單元組中的所有處理單元設置相同的塊分區測試順序,並且基於與至少兩種分區類型相關聯的速率失真成本,釋放存儲與該至少兩種分區類型之一相關聯的重建樣本的一組重建緩衝器,以存儲與另一分區類型相關聯的重建樣本。
  4. 如請求項1所述之視訊編碼方法,其中,用於將該當前塊中的每個分區劃分爲子分區的該一種或多種分區類型包括水平二叉樹分區、垂直二叉樹分區、水平三叉樹分區、和垂直三叉樹分區之一或其組合。
  5. 如請求項1所述之視訊編碼方法,其中,在一個處理單元調用中,處理單元測試編解碼模式或編解碼模式的一個或多個候選,或者在多個處理單元調用中,處理單元測試編解碼模式或編解碼模式的一個候選。
  6. 如請求項1所述之視訊編碼方法,其中,在處理單元調用中,處理單元計算低複雜度處理單元操作,隨後是高複雜度處理單元操作,或者在處理單元調用中,處理單元計算低複雜度處理單元操作或高複雜度處理單元操作。
  7. 如請求項1所述之視訊編碼方法,其中,處理單元組中的第一處理單元計算編解碼模式的低複雜度處理單元操作,並且同一處理單元組中的第二處理單元計算該編解碼模式的高複雜度處理單元操作,其中該第一處理單元計算的後續分區的該低複雜度處理單元操作與該第二處理單元計算的當前分區的該高複雜度處理單元操作並行執行。
  8. 如請求項1所述之視訊編碼方法,其中,組合具有相似屬性的編解碼工具或編解碼模式,以在每個處理單元組中的同一處理單元線程中進行測試。
  9. 如請求項1所述之視訊編碼方法,其中,由處理單元組的並行處理單元在分區或子分區上測試多個編解碼模式進一步包括檢查一個或多個預定義條件,當滿足該一個或多個預定義條件時,自適應地由该併行處理單元中的至少一個處理單元來測試所選擇的編解碼模式。
  10. 如請求項9所述之視訊編碼方法,其中,該一個或多個預定義條件與該分區/子分區和該分區/子分區的一個或多個相鄰塊之間的信息比較、當前時間標識符、歷史運動向量列表或預處理結果相關聯;其中,該分區/子分區和該分區/子分區的一個或多個相鄰塊之間的該信息包括編解碼模式、塊大小、塊分區類型、MV、重建樣本或殘差。
  11. 如請求項9所述之視訊編碼方法,其中,當滿足該一個或多個預定義條件時,一個或多個處理單元跳過一個或多個處理單元調用中的編解碼。
  12. 如請求項11所述之視訊編碼方法,其中,當與一個處理單元相關聯的累積速率失真成本比與其他處理單元相關聯的每個累積速率失真成本高出預定閾值時,滿足預定義條件之一。
  13. 如請求項1所述之視訊編碼方法,其中,通過統一處理單元之間的資料掃描順序,在同一處理單元組的並行處理單元之間共享一個或多個緩衝器。
  14. 如請求項1所述之視訊編碼方法,其中,當前處理單元組的當前處理單元直接共享來自該當前處理單元組的一個或多個處理單元的預測樣本,而不將該預測樣本臨時存儲在緩衝器中。
  15. 如請求項14所述之視訊編碼方法,其中,通過從在分區或子分區上測試合並候選的該一個或多個處理單元獲取該預測樣本,該當前處理單元在每個分區或子分區上測試一個或多個幾何分區模式候選。
  16. 如請求項15所述之視訊編碼方法,其中,根據與該當前處理單元的預測結果相關聯的速率失真成本自適應地跳過最初分配給該當前處理單元的GPM任務。
  17. 如請求項14所述之視訊編碼方法,其中,通過從測試幀內平面模式的一個處理單元以及在分區或子分區上測試合並候選的該一個或多個處理單元獲取該預測樣本,該當前處理單元在每個分區或子分區上測試一個或多個組合的幀間及幀內預測候選。
  18. 如請求項17所述之視訊編碼方法,其中,根據與該當前處理單元的預測結果相關聯的速率失真成本自適應地跳過最初分配給該當前處理單元的CIIP任務。
  19. 如請求項14所述之視訊編碼方法,其中,通過從在分區或子分區上測試單向AMVP候選的該一個或多個處理單元獲取該預測樣本,該當前處理單元在每個分區或子分區上測試一個或多個雙向先進運動向量預測候選。
  20. 如請求項19所述之視訊編碼方法,其中,通過從在該分區或子分區上測試單向AMVP候選的該一個或多個處理單元獲取該預測樣本,該當前處理單元在每個分區或子分區上測試一個或多個具有編解碼單元級權重的雙向預測候選。
  21. 如請求項1所述之視訊編碼方法,其中,存儲相鄰重建樣本的一組相鄰緩衝器在一個處理單元組中的多個處理單元之間共享。
  22. 如請求項1所述之視訊編碼方法,其中,還包括生成該當前塊中的每個編解碼塊的殘差,並在多個處理單元之間共享該殘差用於根據不同的變換編解碼設置的變換處理。
  23. 如請求項1所述之視訊編碼方法,其中,在一個處理單元組內的並行處理單元之間動態共享絕對變換差和單元。
  24. 一種視訊編碼裝置,在視訊編碼系統中通過分層架構進行速率失真優化,該視訊編碼裝置包括一個或多個電子電路,配置用於: 接收與視訊圖片中的當前塊相關聯的輸入資料; 確定該當前塊的塊分區結構,通過多個處理單元組爲該當前塊中的每個編解碼塊確定對應的編解碼模式,並根據該塊分區結構將該當前塊劃分爲一個或多個編解碼塊,其中每個處理單元組具有多個並行執行處理單元任務的處理單元,並且每個處理單元組與特定塊大小相關聯,對於每個處理單元組,該當前塊被劃分爲一個或多個分區,每個分區具有與該處理單元組相關聯的特定塊大小,並且每個分區根據一種或多種分區類型劃分爲子分區,確定該當前塊的該塊分區結構和編解碼模式包括: 對該當前塊的每個分區以及由每個處理單元組的該並行處理單元從每個分區劃分出的對應子分區測試多種編解碼模式;以及 根據該處理單元組測試的該編解碼模式相關的速率失真成本,决定該當前塊的該塊分區結構和該當前塊中每個編解碼塊對應的編解碼模式;以及 根據該處理單元組確定的該對應的編解碼模式對該當前塊中的該一個或多個編解碼塊進行熵編碼。
TW111111221A 2021-10-01 2022-03-25 視訊編碼方法及相關裝置 TWI796979B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163251066P 2021-10-01 2021-10-01
US63/251,066 2021-10-01
US17/577,500 US20230119972A1 (en) 2021-10-01 2022-01-18 Methods and Apparatuses of High Throughput Video Encoder
US17/577,500 2022-01-18

Publications (2)

Publication Number Publication Date
TWI796979B true TWI796979B (zh) 2023-03-21
TW202316857A TW202316857A (zh) 2023-04-16

Family

ID=85982017

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111111221A TWI796979B (zh) 2021-10-01 2022-03-25 視訊編碼方法及相關裝置

Country Status (3)

Country Link
US (1) US20230119972A1 (zh)
CN (1) CN115941961A (zh)
TW (1) TWI796979B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140355690A1 (en) * 2012-01-20 2014-12-04 Samsung Electronics Co., Ltd. Method and apparatus for entropy-encoding capable of parallel processing, and method and apparatus for entropy-decoding capable of parallel processing
US20200195965A1 (en) * 2020-02-26 2020-06-18 Intel Corporation Reduction of visual artifacts in parallel video coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548041B2 (en) * 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter
US11797474B2 (en) * 2011-02-17 2023-10-24 Hyperion Core, Inc. High performance processor
WO2014166116A1 (en) * 2013-04-12 2014-10-16 Mediatek Inc. Direct simplified depth coding
US10356426B2 (en) * 2013-06-27 2019-07-16 Google Llc Advanced motion estimation
WO2015006951A1 (en) * 2013-07-18 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for fast encoder decision
US10055342B2 (en) * 2014-03-19 2018-08-21 Qualcomm Incorporated Hardware-based atomic operations for supporting inter-task communication
US10523957B2 (en) * 2014-10-08 2019-12-31 Vid Scale, Inc. Optimization using multi-threaded parallel processing framework
US9811607B2 (en) * 2015-02-26 2017-11-07 Texas Instruments Incorporated System and method to extract unique elements from sorted list
US10511853B2 (en) * 2016-11-24 2019-12-17 Ecole De Technologie Superieure Method and system for parallel rate-constrained motion estimation in video coding
US10430912B2 (en) * 2017-02-14 2019-10-01 Qualcomm Incorporated Dynamic shader instruction nullification for graphics processing
US11089317B2 (en) * 2017-08-03 2021-08-10 Lg Electronics Inc. Method and apparatus for processing video signal using affine prediction
WO2019050385A2 (ko) * 2017-09-07 2019-03-14 엘지전자 주식회사 비디오 신호를 엔트로피 인코딩, 디코딩하는 방법 및 장치
CN111742553A (zh) * 2017-12-14 2020-10-02 交互数字Vc控股公司 用于视频压缩的基于深度学习的图像分区
EP3725074A1 (en) * 2017-12-14 2020-10-21 InterDigital VC Holdings, Inc. Texture-based partitioning decisions for video compression
US20190045195A1 (en) * 2018-03-30 2019-02-07 Intel Corporation Reduced Partitioning and Mode Decisions Based on Content Analysis and Learning
EP3553748A1 (en) * 2018-04-10 2019-10-16 InterDigital VC Holdings, Inc. Deep learning based image partitioning for video compression
EP3935843A4 (en) * 2019-03-08 2022-10-05 ZTE Corporation ZERO TILE ENCODING IN VIDEO ENCODING
JP2022525876A (ja) * 2019-03-17 2022-05-20 北京字節跳動網絡技術有限公司 オプティカルフローベースの予測精緻化の計算
US20230156212A1 (en) * 2020-04-03 2023-05-18 Lg Electronics Inc. Video transmission method, video transmission device, video reception method, and video reception device
US11924435B2 (en) * 2020-05-15 2024-03-05 Intel Corporation High quality advanced neighbor management encoder architecture
US11875425B2 (en) * 2020-12-28 2024-01-16 Advanced Micro Devices, Inc. Implementing heterogeneous wavefronts on a graphics processing unit (GPU)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140355690A1 (en) * 2012-01-20 2014-12-04 Samsung Electronics Co., Ltd. Method and apparatus for entropy-encoding capable of parallel processing, and method and apparatus for entropy-decoding capable of parallel processing
US20200195965A1 (en) * 2020-02-26 2020-06-18 Intel Corporation Reduction of visual artifacts in parallel video coding

Also Published As

Publication number Publication date
US20230119972A1 (en) 2023-04-20
CN115941961A (zh) 2023-04-07
TW202316857A (zh) 2023-04-16

Similar Documents

Publication Publication Date Title
KR102531738B1 (ko) 영상 부호화/복호화 방법 및 장치
CN111937391B (zh) 用于视频编解码系统中的子块运动补偿的视频处理方法和装置
KR20230037530A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
JP2023174703A (ja) マルチリファレンス予測のための動きベクトルの精密化
CN113853794A (zh) 用于多个工具的互相排斥设定
JP2020523853A (ja) 動きベクトル予測
TWI655863B (zh) 視訊處理系統中基於預測子的分割的方法及裝置
KR20190110960A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20190313112A1 (en) Method for decoding video signal and apparatus therefor
KR20180061041A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20200002697A (ko) 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20190049919A (ko) 영상 부호화 장치
KR20200033768A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN111010578B (zh) 一种帧内帧间联合预测的方法、装置以及存储介质
CN113906740A (zh) 帧间预测信息编码/解码方法和装置
TW202021357A (zh) 視訊編解碼中的子塊去塊及裝置
JP2023531010A (ja) 符号化・復号方法、装置及びその機器
KR102551311B1 (ko) 비디오 신호 부호화/복호화 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
TWI815377B (zh) 視訊編解碼方法和裝置
KR20200074877A (ko) 비디오 부호화/복호화 방법 및 장치
TWI796979B (zh) 視訊編碼方法及相關裝置
TWI841265B (zh) 視訊編解碼方法和裝置
WO2023131047A1 (en) Method, apparatus, and medium for video processing
JP2024519848A (ja) 動きベクトル精緻化を伴う幾何学的分割モード
KR20230074682A (ko) 영상 부호화/복호화 방법 및 장치