TWI786392B - 用於編碼及解碼視訊樣本的區塊的方法、設備和系統 - Google Patents

用於編碼及解碼視訊樣本的區塊的方法、設備和系統 Download PDF

Info

Publication number
TWI786392B
TWI786392B TW109113598A TW109113598A TWI786392B TW I786392 B TWI786392 B TW I786392B TW 109113598 A TW109113598 A TW 109113598A TW 109113598 A TW109113598 A TW 109113598A TW I786392 B TWI786392 B TW I786392B
Authority
TW
Taiwan
Prior art keywords
matrix
block
prediction
intra
samples
Prior art date
Application number
TW109113598A
Other languages
English (en)
Other versions
TW202101999A (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 日商佳能股份有限公司
Publication of TW202101999A publication Critical patent/TW202101999A/zh
Application granted granted Critical
Publication of TWI786392B publication Critical patent/TWI786392B/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

一種從視訊位元流解碼影像訊框的編碼樹的編碼單元的系統和方法。所述方法包含將所述編碼樹的區域拆分為複數個編碼區塊,所述編碼區塊中之各者包含預測區塊;以及判斷所述編碼區塊中之各者的所述預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述編碼區塊中之一者的所述預測區塊,(i)如果所述區域滿足臨界值,則所述判斷根據所述區域的面積,或(ii)如果所述區域的所述面積不滿足所述臨界值,則所述判斷根據所述區域的餘裕。所述方法還包含:根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及使用每個預測區塊的參照樣本和所述矩陣係數,對使用針對所述區域中的每個編碼單元產生的預測區塊的所述編碼單元進行解碼。

Description

用於編碼及解碼視訊樣本的區塊的方法、設備和系統
本申請案依35U.S.C第119條主張於2019年6月24日提出申請的澳洲專利第2019204437號申請案的權益,在此透過引用將其全文併入,如同於本文中完整陳述一般。
本發明一般有關數位視訊信號處理,尤其有關編碼及解碼視訊樣本的區塊的方法、設備和系統。本發明亦有關一種電腦程式產品,包括電腦可讀取媒體,其上記錄有用於編碼及解碼視訊樣本的區塊的電腦程式。
當前存在許多用於視訊編碼的應用,包括用於視訊資料的傳輸和儲存的應用。還開發許多視訊編碼標準,其他標準當前正在開發中。視訊編碼標準化的近期發展導致一個名為「聯合視訊專家組」(JVET)之組織的形成。聯合視訊專家組(JVET)包括國際電信聯盟(ITU)電信標準化部門(ITU-T)第16研究組,第6議題(SG16/Q6)的成員,也稱為「視訊編碼專家群組」(VCEG),國際標準化組織/國際電工委員會聯合技術委員會1/小組委員會29/工作組11(ISO/IEC JTC1/SC29/WG11)的成員,也稱為「動態影像專家群組」(MPEG)。
聯合視訊專家組(JVET)發布徵求提案(CfP),並在美國聖地亞哥舉行的第10次會議上分析回應。提交的回應證明視訊壓縮能力顯著優於當前最先進的視訊壓縮標準,即:「高效視訊編碼」(high efficiency video coding, HEVC)。在這種優異效能的基礎上,決定開始一個專案來開發一種新的視訊壓縮標準,命名為「多功能視訊編碼」(versatile video coding, VVC)。VVC預計將滿足對更高壓縮效能的持續需求,特別是當視訊格式的能力增加時(例如,具有更高的解析度和更高的訊框率)並且解決在WAN上的服務傳送的市場需求增加,其中頻寬成本相對較高。同時,VVC必須能夠在當代矽製程中實施,並且在實施的效能與實施成本之間提供可接受的折衷(例如,在矽面積、CPU處理器負載、記憶體利用率和頻寬方面)。
視訊資料包括一系列影像資料訊框,每個訊框包括一或多個顏色通道。通常需要一個主要顏色通道和兩個次要顏色通道。主要顏色通道通常被稱為「亮度」通道,而次要顏色通道通常被稱為「色度」通道。儘管視訊資料通常以RGB(紅-綠-藍)顏色空間顯示,但是所述顏色空間在三個各自成分之間具有高度相關性。由編碼器或解碼器看到的視訊資料表示通常使用諸如YCbCr的顏色空間。YCbCr在Y(主要)通道中集中亮度,根據傳遞函數映射到「亮度」,在Cb和Cr(次要)通道中集中色度。此外,與亮度通道相比,Cb和Cr通道可以用較低的速率在空間上進行取樣(次取樣),例如水平的一半和垂直的一半-稱為「4:2:0色度格式」。4:2:0色度格式通常用於「消費者」應用,諸如網際網路視訊流、廣播電視和Blu-RayTM 光碟上的儲存。以水平半速率對Cb和Cr通道進行次取樣而不是垂直次取樣被稱為「4:2:2色度格式」。4:2:2色度格式通常用於專業應用,包括擷取用於電影製作的資料片等。4:2:2色度格式的較高取樣率使得產生的視訊對諸如顏色分級之類的編輯操作更具彈性。在分發給消費者之前,4:2:2色度格式材料通常被轉換為4:2:0色度格式,然後在分發給消費者之前進行編碼。除色度格式之外,視訊還以解析度和訊框率為特徵。範例解析度為超高畫質(UHD),解析度為3840×2160或「8K」,解析度為7680×4320,範例訊框率為60或120Hz。亮度樣本率可以從每秒約500兆樣本到每秒幾千兆樣本。對於4:2:0色度格式,每個色度通道的取樣率是亮度樣本率的四分之一,對於4:2:2色度格式,每個色度通道的取樣率是亮度樣本率的一半。
VVC標準是「基於區塊」的編解碼器,其中訊框首先被劃分成稱為「編碼樹單元」(CTU)的區域的正方形陣列。CTU通常佔據相對較大的面積,諸如128×128亮度樣本。然而,每個訊框的右邊緣和底邊緣的CTU的面積可能較小。與每個CTU相關聯的是用於亮度通道的「編碼樹」和用於色度通道的附加編碼樹。編碼樹將CTU區域的分解定義為一組區塊,也稱為「編碼區塊」(CB)。單一編碼樹也可以為亮度通道和色度通道指定區塊,在這種情況下,並置編碼區塊的集合被稱為「編碼單元」(CU),即每個CU具有用於每個顏色通道的編碼區塊。處理CB以特定順序進行編碼或解碼。作為使用4:2:0色度格式的結果,具有用於128×128亮度樣本區域的亮度編碼樹的CTU具有用於64×64色度樣本區域的對應色度編碼樹,與128×128亮度樣本區域並置。當單一編碼樹用於亮度通道和色度通道時,給定區域的並置區塊的集合通常被稱為「單元」,例如上述CU,以及「預測單元」(PU)和「轉換單元」(TU)。當對給定區域使用單獨的編碼樹時,使用上述CB,以及「預測區塊」(PB)和「轉換區塊」(TB)。
儘管「單元」和「區塊」之間存在上述區別,但術語「區塊」可以用作訊框的區域或區的通用術語,對於所述區域或區,操作應用於所有顏色通道。
對於每個CU,產生對應的訊框資料區域的內容(樣本值)的預測單元(PU)(預測單元)。此外,形成在編碼器的輸入處看到區域的預測與內容之間的差異(或空間域中的「殘餘」)的表示。可以將每個顏色通道中的差異轉換且編碼成殘餘係數序列,從而形成給定CU的一或多個TU。應用的轉換可以是離散餘弦轉換(DCT)或其他轉換,應用於每個殘餘值區塊。所述主要轉換可分離地應用,即,二維轉換係兩個回合中執行。首先透過對區塊中的每列樣本應用一維轉換來轉換區塊。然後,透過對部分結果的每行應用一維轉換來轉換部分結果,以產生對殘餘樣本實質去相關的轉換係數的最終區塊。VVC標準支援各種大小的轉換,包括矩形區塊的轉換,每個側面大小為二的冪次。轉換係數被量化以用於熵編碼到位元流中。
VVC的特徵在於訊框內預測和訊框間預測。訊框內預測涉及在正在使用的訊框中使用先前處理過的樣本,以產生所述訊框中當前樣本區塊的預測。訊框間預測涉及使用從先前解碼的訊框獲得的樣本區塊來產生訊框中當前樣本區塊的預測。根據運動向量,先前解碼的訊框從當前區塊的空間位置偏移,所述運動向量經常應用了濾波。訊框內預測區塊可以是統一的樣本值(「DC訊框內預測」)、具有偏移以及水平和垂直梯度的平面(「平面訊框內預測」)或在特定方向應用的相鄰樣本區塊的總體(「角度訊框內預測」)或使用相鄰樣本和選定矩陣係數進行矩陣相乘的結果。由於相鄰樣本包含來自先前處理過的區塊的樣本,因此用於訊框內預測的反饋迴路受到很大限制,並且計算複雜度必須保持在滿足最高支援的解析度和訊框率所需的程度以下。
本發明的目的為實質克服或至少改善現有配置的一或多個缺點。
本發明的一個態樣提供一種從視訊位元流解碼影像訊框的編碼樹的編碼單元的方法,所述方法包含:將所述編碼樹的區域拆分為複數個編碼區塊,所述編碼區塊中之各者包含預測區塊;判斷所述編碼區塊中之各者的所述預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述編碼區塊中之一者的所述預測區塊,(i)如果所述區域滿足臨界值,則所述判斷根據所述區域的面積,或(ii)如果所述區域的所述面積不滿足所述臨界值,則所述判斷根據所述區域的餘裕;根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及使用每個預測區塊的參照樣本和所述矩陣係數,對使用針對所述區域中的每個編碼單元產生的預測區塊的所述編碼單元進行解碼。
在另一態樣中,所述臨界值的大小大於512個亮度樣本。
在另一態樣中,所述臨界值的大小大於64個亮度樣本。
在另一態樣中,所述餘裕允許針對所述區域讀取4×4區塊的40個字組讀取。
在另一態樣中,僅在使用矩陣訊框內預測的情況下,才針對所述CU解碼矩陣訊框內預測旗標。
在另一態樣中,不管是否使用矩陣訊框內預測,都針對所述CU解碼矩陣訊框內預測旗標。
本發明的另一態樣提供了一種從視訊位元流解碼影像訊框的編碼樹的編碼單元的方法,所述方法包含:將所述編碼樹的區域拆分為複數個編碼區塊,其各包含預測區塊;基於每個編碼區塊的大小來判斷所述編碼區塊的預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否被用於對應編碼區塊的所述預測區塊;根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及對來自針對使用每個預測區塊的參照樣本和所述矩陣係數產生的所述區域中的每個編碼單元的預測區塊的編碼單元進行解碼。
在另一態樣中,如果所述編碼單元的大小不是4×4,則對矩陣訊框內預測旗標進行解碼。
在另一態樣中,如果所述編碼單元的大小不是4×4、8×4或4×8中之一者,則對矩陣訊框內預測旗標進行解碼。
在另一態樣中,如果所述編碼單元的大小不是4×4、8×4、4×8或8×8中之一者,則對矩陣訊框內預測旗標進行解碼。
在另一個態樣,如果所述編碼單元的大小不是4×4、8×4、4×8、8×8、8×16或16×8中之一者,則對所述矩陣訊框內預測旗標進行解碼。
本發明的另一態樣提供了一種從視訊位元流產生影像訊框的編碼樹的預測區塊的方法,所述方法包含:透過從所述視訊位元流解碼矩陣訊框內預測模式旗標來判斷所述編碼單元的預測模式;在預測模式指示使用矩陣訊框內預測模式的情況下,對截斷的二元碼字進行解碼,以判斷矩陣訊框內預測模式;以及透過將相鄰於所述預測區塊的參照樣本與根據所解碼的矩陣訊框內預測模式選擇的矩陣矩陣相乘來產生所述預測區塊。
本發明的另一態樣提供了一種非暫態電腦可讀取媒體,其上儲存有用以實現從視訊位元流解碼影像訊框的編碼樹的編碼單元的方法,所述方法包含:將所述編碼樹的區域拆分為複數個編碼區塊,所述編碼區塊中之各者包含預測區塊;判斷所述編碼區塊中之各者的所述預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述編碼區塊中之一者的所述預測區塊,(i)如果所述區域滿足臨界值,則所述判斷根據所述區域的面積,或(ii)如果所述區域的所述面積不滿足所述臨界值,則所述判斷根據所述區域的餘裕;根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及使用每個預測區塊的參照樣本和所述矩陣係數,對使用針對所述區域中的每個編碼單元產生的預測區塊的所述編碼單元進行解碼。
本發明的另一態樣提供一種視訊解碼器,其配置成從視訊位元流接收影像訊框的編碼樹的編碼單元;將所述編碼樹的區域拆分為複數個編碼區塊,所述編碼區塊中之各者包含預測區塊;判斷所述編碼區塊中之各者的所述預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述編碼區塊中之一者的所述預測區塊,(i)如果所述區域滿足臨界值,則所述判斷根據所述區域的面積,或(ii)如果所述區域的所述面積不滿足所述臨界值,則所述判斷根據所述區域的餘裕;根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及使用每個預測區塊的參照樣本和所述矩陣係數,對使用針對所述區域中的每個編碼單元產生的預測區塊的所述編碼單元進行解碼。
本發明的另一態樣提供一種系統,包含:記憶體;以及處理器,其中所述處理器係配置成執行儲存在所述記憶體上的碼,以實現從視訊位元流解碼影像訊框的編碼樹的編碼單元的方法,所述方法包含:將所述編碼樹的區域拆分為複數個編碼區塊,所述編碼區塊中之各者包含預測區塊;判斷所述編碼區塊中之各者的所述預測區塊的矩陣訊框內預測旗標,每個矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述編碼區塊中之一者的所述預測區塊,(i)如果所述區域滿足臨界值,則所述判斷根據所述區域的面積,或(ii)如果所述區域的所述面積不滿足所述臨界值,則所述判斷根據所述區域的餘裕;根據所判斷的旗標,針對判斷以使用矩陣訊框內預測的每個預測區塊,從記憶體中讀取矩陣係數;以及使用每個預測區塊的參照樣本和所述矩陣係數,對使用針對所述區域中的每個編碼單元產生的預測區塊的所述編碼單元進行解碼。
其他態樣亦予以揭露。
當在任何一或多個附圖中參照具有相同參考符號的步驟及/或特徵時,那些步驟及/或特徵對於本說明書的目的而言具有相同的功能或者操作,除非出現相反的意圖。
如上所述,訊框內預測的計算複雜度是限制性的,特別是對於矩陣訊框內預測(MIP)。雖然MIP可以在最小化錯誤方面提供有效的解決方案,但在最差情況下(例如僅由4×4區塊組成的訊框),應用MIP的計算複雜度會特別影響區塊處理速率。區塊處理速率必須足以支援目標應用的解析度和訊框率。只考慮亮度通道的情況下,以每秒120個訊框的「8K」解析度訊框(7680×4320)每秒需要處理248.8×106 個4×4區塊。即使在整個訊框或視訊序列未實現在最差情況的情況下,也需要處理達到最差情況的局部區域,而不會延遲完整解碼訊框的輸送,以在顯示器上呈現。複雜度的一種態樣涉及根據矩陣訊框內預測(MIP)模式來提取選擇的矩陣係數所需的記憶體頻寬,所述矩陣係數可在沒有限制的情況下因區塊而異。
圖1是顯示視訊編碼和解碼系統100的功能模組的示意性方塊圖。系統100可利用對於MIP模式的應用限制,以建立用於選擇或讀取矩陣係數的最差情況下的記憶體頻寬,以便允許實際實現和/或與MIP模式實現的編碼優勢相稱。
系統100包括源裝置110和目的地裝置130。通訊通道120用以將編碼的視訊資訊從源裝置110傳送到目的地裝置130。在一些配置中,源裝置110和目的地裝置130可以是任一者或兩者包括對應的行動電話手機或「智慧型電話」,在這種情況下,通訊通道120是無線通道。在其他配置中,源裝置110和目的地裝置130可以包括視訊會議裝備,在這種情況下,通訊通道120通常是有線通道,例如網際網路連接。此外,源裝置110和目的地裝置130可以包括多種裝置中的任何一種,包括支援空中電視廣播的裝置、有線電視應用、網際網路視訊應用(包括流)以及編碼視訊資料是在某些電腦可讀取儲存媒體(例如,檔案伺服器中的硬碟驅動器)上擷取的應用。
如圖1所示,源裝置110包括視訊源112、視訊編碼器114和發送器116。視訊源112通常包括擷取的視訊訊框資料(如113所示)源,例如影像擷取感測器、儲存在非暫態記錄媒體上之先前擷取的視訊序列、或來自遠程影像擷取感測器的視訊饋送。視訊源112亦可是電腦圖形卡的輸出,例如顯示作業系統的視訊輸出和在計算裝置(例如平板電腦)上執行的各種應用。可以包括作為視訊源112的影像擷取感測器的源裝置110的範例包括智慧型電話、視訊攝錄機、專業視訊相機和網路視訊相機。
視訊編碼器114將所擷取的訊框資料(由箭頭113所指)從視訊源112轉換(或「編碼」)為位元流(由箭頭115所指),如參照圖3進一步所描述的。位元流115由發送器116透過通訊通道120作為編碼視訊資料(或「編碼視訊資訊」)發送。位元流115也可以儲存在非暫態儲存裝置122中,例如「快閃」記憶體或硬碟驅動器,直到稍後透過通訊通道120傳輸,或者透過通訊通道120代替傳輸。例如,可以根據需要透過廣域網路(WAN)將經編碼的視訊資料提供給客戶,以用於視訊流應用。
目的地裝置130包括接收器132、視訊解碼器134和顯示裝置136。接收器132從通訊通道120接收編碼的視訊資料,並將接收的視訊資料作為位元流(由箭頭133所指)傳遞到視訊解碼器134。視訊解碼器134然後將解碼的訊框資料(由箭頭135所指)輸出到顯示裝置136。解碼的訊框資料135具有與訊框資料113相同的色度格式。顯示裝置136的範例包括陰極射線管、液晶顯示器,例如智慧型手機、平板電腦、電腦螢幕或獨立電視機。源裝置110和目的地裝置130中的每一個的功能也可以體現在單一裝置中,其範例包括行動電話手機和平板電腦。
儘管有上述範例裝置,但是源裝置110和目的地裝置130中的每一個可以配置在通用計算系統內,通常透過硬體和軟體組件的組合。圖2A顯示這樣的電腦系統200,其包括:電腦模組201;輸入裝置,例如鍵盤202、滑鼠指示器裝置203、掃描器226、相機227,其可以配置為視訊源112,以及麥克風280;以及輸出裝置,包括印表機215、顯示裝置214,其可以被配置為顯示裝置136,以及揚聲器217。電腦模組201可以使用外部調變器-解調器(數據機)收發器裝置216來透過連接221與通訊網路220往來通訊。通訊網路220可以代表通訊通道120,可以是廣域網路(WAN),例如網際網路、蜂巢式電信網路或私有WAN。在連接221是電話線的情況下,數據機216可以是傳統的「撥號」數據機。或者,在連接221是高容量(例如,纜線或光學)連接的情況下,數據機216可以是寬頻數據機。無線數據機還可以用於到通訊網路220的無線連接。收發器裝置216可以提供發送器116和接收器132的功能,並且通訊通道120可以在連接221中實施。
電腦模組201通常包括至少一個處理器單元205和記憶體單元206。例如,記憶體單元206可以具有半導體隨機存取記憶體(RAM)和半導體唯讀記憶體(ROM)。電腦模組201還包括多個輸入/輸出(I/O)介面,包括:耦接到視訊顯示器214的音訊-視訊介面207、揚聲器217和麥克風280;I/O介面213,其耦接到鍵盤202、滑鼠203、掃描器226、相機227和可選的操縱桿或其他人機介面裝置(未顯示);及外部數據機216和印表機215的介面208。從音訊-視訊介面207到電腦螢幕214的信號通常是電腦圖形卡的輸出。在一些實現中,數據機216可以包含在電腦模組201內,例如在介面208內。電腦模組201還具有本地網路介面211,其允許經由連接223將電腦系統200耦接到本地通訊網路222,稱為區域網路(LAN)。如圖2A所示,本地通訊網路222還可以經由連接224耦接到廣域網路220,連接224通常包括所謂的「防火牆」裝置或具有類似功能的裝置。本地網路介面211可以包括乙太網路(EthernetTM )電路卡、藍牙(BluetoothTM )無線配置或IEEE 802.11無線配置;然而,可以為介面211實施許多其他類型的介面。本地網路介面211還可以提供發送器116和接收器132的功能,並且通訊通道120也可以在本地通訊網路222中實施。
I/O介面208和213可以提供串列和並列連接中的任一個或兩者,前者通常根據通用串列匯流排(USB)標準實施並且具有對應的USB連接器(未顯示)。提供儲存裝置209且通常包括硬碟驅動器(HDD)210。也可以使用其他儲存裝置,例如軟碟驅動器和磁帶驅動器(未顯示)。通常提供光碟驅動器212以用作非揮發性的資料源。可攜式儲存裝置,例如光碟(例如CD-ROM、DVD、Blu ray DiscTM (藍光光碟))、USB-RAM、可攜式、外部硬碟驅動器和軟碟,可以用作電腦系統200的適當資料源。通常,HDD 210、光學驅動器212、網路220和222中的任何一者也可以被配置為操作為視訊源112,或者被配置為用於經由顯示器214儲存以供再生的解碼視訊資料的目的地。源裝置110和系統100的目的地裝置130可以在電腦系統200中實施。
電腦模組201的組件205至213通常經由互連匯流排204進行通訊,並且以導致相關技術領域人士已知的電腦系統200的普通操作模式的方式進行通訊。例如,處理器205使用連接218耦接到系統匯流排204。同樣地,記憶體206和光碟驅動器212透過連接219耦接到系統匯流排204。可以在其上實施所描述的配置的電腦的範例包括IBM-PC和相容機,Sun SPARCstations、Apple MacTM 或類似的電腦系統。
在適當或期望的情況下,視訊編碼器114和視訊解碼器134以及以下描述的方法可以使用電腦系統200來實施。具體而言,要被描述的視訊編碼器114、視訊解碼器134和方法,可以被實施為在電腦系統200內可執行的一或多個軟體應用程式233。具體而言,視訊編碼器114、視訊解碼器134和所描述的方法的步驟由電腦系統200內執行的軟體233中之指令231實施(參見圖2B)。軟體指令231可以形成為一或多個碼模組,每個碼模組用於執行一或多個特定任務。軟體還可以劃分成兩個單獨的部分,其中第一部分和對應的碼模組執行所描述的方法,第二部分和對應的碼模組管理第一部分和用戶之間的用戶介面。
舉例來說,軟體可以儲存在電腦可讀取媒體中,包括以下描述的儲存裝置。軟體從電腦可讀取媒體載入到電腦系統200處,接著由電腦系統200執行。具有記錄在電腦可讀取媒體上的這種軟體或電腦程式的電腦可讀取媒體是電腦程式產品。電腦系統200中電腦程式產品的使用較佳地實施加於實施視訊編碼器114、視訊解碼器134和所描述的方法的有利設備。
軟體233通常儲存在HDD 210或記憶體206中。軟體從電腦可讀取媒體載入到電腦系統200處,並由電腦系統200執行。因此,例如,軟體233可以儲存在由光碟驅動器212讀取的光學可讀取碟儲存媒體(例如,CD-ROM)225上。
在一些情況下,應用程式233可以被提供給用戶在一或多個CD-ROM 225上編碼且經由對應的驅動器212讀取,或者可選地可以由用戶從網路220或222讀取。此外,軟體還可以從其他電腦可讀取媒體載入到電腦系統200中。電腦可讀取儲存媒體是指對電腦系統200提供記錄的指令及/或資料以供執行及/或處理的任何非暫態有形儲存媒體。這種儲存媒體的範例包括軟碟、磁帶、CD-ROM、DVD、Blu-ray DiscTM (藍光光碟)、硬碟驅動器、ROM或積體電路、USB記憶體、磁光碟或諸如PCMCIA卡等電腦可讀卡,無論這些裝置是在電腦模組201的內部還是外部。亦可參與提供軟體、應用程式、指令及/或視訊資料或編碼視訊資料到電腦模組401的暫態性或非有形電腦可讀傳輸媒體的範例包括無線電或紅外線傳輸通道,以及與另一電腦或聯網裝置的網路連接,以及包括電子郵件傳輸和記錄在網站等上的資訊的網際網路或內部網路。
可以執行應用程式233的第二部分和以上提到的對應碼模組以實施要在顯示器214上呈現或以其他方式表示的一或多個圖形用戶介面(GUI)。通常透過操縱鍵盤202以及滑鼠203,電腦系統200的用戶和應用程式可以用功能上可適應的方式操縱介面,以對與GUI相關聯的應用程式提供控制命令及/或輸入。亦可實施其他形式的功能自適應用戶介面,例如利用經由揚聲器217輸出的語音提示和經由麥克風280輸入的用戶語音命令的音訊介面。
圖2B是處理器205和「記憶體」234的詳細示意性方塊圖。記憶體234表示可以由圖2A中的電腦模組201存取的所有記憶體模組(包括HDD 209和半導體記憶體206)的邏輯聚合。
當電腦模組201最初被供電時,執行開機自我測試(power-on self-test, POST)程式250。POST程式250通常儲存在圖2A的半導體記憶體206的ROM 249中。諸如儲存軟體的ROM 249之類的硬體裝置有時被稱為韌體。為了正確操作,POST程式250檢查電腦模組201內的硬體以確保正常運行並且通常檢查處理器205、記憶體234(209,206)和基本輸入-輸出系統軟體(BIOS)模組251,其通常也儲存在ROM 249。一旦POST程式250成功運行,BIOS 251就啟動圖2A的硬碟驅動器210。啟動硬碟驅動器210使得駐留在硬碟驅動器210上的啟動載入器程式252透過處理器205執行。這將作業系統253載入到RAM記憶體206中,此時作業系統253開始操作。作業系統253是可由處理器205執行的系統級應用程式,以實施各種高級功能,包括處理器管理、記憶體管理、裝置管理、儲存管理、軟體應用程式介面和通用用戶介面。
作業系統253管理記憶體234(209、206)以確保在電腦模組201上運行的每個處理或應用程式具有足夠的記憶體,在所述記憶體中執行而不與分配給另一處理的記憶體衝突。此外,必須正確使用圖2A的電腦系統200中可用的不同類型的記憶體,以便每個處理可以有效地運行。因此,聚合的記憶體234不旨在顯示如何分配特定記憶體段(除非另有說明),而是提供電腦系統200可存取的記憶體的概觀以及如何使用這些記憶體。
如圖2B所示,處理器205包括多個功能模組,包括控制單元239、算術邏輯單元(ALU)240、以及有時稱為快取記憶體的本地或內部記憶體248。快取記憶體248通常包括暫存器部分中的多個儲存暫存器244-246。一或多個內部匯流排241在功能上互連這些功能模組。處理器205通常還具有一或多個介面242,用於使用連接218經由系統匯流排204與外部裝置通訊。記憶體234使用連接219耦接到匯流排204。
應用程式233包括指令序列231,其可包括條件分支和迴路指令。程式233還可以包括用於執行程式233的資料232。指令231和資料232分別儲存在記憶體位置228、229、230和235、236、237中。取決於指令231和記憶體位置228-230的相對大小,特定指令可以儲存在單一記憶體位置中,如記憶體位置230中所示的指令所示。或者,指令可以被分段為多個部分,每個部分儲存在單獨的記憶體位置中,如記憶體位置228和229中所示的指令段所示。
通常,處理器205被給予在其中執行的一組指令。處理器205等待後續輸入,處理器205透過執行另一組指令對其作出反應。每個輸入可以從多個源中的一或多個提供,包括由一或多個輸入裝置202、203產生的資料、經由網路220、202之一從外部源接收的資料、從儲存裝置206、209其中之一擷取的資料、或從插入對應讀取器212的儲存媒體225中擷取的資料,全部在圖2A中顯示。在一些情況下,執行一組指令可以導致資料的輸出。執行還可以牽涉到將資料或變數儲存到記憶體234。
視訊編碼器114、視訊解碼器134和所描述的方法可使用輸入變數254,其儲存在記憶體234中的對應記憶體位置255、256、257中。視訊編碼器114、視訊解碼器134和所描述的方法產生輸出變數261,其儲存在記憶體234中的對應記憶體位置262、263、264中。中間變數258可以儲存在記憶體位置259、260、266和267中。
參照圖2B的處理器205,暫存器244、245、246、算術邏輯單元(ALU)240和控制單元239一起工作以針對構成程式233的指令集中的每個指令執行執行「提取、解碼和執行」循環所需的微運算序列。每個提取、解碼和執行循環包含: 提取操作,其從記憶體位置228、229、230提取或讀取指令231; 解碼操作,其中控制單元239判斷已經提取哪個指令;以及 執行操作,其中控制單元239及/或ALU 240執行指令。
此後,可以執行下一指令的進一步提取、解碼和執行循環。類似地,可以執行儲存循環,控制單元239透過所述儲存循環將值儲存或寫入記憶體位置232。
將要描述圖11至19的方法中的每個步驟或子處理,與程式233的一或多個段相關聯,並且通常由處理器205中的暫存器部分244、245、247、ALU 240和控制單元239一起執行,以執行用於程式233的所述段的指令集中的每個指令的提取、解碼和執行循環。
圖3是顯示視訊編碼器114的功能模組的示意方塊圖。圖4是顯示視訊解碼器134的功能模組的示意方塊圖。一般而言,資料在樣本或係數組(例如,將區塊劃分成固定大小的子區塊,或者作為陣列)中的視訊編碼器114與視訊解碼器134內的功能模組之間傳遞。視訊編碼器114和視訊解碼器134可以使用通用電腦系統200來實施,如圖2A和2B所示,其中可以由電腦系統200內的專用硬體、透過電腦系統200內可執行的軟體(例如駐留在硬碟驅動器205上於執行中由處理器205控制的軟體應用程式233的一或多個軟體碼模組)實施各種功能模組。或是,視訊編碼器114和視訊解碼器134可以透過電腦系統200內可執行的專用硬體和軟體的組合來實施。視訊編碼器114、視訊解碼器134和所描述的方法可以或者在專用硬體(例如執行實施所描述方法的功能或子功能的一或多個積體電路)中實施。這種專用硬體可以包括圖形處理單元(GPU)、數位信號處理器(DSP)、專用標準產品(ASSP)、特定應用積體電路(ASIC)、現場可程式化閘陣列(FPGA)或一或多個微處理器及相關記憶體。特別地,視訊編碼器114包括模組310-392,且視訊解碼器134包括模組420-496,每個模組可以實施為軟體應用程式233的一或多個軟體碼模組。
儘管圖3的視訊編碼器114是多功能視訊編碼(VVC)視訊編碼管線的例子,但是其它視訊編解碼器也可用於執行本文所述的處理階段。視訊編碼器114接收擷取的訊框資料113,例如一系列訊框,每個訊框包括一或多個顏色通道。訊框資料113可以是任何色度格式,例如4:0:0、4:2:0、4:2:2或4:4:4色度格式。區塊劃分器310首先將訊框資料113劃分成CTU,通常為方形並且配置成使得針對CTU使用特定的大小。例如,CTU的大小可以是64×64、128×128或256×256亮度樣本。區塊劃分器310還根據亮度編碼樹和色度編碼樹將每個CTU劃分成一或多個CB。CB具有各種大小,並且可以包括正方形和非正方形縱橫比。參照圖11至19的進一步描述區塊劃分器310的操作。然而,在VVC標準中,CB、CU、PU和TU總是具有2的冪次的邊長。因此,根據CTU的亮度編碼樹和色度編碼樹,從區塊劃分器310輸出表示為312的當前CB,其根據CTU的一或多個區塊上的迭代而進行。以下參照圖5和6進一步描述用於將CTU劃分成CB的選項。儘管通常以逐個CTU為基礎描述操作,但是視訊編碼器114和視訊解碼器134可以在較小尺寸的區域上操作,以減少記憶體消耗。例如,每個CTU 可以劃分為較小的區域,稱為大小為64×64的「虛擬管線資料單元」(VPDU)。相比於完全CTU上的操作,所述VPDU形成在硬體架構中更適合於管線處理的資料粒度,其中在記憶體覆蓋區的下降減少了矽面積,從而減少了成本。
可以依光柵掃描順序來掃描由訊框資料113的第一次劃分產生的CTU,並且可以將其分組為一或多個「切片」。切片可以是「訊框內」(或「I」)切片。訊框內切片(I切片)指示切片中的每個CU是訊框內預測的。或者,切片可以是單向或雙向預測(分別為「P」或「B」切片),分別指示切片中的單向和雙向預測的附加可用性。
對於每個CTU,視訊編碼器114以兩個階段操作。在第一階段(稱為「搜尋」階段),區塊劃分器310測試編碼樹的各種潛在配置。編碼樹的每個潛在配置具有關聯的「候選」CB。第一階段涉及測試各種候選CB,以選擇提供高壓縮效率和相對低失真的CB。測試通常涉及拉格朗日最佳化(Lagrangian optimisation),由此基於速率(編碼成本)和失真(關於輸入訊框資料113的誤差)的加權組合來評估候選CB。選擇「最佳」候選CB(具有最低評估速率/失真的CB)用於隨後編碼到位元流115中。在候選CB的評估中包括對於給定區域使用CB或者根據各種拆分選項進一步拆分所述區域並且使用更多CB對每個較小的結果區域進行編碼,或者甚至進一步拆分區域的選項。因此,在搜尋階段中選擇CB和編碼樹本身。
視訊編碼器114為每個CB(例如CB 312)產生由箭頭320所指的預測區塊(PB)。PB 320是相關CB 312的內容的預測。減法器模組322產生差,在PB 320與CB 312之間表示為324(或「殘餘」,指的是在空間域中的差)。差324是PB 320與CB 312中的對應樣本之間的區塊大小差異。差324被轉換、量化並表示為轉換區塊(TB),由箭頭336所指。例如基於評估的成本或失真,PB 320和相關聯的TB 336通常從許多可能的候選CB中的一個中選擇。
候選編碼區塊(CB)是從視訊編碼器114可用於關聯PB的其中一個預測模式和所得殘餘得到的CB。TB 336是差324的量化和轉換表示。當與視訊解碼器114中的預測PB組合時,TB 336減少解碼的CB與原始CB 312之間的差異,代價是位元流中的額外信令。
因此,每個候選編碼區塊(CB),即預測區塊(PB)與轉換區塊(TB)的組合,具有相關的編碼成本(或「速率」)和相關的差異(或「失真」)。速率通常以位元來測量。通常將CB的失真估計為樣本值的差異,例如絕對差之和(SAD)或平方差之和(SSD)。由每個候選PB產生的估計可由模式選擇器386使用差324來判斷而確定,預測模式387。預測模式387指示對於當前的CB要使用訊框內預測、訊框間預測或矩陣訊框內預測(MIP)的決定。預測模式387被確定為包含訊框內預測(包含矩陣訊框內預測、DC、平面和角度訊框內預測)或訊框間預測的可能模式之中的選定模式以及相關的運動向量。通常透過將失真度量最小化來選擇預測模式387,所述失真度量是由每個候選模式所產生的失真加上以拉姆達(Lambda)值來縮放相關速率的結果之和的拉格朗日最佳化所產生的。當使用矩陣訊框內預測時,還確定矩陣訊框內預測模式(由箭頭388表示),以指示對於當前的CB要使用數種可用的矩陣訊框內預測模式中的哪一個。用以決定區塊(特別相對小的區塊)的MIP模式的使用和選擇的搜索可以被限制為實現與無約束搜索相比,提取矩陣係數的較低最差情況記憶體頻寬,如參考圖11至圖14,以及圖17和18的替代實現中所描述。可以用比殘餘的熵編碼低得多的成本來執行與每個候選預測模式和對應的殘餘編碼相關聯的編碼成本的估計。因此,可以評估多個候選模式以判斷速率-失真意義上的最佳模式。
通常使用拉格朗日最佳化的變化來達成在速率-失真方面判斷最佳模式。矩陣訊框內預測模式388的選擇通常涉及判斷由應用特定矩陣訊框內預測模式產生的殘餘資料的編碼成本。可以藉由使用「絕對轉換差之和」(SATD)來近似編碼成本,由此使用相對簡單的轉換(例如Hadamard轉換)來獲得估計的轉換後的殘餘成本。在使用相對簡單的轉換的一些實現中,由簡化的估計方法產生的成本與否則將從完全評估判斷的實際成本單調地相關。在具有單調地相關估計成本的實現中,簡化估計方法可用於在視訊編碼器114中進行相同決定(即訊框內預測模式)並降低複雜度。為允許估計與實際成本之間的關係中的可能的非單調性,可使用簡化估計方法以產生最佳候選者列表。例如,非單調性可以由可用於殘餘資料編碼的進一步模式決定產生。最佳候選者列表可以是任意數字。可以使用最佳候選者來執行更完整的搜尋,以建立用於對每個候選者的殘餘資料進行編碼的最佳模式選擇,從而允許最終選擇訊框內預測模式以及其他模式決定。
其他模式決定包括跳過正向轉換的能力,稱為「轉換跳過」。跳過轉換適合於透過表達作為轉換基函數而缺少足夠的相關性以減少編碼成本的殘餘資料。某些類型的內容,例如相對簡單的電腦產生的圖形可能表現出類似的行為。對於「跳過轉換」,即使不執行轉換本身,殘餘係數仍然被編碼。
可以採用拉格朗日或類似的最佳化處理來選擇將CTU最佳劃分成CB(透過區塊劃分器310)以及從多種可能性中選擇最佳預測模式。透過在模式選擇器模組386中應用候選模式的拉格朗日最佳化處理,具有最低成本測量的訊框內預測模式被選擇作為「最佳」模式。最低成本模式是所選擇的訊框內預測模式388,並且亦由熵編碼器338在位元流115中編碼。透過模式選擇器模組386的操作來選擇訊框內預測模式388延伸到區塊劃分器310的操作。例如,用於選擇訊框內預測模式388的候選者可包括適用於給定區塊的模式以及適用於共同與給定區塊並置的多個較小區塊的額外模式。在包括適用於給定區塊和較小並置區塊的模式的情況下,隱含地選擇候選者的處理也是判斷CTU到CB的最佳階層分解的處理。
在視訊編碼器114的第二操作階段(稱為「編碼」階段)中,在視訊編碼器114中執行對所選擇的亮度編碼樹和所選擇的色度編碼樹的迭代,且因而在每個所選擇的CB中執行迭代。在迭代中,CB被編碼到位元流115中,如本文進一步所描述的。
熵編碼器338支援語法元素的可變長度編碼和語法元素的算術編碼。使用上下文自適應二進位算術編碼處理來支援算術編碼。算術編碼的語法元素由一或多個「位元子」(bin)的序列組成。像位元一樣,位元子的值為「0」或「1」。然而,不在位元流115中將位元子編碼成離散位元。位元子具有相關聯的預測(或「可能」或「最可能」)值和相關機率,稱為「上下文」。當要編碼的實際位元子與預測值匹配時,編碼「最可能符號」(MPS)。在位元流115中消耗的位元方面,編碼最可能的符號相對不昂貴,包含少於一個離散位元的花費量。當要編碼的實際位元子不匹配可能值時,編碼「最不可能符號」(LPS)。對消耗的位元而言,將最不可能的符號進行編碼具有相對高的成本。位元子編碼技術致使位元子的有效編碼,其中「0」與「1」的機率是傾斜的。對於具有兩個可能值(即「旗標」)的語法元素,單一位元子就足夠。對於具有許多可能值的語法元素,需要一系列的位元子。
可以基於序列中較早的位元子的值來判斷序列中稍後位元子的存在。另外,每個位元子可以與多於一個上下文相關聯。特定上下文的選擇可以取決於語法元素中的較早的位元子、相鄰語法元素的位元子值(即來自相鄰區塊的位元子值)等。每次對上下文編碼的位元子進行編碼時,以反映新位元子值的方式更新為所述位元子選擇的上下文(如果有的話)。因此,二進位算術編碼方案被認為是自適應的。
視訊編碼器114還支援缺少上下文(「旁路位元子」)的位元子。假設在「0」和「1」之間存在等機率分佈,對旁路位元子進行編碼。因此,每個位元子佔據位元流115中的一個位元。缺少上下文節省記憶體並降低複雜度,因而在特定位元子的值的分佈不偏斜的情況下使用旁路位元子。採用上下文和自適應的熵編碼器的一個範例在本技術領域中稱為CABAC(上下文自適應二進位算術編碼器),並且所述編碼器的許多變體已用於視訊編碼中。
熵編碼器338將預測模式387編碼,並且如果在用於當前CB 矩陣訊框內預測模式388時,使用上下文編的碼和旁路編碼的位元子的組合。大小為4×4的區塊具有35種可能的矩陣訊框內預測模式,或者大小不超過8×8(即4×8、8×4和8×8)的區塊具有19種可能的矩陣訊框內預測模式。對於其它區塊大小,存在11種可能的矩陣訊框內預測模式。通常,「最可能的矩陣模式」(MPM)的列表係在視訊編碼器114中產生。最可能的矩陣模式的列表通常是固定長度的,例如三個模式。最可能的模式的列表可以包含在與當前區塊相鄰的較早的區塊中遇到的模式。例如,如果當前區塊上方或左側的區塊使用MIP模式,則對應的模式將作為當前區塊的MPM存在。如果當前區塊上方或左側的區塊使用角度訊框內預測,則當前區塊的MPM列表可以填充有透過將角度訊框內預測模式映射到MIP模式的查找表得到的MIP模式。此外,使用普通訊框內預測(DC、平面或角度)預測的後續CU的MPM列表可以包含從使用MIP模式編碼的CU得到的候選訊框內預測模式,以及從MIP模式到候選普通訊框內預測模式的映射表。上下文編碼的位元子對於指示訊框內預測模式是否為最可能的模式之一的旗標進行編碼。如果訊框內預測模式388是最可能的模式之一,則使用旁路編碼的位元子對額外信令進行編碼。經編碼的額外信令例如使用截斷的一元位元子字串來指示哪個最可能模式與矩陣訊框內預測模式388相對應。否則,訊框內預測模式388被編碼成「殘餘模式」。當殘餘模式使用另一種語法(如固定長度碼)時,編碼也使用旁路編碼的位元子被編碼,以表達存在於最可能的模式列表之外的其它訊框內預測模式。
某些佈置可避免針對(使用MIP模式編碼的)當前CU和可能使用普通訊框內預測模式進行編碼的隨後CU兩者構造的MPM列表構造的複雜度,並且可以包含從任何MIP模式編碼的相鄰區塊得到的候選訊框內預測模式。當省略MPM列表構造時,使用截斷的二元碼表示MIP模式來執行MIP模式的二元化。截斷的二元碼致使每個MIP模式的編碼成本相對均勻,而MPM列表對於添加到MPM列表的每個MIP的編碼成本卻較低。與未包含在MPM列表中的MIP模式相比,從MIP模式選擇中獲得的統計資料並未顯示強烈偏向於選擇MPM列表中包含的MIP模式,這指出省略MPM列表的產生不會降低壓縮效率。對於4×4區塊,35個可能的MIP模式可以使用5或6位元碼被編碼,其中5位元用於MIP模式0-28,而6位元用於MIP模式29-34。對於4×8、8×4和8×8區塊,19個可能的MIP模式可以使用4或5位元碼被編碼,其中4位元用於MIP模式0-12,而5位元用於MIP模式13-18。對於其它大小的區塊,11個可能的MIP模式可以使用3或4位元碼被編碼,其中3位元用於MIP模式0-4,而4位元用於MIP模式5-10。
多工器模組384根據從每個候選的CB的測試預測模式選擇的所判斷的最佳預測模式387來輸出PB 320。候選預測模式不需要包含由視訊編碼器114支援的每種可能預測模式。
在訊框間預測中,使用來自位元流中依編碼訊框的順序的當前訊框之前的一個或兩個訊框的樣本來產生區塊的預測。此外,對於訊框間預測,單一編碼樹通常用於亮度通道和色度通道。位元流中的編碼訊框的順序可以與擷取或顯示時的訊框的順序不同。當一訊框用於預測時,所述區塊被稱為「單向預測」並且具有一個相關聯的運動向量。當兩個訊框用於預測時,所述區塊被稱為「雙向預測」並且具有兩個相關聯的運動向量。對於P切片,每個CU可以是訊框內預測的或單向預測的。對於B切片,每個CU可以是訊框內預測的、單向預測的、或雙向預測的。通常使用「圖片組」結構對訊框進行編碼,從而致使訊框的時間層次。訊框的時間層次允許訊框以顯示訊框的順序參照前一影像和後一影像。為確保滿足解碼每個訊框的依賴性,以必需的順序對影像進行編碼。
根據運動向量和參照圖片索引來選擇樣本。運動向量和參照圖片索引適用於所有顏色通道,因此主要根據對PU而不是PB的操作來描述訊框間預測。在每個類別內(即,訊框內和訊框間預測),可以應用不同的技術來產生PU。例如,訊框內預測可以使用來自先前的重建樣本的相鄰列和行的值,結合根據規定的濾波和產生處理產生PU的方向。或者,可以使用少量參數來描述PU。訊框間預測方法可以在運動參數的數量和它們的準確度上變化。運動參數通常包含參照訊框索引,指示將使用來自參照訊框列表的哪些參照訊框加上每個參照訊框的空間轉換,但是可包括更多訊框、特殊訊框或諸如縮放和旋轉的複雜仿射參數。另外,可以應用預定的運動細化處理以基於參照的樣本區塊產生密集運動估計。
假設已判斷和已選定PB 320,並在減法器322處從原始取樣區塊減去PB 320,具有最低編碼成本的殘餘(表示為324)獲得並受到有損壓縮。有損壓縮處理包含轉換、量化和熵編碼的步驟。正向主要轉換模組326對於差324應用正向轉換,其將差324從空間域轉換到頻域,並產生由箭頭328表示的主要轉換係數。主要轉換係數328被傳遞到正向次要轉換模組330,以透過執行不可分離的次要轉換(NSST)操作來產生由箭頭332表示的轉換係數。正向主要轉換通常是可分離的,將每個區塊的一組列轉換,接著將每個區塊的一組行轉換。正向主要轉換模組326通常使用II型離散餘弦轉換(DCT-2),雖然VII型離散正弦轉換(DST-7)和VIII型離散餘弦轉換(DCT-8)也可以使用,例如水平上不超過16個樣本區塊寬度,垂直上不超過16個樣本區塊高度。每一組的列和行的轉換係透過首先對於區塊的每一列應用一維轉換進行,以產生中間結果,接著對於中間結果的每一行應用一維轉換,以產生最終結果。正向次要轉換模組330通常是不可分離的轉換,其僅適用於訊框內預測CU的殘餘並且可能仍然也被旁路。正向次要轉換對16個樣本(佈置為主要轉換係數328的左上4×4子區塊)或64個樣本(佈置為左上8×8係數、佈置為主要轉換係數328的四個4×4子區塊)進行操作。
轉換係數332被傳遞到量化器模組334。在模組334處 ,量化係根據「量化參數」被執行以產生殘餘係數,由箭頭336表示。量化參數對於給定TB 是恆定的,從而致使TB的殘餘係數的產生的均勻縮放。透過應用「量化矩陣」,也可以進行非均勻縮放,從而應用於每個殘餘係數的縮放因子是從量化參數與縮放矩陣中的對應條目的組合中得到的,其大小通常等於TB的大小。縮放矩陣可以具有比TB的大小還小的大小,並且當應用到TB時,最鄰近方法被使用,以從大小比TB的大小還小的縮放矩陣提供縮放值給每個殘餘係數。殘餘係數336被提供給熵編碼器338以在位元流115中進行編碼。通常,每個TB的殘餘係數與TU的至少一個顯著殘餘係數進行掃描,以根據掃描模式來產生值的有序列表。掃描模式通常以4×4個「子區塊」的序列來掃描TB,以4×4組殘餘係數的粒度來提供普通掃描操作,子區塊的佈置取決於TB的大小。此外,預測模式387、矩陣訊框內預測模式(如果使用)388,和對應的區塊劃分也被編碼到位元流115中。
如上所述,視訊編碼器114需要存取與在視訊解碼器134所見的訊框表示相對應的訊框表示。因此,殘餘係數336也由去量化模組340逆量化,以產生由箭頭342表示的逆轉換係數。逆轉換係數342穿過逆次要轉換模組344,以產生由箭頭346表示的中間逆轉換係數。中間逆轉換係數346被傳遞給逆主要轉換模組348,以產生由箭頭350表示的TU的殘餘樣本。由逆次要轉換模組344執行的逆轉換的類型與由正次要轉換模組330執行的正轉換的類型相對應。由逆主要轉換模組348執行的逆轉換的類型與由主要轉換模組326執行的主要轉換的類型相對應。求和模組352將殘餘樣本350和PU 320相加,以產生CU的重建樣本(由箭頭354指示)。
重建樣本354被傳遞到參照樣本快取356和迴路濾波器模組368。通常使用ASIC上的靜態RAM實施的參照樣本快取356(因此避免昂貴的晶片外記憶體存取)提供滿足用於為訊框中的後續CU產生訊框內PB的依賴性所需的最小樣本儲存。最小依賴性通常包括沿著一列CTU的底部的樣本的「行緩衝器」,供下一列CTU使用,並且行緩衝的範圍由CTU的高度設定。參照樣本快取356將參照樣本(由箭頭358表示)提供給參照樣本濾波器360。樣本濾波器360應用平滑操作,以產生經濾波的參照樣本(由箭頭362所指)。經濾波的參照樣本362由訊框內預測模組364使用,以產生訊框內預測的樣本區塊,由箭頭366表示。對於每個候選訊框內預測模式,訊框內預測模組364產生樣本區塊,即366。樣本區塊366係由模組364使用諸如DC、平面或角度訊框內預測,而非運動矩陣訊框內預測的技術生成的。
如果模式選擇器386選擇用於當前CB的矩陣訊框內預測,則矩陣訊框內預測模式388被用來從係數記憶體392選擇(讀取)矩陣係數363。矩陣係數363被傳遞給矩陣訊框內預測模組390。矩陣訊框內預測模組390使用矩陣係數363和參照樣本358來執行矩陣相乘,以產生矩陣訊框內預測區塊393。多工器384將矩陣訊框內預測區塊393輸出作為PB 320。係數記憶體392具有提供矩陣係數393的有限可用頻寬。特別是,可以對每個連續區塊使用不同的矩陣訊框內預測模式,從而建立最差情況記憶體頻寬要求。模式選擇器386可操作以在減少係數記憶體392的最差情況記憶體頻寬的約束下為區塊選擇MIP模式,如關於圖11至14的操作所描述的。減少係數記憶體392的最差情況記憶體頻寬可降低複雜度,例如記憶體的硬體面積,而不會導致視訊編碼器114的編碼效率成比例地下降。降低的複雜度是在沒有編碼效率成比例地下降的情況下實現,因為在不受約束的搜索中MIP模式選擇的統計資料通常不會觸發模式選擇器386在MIP模式選擇所應用的約束。因此,最差情況下的記憶體頻寬被減少,而不會對應地降低了編碼效能。
迴路濾波器模組368將若干濾波級應用於重建樣本354。濾波級包括「解區塊濾波器」(DBF),其應用與CU邊界對齊的平滑,以減少由不連續性導致的偽影。存在於迴路濾波器模組368中的另一個濾波級是「自適應迴路濾波器」(ALF),其應用基於維納(Wiener)的自適應濾波器,以進一步減少失真。迴路濾波器模組368中的另一可用濾波級是「取樣自適應偏移」(SAO)濾波器。SAO濾波器透過首先將重建樣本分類為一或多個類別來操作,並且根據分配的類別,在樣本級別施加偏移。
從迴路濾波器模組368輸出由箭頭370表示的經濾波樣本。經濾波樣本370儲存在訊框緩衝器372中。訊框緩衝器372通常具有儲存若干(例如達到16)圖像的容量且因而儲存在記憶體206中。因為需要大的記憶體消耗,所以訊框緩衝器372通常不使用晶片上記憶體來儲存。因此,就記憶體頻寬而言,對訊框緩衝器372的存取是昂貴的。訊框緩衝器372提供參照訊框(由箭頭374表示)給運動估計模組376和運動補償模組380。
運動估計模組376估計多個「運動向量」(表示為378),每個「運動向量」是從當前CB的位置起的笛卡爾空間偏移,參照訊框緩衝器372中的一個參照訊框中的區塊。為每個運動向量產生經濾波的參照樣本區塊(表示為382)。經濾波的參照樣本382形成可供模式選擇器386進行潛在選擇的其他候選模式。此外,對於給定CU,可使用一個參照區塊(「單向預測」)來形成PU 320,或者可使用兩個參照區塊(「雙向預測」)來形成PU 320。對於所選擇的運動向量而言,運動補償模組380根據支援運動向量中的子像素準確度的濾波處理來產生PB 320。因此,運動估計模組376(其對許多候選運動向量進行操作)可以與運動補償模組380(僅對所選擇的候選者進行操作)相比執行簡化的濾波處理,以實施降低的計算複雜度。當視訊編碼器114選擇用於CU的訊框間預測時,運動向量378被編碼到位元流115中。
儘管參照多功能視訊編碼(VVC)說明圖3的視訊編碼器114,但是其他視訊編碼標準或實施方案也可以採用模組310-386的處理階段。訊框資料113(以及位元流115)也可以從記憶體206、硬碟驅動器210、CD-ROM、Blu-ray diskTM (藍光光碟)或其他電腦可讀取儲存媒體中讀取(或寫入)。另外,訊框資料113(和位元流115)可以從外部源接收(或發送到外部源),例如連接到通訊網路220的伺服器或射頻接收器之外部源。
圖4中顯示視訊解碼器134。儘管圖4的視訊解碼器134是多功能視訊編碼(VVC)視訊解碼管線的範例,但是也可以使用本文描述的其他視訊編解碼器來執行處理階段。如圖4所示,位元流133被輸入到視訊解碼器134。位元流133可以從記憶體206、硬碟驅動器210,CD-ROM、Blu-ray diskTM (藍光光碟)或其他非暫態電腦可讀取儲存媒體中讀取。或者,可以從諸如連接到通訊網路220的伺服器或射頻接收器的外部源接收位元流133。位元流133包含代表要被解碼的擷取訊框資料的編碼語法元素。
位元流133被輸入到熵解碼器模組420。熵解碼器模組420透過解碼「位元子」的序列來從位元流133中提取語法元素,並將語法元素的值傳遞到視訊解碼器134中的其它模組。熵解碼器模組420使用算術解碼引擎來將每個語法元素解碼作為一或多個位元子的序列。每個位元子可以使用一或多個「上下文」,其中上下文描述了用於為位元子編碼「1」和「0」值的機率程度。在多個上下文可用於給定位元子的情況下,執行「上下文建模」或「上下文選擇」步驟,以選擇可用上下文中之一者來解碼位元子。解碼位元子的處理形成序向反饋迴路。在反饋迴路中操作的數目較佳地被最小化,以使熵解碼器420在位元子/秒方面實現高產出量。上下文建模取決於在選擇上下文時視訊解碼器134已知的位元流的其它屬性,即當前位元子之前的屬性。例如,上下文可基於在編碼樹中的當前CU的四叉樹深度來選擇。依賴關係較佳地基於對預先解碼的位元子的已知特性,或者無需長序向處理來判斷。
編碼樹的四叉樹深度是眾所周知的上下文建模的依賴性的範例。訊框內預測模式,特別是矩陣訊框內預測模式,為上下文建模的依賴性以及相對困難或計算密集來判斷的二元化的範例。矩陣訊框內預測模式被編碼成「最可能模式」(MPM)列表中的索引或被編碼成「殘餘模式」列表中的索引,並根據經解碼的上下文編碼的旗標在MPM和殘餘模式之間進行選擇。其它訊框內預測模式被編碼成「最可能模式」(MPM)列表中的索引或「殘餘模式」列表中的索引,並根據經解碼的intra-luma_MPM_flag在MPM和殘餘模式之間進行選擇。當使用MPM時,對於編碼矩陣訊框內預測模式,具有範圍為0至2的截斷一元位元子字串從所述MPM列表中選擇MPM中的一個。當使用殘餘模式時,對固定長度碼字進行解碼,以選擇將要使用殘餘(非MPM)模式中的哪一種。可用的MIP模式的數目是35,19或11中的一個,其取決於區塊大小。因此,對於長度為3的MPM列表,殘餘模式的數目分別為32、16或8。殘餘模式可以分別用長度為5、4或3的固定長度碼字來有效地表示。判斷最可能模式和殘餘模式都需要大量操作,並且包含對相鄰區塊的訊框內預測模式的依賴性。例如,相鄰區塊可以是當前區塊的上方和左方的一或多個區塊。如果相鄰區塊使用角度訊框內預測,則可以執行表查找,以將角度訊框內預測模式映射到矩陣訊框內預測模式,以用於填充MPM列表。可替換地,佈置可以使用截斷的二元碼字來對於每種情況的MIP模式編碼,也就是模式的數目是否為35、19或11。熵解碼器模組420應用算術編碼演算法例如,「上下文自適應二元算術編碼」(CABAC),以解碼來自位元流133的語法元素。經解碼的語法元素被用於重建視訊解碼器134內的參數。參數包含殘餘係數(由箭頭424表示)和模式選擇資訊,如訊框內預測模式(由箭頭458表示)。模式選擇資訊還包含資訊,如運動向量,以及每個CTU至一或多個CB的劃分。參數被用來產生PB,一般為與來自先前解碼的CB的樣本資料組合。
殘餘係數424被輸入到去量化器模組428。去量化器模組428對殘餘係數424執行逆量化(或「縮放」),以根據量化參數建立由箭頭432表示的重建的中間轉換係數。重建的中間轉換係數432被傳遞到逆次要轉換模組436,在逆次要轉換模組436處施加次要轉換或不進行任何操作(旁路)。逆次要轉換模組436產生重建的轉換係數440。如果在位元流133中指示使用非均勻逆量化矩陣,則視訊解碼器134從位元流133讀取量化矩陣作為縮放因子序列,並將縮放因子排列成矩陣。逆縮放使用量化矩陣結合量化參數來建立重建的中間轉換係數432。
重建的轉換係數440被傳遞到逆主要轉換模組444。模組444將係數從頻域轉換回空間域。模組444的操作結果是殘餘樣本區塊,由箭頭448表示。殘餘樣本448的區塊的大小與對應的CU相等。殘餘樣本448被提供給求和模組450。在求和模組450處,將殘餘樣本448加到解碼的PB(表示為452),以產生重建樣本區塊,由箭頭456表示。重建樣本456被提供給重建樣本快取460以及迴路濾波模組488。迴路濾波模組488產生重建的訊框樣本區塊,表示為492。訊框樣本492被寫入訊框緩衝器496。
重建樣本快取460與視訊編碼器114的重建樣本快取356類似地操作。重建樣本快取460為在沒有記憶體206的情況下的訊框內預測後續CB所需的重建樣本提供儲存(例如反而透過使用資料232,其通常是晶片上記憶體)。由重建樣本快取460獲得由箭頭464表示的參照樣本,並將其提供給參照樣本濾波器468,以產生由箭頭472所指的經濾波的參照樣本。經濾波的參照樣本472被提供給訊框內預測模組476。模組476根據在位元流133中用信號通知並由熵解碼器420解碼的訊框內預測模式參數458,產生由箭頭480表示的訊框內預測樣本區塊。樣本區塊480係使用諸如DC、平面或角度訊框內預測而不是矩陣訊框內預測的模式來產生。
當CB的預測模式被指示為在位元流133中使用訊框內預測(有別於矩陣訊框內預測),訊框內預測樣本480經由多工器模組484形成經解碼的PB 452。訊框內預測產生了樣本的預測區塊(PB),即一個顏色成分中的區塊,其係使用相同顏色成分中的「相鄰樣本」得到的。相鄰樣本是相鄰於當前區塊的樣本,並且憑藉在區塊解碼順序之前,已經被重建。在亮度和色度區塊並置的地方,亮度和色度區塊可以使用不同的訊框內預測模式。然而,兩個色度通道均共享相同的訊框內預測模式。訊框內預測分為三種類型。「DC訊框內預測」涉及利用代表相鄰樣本的平均值的單一值來填充PB。「平面訊框內預測」涉及以根據平面以及DC偏移和垂直和水平梯度從所述相鄰樣本得到的樣本來填充PB。「角度訊框內預測」涉及以在特定方向(或「角度」)上在PB上濾波並傳播的相鄰樣本來填充PB。在VVC中,支援65個角度,其具有能夠利用額外角度的矩形區塊(對於正方形區塊是不可用的),以產生總共87個角度。第四種類型的訊框內預測可用於色度PB,從而根據「跨成分線性模型」(CCLM)模式從並置的亮度重建樣本產生PB。共有三種不同的CCLM模式,每種模式都使用從相鄰亮度和色度樣本得到的不同模型。接著,使用得到的模型從並置的亮度樣本產生色度PB的樣本區塊。
當CB的預測模式被指示為在位元流133中的矩陣訊框內預測時,對矩陣訊框內預測模式458進行解碼,並將其提供給係數記憶體486和矩陣訊框內預測模組482。對於選定的矩陣訊框內預測模式,從係數記憶體486讀取矩陣係數481,並且將其傳送到矩陣訊框內預測模組482。矩陣係數的選擇涉及從係數記憶體486的記憶體讀取操作,其中記憶體存取的最差情況記憶體頻寬限制是由對於給定的區塊大小由MIP模式的選擇頻率建立的,如參照圖8和9所述。
當CB的預測模式被指示為位元流133中的訊框間預測時,運動補償模組434使用運動向量和基準訊框索引,以從訊框緩衝器496中選擇並且濾波樣本區塊498,來產生訊框間預測的樣本區塊,其表示為438。樣本區塊498是從儲存在訊框緩衝器496中的先前解碼的訊框獲得。對於雙向預測,產生兩個樣本區塊並將其混合在一起,以產生用於解碼的PB 452的樣本。將訊框緩衝器496填充來自迴路內濾波模組488的經濾波區塊資料492。在視訊編碼器114的迴路內濾波模組368中,迴路內濾波模組488應用DBF、ALF和SAO濾波操作中的任何一個。通常,運動向量被應用到亮度和色度通道兩者,雖然對於子取樣插補亮度和色度通道的濾波處理是不同的。
圖5是顯示在多功能視訊編碼的樹結構中將區域劃分或拆分為一或多個子區域可用的劃分或拆分的集合500的示意性方塊圖。集合500中顯示的劃分可用於編碼器114的區塊劃分器310,如參照圖3所描述的,以根據編碼樹將每個CTU劃分成一或多個CU或CB,如透過拉格朗日最佳化所判斷者。
儘管集合500僅顯示被劃分成其他可能是非正方形子區域的正方形區域,但是應該理解,圖500顯示潛在的劃分,但不要求包含區域是正方形的。如果包含區域是非正方形,則根據包含區塊的縱橫比來縮放由劃分產生的區塊的大小。一旦區域未被進一步拆分,即,在編碼樹的葉節點處,CU佔據所述區域。由區塊劃分器310將CTU特定細分為一或多個CU被稱為CTU的「編碼樹」。
當所得子區域達到最小CU大小時,必須終止將區域細分為子區域的處理。除了約束CU以禁止小於預定最小大小的區塊面積之外,例如16個樣本,CU被約束為具有最小寬度或高度4。其他最小值,就包括寬度和高度兩者,或者寬度或高度之一而言也是可能的。細分處理也可以在最深層次的分解之前終止,導致CU大於最小CU的大小。可能不會發生拆分,導致單一CU佔據整個CTU。佔據整個CTU的單一CU是最大可用編碼單元大小。由於使用了諸如4:2:0的子取樣色度格式,視訊編碼器114和視訊解碼器134的佈置在色度通道中可以比在亮度通道中更早地終止區域拆分。
在編碼樹存在的CU的葉節點處,沒有進一步細分。例如,葉節點510包含一個CU。在編碼樹的非葉節點處存在拆分成兩個或更多其它節點,其中之各者可以是形成一個CU的葉節點 ,或包含進一步拆分成更小區域的非葉節點。在編碼樹的每個葉節點處,每個顏色通道都存在一個編碼區塊。對於亮度和色度兩者,拆分在同一深度終止,導致三個並置的CB。對於亮度,拆分在比對於色度較深的深度終止,導致與色度通道的CB並置的複數個亮度CB。
如圖5所示,四元樹拆分512將包含區域劃分成四個相等大小的區域。與HEVC相比,多功能視訊編碼(VVC)透過添加水平二元拆分514和垂直二元拆分516來達到額外的彈性。每個拆分514和516將包含區域劃分成兩個相等大小的區域。所述劃分係沿著包含區塊內的水平邊界(514)或垂直邊界(516)。
透過添加三元水平拆分518和三元垂直拆分520,在多功能視訊編碼中達進一步的彈性。三元拆分518和520將區塊分成三個區域,水平地(518)或垂直地(520)沿著包含區域寬度或高度的1/4和3/4受限。四元樹、二元樹和三元樹的組合稱為「QTBTTT」。樹的根包括零或多個四元樹拆分(樹的「QT」部分)。一旦QT部分終止,就可能發生零或多個二元或三元拆分(樹的「多樹」或「MT」部分),最終以樹的葉節點處的CB或CU結束。在樹描述所有顏色通道的情況下,樹葉節點是CU。在樹描述亮度通道或色度通道的情況下,樹葉節點是CB。
相較於僅支援四元樹並因而僅支援正方形區塊的HEVC,QTBTTT導致更多可能的CU大小,特別是考慮到二元樹及/或三元樹拆分的可能的遞歸應用。透過約束拆分選項來消除可能導致區塊寬度或高度小於四個樣本或不是四個樣本的倍數的拆分,可以減少異常(非正方形)區塊大小的可能性。通常,約束會應用於考慮亮度樣本。然而,在所描述的配置中,約束可以分別應用於色度通道的區塊。將對於拆分選項的約束應用於色度通道可以導致亮度與色度的不同最小區塊大小,例如當訊框資料是4:2:0色度格式或4:2:2色度格式時。每個拆分產生相對於包含區域具有側面大小為不變、減半或四分之一的子區域。接著,由於CTU大小是2的冪次,所以所有CU的側面大小為也是2的冪次。
圖6是顯示在多功能視訊編碼中使用的QTBTTT(或「編碼樹」)結構的資料流600的示意流程圖。QTBTTT結構用於每個CTU以定義將CTU劃分成一或多個CU。每個CTU的QTBTTT結構由視訊編碼器114中的區塊劃分器310判斷,並編碼到位元流115中或由視訊解碼器134中的熵解碼器420從位元流133解碼。資料流600進一步根據圖5中所示的劃分來表徵區塊劃分器310可用於將CTU劃分成一或多個CU的可允許的組合。
從階層的頂層開始,即在CTU處,首先執行零或多個四元樹拆分。具體地,由區塊劃分器310進行四元樹(QT)拆分決定610。在610處返回「1」符號的決定表示根據四元樹512拆分將當前節點分成四個子節點的決定。結果是產生四個新節點,例如在620,並且對於每個新節點,遞歸回到QT拆分決定610。每個新節點以光柵(或Z掃描)順序被考慮。或者,如果QT拆分決定610指示不執行進一步拆分(返回「0」符號),則停止四元樹拆分並且隨後考慮多樹(MT)拆分。
首先,由區塊劃分器310進行MT拆分決定612。在612,指示執行MT拆分的決定。在決定612處返回「0」符號表示不執行將節點進一步拆分成子節點。如果不執行節點的進一步拆分,則所述節點是編碼樹的葉節點並且對應於CU。葉節點係在622輸出。或者,如果MT拆分612指示執行MT拆分的決定(返回「1」符號),則區塊劃分器310進行到方向決定614。
方向決定614指示MT拆分的方向為水平(「H」或「0」)或垂直(「V」或「1」)。如果決定614返回指示水平方向的「0」,則區塊劃分器310進行到決定616。如果決定614返回指示垂直方向的「1」,則區塊劃分器310進行到決定618。
在決定616和618中的每一個處,MT拆分的分區的數量在BT/TT拆分處被指示為兩個(二元拆分或「BT」節點)或三個(三元拆分或「TT」)。也就是說,當來自614的指示方向是水平時,區塊劃分器310做出BT/TT拆分決定616,而當來自614的指示方向是垂直時,區塊劃分器310做出BT/TT拆分決定618。
BT/TT拆分決定616指示水平拆分是否是透過返回「0」指示的二元拆分514,或透過返回「1」指示的三元拆分518。當BT/TT拆分決定616指示二元拆分時,在產生HBT CTU節點步驟625,根據二元水平拆分514由區塊劃分器310產生兩個節點。當BT/TT拆分616指示三元拆分時,在產生HTT CTU節點的步驟626,根據三元水平拆分518由區塊劃分器310產生三個節點。
BT/TT拆分決定618指示垂直拆分是否是透過返回「0」指示的二元拆分516,或透過返回「1」指示的三元拆分520。當BT/TT拆分618指示二元拆分時,在產生VBT CTU節點步驟627處,根據垂直二元拆分516,由區塊劃分器310產生兩個節點。當BT/TT拆分618指示三元拆分時,在產生VTT CTU節點的步驟628根據垂直三元拆分520,由區塊劃分器310產生三個節點。對於從步驟625-628得到的每個節點,取決於方向614,以從左到右或從上到下的順序應用資料流600的遞歸回到MT拆分決定612。因此,可以應用二元樹和三元樹拆分來產生具有各種大小的CU。
圖7A和7B提供將CTU 710劃分成多個CU或CB的範例劃分700。在圖7A中顯示範例CU 712。圖7A顯示CTU 710中的CU的空間配置。範例拆分700也被顯示為圖7B中的編碼樹720。
在圖7A的CTU 710中的每個非葉節點處,例如節點714、716和718,包含的節點(其可以進一步被劃分或可以是CU)以「Z順序」被掃描或遍歷,以建立節點列表,表示為編碼樹720中的行。對於四元樹拆分,Z順序掃描導致從左上到右,接著從左下到右的順序。對於水平和垂直拆分,Z順序掃描(遍歷)分別簡化為從上到下掃描和從左到右掃描。圖7B的編碼樹720根據所應用的掃描順序列出所有節點和CU。每個拆分在樹的下一級產生兩個、三個或四個新節點的列表,直到到達葉節點(CU)。
已經藉由區塊劃分器310將影像分解成CTU並且進一步分解成CU,並且如參照圖3所描述般使用CU來產生每個殘餘區塊(324),殘餘區塊經歷視訊編碼器114的正向轉換和量化。所得到的TB 336隨後被掃描,以形成殘餘係數的順序列表,作為熵編碼模組338的操作的一部分。在視訊解碼器134中執行等效處理,以從位元流133獲得TB。
作為將CTU拆分為CU的結果,小型CU(諸如4×4、4×8或8×4)在空間上在訊框中相鄰呈現。此外,借助於編碼樹的階層式Z順序掃描,小型CU係在時間上相鄰地處理。特別是,8×8區域的四叉樹拆分會導致四個4×4 CU序列、8×4或4×8區域的二元拆分會導致一對4×4 CU,而8×8區域的二元拆分會導致一對4×8區域或一對8×4區域。每個結果區域(大小為4×8或8×4的)可以形成CU,也可以進一步拆分為4×4 CU。在64個樣本的區域中應用的三元拆分會導致大小為16、32和16的三個區域,也就是4×4、4×8或8×4和4×4。在128個樣本的區域中應用的三元拆分會導致大小為32、64和32的三個區域,例如4×8、8×8和4×8區域。小區塊(例如4×4、4×8、8×4)在空間上以及透過CTU的Z順序掃描都可以一起看到,因為它們是拆分諸如64或128大小的區域的結果。
圖8顯示資料流800,其使用8×8區塊分別提供視訊編碼器114和視訊解碼器134的矩陣訊框內預測模組390和482的詳細操作。在圖8的範例中,矩陣訊框內預測僅在亮度通道中執行,因此不需要考慮由於使用諸如4:2:0或4:2:2之類的色度格式而致使的不同區塊大小。模組390和482分別輸出矩陣預測樣本區塊,諸如393或483。當模式選擇器386選擇用於CU的矩陣訊框內預測時,區塊393在視訊編碼器114中充當作為PB 320。當矩陣訊框內預測被指示由從位元流133解碼用於CU 的預測模式使用時,區塊483充當作為PB 483。
模組390和482的操作涉及三個步驟:1. 求平均;2. 矩陣相乘和偏移(偏置)相加;以及3.雙線性插補。雙線性插補僅在CU大小大於4×4時才執行。求平均的步驟如下操作。參照樣本802(例如358或464)在資料流800處接收,並按上樣本822和左樣本820進行分配。當亮度CB的寬度和高度大於四時,上樣本822被分為四組(在圖8的範例8×8區塊中的四對)。將四組中每組的內容的值平均以產生四個經濾波的上樣本826。類似地,左樣本820被分成四組(在圖8的範例8×8區塊中的四對)。將四組中每組的內容的值平均以產生四個經濾波的左樣本824。因此,總共八個經濾波的樣本作為矩陣相乘模組828的輸入。
當區塊的寬度和高度等於四時(而不是如圖8所示的8),將四個上樣本822分為兩對,將每個樣本平均以產生兩個經濾波的上樣本826。類似地,四個左樣本820被分成兩對,將每個樣本平均以產生兩個經濾波的左樣本824,總共四個經濾波的樣本作為矩陣相乘模組828的輸入。
在第二步驟(矩陣相乘)接收的矩陣係數(363或481),都根據矩陣訊框內預測模式(388或458)來選擇,也被輸入到矩陣相乘模組828。一組偏移或偏置值也被輸入到矩陣相乘模組。偏移或偏置值會加到矩陣相乘的結果中,以引入任何所需的DC偏移。矩陣係數和偏置值是預定的。換句話說,矩陣係數和偏置值是「離線」訓練處理的結果,並且被視訊編碼器114和視訊解碼器134視為恆定值。
對於4×4 CB,可以使用35種MIP模式,其中包含18組矩陣係數和偏置值(集合A)。對於4×8、8×4和8×8的CB,可以使用19種MIP模式,其中包含10組矩陣係數和偏置值(集合B)。對於其它CB大小,可以使用11種MIP模式,其中包含6組矩陣係數和偏置值(集合C)。矩陣係數和偏置值的給定集合可用於兩種MIP模式。一個MIP模式使用提供的值,另一個MIP模式使用提供的值的轉置。此外,在一種情況下,一組矩陣係數和偏置值專用於單一MIP模式。三種情況中之各者應用於集合A至C中之各者。集合A至C的大小如下,還顯示為由362或481選擇的字數,用於產生給集合A至C中之各者的一個PB(也就是說,將MIP模式應用於一個CU): 集合A:大小為16×4的18個矩陣,大小為16的18個偏移向量。CB的選定值的大小為:16×4+16=80個字組。 集合B:大小為16×8的10個矩陣,大小為16的10個偏移向量。CB的選定值的大小為16×8+16=144個字組。 集合C:大小為64×8的6個矩陣,大小為64的10個偏移向量。CB的選定值的大小為64×8+64=576個字組。
視訊編碼器114和視訊解碼器134以由訊框大小和訊框率判斷的像素速率來處理視訊資料。此外,亮度CB的大小在寬度和高度上是四的倍數。因此,可以用對4×4亮度樣本的存取來表示集合A至C的記憶體頻寬需求。在對於集合A至C中之各者的存取密度的最差情況下,即最小的,當對於每個CU的MIP模式的使用沒有約束時,各集合的區塊大小如下: 集合A:4×4 CB每4×4樣本區域需要80個字組。 集合B:4×8和8×4 CB每4×4樣本區域需要144÷2=72個字組,8×8CB每4×4樣本區域需要144÷4=36個字組。 集合C:8×16和16×8 CB每4×4樣本區域需要576÷8=72個字組,8×32、16×16、32×8 CB每4×4樣本區域需要576÷16=36個字組,CB大小越大,每4×4樣本區域需要的字組就越少。
如以上所示的存取密度,當沒有對使用MIP模式的約束限制時,在最差情況下,所有的CB都可以使用MIP模式,並且編碼樹可以將每個CTU分解為上面使用的小CB大小,以顯示最差情況的係數記憶體(486、392)的頻寬。矩陣係數和偏置值的標稱字組長度為16位元,儘管較少的位元(例如10位元)可能已足夠。提取成組的字組是一種可能的實現選擇。然而,記憶體頻寬負擔仍然很高。
MIP模式選擇的統計資料顯示,在考慮上和左區塊時,通常在寬廣測試集的20%的情況下(如在JVET通用測試條件文件JVET-N1010中所定義的),MIP模式被選擇用於相鄰位置的CB。因此,對MIP模式的應用頻率的限制可以減輕係數記憶體486和392所需的最差情況記憶體頻寬,而不會導致從MIP模式的可用性來看的壓縮效率增益的對應降低。參照圖11至16描述了對MIP模式選擇的約束。
矩陣相乘模組828使用矩陣係數(363或481)和經濾波的參照樣本(即824和826)的集合來執行矩陣相乘。將偏置值加到矩陣相乘的輸出,形成稀疏區塊830。稀疏區塊830被顯示為陰影樣本部分填充393或483。393或483樣本的剩餘者稀疏是使用雙線性插補得到的,其來自上參照樣本822和左濾波參照樣本824或左參照樣本820和上濾波樣本822的貢獻(如圖8所示)。
圖9A顯示範例CTU 900。CTU 900具有在其中應用了用於MIP模式的記憶體存取頻寬的區域。矩陣訊框內預測應用於VPDU大小的區域內,即128×128 CTU 900的64×64象限。例如,針對其餘裕適用的512個亮度樣本區域包含(i)32×16區域912,(ii)16×32區域914,以及(iii)64×8區域916。區域912被進一步分解為各種CU,即圖9B中的912a-912h。在圖9B的範例中,CU 912a的大小為16×4,因此屬於集合C,CU 912d的大小為8×8,因此屬於集合B,9112b、912c和912e也是如此(均為8×4的大小)。CU 912f和912g各是4×4,並且因此屬於集合A。如關於圖11至圖16所描述的,可以在描述為臨界值的佈置中使用512個亮度樣本的區域面積,以判斷是否對MIP模式施加約束。使用512個樣本的區域面積適合作為約束條件,因為上述集合A到C通常可以由區域拆分產生。然而,臨界值可能與下文描述的不同區域有關。
圖10顯示對應於圖9A的範例CTU 900的編碼樹1000。區域912與區域914和916一樣,對應於編碼樹中的節點,在所述節點處建立用於MIP矩陣係數讀取的所包含CU的餘裕。為了便於參照,沒有顯示在區域中分解成一或多個CU。對於配置成使用MIP模式的每個CU,根據CU大小映射到集合A到C之一的餘裕數量係從區域(即912、914、916)餘裕中扣除,如以下參照圖11至16所描述的。
圖11顯示用於將影像訊框的編碼單元編碼成視訊位元流115的方法1100。所述方法1100可以由諸如配置的FPGA、ASIC或ASSP的裝置體現。此外,所述方法1100可以透過視訊編碼器114在處理器205的執行下進行。因此,所述方法1100可以被儲存在電腦可讀取儲存媒體上和/或記憶體206中。所述方法1100的效能用以將影像訊框編碼成位元流115中編碼單元的序列,其對於矩陣訊框內預測的使用應用一個約束。與最差情況的潛在記憶體頻寬相比,方法1100的操作因此致使矩陣訊框內預測所需的記憶體頻寬受到限制,就像沒有適當約束的情況一樣。方法1100在將訊框劃分為CTU的步驟1110中開始。
在將訊框劃分為CTU的步驟1110處,區塊劃分器310在處理器205的執行下,將訊框資料113的當前訊框劃分為CTU的陣列。對於劃分開始產生的CTU開始編碼。處理器中的控制從步驟1110進行到判斷編碼樹步驟1120。
在判斷編碼樹步驟1120處,視訊編碼器114在處理器205的執行下,測試各種拆分選項,如參照圖5至7所述,結合判斷編碼單元步驟1130的操作來獲得用於CTU的編碼樹。步驟1120的操作係參照圖12來描述。處理器205中的控制從步驟1120進行到判斷編碼單元的預測模式步驟1130。
在判斷編碼單元步驟1130處,視訊編碼器114在處理器205的執行下,判斷在將選定的編碼單元編碼成位元流115中使用的預測模式。編碼單元可以根據掃描模式被選擇。步驟1130的操作進一步參照圖13來描述。一旦預測模式已經針對編碼單元被選擇,處理器205中的控制從步驟1130進行到將編碼單元編碼的步驟1140。在選擇編碼單元的預測模式中,利用從編碼樹的拆分的階層得到的編碼單元本身,到達給定編碼單元的拆分的特定組合也被選擇,因此編碼樹被判斷。
在將編碼單元編碼的步驟1140處,熵編碼器338,在處理器205的執行下,將在步驟1130判斷的編碼單元編碼成位元流115。如圖5和6所示,在處理器205的執行下,使用「拆分旗標」和其它語法元素以指示所述選定的拆分,所判斷的編碼樹在步驟1140由熵編碼器338被有效地編碼成位元流115。
進一步參照圖14來描述在步驟1140的操作,處理器205中的控制從步驟1140進行到最後編碼單元測試步驟1150。
在最後編碼單元測試步驟1150處,處理器205測試當前編碼單元是否為在步驟1120的編碼樹中的最後編碼單元。如果當前編碼單元是步驟1120的編碼樹中的最後一者(在步驟1150,「是」),則處理器205中的控制進行到最後CTU測試步驟1160。如果當前編碼單元不是步驟1120的編碼樹中的最後一者(在步驟1150,「否」),則使用用於判斷和編碼的掃描模式來選擇步驟1120的編碼樹中的下一個編碼單元,並且處理器205中的控制進行到步驟1130。因此,對於在步驟1120判斷的編碼樹所得到的每個CU執行步驟1130。
在最後CTU測試步驟1160處,處理器205測試當前CTU是否為在切片或訊框中的最後CTU。如果不是(在步驟1160,「否」),則視訊編碼器114前進到訊框中的下一個CTU,並且處理器205中的控制從步驟1160前進回到步驟1120,以繼續處理訊框中殘餘的CTU。如果CTU是訊框或切片中的最後一者,則步驟1160返回「是」,並且方法1100終止。作為方法1100的操作結果,整個影像訊框被編碼成CTU的序列到位元流中。
對視訊序列中的每個影像訊框執行方法1100。方法1100可以基於逐個CTU來判斷CU。換句話說,可以首先在一個傳遞或管線階段中判斷CTU的CU,接著為用於編碼成位元流115的第二階段。方法1100還可以用更精細的粒度來判斷CU,例如,基於逐個VPDU,因為與CTU相比,VPDU的面積較小,所以減少了記憶體消耗。
圖12顯示在步驟1120處實現的用於判斷CTU的編碼樹的方法1200。方法1200執行以接收CTU並產生候選拆分和候選編碼單元,以供評估和最終選擇作為要在位元流115中被編碼的拆分和編碼單元。特別是,所述方法1200建立在編碼樹的特定節點或區域中的MIP模式記憶體頻寬的餘裕,其約束在節點下(即空間區域內)的編碼單元中的MIP模式的應用。方法1200可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,方法1200可以由視訊編碼器114在處理器205的執行下進行。因此,方法1200可以儲存在電腦可讀取儲存媒體上和/或記憶體206中。方法1200係針對候選編碼樹中的每個節點(區域)被呼叫。方法1200在區域面積測試步驟1210處開始。
在區域面積測試步驟1210處,視訊編碼器114在處理器205的執行下,根據可用的拆分選項(使用關於圖5所描述的拆分選項)測試由編碼樹中的候選節點佔據的面積。在所描述的佈置的上下文中,區域涉及編碼樹中的節點,所述節點可在拆分停止之前進一步拆分,從而致使形成CU。所述區域不必與當前編碼單元的直接父級相對應,也就是說,用於設置MIP模式記憶體存取頻寬餘裕的父區域可以是編碼樹中的當前節點之上的多個節點。例如,可以將512個亮度樣本的區域拆分為許多小的編碼單元,例如諸如4×4、4×8、8×4的大小。隨著編碼器搜索的進行,將測試由候選拆分產生的不同候選節點。在每個候選節點內,測試用於所得編碼單元的各種預測模式。當由區域佔據的亮度樣本中的面積不滿足臨界值時,區域面積測試評估為真,並且處理器205中的控制從步驟1210進行到設定餘裕步驟1220。當由區域佔據的亮度樣本中的面積滿足所述臨界值時,所述區域面積測試評估為偽,並在處理器205中的控制從步驟1210進行到產生拆分步驟1230。在一種實現中,如在圖11至16的範例中所描述的,所述臨界值是512個樣本,並且當區域具有比512個樣本大的面積時是滿足的。可以使用如下所述的其它臨界值。通常基於編碼器114和解碼器134的所需效能來預先判斷臨界值。
在設置餘裕步驟1220處,視訊編碼器114在處理器205的執行下,為與編碼樹中的當前節點的面積相對應的區域設置餘裕。由於將當前區域拆分成較小的區域,因此所述餘裕可用於當前區域內的任何子節點(子區域)。對於小於或等於512個亮度樣本的所有區域,在評估編碼單元預測模式時,可以在MIP模式的應用中考慮餘裕。512個亮度樣本的區域可例如經歷三元拆分,從而致使128、256和128個亮度樣本的區域的編碼單元。128個亮度樣本的區域的編碼單元的大小為可能為8×16或16×8,在這種情況下,可能會達到最差情況記憶體頻寬限制,從而導致禁止在所述區域的其它編碼單元中使用MIP模式,其中包含來自於所述區域的進一步細分。當將512個亮度樣本的區域二元拆分為兩個256個亮度樣本的區域的編碼單元(例如16×16)時,未達到最差情況記憶體頻寬限制,並且對所得CU的MIP模式的使用沒有任何限制。然而,每個256樣本的區域的進一步劃分成更小的CU(也就是說,大小為16×8、8×16、8×8、8×4、4×8和4×4的CU),可能會由於消耗稍早產生CU的餘裕,導致約束稍後產生CU的MIP模式的使用。
餘裕可以被表示為每4×4區塊區域的最大字組讀取,因為4×4是最小的亮度編碼單元的大小,並且所有其它編碼單元是此大小的整數倍數,因此所有區域也是這種大小的倍數。餘裕可以是4×4區塊的40字組讀取,其對於512亮度樣本區域將(512÷(4×4))* 40=1280字組讀取對應為在512個亮度樣本區域中所允許的讀取操作的最大數量。每次MIP模式被用於CU,所需數量的讀取從餘裕扣除,並且當餘裕不足以用於MIP模式的進一步使用時,進一步的CU被禁止使用MIP模式,如關於圖13和14描述的。如此,較大大小的CU可以使用MIP模式,例如區域512樣本的單一CU或區域256樣本的一對CU可以使用MIP模式,而沒有從約束引入任何限制。當編碼樹將512個樣本的區域分解為大量的較小CU時,餘裕的消耗可能會阻止所述區域中的其它CU使用MIP模式。具有每4×4 40個字組的餘裕的512個樣本區域,導致總餘裕為512÷(4×4)* 40=1280個字組的區域總餘裕。在將512個樣本區域劃分成8×16或16×8的四個CU中,由每個CU消耗576字組或1152字組的兩個CU使用MIP模式。128字組讀取的殘餘餘裕不足以使所述區域的其它兩個CU使用MIP模式。處理器205中的控制從步驟1220進行到產生拆分步驟1230。
在產生拆分步驟1230處,區塊劃分器310在處理器205的執行下,為編碼樹中的當前節點產生一組候選拆分。所述拆分如圖5所示,並且相關的語法元素在圖6中顯示並且在圖7中舉例說明。在產生「未拆分」(即510)的情況下,編碼單元稍後被產生。在產生其它類型的拆分(即512-520)的情況下,根據每個拆分產生編碼樹中的額外節點。當在方法1200的後續遍歷上產生「未拆分」的情況下,將方法1200重複以產生用於額外節點的編碼單元。對於CTU的每個節點依次重複方法1200。因此,判斷了CTU的所有拆分。此外,在拆分內這種產生拆分的遞歸性質致使在給定的CTU中搜索所有可能的編碼單元,在對最小CU大小的約束和深度遞歸約束(其可能會限制使用二元、三元和四元樹拆分的遞歸次數)內。處理器205中的控制從步驟1230進行到產生CU步驟1240。
在產生CU步驟1240處,區塊劃分器310在處理器205的執行下,針對在產生拆分步驟1230中產生「未拆分」的每種情況下產生候選CU。在步驟1240處,儘管尚未選擇最終模式,尚待判斷候選CU的預測模式,但已知Z順序掃描中先前CU的預測模式。因此,相鄰(就CU中的位置而言)的參照樣本可用於相鄰CU的訊框內預測,這些相鄰CU可能來自與包含當前CU的拆分相同的拆分操作,也可能來自不同父區域產生的相鄰區域,或者來自不同的CTU單元一起。步驟1240有效地將編碼樹的區域拆分為編碼區塊,每個編碼區塊包含如參照圖3描述的預測區塊。方法1200在步驟1240終止,處理器205中的控制返回到在方法1100處,其中判斷所產生的CU的預測模式。
圖13顯示用於判斷如在步驟1130實現的編碼單元的方法1300。方法1300包含判斷如透過執行方法1200產生的編碼單元的預測模式。預測模式包含訊框內預測、訊框間預測和根據在包含當前編碼單元的區域內使用MIP模式的餘裕的MIP模式。在方法1200中建立的餘裕係用於控制是否針對當前CU測試MIP模式。每當所述區域中的CU具有最差情況區塊的大小時(如上文有關情況A至C所述),就會消耗一部分餘裕,其取決於CU中編碼字組的數量。一旦消耗了餘裕,就不再搜索所述區域中的其它編碼單元以尋找MIP模式的潛在用途,即方法1300的調用僅在方法1300的較早調用尚未耗盡設置為應用於編碼樹中的公共父節點的記憶體存取頻寬餘裕時才執行MIP模式的測試。
所述區域不必與當前編碼單元的直接父區域相對應,也就是說,用於設置MIP模式記憶體存取頻寬餘裕的父區域可以是編碼樹中當前節點之上的多個節點。例如,可以將512個亮度樣本的區域拆分為許多小的編碼單元,例如諸如4×4、4×8、8×4的大小。對於每個CU,MIP模式的使用受到512個亮度樣本的區域的殘餘餘裕約束。方法1300可以由模式選擇器386來實現,或者部分地由模組3960來實現。方法1300可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,方法1300可以由視訊編碼器114在處理器205的執行下執行。因此,方法1300可以儲存在電腦可讀取儲存媒體上和/或記憶體206中。方法1300在測試訊框內預測模式步驟1310處開始。
在測試訊框內預測模式步驟1310處,視訊編碼器114在處理器205的執行下,測試「普通」訊框內預測模式,即DC、平面和角度訊框內預測模式,以潛在地用於對當前編碼單元進行編碼。通常,執行拉格朗日(Lagrangian)最佳化,以在CU的可用訊框內預測模式中選擇最佳訊框內預測模式。還測試了次要轉換(即330和344)的應用,如包含轉換跳躍情況在內的不同類型的主要轉換(DCT-2、DCT-8、DST-7)也進行了測試。處理器205中的控制從步驟1310進行到測試訊框間預測模式步驟1320。
在測試訊框間預測模式步驟1320處,視訊編碼器114在處理器205的執行下,測試用於產生訊框間預測PU的各種運動向量。當評估訊框間預測的使用時,從候選運動向量的集合中選擇運動向量。根據搜索模式產生候選運動向量。當評估用於候選運動向量的提取參照區塊的測試失真時,考慮在編碼樹中禁止色度拆分的應用。如果在色度中禁止拆分,而在亮度中允許拆分,則所得的亮度CB可使用訊框間預測。運動補償僅應用於亮度通道,因此失真計算考慮的是亮度失真而不是色度失真。色度失真不被認為是當禁止色度拆分時在色度通道中未執行運動補償。對於色度,考慮了由所考慮的訊框內預測模式和經編碼色度TB(如果有)致使的失真。在考慮亮度和色度兩者時,訊框間預測搜索可以首先基於亮度失真來選擇運動向量,接著透過還考慮色度失真來「精煉」運動向量。精煉通常考慮運動向量值的細微變化,諸如子像素位移。特定的運動向量可以是由「合併模式」產生的運動向量,由此,用於當前CU的運動向量是從來自相鄰CU的運動向量中得到的。與可能需要「運動向量增量」信令的其它運動向量相比,相對於選定的「運動向量預測子」應用的合併模式在位元流語法中更緊湊地表達。運動向量預測子通常是從空間或時間上相鄰的CU中得到的。對於訊框內編碼的切片,例如訊框序列的第一訊框,訊框間預測不可用,並且不執行步驟1320。處理器205中的控制從步驟1320進行到餘裕內測試步驟1330。
在餘裕內測試步驟1330處,視訊編碼器114在處理器205的執行下,測試MIP模式記憶體存取頻寬餘裕是否適用於當前CU。在1330執行的測試判斷當前CU是否包含在步驟1220為其建立了MIP模式餘裕的512個亮度樣本區域內。如果當前CU大於512個亮度樣本區域,則沒有適用的餘裕約束。因此,CU不受MIP模式的使用的進一步約束,並且處理器205中的控制前進到測試MIP模式步驟1340(1330處的「真」)。如果當前CU的大小等於或小於512個亮度樣本,則如參照圖8所述,將針對當前CU使用MIP模式的所需餘裕與所述區域的殘餘餘裕進行比較。如果沒有足夠的餘裕來將MIP模式應用於當前CU,則處理器205中的控制從步驟1330進行到選擇模式步驟1350(步驟1330處的「偽」)。如果有足夠的餘裕可用於將MIP模式應用於當前CU(步驟1340的「真」),則處理器205中的控制將從步驟1330進行到步驟1340。
在測試MIP模式步驟1340處,模式選擇器386測試各種MIP模式,以在用於CU大小的可用MIP模式之中判斷使用於預測當前CU的最佳MIP模式。如同在步驟1310中測試訊框內預測模式一樣,可執行拉格朗日(Lagrangian)最佳化以權衡失真與測試的MIP模式的編碼成本及其相關殘餘。處理器205中的控制從步驟1340進行到選擇模式步驟1350。
在選擇模式步驟1350處,模式選擇器386在處理器205的執行下,從步驟1310、1320和1350所產生的候選者中選擇CU的最終模式。方法1300利用處理器205中的控制終止,返回到方法1100。
圖14顯示如在步驟1140處實現的用於將CTU的編碼樹的編碼單元編碼成視訊位元流115的方法1400。方法1400可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,所述方法1400可以在處理器205的執行下由視訊編碼器114執行,例如由熵編碼器338。因此,方法1400可以儲存在電腦可讀取儲存媒體上和/或記憶體206中。方法1400在將預測模式編碼的步驟1410處開始。
在將預測模式編碼的步驟1410處,熵編碼器338在處理器205的執行下,使用上下文編碼的位元子對旗標進行編碼,所述上下文編碼的位元子指示使用訊框內預測(包含普通訊框內預測模式使用或MIP模式使用)或訊框間預測,如在步驟1350處判斷並由預測模式387表示的。在步驟1410對旗標的編碼沒有區別普通訊框內預測和MIP模式。普通訊框內預測和MIP訊框內預測之間的區別(如果適用)在將MIP模式旗標編碼的步驟1430中進行編碼。處理器205中的控制從步驟1410進行到餘裕測試步驟1420。
在餘裕測試步驟1420處,視訊編碼器114在處理器205的執行下,測試MIP模式記憶體存取頻寬餘裕是否適用於當前CU。所述測試判斷當前CU是否包含在步驟1220為了建立MIP模式餘裕的512個亮度樣本區域內。如果當前CU包含在大於512個亮度樣本區域的區域中,則沒有適用的餘裕約束,並且CU不受MIP模式使用的進一步約束。處理器205中的控制前進到將MIP模式旗標編碼的步驟1430(在1420處為「真」)。
如果當前CU包含在大小等於或小於512個亮度樣本的區域中,則將針對當前CU使用MIP模式的所需餘裕(如參照圖8所述)與用於所述區域的殘餘餘裕進行比較。如果沒有足夠的餘裕可用於將MIP模式應用到當前CU,則處理器205中的控制從步驟1420進行到將TB編碼的步驟1440(在步驟1420處為「偽」)。然而,如果有足夠的餘裕可用於將MIP模式應用到當前CU(在1420處為「真」),則即使當前CU位於小於或等於512個樣本的區域中,處理器205中的控制也會從步驟1420進行到步驟1430。步驟1420的操作對應於步驟1330的操作,從而MIP旗標在方法1400中僅針對用於在方法1300中搜索的MIP模式的CU編碼。
在將MIP模式旗標編碼的步驟1430處,熵編碼器338在處理器205的執行下,將指示在步驟1350判斷的是否選擇MIP模式的上下文編碼的位元子編碼到位元流115中。參照步驟1420來描述用於對位元子進行編碼的上下文。在選擇了MIP模式的情況下,熵編碼器338還對將特定的MIP模式使用的選擇編碼成位元流338。MIP模式可以使用截斷的二元碼字被編碼,而不是使用在「最可能的模式」和殘餘模式之間的選擇。使用截斷的二元碼字避免得到最可能模式清單的必要性,包含在最可能的模式從鄰近角訊框內預測CU得到的潛在表格查找。處理器205中的控制從步驟1430進行到將TB編碼的步驟1440。
在將TB編碼的步驟1440處,熵編碼器338在處理器205的執行下,將與當前CU相關的TB的殘餘係數編碼到位元流中。通常,用於每個TB的旗標將至少一個有效係數的存在發訊,根據從最後一個有效係數位置回到DC(左上)係數位置進行的掃描模式對係數進行逐一編碼。接著,方法1400終止,並且處理器205中的控制返回到方法1100。
圖15顯示用於對來自視訊位元流133的編碼單元和影像訊框的轉換區塊進行解碼的方法1500。方法1500可以由諸如已配置的FPGA、ASIC或ASSP的設備體現。此外,方法1500可以在處理器205的執行下透過視訊解碼器134進行。因此,方法1500可以被儲存在電腦可讀取儲存媒體和/或記憶體206中。方法1500在將訊框劃分為CTU的步驟1510中開始。
在將訊框劃分為CTU的步驟1510處,視訊解碼器134在處理器205的執行下,將(要解碼的)訊框資料133的當前訊框劃分為CTU的陣列。對於源自劃分開始的CTU進行解碼。處理器205中的控制從步驟1510前進到將編碼單元解碼的步驟1520。
在將編碼單元解碼的步驟1520處,熵解碼器420在處理器205的執行下,根據如參照圖5至7所述的編碼樹對來自位元流133的拆分旗標進行解碼。解碼所述拆分旗標允許步驟1520用以操作來判斷CTU內的CU的大小和位置,即根據CTU的編碼樹。方法1300的進行涉及對於步驟1520的迭代,致使對於CTU的編碼樹遍歷,其中每個CU被解碼。處理器205中的控制從步驟1520進行到將編碼單元解碼的步驟1530。
在將編碼單元解碼的步驟1530處,熵解碼器420在處理器205的執行下,將編碼單元從位元流133解碼。步驟1530調用方法1600(此後關於圖16描述),以將CU解碼。處理器205中的控制從步驟1530前進到最後編碼單元測試步驟1540。
在最後編碼單元測試步驟1540處,處理器205測試當前編碼單元是否為CTU中的最後編碼單元,如在步驟1520從解碼拆分旗標判斷的。如果當前編碼單元是CTU中的最後者(在步驟1540為「是」),則處理器205中的控制前進到最後CTU測試步驟1550。如果當前編碼單元並非步驟1520的編碼樹中的最後者(在步驟1540為「否」),則步驟1520的編碼樹中的下一個編碼單元被選擇用於解碼,並且處理器205中的控制前進到步驟1520。
在最後CTU測試步驟1550處,處理器205測試當前CTU是否為切片或訊框中的最後一個CTU。如果當前CU並非最後者(在步驟1550為「否」),則視訊解碼器134前進到切片或訊框中的下一個CTU,並且處理器205中的控制從步驟1550返回到步驟1520,以繼續處理訊框中殘餘的CTU。如果所述CTU是訊框或切片中的最後者,則步驟1550返回「是」,並且方法1500終止。作為方法1500的結果,整個影像訊框被解碼成來自位元流的CTU的序列。
圖16顯示用於從視訊位元流133將編碼單元解碼的方法1600,如在步驟1530中實現的。方法1600可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,所述方法1600可由視訊解碼器134在處理器205的執行下進行。 因此,方法1600可以被儲存在電腦可讀取儲存媒體和/或在記憶體206中。方法1600開始於將pred_mode旗標解碼的步驟1602。
在將pred_mode旗標解碼的步驟1602處,熵解碼器420對上下文編碼的位元子進行解碼,以判斷當前編碼單元是否使用訊框間預測還是訊框內預測(包含MIP模式)。處理器205中的控制從步驟1602繼續到訊框間預測測試步驟1604。步驟1604執行以基於pred_mode旗標來判斷是否使用訊框間預測。如果當前編碼單元使用訊框間預測(在訊框間預測測試步驟1604為「真」),則處理器205中的控制從步驟1602繼續到執行訊框間預測步驟1606。訊框間預測係在步驟1606處執行,從而致使提取參照區塊(434)並進行濾波以產生PU,隨後對於每個顏色通道將TB解碼,並將TB(1690)添加到PU以解碼CU。處理器205中的控制從步驟1606繼續進行到添加TB步驟1690。
如果當前編碼單元使用訊框內預測或MIP模式(在步驟1604為「偽」),則處理器205上的控制繼續進行到MIP模式餘裕測試步驟1610。MIP模式餘裕測試步驟1610執行以判斷MIP模式是否可根據餘裕用於當前CU。所述餘裕對應於參照步驟1330或1420所描述的餘裕。在所描述的範例中,如果包含當前CU的區域大於面積臨界值(512個亮度樣本),則沒有適用的餘裕約束和MIP模式可用(在步驟1610為真)。處理器205中的控制從步驟1610進行到將MIP模式旗標解碼的步驟1620。
如果在步驟1610處包含當前CU的區域的面積等於或小於臨界值(512個亮度樣本),則如參照圖8所述,將MIP模式用於當前CU所需的餘裕與所述區域的殘餘餘裕進行比較。如果有足夠的餘裕可用於將MIP模式應用於當前CU,則MIP模式可用(在步驟1610為「真」),並且方法1600繼續至步驟1620。如果餘裕不足,則MIP模式不適用於當前CU(在MIP模式餘裕測試步驟1610為「偽」),並且處理器205中的控制繼續進行到將訊框內預測模式解碼的步驟1612。
在步驟1612處,從解碼訊框內預測模式開始,使用普通訊框內預測(DC、平面或角度)。處理器205中的控制從步驟1612繼續到執行訊框內預測步驟1614,並且步驟1614操作以執行訊框內預測。處理器205中的控制從步驟1614繼續到添加TB步驟1690。
在步驟1620的執行中,熵解碼器420使用單一上下文編碼的位元子對MIP旗標進行解碼。位元子使用一個上下文,也就是說,不需要上下文選擇,例如,取決於相鄰CU的MIP模式的使用或可用於從多個可能上下文中選擇一個上下文來解碼單一位元子的區塊大小或其它參數。處理器中的控制從步驟1620繼續到MIP模式選擇的測試步驟1630。
步驟1630操作以判斷是否選擇了MIP模式。如果解碼的MIP模式旗標指示並非使用MIP模式(在MIP模式選擇的測試步驟1630為「偽」),則控制進行到步驟1612來解碼使用普通訊框內預測模式中的一個的區塊。如果解碼的MIP模式旗標指示MIP模式用於CU(在步驟1630為「真」),則處理器205中的控制操作以繼續到將MIP模式解碼的步驟1640。
在步驟1640的執行中,MIP模式從位元流133被解碼。處理器205中的控制從步驟1640繼續進行到讀取矩陣係數步驟1650。在步驟1650處,解碼的MIP模式被用於從矩陣係數記憶體486讀取一組矩陣係數481。透過使用餘裕,藉由在步驟1610限制使用MIP模式的可用性,減少了矩陣係數記憶體486提供矩陣係數481所需的最大記憶體頻寬消耗。
方法1600從步驟1650繼續到將相鄰樣本濾波的步驟1660。在步驟1660處,相鄰參照樣本464被濾波。方法1600從步驟1660繼續進行到矩陣相乘步驟1670。步驟1600可以由模組482例如使用矩陣係數481和樣本464來實現。在步驟1670處,類似於圖8的範例828,將經濾波的參照樣本和矩陣係數481相乘。
方法1600從步驟1670繼續到將PB插補的步驟1680。從步驟1670的執行判斷的稀疏區塊(即830)在步驟1680中被用於使用插補操作來填充PB(即483)。方法1600從步驟1680繼續到插補PB和添加TB的步驟1690。解碼的殘餘被用於產生TB,其在步驟1690中被添加到PB 483以解碼CU。編碼單元使用在步驟1690產生的預測區塊被解碼。方法1600在步驟1690完成後終止。
在執行方法1600中,視訊解碼器134實現了對矩陣訊框內預測的支援,其中對用於提取矩陣係數的最差情況記憶體頻寬具有約束。與沒有有效使用限制的情況相比,所描述的約束在影響錯誤,並未過度限制MIP模式的選擇。不會過度限制選擇的操作是由於判斷的統計可能性通常只有20%的MIP模式編碼的CU具有也使用MIP模式的左鄰居或上鄰居。跨越大於用作用於建立記憶體存取餘裕的粒度的區域之區域的邊界,也就是說,512亮度樣本和跨越包含在20%尋找的測量中的CTU的邊界。
在圖11至16的範例實現中,是否使用MIP模式係基於約束。約束係基於當前CU的區域的面積來實現,以及是否對矩陣訊框內預測旗標進行編碼或解碼係取決於當前CU的區域的面積是否滿足臨界值面積,例如,在圖12處。在所描述的實現中,是否對矩陣訊框內預測旗標進行編碼取決於當區域滿足臨界值時的區域面積,或者(ii)取決於當區域面積不滿足臨界值時的區域的餘裕,如關於步驟1330、1420和1610所述的。因此,矩陣訊框內預測旗標是否被編碼(或解碼)至少取決於所述區域的面積是否滿足所述臨界值面積。
在圖11至14中描述的實現中,如關於步驟1420和1430所述,如果滿足餘裕測試,則僅在位元流115中編碼MIP模式旗標。對應地,在圖16的位元流解碼中,僅當MIP模式餘裕測試步驟返回真時,MIP模式旗標才被解碼。換句話說,僅在使用矩陣訊框內預測的情況下才對CU解碼矩陣訊框內預測旗標。
在視訊編碼器114和視訊解碼器134的替代佈置中,MIP模式的搜索受到限制,如參照圖12和13所述。然而,在替代佈置中,所述MIP旗標的信令被包含在每個CU的位元流中,而不管每個CU的餘裕消耗的狀態。換句話說,不管是否使用矩陣訊框內預測,都針對CU解碼矩陣訊框內預測旗標。在所述替代佈置中,在視訊編碼器114中,步驟1420被省略,並且控制進行到步驟1430(在步驟1420為「真」),如使用在圖14中的虛線所示的箭頭1411所指示的。在所有情況下,MIP模式旗標都在包含在替代佈置中的步驟1430,但是如果在步驟1350中未選擇MIP模式,則可以將其設置為零。類似地,在視訊解碼器134中,省略步驟1610,並且控制進行到步驟1620(在步驟1610總是返回有效地「真」)。如果在對位元流進行編碼的步驟1350未選擇MIP模式,則在步驟1620對MIP模式旗標進行解碼並且將其設為零。避免了熵編碼器338和熵解碼器420在是否對每個CU編碼MIP旗標進行解碼的額外負擔。儘管位元流現在包含每個CU的MIP模式旗標,但方法1200和1300中執行的搜索仍可確保從視訊解碼器134中的係數記憶體486讀取矩陣係數481的記憶體頻寬仍然受到限制,減少了處理這種(受約束)最差情況的MIP模式使用所需的資源供應。
上面關於圖12至17描述的實現,基於包含CU的區域的面積應用了使用MIP模式的約束。在視訊編碼器114和視訊解碼器134的又一個進一步佈置中,在圖12實現的約束針對對應於最差情況下的記憶體頻寬的區塊大小來禁止矩陣訊框內預測的使用,而不是基於區域的面積。有效地,矩陣訊框內預測(以及對矩陣訊框內預測旗標進行編碼或解碼)係基於每個編碼區塊的大小來使用。4×4、4×8、8×4、8×8、8×16、16×8的區塊大小導致每4×4區塊80個字組的最高存取密度(例如,如相對於4×4亮度樣本區塊測量的)。先前的一組區塊大小中的某些區塊大小最差情況是每4×4區塊72個字組,但是出於資源供應的目的,可以將其與每4×4區塊80個字組的情況歸為同一類。禁止最差情況的區塊大小會建立每4×4區塊40個字組的最差情況(某些區塊大小的最差情況是每4×4區塊36個字組)。
圖17顯示如在步驟1130所實現的用於判斷編碼單元的方法1700。方法1300為方法1300提供了一種替代實現,其中約束涉及針對對應於最差情況記憶體頻寬的區塊大小來禁止矩陣訊框內預測的使用。方法1700涉及判斷如透過執行方法1200產生的編碼單元的預測模式。預測模式包含訊框內預測、訊框間預測和根據在包含當前編碼單元的區域內的MIP模式的允許使用的MIP模式。方法1700在測試訊框內預測模式步驟1710處開始。
在測試訊框內預測模式步驟1310處,視訊編碼器114在處理器205的執行下,測試「普通」訊框內預測模式,即DC、平面和角度訊框內預測模式,以潛在地用於對當前編碼單元進行編碼並以針對步驟1310描述的方式操作。處理器205中的控制從步驟1710進行到測試訊框間預測模式步驟1720。
在測試訊框間預測模式步驟1720處,視訊編碼器114在處理器205的執行下,測試用於產生訊框間預測PU的各種運動向量。當評估訊框間預測的使用時,運動向量係從候選運動向量的集合中選擇。步驟1720以與步驟1320相同的方式操作。處理器205中的控制從步驟1720進行到MIP可允許大小測試步驟1730。
在MIP可允許大小測試步驟1730處,視訊編碼器114在處理器205的執行下,測試CU是否具有允許MIP模式的大小。除了在某些實現中最差情況下的大小4×4、4×8、8×4、8×8、8×16和16×8,對於所有的大小,MIP模式是允許的。如果當前CU是允許的大小(在1730為「真」),則處理器205中的控制從步驟1730進行到測試MIP模式步驟1740。如果當前CU是禁止的大小(在步驟1730為「偽」),則處理器205中的控制從步驟1730進行到選擇模式步驟1750。
在測試MIP模式步驟1740處,模式選擇器386測試各種MIP模式,以從用於CU大小的可用MIP模式之中判斷中用於預測當前CU的最佳MIP模式。步驟1740以與步驟1340相同的方式操作,在處理器205中從步驟1740進行到選擇模式步驟1750。
在選擇模式步驟1750中,模式選擇器386在處理器205的執行下,從來自於步驟1710、1720和1750的候選者選擇CU的最終模式。方法1700終止於處理器205中的控制返回到方法1100。
圖18顯示用於將CTU的編碼樹的編碼單元編碼成視訊位元流115的方法1800,如在步驟1140實現的實施方式,其中約束涉及禁止將矩陣訊框內預測用於與區塊大小相對應的最差情況記憶體頻寬。方法1800可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,方法1800可以在處理器205的執行下由視訊編碼器114執行。因此,方法1800可以儲存在電腦可讀取儲存媒體上和/或記憶體206中。方法1800從將預測模式編碼的步驟1810開始。
在將預測模式編碼的步驟1810處,熵編碼器338在處理器205的執行下,使用上下文編碼的位元子對旗標進行編碼,所述上下文編碼的位元子指示訊框內預測(包含普通訊框內預測模式使用或MIP模式使用)或訊框間預測的使用,如在步驟1750所判斷的。處理器205中的控制從步驟1810進行到MIP可允許大小測試步驟1820。
在MIP可允許大小測試步驟1820處,視訊編碼器114在處理器205的執行下,測試當前CU是否為允許的大小。允許的大小和禁止的大小與方法1700的步驟1730相同。如果當前CU是允許的大小,則處理器205中的控制前進到將MIP模式旗標編碼的步驟1830(1820為「真」)。
如果當前CU不是允許的大小(步驟1820為「偽」),則處理器205中的控制從步驟1820進行到將TB編碼的步驟1840。
在將MIP模式旗標編碼的步驟1830處,熵編碼器338在處理器205的執行下,將(如在步驟1350判斷的)指示是否選擇MIP模式的上下文編碼的位元子編碼到位元流115中。所述步驟1830以與步驟1430相同的方式進行操作。處理器205中的控制從步驟1830進行到將TB編碼的步驟1840。
在將TB編碼的步驟1840處,熵編碼器338在處理器205的執行下,將與當前CU相關的TB的殘餘係數編碼成位元流。步驟1840以與步驟1440類似的方式操作。接著方法1800終止,並且處理器205中的控制返回到方法1100。
圖19顯示用於從視訊位元流133解碼編碼單元的方法1900,如在步驟1530處實現的實施方式,其中約束涉及針對最差情況的區塊禁止MIP模式。方法1900可以由諸如配置的FPGA、ASIC或ASSP之類的設備來體現。此外,方法1900可以在處理器205的執行下由視訊解碼器134執行。因此,方法1900可以儲存在電腦可讀取儲存媒體上和/或記憶體206中。方法1900在將pred_mode旗標解碼的步驟1902開始。
在將pred_mode旗標解碼的步驟1902處,熵解碼器420對上下文編碼的位元子進行解碼,以判斷當前編碼單元是使用訊框間預測或訊框內預測(包含MIP模式)。如果當前編碼單元使用訊框間預測(在訊框間預測測試步驟1904處為「真」),則處理器中的控制繼續執行訊框間預測步驟1906。訊框間預測係在步驟1606處執行,從而提取參照區塊(434),並且濾波以產生PU,隨後針對每個顏色通道將TB解碼,並將TB(1690)添加到PU以解碼CU。類似地,處理器205中的控制從步驟1906繼續到添加TB步驟1990。
如果當前編碼單元使用訊框內預測或MIP模式(在步驟1904為「偽」),則處理器205上的控制繼續進行到MIP可允許大小測試步驟1910。MIP可允許大小測試步驟1910執行判斷對於當前CU的大小,MIP模式是否為允許的。MIP允許大小係參照步驟1730或1820被描述。如果當前CU是允許的大小(步驟1910為「真」),則處理器205中的控制從步驟1910進行到將MIP模式旗標解碼的步驟1920。如果在步驟1910當前CU不是允許的大小(步驟1910為「偽」),則處理器205中的控制繼續到將訊框內預測模式解碼的步驟1912。
在步驟1912處,普通訊框內預測(DC、平面或角度)被解碼,並且所述方法1900繼續到解碼訊框內預測步驟1914。步驟1912和1914以關於步驟1612和1614描述的方式操作。處理器205中的控制從步驟1914繼續到添加TB步驟1990。
在步驟1920的執行中,MIP旗標被解碼。處理器205中的控制從步驟1920繼續到MIP模式選擇測試步驟1930。
步驟1930操作以判斷是否選擇MIP模式。如果解碼的MIP模式旗標指示未使用MIP模式(在MIP模式選擇測試步驟1930為「偽」),則控制進行到步驟1912,以使用普通訊框內預測模式中之一者對區塊進行解碼。如果已解碼的MIP模式旗標指示MIP模式被用於CU(在步驟1930為「真」),則處理器中的控制操作以繼續將MIP模式解碼的步驟1940。
MIP模式係在步驟1940的執行中從位元流133解碼。處理器205中的控制從步驟1940繼續到讀取矩陣係數步驟1950。解碼的MIP模式被用於在步驟1950從矩陣係數記憶體486讀取一組矩陣係數481。如在步驟1650處,為判斷使用MIP模式的每個預測區塊讀取矩陣係數。
方法1900從步驟1950繼續到將相鄰樣本濾波的步驟1960。在步驟1960處,相鄰參照樣本464被濾波。方法1900從步驟1960繼續到矩陣相乘步驟1970。類似於圖8的範例828,經濾波的參照樣本和矩陣係數481在步驟1970相乘。
方法1900從步驟1970繼續到將PB插補的步驟1980。從步驟1970的執行所判斷的稀疏區塊(即830)被用於利用在步驟1980的插補操作來填充PB(即483)。方法1900從步驟1980繼續到插補PB添加TB步驟1990。類似於步驟1690,經解碼的殘餘被用來產生TB,其在步驟1990處被加入到PB 483,以對CU進行解碼。方法1900在步驟1990完成時終止。
對方法1300、1400和1600描述的修改也可以分別應用於方法1700、1800和1900。
當使用區塊大小作為MIP模式的可用性標準時,如在方法1700中,不需要建立和更新記憶體餘裕,也就是說,省略步驟1210和1220。對於某些區塊大小,刪除MIP模式雖然比使記憶體存取餘裕更容易實現,但由於許多流行的區塊大小都缺少MIP模式,致使壓縮效能較低。係數記憶體(即392、486)的大小被減少為沒有4×4的區塊意思是沒有「集合A」的矩陣係數需要被儲存(18組矩陣係數和偏置值)。從4×4、4×8、8×4、8×8、8×16和16×8(「小區塊」)移除MIP模式也具有MIP模式的反饋迴路的優點,這是一個相對複雜的操作,不需要支援這些小區塊。
在又一佈置中,禁止對小區塊(如上所列)的子集合使用MIP模式。例如,在步驟1730、1820和1910處僅對於4×4區塊禁止MIP模式,但允許所有其它區塊大小,或者對於4×4、4×8、8×4區塊禁止MIP模式,但允許所有其它區塊大小。換句話說,不使用矩陣訊框內預測,並且根據實現方式,如果編碼單元的大小是禁止大小之一,則對矩陣訊框內預測旗標進行解碼。與完全缺乏對MIP模式使用的限制相比,最差情況下的記憶體頻寬沒有減少,但是由於排除了這些非常小的區塊大小,因此降低了內部重建反饋迴路的嚴重性。刪除4×4還消除了從係數記憶體(即392、486)中儲存與「集合A」關聯的矩陣係數的需求。或者,在集合A和B不存在於視訊編碼器114或視訊解碼器134中的情況下,區塊大小的禁止集合可以是4×4、4×8、8×4和8×8。移除集合A和B導致減少記憶體消耗,因為不需要與集合A和B關聯的矩陣係數,以降低壓縮效能為代價。
在又一佈置中,記憶體餘裕仍低於每4×4個亮度樣本區域40個字組,例如每4×4個亮度樣本區域20個字組甚至10個字組。在較大的區域大小上(諸如,在對應於1024或2048個亮度樣本的區域大小的節點上)建立餘裕。當利用如上所述的佈置時,限制內的稍後CU根據這些區域內的較早CU的MIP模式的使用來約束在記憶體餘裕的可用性。以較低的壓縮效率為代價實現了記憶體頻寬的進一步減少。
在又一佈置中,在步驟1220、1330、1420和1610處,在64個亮度樣本的區域大小處建立記憶體餘裕,以應用於大小為4×4、4×8和8×4的CU(「小CU記憶體餘裕」)。在區域大小為512處建立單獨的記憶體餘裕,但僅適用於大小超過8×8的CU,尤其是8×16和16×8的CU(「較大的CU記憶體餘裕」)。兩種餘裕都設置為每4×4個亮度樣本區域40個字組。餘裕形成總矩陣記憶體頻寬的額外餘裕,因為小的CU記憶體餘裕僅適用於包含在64個亮度樣本區域內的CU,而較大的CU記憶體餘裕僅適用於大於64個亮度樣本的CU。
儘管本文揭露的佈置以每4×4個記憶體區域的字組來描述記憶體頻寬,但是應當理解,對記憶體的存取很可能以某種SIMD形式對字組進行群組,以允許讀取矩陣係數而無需相關記憶體的過多時脈頻率。然而,這種更寬的記憶體本身是昂貴的,並且矩陣係數可以與同一記憶體中的其它資料共享,從而致使透過限制MIP模式的使用而減少的存取爭奪。
限制MIP模式的使用以逐個區域地限制最差情況記憶體頻寬可能會導致偏向於每個區域中較早的CU(靠近頂部或左側)來使用MIP模式,而給定區域中稍後的CU無法使用MIP模式,因為所述區域的可用餘裕已由較早遇到的CU消耗。通常不會遇到這種偏置,因為其選擇了MIP模式的CU的分佈通常比較稀疏。
所描述的佈置實現了關於何時可以使用MIP模式的約束,從而與允許沒有約束的MIP模式的實現相比,降低了計算複雜度。由於在無約束搜索中的MIP模式選擇的統計資訊通常不會觸發模式選擇器386中的MIP模式選擇所施加的約束,因此無需成比例地降低編碼效率就可以實現降低的複雜度。從而,降低了最差情況記憶體頻寬,而不會相應地降低編碼效能。產業可應用性
所描述的配置適用於電腦和資料處理工業,特別是用於編碼諸如視訊和影像信號之信號的解碼的數位信號處理,從而實現高壓縮效率。
在此描述的佈置允許殘餘編碼和解碼使用基於網格的狀態機,所述狀態機根據係數奇偶性來更新並且選擇係數的上下文和量化器。所描述的佈置允許實現基於網格的狀態機,而不會由於狀態更新的順序性質而造成過多的等待時間。
以上僅描述本發明的一些實施例,並且可以在不脫離本發明的範圍和精神的情況下對其進行修改及/或改變,所述實施例是說明性的而非限制性的。
100:系統 110:源裝置 112:視訊源 113:訊框資料 114:視訊編碼器 115:位元流 116:發送器 120:通訊通道 122:非暫態儲存裝置 130:目的地裝置 132:接收器 133:位元流 134:視訊解碼器 135:訊框資料 136:顯示裝置 200:電腦系統 201:電腦模組 202:鍵盤 203:滑鼠指示器裝置 204:系統匯流排 205:處理器單元 206:記憶體 207:音訊-視訊介面 208:介面 209:儲存裝置 210:硬碟驅動器(HDD) 211:本地網路介面 212:光碟驅動器 213:I/O介面 214:顯示器 215:印表機 216:數據機 217:揚聲器 218:連接 219:連接 220:通訊網路 221:連接 222:本地通訊網路 223:連接 224:連接 225:儲存媒體 226:掃描器 227:相機 228:記憶體位置 229:記憶體位置 230:記憶體位置 231:指令 232:資料 233:軟體應用程式 234:記憶體 235:記憶體位置 236:記憶體位置 237:記憶體位置 239:控制單元 240:算術邏輯單元(ALU) 241:內部匯流排 242:介面 244:儲存暫存器 245:儲存暫存器 246:儲存暫存器 247:暫存器部分 248:本地或內部記憶體 249:ROM 250:開機自我測試(power-on:self-test, POST)程式 251:基本輸入-輸出系統軟體(BIOS)模組 252:啟動載入器程式 253:作業系統 254:輸入變數 255:記憶體位置 256:記憶體位置 257:記憶體位置 258:中間變數 259:記憶體位置 260:記憶體位置 261:輸出變數 262:記憶體位置 263:記憶體位置 264:記憶體位置 266:記憶體位置 267:記憶體位置 280:麥克風 310:區塊劃分器 312:當前CB 320:預測區塊(PB) 322:減法器模組/減法器 324:差 326:主要轉換模組 330:正向次要轉換模組 332:轉換係數 334:量化器模組 336:殘餘係數 338:熵編碼器 340:去量化器模組 342:逆轉換係數 344:逆次要轉換模組 348:逆主要轉換模組 350:殘餘樣本 352:求和模組 354:重建樣本 356:參考樣本快取 358:參考樣本 360:參考樣本濾波器 362:經濾波的參考樣本 364:訊框內預測模組 366:樣本區塊 368:迴路濾波器模組 370:濾波後的樣本 372:訊框緩衝器 374:參考訊框 376:運動估計模組 378:運動向量 380:運動補償模組 382:濾波的參考樣本區塊 384:多工器模組 386:模式選擇器 387:預測模式 388:矩陣訊框內預測模式 390:矩陣訊框內預測模組 392:係數記憶體 420:熵解碼器模組 424:殘餘係數 428:去量化器模組 432:重建的中間轉換係數 434:運動補償模組 436:逆次要轉換模組 438:訊框間預測樣本區塊 440:重建轉換係數 444:逆主要轉換模組 448:殘餘樣本 450:求和模組 452:解碼的PB 456:重建樣本區塊 458:訊框內預測模式參數 460:重建樣本快取 464:參考樣本 468:參考樣本濾波器 472:經濾波的參考樣本 476:訊框內預測模組 480:訊框內預測樣本區塊 482:矩陣訊框內預測模組 484:多工器模組 486:係數記憶體 488:迴路濾波模組 492:濾波區塊資料 496:訊框緩衝器 498:樣本區塊 500:集合 510:葉節點 512:四元樹拆分 514:水平二元拆分 516:垂直二元拆分 518:三元水平拆分 520:三元垂直拆分 600:資料流 610:四元樹(QT)拆分決定 612:多元樹(MT)拆分決定 614:方向決定 616:決定 618:決定 620:產生四個新節點 622:葉節點 625:產生HBT CTU節點步驟 626:產生HTT CTU節點步驟 627:產生VBT CTU節點步驟 628:產生VTT CTU節點步驟 700:範例劃分 710:編碼樹單元(CTU) 712:範例CU 714:節點 716:節點 718:節點 720:編碼樹 800:資料流 802:參照樣本 820:左樣本 822:上樣本 824:經濾波的左樣本 826:經濾波的上樣本 828:矩陣相乘模組 830:稀疏區塊 900:CTU 912:區域 912a-912h:CU 914:區域 916:區域 1100:方法 1110:將訊框劃分為CTU的步驟 1120:判斷編碼樹步驟 1130:判斷編碼單元步驟 1140:將編碼單元編碼的步驟 1150:最後編碼單元測試步驟 1160:最後CTU測試步驟 1200:方法 1210:區域面積測試步驟 1220:設定餘裕步驟 1230:產生拆分步驟 1240:產生CU步驟 1300:方法 1310:測試訊框內預測模式步驟 1320:測試訊框間預測模式步驟 1330:餘裕內測試步驟 1340:測試MIP模式步驟 1350:選擇模式步驟 1400:方法 1410:將預測模式編碼的步驟 1411:箭頭 1420:餘裕測試步驟 1430:將MIP模式旗標編碼的步驟 1440:將TB編碼的步驟 1500:方法 1510:將訊框劃分為CTU的步驟 1520:將編碼單元解碼的步驟 1530:將編碼單元解碼的步驟 1540:最後編碼單元測試步驟 1550:最後CTU測試步驟 1600:方法 1602:將pred_mode旗標解碼的步驟 1604:訊框間預測測試步驟 1606:執行訊框間預測步驟 1610:MIP模式餘裕測試步驟 1612:將訊框內預測模式解碼的步驟 1614:執行訊框內預測步驟 1620:將MIP模式旗標解碼的步驟 1630:MIP模式選擇的測試步驟 1640:將MIP模式解碼的步驟 1650:讀取矩陣係數步驟 1660:將相鄰樣本濾波的步驟 1670:矩陣相乘步驟 1680:將PB插補的步驟 1690:添加TB步驟 1700:方法 1710:測試訊框內預測模式步驟 1720:測試訊框間預測模式步驟 1730:MIP可允許大小測試步驟 1740:測試MIP模式步驟 1750:選擇模式步驟 1800:方法 1810:將預測模式編碼的步驟 1820:MIP可允許大小測試步驟 1830:將MIP模式旗標編碼的步驟 1840:將TB編碼的步驟 1900:方法 1902:將pred_mode旗標解碼的步驟 1904:訊框間預測測試步驟 1906:執行訊框間預測步驟 1910:MIP可允許大小測試步驟 1912:將訊框內預測模式解碼的步驟 1914:執行訊框內預測步驟 1920:將MIP模式旗標解碼的步驟 1930:MIP模式選擇測試步驟 1940:將MIP模式解碼的步驟 1950:讀取矩陣係數步驟 1960:將相鄰樣本濾波的步驟 1970:矩陣相乘步驟 1980:將PB插補的步驟 1990:添加TB步驟
現在將參照以下圖式和附錄來說明本發明的至少一個實施例,其中:
[圖1]是顯示視訊編碼和解碼系統的示意方塊圖;
[圖2A和2B]形成通用電腦系統的示意方塊圖,在所述通用電腦系統上可以實施圖1的視訊編碼和解碼系統中的一者或兩者;
[圖3]是顯示視訊編碼器的功能模組的示意方塊圖;
[圖4]是顯示視訊解碼器的功能模組的示意方塊圖;
[圖5]是顯示在多功能視訊編碼的樹結構中將區塊可用劃分成一或多個區塊的示意方塊圖;
[圖6]是用於完成在多功能視訊編碼的樹結構中將區塊允許劃分成一或多個區塊的資料流的示意圖;
[圖7A和7B]顯示將編碼樹單元(CTU)劃分成多個編碼單元(CU)的範例;
[圖8]顯示矩陣訊框內預測模組的操作的範例;
[圖9A和9B]顯示具有在其中應用了用於矩陣訊框內預測模式的記憶體存取頻寬的區域的範例CTU;
[圖10]顯示與圖9的範例相對應的編碼樹;
[圖11]顯示用於將影像訊框的編碼單元編碼成視訊位元流的方法,所述編碼單元包含利用矩陣訊框內預測的編碼單元;
[圖12]顯示用於判斷用於跨越如圖11中所使用的編碼樹單元的多個編碼單元的矩陣訊框內預測的記憶體存取的餘裕的方法;
[圖13]顯示用於判斷如圖11中所使用的用於將影像訊框的一部分編碼成視訊位元流的編碼單元的方法;
[圖14]顯示如圖11中所使用的用於將影像訊框的編碼單元編碼成視訊位元流的方法;
[圖15]顯示用於從視訊位元流中將影像訊框的編碼樹解碼的方法;
[圖16]顯示如圖15中所使用的用於從視訊位元流中將影像訊框的編碼單元解碼的方法;
[圖17]顯示用於判斷如圖11中所使用的用於將影像訊框的一部分編碼成視訊位元流的編碼單元的替代方法;
[圖18]顯示如圖11中所使用的用於將影像訊框的編碼單元編碼成視訊位元流的替代方法;以及
[圖19]顯示如圖15中所使用的用於從視訊位元流中將影像訊框的編碼單元解碼的替代方法。
113:訊框資料
114:視訊編碼器
115:位元流
310:區塊劃分器
312:當前CB
320:預測區塊(PB)
322:減法器模組/減法器
324:差
326:主要轉換模組
328:主要轉換係數
330:正向次要轉換模組
332:轉換係數
334:量化器模組
336:殘餘係數
338:熵編碼器
340:去量化器模組
342:逆轉換係數
344:逆次要轉換模組
346:逆轉換係數
348:逆主要轉換模組
350:殘餘樣本
352:求和模組
354:重建樣本
356:參考樣本快取
358:參考樣本
360:參考樣本濾波器
362:經濾波的參考樣本
363:矩陣係數
364:訊框內預測模組
366:樣本區塊
368:迴路濾波器模組
370:濾波後的樣本
372:訊框緩衝器
374:參考訊框
376:運動估計模組
378:運動向量
380:運動補償模組
382:濾波的參考樣本區塊
384:多工器模組
386:模式選擇器
387:預測模式
388:矩陣訊框內預測模式
390:矩陣訊框內預測模組
392:係數記憶體
393:矩陣係數

Claims (14)

  1. 一種在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的方法,所述方法包含:針對所述區塊對矩陣訊框內預測旗標進行解碼,所述矩陣訊框內預測旗標指示矩陣訊框內預測(matrix intra-prediction)是否用於所述區塊;如果在所述矩陣訊框內預測旗標指示所述矩陣訊框內預測用於所述區塊的情況下,對矩陣訊框內預測模式的語法元素進行解碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素;以及根據所述矩陣訊框內預測模式的所述語法元素選擇針對所述區塊的所述矩陣訊框內預測的矩陣;以及透過將基於相鄰於所述區塊的樣本的參照樣本與根據所述矩陣訊框內預測模式的所述語法元素選擇的所述矩陣施以相乘來產生所述預測樣本,其中所述對所述矩陣訊框內預測旗標進行解碼取決於所述區塊的寬度和所述區塊的高度。
  2. 如請求項1所述的方法,其中所述對所述矩陣訊框內預測模式的所述語法元素進行解碼取決於所述區塊的所述寬度和所述區塊的所述高度。
  3. 如請求項1所述的方法,其中複數個區塊大小對所述方法是可用的,以及所述複數個區塊大小被分類為第一層、第二層或第三層,以及其中所述第一層包含至少4×4的大小,以及 其中對所述第一層的矩陣訊框內預測是可用的矩陣數量大於對所述第二層的矩陣訊框內預測是可用的矩陣數量和對所述第三層的矩陣訊框內預測是可用的矩陣數量。
  4. 如請求項3所述的方法,其中被包含在所述第二層中的區塊大小大於4×4的大小。
  5. 如請求項3所述的方法,其中被包含在所述第三層中的區塊大小大於4×4的大小。
  6. 一種在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的方法,所述方法包含:選擇針對所述區塊的矩陣訊框內預測的矩陣;透過將基於相鄰於所述區塊的樣本的參照樣本與選擇的所述矩陣施以相乘來產生所述預測樣本;針對所述區塊對矩陣訊框內預測旗標進行編碼,所述矩陣訊框內預測旗標指示所述矩陣訊框內預測是否用於所述區塊;以及如果在所述矩陣訊框內預測用於所述區塊的情況下,對指示選擇的所述矩陣的矩陣訊框內預測模式的語法元素進行編碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素,其中所述對所述矩陣訊框內預測旗標進行編碼取決於所述區塊的寬度和所述區塊的高度。
  7. 如請求項6所述的方法,其中所述對所述 矩陣訊框內預測模式的所述語法元素進行編碼取決於所述區塊的所述寬度和所述區塊的所述高度。
  8. 如請求項6所述的方法,其中複數個區塊大小對所述方法是可用的,以及所述複數個區塊大小被分類為第一層、第二層或第三層,以及其中所述第一層包含至少4×4的大小,以及其中對所述第一層的矩陣訊框內預測是可用的矩陣數量大於對所述第二層的矩陣訊框內預測是可用的矩陣數量和對所述第三層的矩陣訊框內預測是可用的矩陣數量。
  9. 如請求項8所述的方法,其中被包含在所述第二層中的區塊大小大於4×4的大小。
  10. 如請求項8所述的方法,其中被包含在所述第三層中的區塊大小大於4×4的大小。
  11. 一種在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的設備,所述設備包含:第一解碼單元,其配置成針對所述區塊對矩陣訊框內預測旗標進行解碼,所述矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述區塊;第二解碼單元,其配置成如果所述矩陣訊框內預測旗標指示所述矩陣訊框內預測是用於所述區塊的情況下,對矩陣訊框內預測模式的語法元素進行解碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素; 選擇單元,其配置成根據所述矩陣訊框內預測模式的所述語法元素選擇針對所述區塊的所述矩陣訊框內預測的矩陣;以及產生單元,其配置成透過將基於相鄰於所述區塊的樣本的參照樣本與根據所述矩陣訊框內預測模式的所述語法元素選擇的所述矩陣施以相乘來產生所述預測樣本,其中所述藉由所述第一解碼單元對所述矩陣訊框內預測旗標進行解碼取決於所述區塊的寬度和所述區塊的高度。
  12. 一種在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的設備,所述設備包含:選擇單元,其配置成選擇針對所述區塊的矩陣訊框內預測的矩陣;產生單元,其配置成透過將基於相鄰於所述區塊的樣本的參照樣本與選擇的所述矩陣施以相乘來產生所述預測樣本;第一編碼單元,其配置成針對所述區塊對矩陣訊框內預測旗標進行編碼,所述矩陣訊框內預測旗標指示所述矩陣訊框內預測是否用於所述區塊;以及第二編碼單元,其配置成如果在矩陣訊框內預測用於所述區塊的情況下,對指示選擇的所述矩陣的矩陣訊框內預測模式的語法元素進行編碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素,其中所述藉由所述第一編碼單元對所述矩陣訊框內預 測旗標進行編碼取決於所述區塊的寬度和所述區塊的高度。
  13. 一種非暫態電腦可讀取儲存媒體,其儲存用於使電腦執行在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的方法之程式,所述方法包含:針對所述區塊對矩陣訊框內預測旗標進行解碼,所述矩陣訊框內預測旗標指示矩陣訊框內預測是否用於所述區塊;如果在所述矩陣訊框內預測旗標指示所述矩陣訊框內預測用於所述區塊的情況下,對矩陣訊框內預測模式的語法元素進行解碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素;以及根據所述矩陣訊框內預測模式的所述語法元素選擇針對所述區塊的所述矩陣訊框內預測的矩陣;以及透過將基於相鄰於所述區塊的樣本的參照樣本與根據所述矩陣訊框內預測模式的所述語法元素選擇的所述矩陣施以相乘來產生所述預測樣本,其中所述對所述矩陣訊框內預測旗標進行解碼取決於所述區塊的寬度和所述區塊的高度。
  14. 一種非暫態電腦可讀取儲存媒體,其儲存用於使電腦執行在影像訊框的編碼樹單元中針對預測的區塊產生預測樣本的方法之程式,所述方法包含:選擇針對所述區塊的矩陣訊框內預測的矩陣;透過將基於相鄰於所述區塊的樣本的參照樣本與選擇 的所述矩陣施以相乘來產生所述預測樣本;針對所述區塊對矩陣訊框內預測旗標進行編碼,所述矩陣訊框內預測旗標指示所述矩陣訊框內預測是否用於所述區塊;以及如果在所述矩陣訊框內預測用於所述區塊的情況下,對指示選擇的所述矩陣的矩陣訊框內預測模式的語法元素進行編碼,其中截斷的二元碼能夠用於所述矩陣訊框內預測模式的所述語法元素,其中所述對所述矩陣訊框內預測旗標進行編碼取決於所述區塊的寬度和所述區塊的高度。
TW109113598A 2019-06-24 2020-04-23 用於編碼及解碼視訊樣本的區塊的方法、設備和系統 TWI786392B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2019204437A AU2019204437B2 (en) 2019-06-24 2019-06-24 Method, apparatus and system for encoding and decoding a block of video samples
AU2019204437 2019-06-24

Publications (2)

Publication Number Publication Date
TW202101999A TW202101999A (zh) 2021-01-01
TWI786392B true TWI786392B (zh) 2022-12-11

Family

ID=74059613

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109113598A TWI786392B (zh) 2019-06-24 2020-04-23 用於編碼及解碼視訊樣本的區塊的方法、設備和系統

Country Status (8)

Country Link
US (1) US20220345718A1 (zh)
EP (1) EP3987782A4 (zh)
JP (2) JP7307803B2 (zh)
KR (1) KR20210141751A (zh)
CN (1) CN113940065A (zh)
AU (2) AU2019204437B2 (zh)
TW (1) TWI786392B (zh)
WO (1) WO2020257842A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023193254A1 (zh) * 2022-04-08 2023-10-12 Oppo广东移动通信有限公司 解码方法、编码方法、解码器以及编码器
CN116630450A (zh) * 2023-05-29 2023-08-22 中国人民解放军陆军军医大学 一种动脉夹层腔内特征提取和编码方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190028701A1 (en) * 2017-07-24 2019-01-24 Arris Enterprises Llc Intra mode jvet coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405620B2 (en) * 2016-08-01 2022-08-02 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus with sub-block intra prediction
EP3850840A1 (en) * 2018-09-13 2021-07-21 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Affine linear weighted intra predictions
IL281823B2 (en) * 2018-10-12 2024-01-01 Guangdong Oppo Mobile Telecommunications Corp Ltd A method for encoding/decoding an image signal and a device for it
US11284093B2 (en) * 2019-05-09 2022-03-22 Qualcomm Incorporated Affine linear weighted intra prediction in video coding
WO2020246805A1 (ko) * 2019-06-03 2020-12-10 엘지전자 주식회사 매트릭스 기반 인트라 예측 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190028701A1 (en) * 2017-07-24 2019-01-24 Arris Enterprises Llc Intra mode jvet coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jonathan Pfaff et al., CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0217, 14th Meeting: Geneva, CH, 19–27 March 2019. retrieved from http://phenix.int-evry.fr/jvet/^&rn^
Jonathan Pfaff et al., CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0217, 14th Meeting: Geneva, CH, 19–27 March 2019. retrieved from http://phenix.int-evry.fr/jvet/^&rn^ *
Jonathan Pfaff ET AL.,Intra prediction modes based on neural networks, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-J0037-v1, 10th Meeting: San Diego, US, 10–20 Apr. 2018, retrieved from http://phenix.int-evry.fr/jvet/^&rn^; *

Also Published As

Publication number Publication date
TW202101999A (zh) 2021-01-01
JP7307803B2 (ja) 2023-07-12
AU2021273633A1 (en) 2021-12-16
KR20210141751A (ko) 2021-11-23
US20220345718A1 (en) 2022-10-27
AU2021273633B2 (en) 2023-11-02
JP2022538707A (ja) 2022-09-06
EP3987782A1 (en) 2022-04-27
JP2023123706A (ja) 2023-09-05
AU2019204437A1 (en) 2021-01-14
AU2019204437B2 (en) 2022-02-03
CN113940065A (zh) 2022-01-14
EP3987782A4 (en) 2023-06-28
WO2020257842A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
JP7191211B2 (ja) 復号する方法、コンピュータプログラム、ビデオ復号装置
TWI813922B (zh) 從視訊位元流解碼影像和編碼影像為視訊位元流的方法及其解碼設備和編碼設備以及非暫態電腦可讀取媒體
US20220116600A1 (en) Method, apparatus and system for encoding and decoding a transformed block of video samples
TWI793396B (zh) 用以編碼和解碼視頻樣本之區塊樹的方法、設備及系統
JP2023123706A (ja) ビデオサンプルのブロックを符号化及び復号するための方法、装置、及びプログラム
TWI788262B (zh) 用以編碼和解碼視頻樣本之區塊樹的方法、設備及系統
TWI786032B (zh) 用以編碼及解碼視訊取樣之轉換區塊的方法、設備和系統
TW202126050A (zh) 用於編碼及解碼視訊取樣區段的方法, 設備及系統
TWI836542B (zh) 用以編碼及解碼視訊取樣之轉換區塊的方法、設備和非暫態電腦可讀取儲存媒體
AU2020202285A1 (en) Method, apparatus and system for encoding and decoding a block of video samples