TW202143717A - 視頻譯碼中的亮度映射與色度縮放(lmcs) - Google Patents

視頻譯碼中的亮度映射與色度縮放(lmcs) Download PDF

Info

Publication number
TW202143717A
TW202143717A TW110112242A TW110112242A TW202143717A TW 202143717 A TW202143717 A TW 202143717A TW 110112242 A TW110112242 A TW 110112242A TW 110112242 A TW110112242 A TW 110112242A TW 202143717 A TW202143717 A TW 202143717A
Authority
TW
Taiwan
Prior art keywords
chroma
syntax element
lmcs
block
scaling
Prior art date
Application number
TW110112242A
Other languages
English (en)
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 TW202143717A publication Critical patent/TW202143717A/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/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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/186Methods 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 a colour or a chrominance component
    • 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
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Abstract

一種對視頻資料進行譯碼的方法,包括:確定對於用於視頻資料的譯碼單元(CU)的亮度映射與色度縮放(LMCS),存在視頻資料的與色度相關的語法元素,當對於用於CU的LMCS存在與色度相關的語法元素時,對視頻資料的語法元素進行譯碼,該語法元素指示用於確定LMCS中的色度縮放的縮放參數的值,並且基於用於色度縮放的縮放參數來對CU的色度塊進行譯碼。

Description

視頻譯碼中的亮度映射與色度縮放(LMCS)
本申請要求享受2020年4月2日提交的美國臨時申請No.63/004,397的優先權,故以引用方式將該申請的全部內容併入本文。
本公開內容涉及視頻編碼和視頻解碼。
數位視頻能力可以併入到各種各樣的設備中,這些設備包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(PDA)、膝上型計算機或桌面型計算機、平板計算機、電子書讀取器、數位相機、數位記錄裝置、數位媒體播放器、視頻遊戲設備、視頻遊戲控制台、蜂窩或衛星無線電話、所謂的「智慧型電話」、視頻電話會議設備、視頻流設備等等。數位視頻設備實現視頻譯碼技術,例如,由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高級視頻譯碼(AVC)、ITU-T H.265/高效率視頻譯碼(HEVC)所規定的標準、以及這些標準的擴展裡所描述的那些技術。視頻設備可以通過實現這些視頻譯碼技術,更高效地發送、接收、編碼、解碼和/或儲存數位視頻資訊。
視頻譯碼技術包括空間(幀內)預測和/或時間(幀間)預測以減少或消除視頻序列中固有的冗餘。對於基於塊的視頻譯碼,可以將視頻片段(例如,視頻圖片或視頻圖片的一部分)劃分為視頻塊,視頻塊還可以稱為譯碼樹單元(CTU)、譯碼單元(CU)和/或譯碼節點。使用相對於同一圖片中相鄰塊中的參考樣本的空間預測,對圖片的幀內譯碼(I)片段中的視頻塊進行編碼。圖片的幀間譯碼(P或B)片段中的視頻塊可以使用相對於同一圖片中相鄰塊中的參考樣本的空間預測,或者使用相對於其它參考圖片中的參考樣本的時間預測。圖片可以稱為幀,而參考圖片可以稱為參考幀。
通常,本公開內容描述了用於亮度映射與色度縮放(LMCS)的技術。如本文更詳細描述的,本公開內容描述了用於使視頻編碼器用訊號通知和視頻解碼器進行接收以執行LMCS的資訊量最小化的示例技術。本公開內容還描述了可以應用的用以使視頻解碼器的解碼錯誤最小化的約束條件的示例。用此方式,示例性技術改善了視頻編碼器和視頻解碼器的整體操作,並提供了視頻譯碼技術中的實際應用。
在一個例子中,本公開內容描述了一種對視頻資料進行譯碼的方法,該方法包括:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,其中所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
在一個例子中,本公開內容描述了一種用於對視頻資料進行譯碼的設備,該設備包括被配置為儲存所述視頻資料的記憶體,和被配置為進行以下操作的處理電路:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,其中所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
在一個例子中,本公開內容描述了一種其上儲存有指令的計算機可讀儲存媒體,當所述指令被執行時,使一個或多個處理器進行以下操作:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,其中所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
在一個例子中,本公開內容描述了一種用於對視頻資料進行譯碼的設備,該設備包括:用於確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素的構件;用於當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼的構件,其中所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;用於基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼的構件。
在附圖和下面的說明書中闡述了一個或多個例子的細節。根據說明書、附圖以及申請專利範圍,其它特徵、對象和優點將變得顯而易見。
在視頻譯碼技術中,視頻編碼器為當前塊(例如,譯碼單元(CU))生成預測塊。該預測塊可以是基於與當前塊在同一圖片中的樣本(例如,用於幀內預測或幀內塊複製(IBC)預測),或者可以是基於不同圖片中的樣本(例如,用於幀間預測)。視頻編碼器確定當前塊與預測塊之間的殘差(例如,差異),並用訊號通知指示該殘差的資訊(例如,在轉換和量化之後),該資訊往往比用訊號通知當前塊的樣本值需要更少的位元。
視頻解碼器接收指示殘差的資訊,並以與視頻編碼器相同的方式生成預測塊。然後,視頻解碼器將殘差添加到預測塊以重構當前塊。
亮度映射與色度縮放(LMCS)是可以與各種預測技術一起使用的示例性視頻譯碼工具。當前塊(例如,譯碼單元(CU))包括具有亮度樣本的亮度塊和具有色度樣本的兩個色度塊(例如,Cb和Cr塊)。
在LMCS中,視頻編碼器映射亮度塊的亮度樣本,以生成經映射的亮度塊的經映射亮度樣本。視頻編碼器確定在經映射的亮度塊與經映射的亮度預測塊(例如,已經類似於亮度塊而進行經映射的亮度預測塊)之間的殘差(例如,差異),以生成經映射的亮度殘差塊。視頻編碼器對經映射的亮度殘差塊執行轉換和量化,並用訊號通知獲得的殘差值。
對於亮度樣本的映射而言,視頻編碼器可以實現映射功能。在映射功能中,可以存在多個分離點,並且一個分離點可以利用片段與另一分離點連接。可以存在16個段,並且這些段的斜率可以不同。視頻編碼器可以確定亮度樣本屬於哪個段,然後基於亮度樣本所屬的段的斜率,來映射亮度樣本以生成經映射亮度樣本。
對於色度,視頻編碼器確定色度塊的樣本與色度預測塊的樣本之間的殘差(例如,差異)。然後,視頻編碼器對結果進行縮放以生成經縮放的色度殘差塊。視頻編碼器對經縮放的色度殘差塊執行轉換和量化,並用訊號通知獲得的殘差值。在一個或多個例子中,視頻編碼器可以基於所經映射的亮度重構塊,來確定縮放參數(例如,指示視頻編碼器應用於殘差色度塊的縮放量的係數)。為了便利起見,針對色度塊描述了示例,該色度塊可以是Cb色度塊或Cr色度塊,並且應用於這些色度塊之一的示例技術也可以應用於另一種色度塊。
視頻解碼器可以從視頻編碼器接收殘差塊的信令,並且可以執行逆量化和逆轉換以生成經映射的亮度殘差塊。視頻解碼器還可以以與視頻編碼器生成經映射的亮度預測塊相同的方式來生成經映射的亮度預測塊。視頻解碼器可以將經映射的亮度預測塊和經映射的亮度殘差塊相加,以生成經映射的亮度塊。視頻解碼器可以執行逆映射以重構亮度塊。例如,視頻解碼器可以執行視頻編碼器針對映射而執行的逆操作。
對於色度,視頻解碼器可以從視頻編碼器接收殘差塊的信令,並且可以執行逆量化和逆轉換以生成經縮放的色度殘差塊。視頻解碼器可以基於經映射的亮度重構塊和視頻編碼器用訊號通知的值,來確定縮放參數(例如,指示視頻解碼器應用於經縮放的色度塊的縮放量的係數)。視頻解碼器確定的縮放參數可以是視頻編碼器確定的縮放參數的倒數。視頻解碼器可以基於縮放參數,對經縮放的色度殘差塊執行逆縮放以生成色度殘差塊。視頻解碼器可以類似於視頻編碼器來生成色度預測塊,並將色度預測塊添加到色度殘差塊以重構色度塊。
視頻解碼器可以針對兩個色度塊,重複這樣的操作。用此方式,利用LMCS,視頻解碼器可以重構亮度塊和兩個色度塊。亮度塊和兩個色度塊可以一起形成CU。
LMCS技術可能存在一些問題。舉一個例子,某些視頻格式可能沒有色度樣本。例如,對於單色格式,可能沒有色度樣本。但是,在一些LMCS技術中,即使在沒有色度樣本的情況下,視頻編碼器仍可能會用訊號通知用於確定縮放參數的值。
本公開內容描述了以下的示例技術:當存在與色度相關的語法元素時(例如,當存在色度樣本時),選擇性地用訊號通知和解析用於確定縮放參數的語法元素,而當與色度相關的語法元素(例如,當色度樣本)不存在時(例如,在單色格式下),繞過(例如,避免)用訊號通知和解析用於確定縮放參數的語法元素。也就是說,位元流可以包括與色度相關的語法元素(例如,比如當存在色度樣本時),並且在這樣的例子中,位元流還可以包括用於確定縮放參數的語法元素。然而,如果位元流不包括與色度相關的語法元素(例如,比如當不存在色度樣本時),則位元流可以不包括用於確定縮放參數的語法元素。
本公開內容還描述了可以在用訊號通知用於LMCS的語法元素中應用的約束條件的示例。在一些例子中,對於諸如自適應環路濾波(ALF)之類的其它視頻編碼工具,也可以包括某些約束條件。用此方式,這些示例性技術可以通過基於是否存在與色度相關的語法元素(例如,色度樣本),選擇性地用訊號通知並解析用於LMCS的語法元素來提高頻寬效率。此外,這些示例性技術可以基於改善譯碼操作的約束,來促進塊的準確重建。
圖1是示出可以執行本公開內容的技術的示例性視頻編碼和解碼系統100的方塊圖。本公開內容的技術通常針對於視頻資料的譯碼(編碼和/或解碼)。通常,視頻資料包括用於處理視頻的任何資料。因此,視頻資料可以包括原始的、未編碼的視頻、編碼的視頻、解碼的(例如,重構的)視頻以及視頻元資料(例如,信令資料)。
如圖1中所示,在該例子中,系統100包括源設備102,其提供要由目的地設備116進行解碼和顯示的經編碼的視頻資料。具體而言,源設備102經由計算機可讀媒體110,將視頻資料提供給目的地設備116。源設備102和目的地設備116可以包括廣泛的設備中的任何設備,其包括桌面型計算機、筆記本(例如,膝上型)計算機、平板計算機、機上盒、電話手持裝置(例如,智慧型手機)、電視、照相機、顯示設備、數位媒體播放器、視頻遊戲機、視頻流設備等等。在一些情況下,源設備102和目的地設備116可以被配備用於無線通訊,因此可以稱為無線通訊設備。
在圖1的例子中,源設備102包括視頻源104、記憶體106、視頻編碼器200和輸出介面108。目的地設備116包括輸入介面122、視頻解碼器300、記憶體120和顯示設備118。根據本公開內容,源設備102的視頻編碼器200和目的地設備116的視頻解碼器300可以被配置為應用視頻譯碼中的高級語法信令的技術。因此,源設備102表示視頻編碼設備的例子,而目的地設備116表示視頻解碼設備的例子。在其它例子中,源設備和目的地設備可以包括其它組件或佈置。例如,源設備102可以從諸如外部照相機之類的外部視頻源接收視頻資料。同樣,目的地設備116可以與外部顯示設備對接,而不是包括整合顯示設備。
如圖1中所示的系統100僅僅是一個例子。通常,任何數位視頻編碼和/或解碼設備都可以執行用於視頻譯碼中的高級語法信令的技術。源設備102和目的地設備116僅僅是這樣的譯碼設備的例子,其中,源設備102生成用於向目的地設備116傳輸的經編碼的視頻資料。本公開內容將「譯碼」設備稱為執行資料的譯碼(編碼和/或解碼)的設備。因此,視頻編碼器200和視頻解碼器300分別表示譯碼設備(具體而言,視頻編碼器和視頻解碼器)的例子。在一些例子中,源設備102和目的地設備116可以以基本上對稱的方式操作,使得源設備102和目的地設備116中的每一個包括視頻編碼和解碼組件。因此,系統100可以支持源設備102和目的地設備116之間的單向或雙向視頻傳輸,例如,用於視頻流傳輸、視頻回放、視頻廣播或視頻電話。
通常,視頻源104代表視頻資料(即,原始的、未編碼的視頻資料)的源,並將視頻資料的圖片的連續序列(也稱為「幀」)提供給視頻編碼器200,其中視頻編碼器200對圖片的資料進行編碼。源設備102的視頻源104可以包括視頻擷取設備(例如,攝影機)、包含先前擷取的原始視頻的視頻檔案和/或用於從視頻內容提供商接收視頻的視頻饋送介面。作為另一替代方案,視頻源104可以生成基於計算機圖形的資料作為源視頻、或者實時視頻、存檔視頻和計算機生成的視頻的組合。在每種情況下,視頻編碼器200對擷取的、預擷取的或計算機生成的視頻資料進行編碼。視頻編碼器200可以將圖像從接收到的順序(有時稱為「顯示順序」)重新排列為用於譯碼的譯碼順序。視頻編碼器200可以生成包括有編碼的視頻資料的位元流。然後,源設備102可以經由輸出介面108將編碼的視頻資料輸出到計算機可讀媒體110上,以通過例如目的地設備116的輸入介面122進行接收和/或檢索。
源設備102的記憶體106和目的地設備116的記憶體120代表通用記憶體。在一些例子中,記憶體106、120可以儲存原始視頻資料,例如,來自視頻源104的原始視頻和來自視頻解碼器300的原始的經解碼的視頻資料。另外地或替代地,記憶體106、120可以儲存可由例如視頻編碼器200和視頻解碼器300分別執行的軟體指令。儘管在該例子中,將記憶體106和記憶體120與視頻編碼器200和視頻解碼器300分開地示出,但應當理解,視頻編碼器200和視頻解碼器300還可以包括內部記憶體,以實現功能上相似或等效的目的。此外,記憶體106、120可以儲存編碼的視頻資料(例如,從視頻編碼器200輸出並輸入到視頻解碼器300)。在一些例子中,可以將記憶體106、120的一部分分配為一個或多個視頻緩衝器,例如,用於儲存原始的、解碼和/或編碼的視頻資料。
計算機可讀媒體110可以代表能夠將編碼的視頻資料從源設備102傳輸到目的地設備116的任何類型的媒體或設備。在一個例子中,計算機可讀媒體110代表用於使源設備102能夠實時地例如經由射頻網路或基於計算機的網路將編碼的視頻資料直接發送到目的地設備116的通訊媒體。輸出介面108可以根據諸如無線通訊協議之類的通訊標準,對包括編碼的視頻資料的傳輸訊號進行解調,並且輸入介面122可以對接收到的傳輸訊號進行解調。通訊媒體可以包括任何無線或有線通訊媒體,例如射頻(RF)頻譜或一條或多條物理傳輸線。通訊媒體可以形成諸如區域網、廣域網或全球網路(例如,網際網路)的基於分組的網路的一部分。通訊媒體可以包括路由器、交換機、基站或者有助於從源設備102到目的地設備116的通訊的任何其它設備。
在一些例子中,源設備102可以將編碼的資料從輸出介面108輸出到儲存設備112。類似地,目的地設備116可以經由輸入介面122,從儲存設備112存取編碼的資料。儲存設備112可以包括多種分布式或本地存取的資料儲存媒體(例如,硬碟驅動器、藍光光碟、DVD、CD-ROM、閃存、易失性或非易失性記憶體)或者用於儲存編碼的視頻資料的任何其它適當的數位儲存媒體中的任何一種。
在一些例子中,源設備102可以將編碼的視頻資料輸出到檔案伺服器114或者可以儲存源設備102所生成的編碼的視頻資料的另一個中間儲存設備。目的地設備116可以經由流傳輸或下載,從檔案伺服器114存取所儲存的視頻資料。
檔案伺服器114可以是能夠儲存編碼的視頻資料並將該編碼的視頻資料發送到目的地設備116的任何類型的伺服器設備。檔案伺服器114可以代表網路伺服器(例如,用於網站)、被配置為提供檔案傳輸協議服務(例如,檔案傳輸協議(FTP)或單向傳輸檔案傳遞(FLUTE)協議)的伺服器、內容交付網路(CDN)設備、超文本傳輸協議(HTTP)伺服器、多媒體廣播多播服務(MBMS)或增強型MBMS(eMBMS)伺服器和/或網路附加儲存(NAS)設備。另外地或替代地,檔案伺服器114可以實現一種或多種HTTP流傳輸協議,例如基於HTTP的動態自適應流傳輸(DASH)、HTTP實時流傳輸(HLS)、實時流傳輸協議(RTSP)、HTTP動態流傳輸等等。
目的地設備116可以通過包括互連網連接的任何標準資料連接,從檔案伺服器114存取編碼的視頻資料。這可以包括適合於存取已儲存在檔案伺服器114上的編碼視頻資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,數位用戶線(DSL)、電纜數據機等等)或二者的組合。輸入介面122可以被配置為根據上面所討論的用於從檔案伺服器114中獲取或接收媒體資料的各種協議中的任何一種或多種、或者用於獲取媒體資料的其它這種協議來操作。
輸出介面108和輸入介面122可以代表無線發射器/接收器、數據機、有線網路組件(例如,以太網卡)、根據各種IEEE 802.11標準中的任何一種進行操作的無線通訊組件、或者其它物理組件。在其中輸出介面108和輸入介面122包括無線組件的例子中,輸出介面108和輸入介面122可以被配置為根據諸如4G、4G-LTE(長期演進)、高級LTE、5G等等之類的蜂窩通訊標準,來傳輸諸如編碼的視頻資料之類的資料。在輸出介面108包括無線發射器的一些例子中,輸出介面108和輸入介面122可以被配置為根據其它無線標準(例如,IEEE 802.11規範、IEEE 802.15規範(例如,ZigBee™)、Bluetooth™標準等等),來傳輸諸如編碼的視頻資料之類的資料。在一些例子中,源設備102和/或目的地設備116可以包括各自的片上系統(SoC)設備。例如,源設備102可以包括SoC設備以執行歸屬於視頻編碼器200和/或輸出介面108的功能,而目的地設備116可以包括SoC設備以執行歸屬於視頻解碼器300和/或輸入介面122的功能。
本公開內容的技術可以應用於支持各種多媒體應用中的任何一種的視頻編碼,這些多媒體應用諸如為空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路流視頻傳輸(如,基於HTTP的動態自適應流媒體(DASH)、編碼到資料儲存媒體上的數位視頻),對儲存在資料儲存媒體上的數位視頻的解碼、或者其它應用。
目的地設備116的輸入介面122從計算機可讀媒體110(例如,通訊媒體、儲存設備112、檔案伺服器114等等)接收編碼的視頻位元流。編碼的視頻位元流可以包括由視頻編碼器200定義的而且由視頻解碼器300使用的信令資訊,例如,具有描述視頻塊或其它譯碼單元(例如,片段、圖片、圖片組、序列等等)的特性和處理的值的語法元素。顯示設備118向用戶顯示經解碼的視頻資料的解碼圖片。顯示設備118可以代表多種顯示設備中的任何一種,例如陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器、或者另一種類型的顯示設備。
雖然沒有在圖1中示出,但在一些例子中,視頻編碼器200和視頻解碼器300可以分別與音頻編碼器和/或音頻解碼器整合在一起,並且可以包括適當的MUX-DEMUX單元或者其它硬體和/或軟體,以處理包括共同資料流中的音頻和視頻兩者的多工流。如果適用的話,MUX-DEMUX單元可以符合ITU H.223多路多工器協議或其它協議(例如,用戶資料報協議(UDP))。
視頻編碼器200和視頻解碼器300各自可以實現為多種適當的編碼器和/或解碼器電路中的任何一種,例如一個或多個微處理器、數位訊號處理器(DSP)、專用積體電路(ASIC)、現場可程式閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或者其任意組合。當部分地以軟體實現這些技術時,設備可以將用於軟體的指令儲存在適當的非臨時性計算機可讀媒體中,並使用一個或多個處理器以硬體方式執行這些指令以執行本公開內容的技術。視頻編碼器200和視頻解碼器300中的每一個可以被包括在一個或多個編碼器或解碼器中,編碼器或解碼器中的任何一個可以整合為相應設備中的組合編碼器/解碼器(CODEC)的一部分。包括視頻編碼器200和/或視頻解碼器300的設備可以包括積體電路、微處理器和/或無線通訊設備(例如,蜂窩電話)。
視頻編碼器200和視頻解碼器300可以根據諸如ITU-T H.265之類的視頻編碼標準(也稱為高效視頻編碼(HEVC))或者其擴展(例如,多視圖和/或可擴展的視頻編碼擴展)進行操作。替代地,視頻編碼器200和視頻解碼器300可以根據諸如ITU-T H.266(也稱為通用視頻編碼(VVC))之類的其它專有或工業標準來操作。在以下文獻中描述了VVC標準的近期草案:Bross, et al. 「Versatile Video Coding (Draft 8),」 ITU-T SG 16 WP 3和 ISO/IEC JTC 1/SC 29/WG 11的聯合視頻專家組 (JVET), 17th Meeting: Brussels, BE, 7–17 Jan. 2020, JVET-Q2001-vE(以下簡稱「VVC草案8」)。然而,本公開內容的技術並不限於任何特定的編碼標準。
通常,視頻編碼器200和視頻解碼器300可以執行圖片的基於塊的編碼。術語「塊」通常是指包括要處理的資料的結構(例如,在編碼和/或解碼過程中使用的編碼、解碼或其它方式)。例如,一個塊可以包括亮度和/或色度資料的樣本的二維矩陣。通常,視頻編碼器200和視頻解碼器300可以對以YUV(例如,Y、Cb、Cr)格式表示的視頻資料進行編碼。也就是說,不是對圖片的樣本的紅色、綠色和藍色(RGB)資料進行譯碼,而是視頻編碼器200和視頻解碼器300可以對亮度和色度分量進行譯碼,其中色度分量可以包括紅色和藍色色度分量。在一些例子中,視頻編碼器200在編碼之前,將接收到的RGB格式的資料轉換成YUV表示,而視頻解碼器300將YUV表示轉換成RGB格式。替代地,預處理和後處理單元(沒有示出)可以執行這些轉換。
本公開內容通常可以涉及圖片的譯碼(例如,編碼和解碼),以包括對圖片的資料進行編碼或解碼的過程。類似地,本公開內容可以涉及對圖片的塊的譯碼,以包括對這些塊的資料進行編碼或解碼的過程(例如,預測和/或殘餘編碼)。編碼的視頻位元流通常包括用於語法元素的一系列值,其中這些語法元素表示譯碼決策(例如,譯碼模式)以及將圖片劃分成塊。因此,對圖片或塊進行譯碼的提及,通常應當被理解為用於形成該圖片或塊的語法元素的譯碼值。
HEVC定義了各種塊,其包括譯碼單元(CU)、預測單元(PU)和轉換單元(TU)。根據HEVC,視頻譯碼器(例如,視頻編碼器200)根據四叉樹結構,將譯碼樹單元(CTU)劃分為CU。也就是說,視頻譯碼器將CTU和CU劃分為四個相等的、不重疊的正方形,並且四叉樹的每個節點具有零個或四個子節點。沒有子節點的節點可以稱為「葉節點」,並且這種葉節點的CU可以包括一個或多個PU和/或一個或多個TU。視頻譯碼器可以進一步分割PU和TU。例如,在HEVC中,殘餘四叉樹(RQT)表示TU的劃分。在HEVC中,PU表示幀間預測資料,而TU表示殘差資料。幀內預測的CU包括幀內預測資訊(例如,幀內模式指示)。
再舉一個例子,視頻編碼器200和視頻解碼器300可以被配置為根據VVC進行操作。根據VVC,視頻譯碼器(例如,視頻編碼器200)將圖片劃分為多個譯碼樹單元(CTU)。視頻編碼器200可以根據諸如四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構之類的樹結構,對CTU進行劃分。QTBT結構消除了多個分區類型的概念,例如HEVC的CU、PU和TU之間的分隔。QTBT結構包括兩個層級:根據四叉樹劃分而劃分的第一層級、根據二叉樹劃分而劃分的第二層級。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於譯碼單元(CU)。
在MTT劃分結構中,可以使用四叉樹(QT)分割、二叉樹(BT)分割和一種或多種類型的三叉樹(TT)(也稱為三叉型樹(TT))分割,對塊進行劃分。三叉樹或三叉型樹分割是將一個塊分割成三個子塊的劃分。在一些例子中,三叉樹或三叉型樹分割將一個塊劃分為三個子塊,而不穿過中心來劃分原始塊。MTT中的劃分類型(例如,QT、BT和TT)可以是對稱的,也可以是不對稱的。
在一些例子中,視頻編碼器200和視頻解碼器300可以使用單個QTBT或MTT結構來表示亮度和色度分量中的每一個,而在其它例子中,視頻編碼器200和視頻解碼器300可以使用兩個或更多QTBT或MTT結構,例如一個QTBT/MTT結構用於亮度分量,另一個QTBT/MTT結構用於兩個色度分量(或者兩個QTBT/MTT結構用於相應的色度分量)。
視頻編碼器200和視頻解碼器300可以被配置為使用每個HEVC的四叉樹劃分、QTBT劃分、MTT劃分或其它劃分結構。為了便於說明起見,相對於QTBT劃分給出了本公開內容的技術的描述。但是,應當理解的是,本公開內容的技術還可以應用於被配置為使用四叉樹劃分或其它類型的劃分的視頻譯碼器。
在一些例子中,CTU包括亮度樣本的譯碼樹塊(CTB)、具有三個樣本陣列的圖片的色度樣本的兩個對應的CTB、或單色圖片或者使用三個獨立的色彩平面和語法結構(用於對樣本進行譯碼)進行譯碼的圖片的樣本的CTB。CTB可以是某個N值的NxN樣本塊,使得組成元素到CTB的分割是一種分區。組成元素是來自以4:2:0、4:2:2或4:4:4的顏色格式組成圖片的三個陣列(亮度和兩個色度)之一的陣列或單個樣本,或者是以單色格式組成圖片的陣列中的該陣列或單個樣本。在一些例子中,譯碼塊是針對一些M和N值的樣本的MxN樣本塊,使得CTB到譯碼塊的分割是一種分區。
可以以各種方式,在圖片中對塊(例如,CTU或CU)進行分組。舉一個例子,磚塊(brick)可以指代圖片中特定瓦片(tile)內的某個矩形區域的CTU行。瓦片可以是圖片中的特定瓦片列和特定瓦片行內的CTU的矩形區域。瓦片列是指高度等於圖片的高度、並且具有(例如,諸如在圖片參數集中)由語法元素指定的寬度的矩形區域的CTU。瓦片行是指具有由語法元素指定的高度(例如,諸如在圖片參數集中給出的)、並且寬度等於圖片的寬度的矩形區域的CTU。
在一些例子中,可將一個瓦片劃分成多個磚塊,每個磚塊可以包括該瓦片內的一個或多個CTU行。沒有被劃分為多個磚塊的瓦片,也可以稱為磚塊。但是,作為瓦片的一個真實子集的磚塊不能稱為瓦片。
還可以將圖片中的磚塊排列在片段中。片段可以是圖片中能夠專門地被包含在單個網路抽象層(NAL)單元中的整數數量磚塊。在一些例子中,一個片段包括多個完整瓦片,或者僅包括一個瓦片的連續序列的磚塊。
本公開內容可以互換地使用「NxN」和「N乘N」來指代塊(例如,CU或其它視頻塊)的以垂直和水平維度的樣本尺寸,例如16x16樣本或16乘16樣本。通常,一個16x16 CU在垂直方向上將有16個樣本(y = 16),在水平方向上將有16個樣本(x = 16)。同樣地,一個NxN CU通常在垂直方向上具有N個樣本,在水平方向上具有N個樣本,其中N表示非負整數值。可以按行和列來排列CU中的樣本。此外,CU在水平方向上不必具有與垂直方向上相同數量的樣本。舉例來說,CU可以包含NxM個樣本,其中M不一定等於N。
視頻編碼器200對用於表示預測和/或殘差資訊以及其它資訊的CU的視頻資料進行編碼。預測資訊指示將如何預測CU,以便形成用於該CU的預測塊。殘差資訊通常表示在編碼之前的CU的樣本與預測塊之間的逐樣本差異。
為了預測CU,視頻編碼器200通常可以通過幀間預測或幀內預測來形成用於CU的預測塊。幀間預測通常指代從先前編碼的圖片的資料中預測CU,而幀內預測通常指代從同一圖片的先前編碼的資料中預測CU。為了執行幀間預測,視頻編碼器200可以使用一個或多個運動向量來產生預測塊。視頻編碼器200通常可以例如在CU與參考塊之間的差異方面,執行運動搜索以識別與CU緊密匹配的參考塊。視頻編碼器200可以使用絕對差之和(SAD)、平方差之和(SSD)、平均絕對差(MAD)、均方差(MSD)或其它此類差值計算來計算差值度量,以確定參考塊是否緊密匹配當前CU。在一些例子中,視頻編碼器200可以使用單向預測或雙向預測來預測當前CU。
VVC的一些例子還提供仿射運動補償模式,其可以被認為是幀間預測模式。在仿射運動補償模式中,視頻編碼器200可以確定表示非平移運動的兩個或更多運動向量,例如縮小或放大、旋轉、透視運動或其它不規則運動類型。
為了執行幀內預測,視頻編碼器200可以選擇幀內預測模式來生成預測塊。VVC的某些例子提供了67種幀內預測模式,其包括各種定向模式以及平面模式和DC模式。通常,視頻編碼器200選擇幀內預測模式,該幀內預測模式描述了相對於當前塊(例如,CU的塊)的相鄰樣本,從相鄰樣本中預測當前塊的樣本。假設視頻編碼器200以光柵掃描順序(從左到右、從上到下)對CTU和CU進行譯碼,則這些樣本通常可以在與當前塊相同的圖片中的當前塊的上方、左上方或左側。
視頻編碼器200對表示當前塊的預測模式的資料進行編碼。舉例來說,對於幀間預測模式,視頻編碼器200可以對表示使用各種可用幀間預測模式中的哪一個模式的資料、以及對應模式的運動資訊進行編碼。對於單向或雙向幀間預測,例如,視頻編碼器200可以使用高級運動向量預測(AMVP)或合併模式,來對運動向量進行編碼。視頻編碼器200可以使用類似模式來對仿射運動補償模式的運動向量進行編碼。
在諸如塊的幀內預測或幀間預測之類的預測之後,視頻編碼器200可以計算該塊的殘差資料。殘差資料(例如,殘差塊)表示該塊與使用相應預測模式形成的針對該塊的預測塊之間的逐樣本差異。視頻編碼器200可以向殘差塊應用一個或多個轉換,以在轉換域而非樣本域中產生經轉換的資料。舉例來說,視頻編碼器200可以向殘差視頻資料應用離散餘弦轉換(DCT)、整數轉換、小波轉換或概念上類似的轉換。另外,視頻編碼器200可以在第一轉換之後應用次級轉換,例如依賴於模式的不可分離次級轉換(MDNSST)、依賴於訊號的轉換、Karhunen-Loeve轉換(KLT)等等。視頻編碼器200在應用所述一個或多個轉換之後,產生轉換係數。
如上所述,在進行任何轉換以產生轉換係數之後,視頻編碼器200可以執行轉換係數的量化。量化通常指代這樣的過程:對轉換係數進行量化,以可能地減少用於表示這些轉換係數的資料量,從而提供進一步壓縮。通過執行量化過程,視頻編碼器200可以減小與一些或所有這些轉換係數相關聯的位元深度。例如,視頻編碼器200可以在量化期間,將n位元值捨入為m位元值,其中n大於m。在一些例子中,為了執行量化,視頻編碼器200可以執行待量化的值的按位元右移。
在量化之後,視頻編碼器200可以掃描轉換係數,從而根據包括量化的轉換係數的二維矩陣產生一維向量。可以將該掃描設計為將較高能量(因此頻率較低)的轉換係數放在向量的前面,並將較低能量(因此頻率較高)的轉換係數放在向量的後面。在一些例子中,視頻編碼器200可以利用預定義的掃描順序來掃描經量化的轉換係數,以產生經串行化的向量,然後對向量的經量化的轉換係數進行熵編碼。在其它例子中,視頻編碼器200可以執行自適應掃描。在掃描量化的轉換係數以形成一維向量之後,視頻編碼器200可以例如根據上下文自適應二進制算術編碼(CABAC)對一維向量進行熵編碼。視頻編碼器200還可以對語法元素的值進行熵編碼,該語法元素描述與編碼的視頻資料相關聯的元資料,以供視頻解碼器300在對視頻資料進行解碼時使用。
為了執行CABAC,視頻編碼器200可以將上下文模型內的上下文分配給要發送的符號。例如,該上下文可以涉及符號的相鄰值是否為零值。機率確定可以基於分配給符號的上下文。
視頻編碼器200還可以在例如圖片頭、塊報頭、片段頭或其它語法資料(例如,序列參數集(SPS)、圖片參數集(PPS)或視頻參數集(VPS))中,生成針對視頻解碼器300的語法資料(例如,基於塊的語法資料、基於圖片的語法資料、以及基於序列的語法資料)。視頻解碼器300可以類似地對此類語法資料進行解碼,以確定如何解碼對應的視頻資料。
用此方式,視頻編碼器200可以生成包括編碼的視頻資料的位元流,例如,用於描述將圖片劃分成塊(例如,CU)的語法元素、以及這些塊的預測和/或殘差資訊的語法元素。最終,視頻解碼器300可以接收位元流,並對編碼的視頻資料進行解碼。
通常,視頻解碼器300執行與視頻編碼器200所執行的過程互易的過程,以解碼位元流的編碼的視頻資料。舉例來說,視頻解碼器300可以以與視頻編碼器200的CABAC編碼過程實質上相似的方式(儘管互易),使用CABAC,對位元流的語法元素的值進行解碼。語法元素可以定義將圖片的資訊劃分為CTU、以及對圖片進行劃分的分割資訊定義為CTU,並根據相應的分割結構(例如,QTBT結構),對每個CTU進行劃分。這些語法元素可以進一步規定用於視頻資料的塊(例如,CU)的預測和殘差資訊。
可以通過例如量化的轉換係數來表示殘差資訊。視頻解碼器300可以對塊的量化的轉換係數進行逆量化和逆轉換,以再現該塊的殘差塊。視頻解碼器300使用以訊號通知的預測模式(幀內或幀間預測)和相關的預測資訊(例如,用於幀間預測的運動資訊)來形成用於該塊的預測塊。然後,視頻解碼器300可以組合預測塊和殘差塊(在逐個樣本的基礎上)以再現原始塊。視頻解碼器300可以執行其它的處理,例如執行解塊處理以減少沿塊的邊界的視覺偽像。
VVC草案8中的信令可能存在某些問題。例如,對於APS類型,在VVC草案8中,某些工具結合諸如自適應環路濾波器(ALF)之類的自適應參數集(APS)一起使用。當禁用這些工具時,例如在序列參數集(SPS)中,在位元流中仍然可能存在相應的APS類型。但是,在位元流中具有相應的APS類型是多餘的。
再舉一個例子,對於ALF_APS中的CCALF濾波器,在VVC草案8中,在ALF_APS中用訊號通知交叉分量自適應環路濾波器(CCALF)係數。但是,當禁用CCALF時,在位元流中仍然可能存在CCALF濾波器係數。在禁用CCALF時,在位元流中具有CCALF濾波器係數不是必需的,並且可能由於不必要的信令而影響頻寬效率。
再舉一個例子,對於用於單色的色度解塊濾波器參數信令,在VVC草案8中,針對所有色度格式都用訊號通知色度解塊濾波器參數。但是,這些參數對於單色內容是多餘的(例如,不必要的)。
再舉一個例子,對於LMCS_APS中的LMCS色度縮放參數信令,在VVC草案8中,針對所有色度格式都用訊號通知LMCS色度縮放參數。但是,這些參數對於單色內容是多餘的(例如,不必要的)。
再舉一個例子,對於PPS(圖片參數集)、APS(自適應參數集)和PPS之間的依賴性,在VVC草案8中,根據SPS(序列參數集)(例如,SPS中的色度格式和位元深度),對APS和PPS中的語法元素具有約束。但是,在解析APS和PPS時,SPS可能不可用,因此色度格式和位元深度不可用。在這種情況下,可能存在確保APS和PPS符合對APS和PPS的約束的問題。
根據本公開內容的技術,視頻編碼器200和視頻解碼器300可以被配置為解決上述問題中的一個或多個。這些示例技術不應被解釋為限於解決上述問題。可以單獨地使用這些示例技術,也可以以任何組合方式使用這些示例技術。
在一些例子中,視頻解碼器300可以被配置為:基於對一個或多個塊禁用了ALF,跳過對於指示用於一個或多個塊的自適應環路濾波(ALF)的自適應參數集(APS)類型的資訊的解析,並重構所述一個或多個塊。
在一些例子中,視頻解碼器300可以被配置為:基於對一個或多個塊禁用了CCALF,跳過對於指示用於一個或多個塊的交叉分量自適應環路濾波器(CCALF)的資訊的解析,並重構所述一個或多個塊。
在一些例子中,視頻解碼器300可以被配置為:基於用於塊的色度陣列類型,來確定是否對於指示是否用訊號通知色度濾波器的語法元素進行解析,並重構該塊。
在一些例子中,視頻解碼器300可以被配置為:基於色度陣列類型,確定是否對指示亮度映射與色度縮放(LMCS)的資訊進行解析,並基於是否解析指示LMCS的資訊來執行LMCS。
在一些例子中,視頻解碼器300可以被配置為:接收用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來解析LMCS資訊。
在一些例子中,視頻編碼器200可以被配置為:確定對於一個或多個塊禁用了自適應環路濾波(ALF),基於對於一個或多個塊禁用了ALF,避免將自適應參數集(APS)類型設置為等於與ALF相對應的APS類型,並且用訊號通知用於指示對一個或多個塊禁用了ALF的資訊。
在一些例子中,視頻編碼器200可以被配置為:確定對於一個或多個塊,禁用了交叉分量自適應環路濾波器(CCALF),基於對於一個或多個塊禁用了CCALF,避免用訊號通知指示用於一個或多個塊的CCALF的資訊,並且用訊號通知用於指示對一個或多個塊禁用了CCALF的資訊。
在一些例子中,視頻編碼器200可以被配置為:基於用於塊的色度陣列類型,來確定是否用訊號通知用於指示是否用訊號通知色度濾波器的語法元素。
在一些例子中,視頻編碼器200可以被配置為:基於色度陣列類型,來確定是否用訊號通知用於指示亮度映射與色度縮放(LMCS)的資訊,並基於該確定,來用訊號通知用於指示LMCS的資訊。
在一些例子中,視頻編碼器200可以被配置為:用訊號通知用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來用訊號通知LMCS資訊。
本公開內容通常涉及「用訊號通知」某些資訊(例如,語法元素)。術語「用訊號通知」通常可以指代傳送用於語法元素的值和/或用於對編碼的視頻資料進行解碼的其它資料。也就是說,視頻編碼器200可以在位元流中用訊號通知用於語法元素的值。通常,用訊號通知是指在位元流中生成值。如上所述,源設備102可以基本實時地或者不實時地,將位元流傳輸到目的地設備116,例如在將語法元素儲存到儲存設備112以便稍後由目的地設備116檢索時,可能發生這種情形。
如上所述,在VVC草案8中,針對所有色度格式都用訊號通知LMCS色度縮放參數。但是,這些參數對於單色內容是多餘的。例如,視頻編碼器200可以對語法元素(稱為lmcs_delta_abs_crs)進行編碼,該語法元素指示用於確定用於LMCS中的色度縮放的縮放參數的值(稱為lmcsDeltaCrs)。例如,lmcs_delta_abs_crs指定變量lmcsDeltaCrs的絕對碼字值。lmcs_delta_abs_crs的值應當在0到7之間(包括0和7)。當不存在時,則推斷lmcs_delta_abs_crs等於0。
視頻解碼器300可以將位元流中的語法元素解碼(例如,解析lmcs_delta_abs_crs)為一個值(例如,lmcsDeltaCrs)。例如,lmcsDeltaCrs等於(1 – 2 * lmcs_delta_sign_crs_flag) * lmcs_delta_abs_crs。除了lmcs_delta_abs_crs(例如,當lmcs_delta_abs_crs大於0時),視頻編碼器200還可以用訊號通知lmcs_delta_sign_crs_flag。lmcs_delta_sign_crs_flag可以指示lmcsDeltaCrs是正數還是負數。例如,如果lmcs_delta_sign_crs_flag為1,則(1 – 2 * lmcs_delta_sign_crs_flag)等於-1,lmcsDeltaCrs為負數(例如,-1* lmcs_delta_abs_crs)。如果lmcs_delta_sign_crs_flag為0,則(1 – 2 * lmcs_delta_sign_crs_flag)等於1,lmcsDeltaCrs為正數(例如,1* lmcs_delta_abs_crs)。
利用lmcsDeltaCr,視頻解碼器300可以確定用於LMCS中的色度縮放的縮放參數。例如,視頻解碼器300可以執行以下偽代碼的操作: if( lmcsCW[ i ]  = =  0 ) ChromaScaleCoeff[ i ] = ( 1  <<  11 ) else ChromaScaleCoeff[ i ] = OrgCW * ( 1  <<  11 ) / ( lmcsCW[ i ] + lmcsDeltaCrs )
在以上的偽代碼中,可以將ChromaScaleCoeff視作為是用於色度縮放的縮放參數。用此方式,視頻解碼器300可以確定用於LMCS的色度縮放的縮放參數。
但是,可能存在啟用了LMCS的情況,但是不需要色度縮放。例如,對於諸如單色(也稱為4:0:0格式)之類的某些顏色格式,可能啟用了LMCS,但是由於不存在色度分量,因此可能不需要色度縮放。對於單色,由於沒有顏色分量,因此可能僅需要亮度分量。
在某些技術中(例如,在VVC草案8中),即使與色度相關的語法元素(例如,色度分量)不存在(例如,在單色格式下),視頻編碼器200也可以用訊號通知,並且視頻解碼器300對lmcs_delta_abs_crs語法元素進行解析。即使不存在色度分量(例如,與色度相關的語法元素),包括lmcs_delta_abs_crs語法元素也會導致不必要的信令和低效率的頻寬利用。
本公開內容描述了用於選擇性地用訊號通知lmcs_delta_abs_crs的示例技術。lmcs_delta_abs_crs語法元素指示用於確定用於LMCS中色度縮放的縮放參數(例如,ChromaScaleCoeff)的值(例如lmcsDeltaCrs)。舉例來說,視頻編碼器200可以確定是否存在針對LMCS的與色度相關的語法元素。如果存在與色度相關的語法元素,則視頻編碼器200可以對lmcs_delta_abs_crs語法元素進行編碼(例如,包括用訊號通知)。然而,如果不存在針對LMCS的與色度相關的語法元素,則視頻編碼器200可以不對lmcs_delta_abs_crs語法元素進行編碼(例如,跳過用訊號通知)。
在一個或多個例子中,視頻編碼器200還可以用訊號通知用於指示是否存在用於LMCS的色度分量(例如,是否存在用於LMCS的與色度相關的語法元素)的標誌。視頻解碼器300可以接收該標誌,並確定是否存在用於LMCS的色度分量(例如,是否存在用於LMCS的與色度相關的語法元素)。也就是說,視頻解碼器300可以基於該標誌,來確定是否存在用於LMCS的色度分量。
如果視頻解碼器300確定存在用於LMCS的色度分量(例如,存在與色度相關的語法元素)(例如,基於由視頻編碼器200用訊號通知的標誌),則當存在針對LMCS的與色度相關的語法元素時,視頻解碼器300可以解碼(例如,解析)該語法元素(例如,lmcs_delta_abs_crs)。然而,如果視頻解碼器300確定不存在針對LMCS的與色度相關的語法元素(例如,基於由視頻編碼器200用訊號通知的標誌),則當不存在針對LMCS的與色度相關的語法元素時,視頻解碼器300可以跳過lmcs_delta_abs_crs的譯碼(例如,跳過解析)。
相應地,視頻譯碼器(例如,視頻編碼器200或視頻解碼器300)可以確定對於譯碼單元(CU)存在用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素。在視頻譯碼器是視頻編碼器200的例子中,視頻編碼器200可以基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。在視頻譯碼器是視頻解碼器300的例子中,視頻解碼器300可以接收用於指示存在與色度相關的語法元素的標誌,並且可以基於該標誌來確定存在與色度相關的語法元素。
當對於CU存在用於LMCS的與色度相關的語法元素時,視頻譯碼器可以對該語法元素進行譯碼(例如,編碼或解碼)。該語法元素指示用於確定用於LMCS中的色度縮放的縮放參數的值。例如,該語法元素可以是lmcs_delta_abs_crs。lmcs_delta_abs_crs語法指示用於lmcsDeltaCrs的值(例如,lmcs_delta_abs_crs的值等於lmcsDeltaCrs的絕對值)。換句話說,該語法元素(例如,lmcs_delta_abs_crs)指定用於確定用於色度縮放的縮放參數(例如,ChromaScaleCoeff)的變量(例如,lmcsDeltaCrs)的絕對碼字值。因此,確定縮放參數是多個步驟,首先包括確定lmcs_delta_abs_crs,從中確定lmcsDeltaCrs,然後根據lmcsDeltaCrs確定ChromaScaleCoeff。
在視頻譯碼器是視頻編碼器200的例子中,僅當與色度相關的語法元素存在時,視頻編碼器200才可以用訊號通知該語法元素(例如,lmcs_delta_abs_crs)。在視頻譯碼器是視頻解碼器300的例子中,視頻譯碼器300可以基於確定存在與色度相關的語法元素(例如,基於指示存在色度分量的標誌),來解析語法元素(例如,lmcs_delta_abs_crs)。
視頻譯碼器可以利用自適應參數集(APS)中的LMCS語法結構(例如,lmcs_data()),對語法元素(例如,lmcs_delta_abs_crs)進行譯碼。同樣,如上所述,視頻編碼器200可以用訊號通知,並且視頻解碼器300可以對用於指示是否存在與色度相關的語法元素的標誌進行解析。在一個或多個例子中,該標誌可以被稱為lmcs_cs_present_flag(也被稱為aps_chroma_present_flag)。也可以在APS中,用訊號通知和解析lmcs_cs_present_flag。
視頻譯碼器可以基於用於色度縮放的縮放參數(例如,ChromaScaleCoeff),對CU的色度塊進行譯碼。在視頻譯碼器是視頻編碼器200的例子中,視頻編碼器200可以確定色度預測塊,並從色度塊中減去色度預測塊以生成殘差塊。視頻編碼器200可以對殘差塊進行縮放,以基於縮放參數(例如,用於LMCS)來生成經縮放的殘差塊,並用訊號通知用於指示經縮放的殘差塊的資訊。在視頻譯碼器是視頻解碼器300的例子中,視頻解碼器300可以基於縮放參數,對經縮放的殘差色度塊進行逆縮放以生成殘差色度塊。視頻解碼器300可以確定色度預測塊,並將殘差色度塊添加到色度預測塊以重構色度塊。
在CU(例如,第一CU)的以上示例中,可以存在與色度相關的語法元素。但是,對於第二CU,有可能不存在與色度相關的語法元素。舉例來說,視頻譯碼器可以確定對於第二CU,不存在用於LMCS的與色度相關的語法元素。例如,對於第二CU,視頻編碼器200可以用訊號通知,並且視頻解碼器300可以解析用於指示不存在針對第二CU的用於LMCS的與色度相關的語法元素的標誌(例如,lmcs_cs_present_flag(也稱為aps_chroma_present_flag))。
在這些例子中,當對於第二CU,不存在用於LMCS的與色度相關的語法元素時,視頻譯碼器可以跳過語法元素的譯碼。舉例來說,視頻編碼器200可以避免用訊號通知(例如,跳過用訊號通知)lmcs_delta_abs_crs語法元素。視頻解碼器300可以避免解析(例如,跳過解析)lmcs_delta_abs_crs語法元素。也就是說,當lmcs_cs_present_flag指示不存在與色度相關的語法元素時,視頻解碼器300可以確定通常用於lmcs_delta_abs_crs語法元素的位元屬於另一個語法元素。
如上所述,存在的與色度相關的語法元素可以指示存在的色度分量。類似地,不存在與色度相關的語法元素可以指示不存在色度分量。
本公開內容還描述了視頻編碼器200在形成相符的位元流中的約束的例子。例如,可以將lmcs_delta_abs_crs語法元素視作為第一語法元素。在一些例子中,視頻編碼器200可以確定第二語法元素的值,以指定用於表示用於LMCS的第三語法元素的位元數,在用於CU的APS中用訊號通知該第二語法元素的值。在一些例子中,將用於第二語法元素的值限制在0到基於位元深度的值的範圍內。第二語法元素的一個例子是lmcs_delta_cw_prec_minus1,而第三語法元素的一個例子是lmcs_delta_abs_cw[i]。
本公開內容還描述了諸如交叉分量ALF(CCALF)之類的自適應環路濾波(ALF)的例子。例如,視頻編碼器200可以確定序列參數集(SPS)指示CCALF被禁用。在這樣的例子中,當SPS指示CCALF被禁用時,視頻編碼器200可以在APS中設置至少一個標誌,以指定不用訊號通知用於色度分量的交叉分量濾波器。也就是說,當在SPS中禁用CCALF時,視頻編碼器200可以確保在APS中用於指定是否用訊號通知交叉分量濾波器的標誌指示了未用訊號通知交叉分量濾波器。
下面描述各種示例性技術,以及對VVC草案8的更改。在下文中,相對於VVC草案8的添加部分,表示為<ADD> ... </ADD>之間的文本,而被刪除部分表示為< DELETE >... </DELETE >之間的文本。
對於APS類型約束,當例如在SPS中禁用工具時,在位元流中可以不存在具有對應工具類型的APS。將示例性技術描述為以下語義。語法元素aps_params_type如表1中所指定的,指定在APS中攜帶的APS參數的類型。 Table 1 – APS參數類型碼和APS參數的類型
aps_params_type aps_params_type 名稱 APS 參數類型
0 ALF_APS ALF參數
1 LMCS_APS LMCS參數
2 SCALING_APS 縮放列表參數
3..7 保留 保留
<ADD>當sps_alf_enabled_flag等於0時,aps_params_type不應等於ALF_APS。當sps_lmcs_enabled_flag等於0時,aps_params_type不應等於LMCS_APS。當sps_scaling_list_enabled_flag等於0時,aps_params_type不應等於SCALING_APS。</ ADD>。可以將以上約束表示為位元流一致性約束。
對於ALF_APS中的CCALF濾波器約束,當例如在SPS中禁用CCALF時,在位元流中將不存在CCALF濾波器資訊(例如,VVC中的ALF_APS)。 將示例性技術描述為以下語義。
alf_data( ) { 描述符
  alf_luma_filter_signal_flag u(1)
  alf_chroma_filter_signal_flag u(1)
alf_cc_cb_filter_signal_flag u(1)
alf_cc_cr_filter_signal_flag u(1)
   if( alf_luma_filter_signal_flag ) {  
     alf_luma_clip_flag u(1)
  alf_luma_num_filters_signalled_minus1 ue(v)
      if( alf_luma_num_filters_signalled_minus1 > 0 )  
         for( filtIdx = 0; filtIdx < NumAlfFilters; filtIdx++ )  
           alf_luma_coeff_delta_idx [ filtIdx ] u(v)
      for( sfIdx = 0; sfIdx  <=  alf_luma_num_filters_signalled_minus1; sfIdx++ )  
         for( j = 0; j < 12; j++ ) {  
           alf_luma_coeff_abs [ sfIdx ][ j ] ue(v)
            if( alf_luma_coeff_abs[ sfIdx ][ j ] )  
             alf_luma_coeff_sign [ sfIdx ][ j ] u(1)
         }  
      if( alf_luma_clip_flag )  
         for( sfIdx = 0; sfIdx  <=  alf_luma_num_filters_signalled_minus1; sfIdx++ )  
            for( j = 0; j < 12; j++ )  
             alf_luma_clip_idx [ sfIdx ][ j ] u(2)
   }  
   if( alf_chroma_filter_signal_flag ) {  
     alf_chroma_clip_flag u(1)
     alf_chroma_num_alt_filters_minus1 ue(v)
      for( altIdx = 0; altIdx  <=  alf_chroma_num_alt_filters_minus1; altIdx++ ) {  
         for( j = 0; j < 6; j++ ) {  
           alf_chroma_coeff_abs [ altIdx ][ j ] ue(v)
            if( alf_chroma_coeff_abs[ altIdx ][ j ] > 0 )  
             alf_chroma_coeff_sign [ altIdx ][ j ] u(1)
         }  
         if( alf_chroma_clip_flag )  
            for( j = 0; j < 6; j++ )  
             alf_chroma_clip_idx [ altIdx ][ j ] u(2)
      }  
   }  
   if( alf_cc_cb_filter_signal_flag ) {  
     alf_cc_cb_filters_signalled_minus1 ue(v)
      for( k = 0; k < alf_cc_cb_filters_signalled_minus1 + 1; k++ ) {  
         for( j = 0; j < 7; j++ ) {  
alf_cc_cb_mapped_coeff_abs [ k ][ j ] u(3)
            if( alf_cc_cb_mapped_coeff_abs[ k ][ j ] )  
alf_cc_cb_coeff_sign [ k ][ j ] u(1)
         }  
      }  
   }  
   if( alf_cc_cr_filter_signal_flag ) {  
     alf_cc_cr_filters_signalled_minus1 ue(v)
      for( k = 0; k < alf_cc_cr_filters_signalled_minus1 + 1; k++ ) {  
         for( j = 0; j < 7; j++ ) {  
alf_cc_cr_mapped_coeff_abs [ k ][ j ] u(3)
            if( alf_cc_cr_mapped_coeff_abs[ k ][ j ] )  
alf_cc_cr_coeff_sign [ k ][ j ] u(1)
         }  
      }  
   }  
}  
對於語義約束:
alf_cc_cb_filter_signal_flag等於1,表示用訊號通知用於Cb顏色分量的交叉分量濾波器。alf_cc_cb_filter_signal_flag等於0,表示不用訊號通知用於Cb顏色分量的交叉分量濾波器。當<DELETE> ChromaArrayType </DELETE> <ADD>sps_ccalf_enabled_flag</ADD>等於0時,alf_cc_cb_filter_signal_flag應當等於0。
alf_cc_cr_filter_signal_flag等於1,表示用訊號通知用於Cr顏色分量的交叉分量濾波器。alf_cc_cr_filter_signal_flag等於0,指定不用訊號通知用於Cr顏色分量的交叉分量濾波器。當<DELETE>ChromaArrayType</DELETE> <ADD>sps_ccalf_enabled_flag</ADD>等於0時,alf_cc_cr_filter_signal_flag應當等於0。
在一些例子中,可能存在基於sps_ccalf_enabled_flag有條件地用訊號通知的實例。可以根據sps_ccalf_enabled_flag,有條件地用訊號通知CCALF濾波器。當sps_ccalf_enabled_flag為假時,則無需用訊號通知CCALF濾波器。在VVC草案8中,在這種情況下,在位元流中可能不存在alf_cc_cb/cr_filter_signal_flags,並在解碼器處推斷其為0。
alf_data( ) { 描述符
  alf_luma_filter_signal_flag u(1)
  alf_chroma_filter_signal_flag u(1)
<ADD>    if( sps_ccalf_enabled_flag ) { </ADD>  
alf_cc_cb_filter_signal_flag u(1)
alf_cc_cr_filter_signal_flag u(1)
}  
 
}  
alf_cc_cb_filter_signal_flag等於1,表示用訊號通知用於Cb顏色分量的交叉分量濾波器。alf_cc_cb_filter_signal_flag等於0,表示不用訊號通知用於Cb顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cb_filter_signal_flag不存在,則推斷其等於0。</ADD>
alf_cc_cr_filter_signal_flag等於1,表示用訊號通知用於Cr顏色分量的交叉分量濾波器。alf_cc_cr_filter_signal_flag等於0,表示不用訊號通知用於Cr顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cr_filter_signal_flag不存在,則推斷其等於0。</ADD>
在一些例子中,可能存在基於sps_ccalf_enabled_flag來有條件地用訊號通知。可以基於ChromaArrayType(例如,色度陣列類型)有條件地用訊號通知CCALF濾波器。如果sps_ccalf_enabled_flag為假,則可能無需用訊號通知CCALF濾波器。在VVC草案8中,在這種情況下,在位元流中可能不存在alf_cc_cb / cr_filter_signal_flags,並在解碼器處推斷其為0。
alf_data( ) { 描述符
  alf_luma_filter_signal_flag u(1)
  alf_chroma_filter_signal_flag u(1)
<ADD>    if( ChromaArrayType ) {</ADD>  
alf_cc_cb_filter_signal_flag u(1)
alf_cc_cr_filter_signal_flag u(1)
}  
 
}  
alf_cc_cb_filter_signal_flag等於1,表示用訊號通知用於Cb顏色分量的交叉分量濾波器。alf_cc_cb_filter_signal_flag等於0,表示不用訊號通知用於Cb顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cb_filter_signal_flag不存在,則推斷其等於0。</ADD>
alf_cc_cr_filter_signal_flag等於1,表示用訊號通知用於Cr顏色分量的交叉分量濾波器。alf_cc_cr_filter_signal_flag等於0,表示不用訊號通知用於Cr顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cr_filter_signal_flag不存在,則推斷其等於0。</ADD>
在一些例子中,有條件地用訊號通知可以是基於sps_ccalf_enabled_flag和ChromaArrayType。可以基於sps_ccalf_enabled_flag和ChromaArrayType,有條件地用訊號通知CCALF濾波器。當sps_ccalf_enabled_flag為假或者ChromaArrayType為假時,可能無需用訊號通知CCALF濾波器。在VVC草案8中,在這種情況下,在位元流中可能不存在alf_cc_cb/cr_filter_signal_flags,並在解碼器處推斷其為0。
alf_data( ) { 描述符
  alf_luma_filter_signal_flag u(1)
  alf_chroma_filter_signal_flag u(1)
<ADD>    if( ChromaArrayType || sps_ccalf_enabled_flag) {</ADD>  
alf_cc_cb_filter_signal_flag u(1)
alf_cc_cr_filter_signal_flag u(1)
}  
 
}  
alf_cc_cb_filter_signal_flag等於1,表示用訊號通知用於Cb顏色分量的交叉分量濾波器。alf_cc_cb_filter_signal_flag等於0,表示不用訊號通知用於Cb顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cb_filter_signal_flag不存在,則推斷其等於0。</ADD>
alf_cc_cr_filter_signal_flag等於1,表示用訊號通知用於Cr顏色分量的交叉分量濾波器。alf_cc_cr_filter_signal_flag等於0,表示不用訊號通知用於Cr顏色分量的交叉分量濾波器。<ADD>如果alf_cc_cr_filter_signal_flag不存在,則推斷其等於0。</ADD>
在一些例子中,可以基於ChromaArrayType有條件地用訊號通知alf_chroma_filters。另外地或替代地,可以基於ChromaArrayType有條件地用訊號通知色度ALF。當ChromaArrayType為假時,可能無需用訊號通知色度ALF濾波器。在VVC草案8中,在這種情況下,在位元流中可能不存在alf_chroma_filter_signal_flags,並在解碼器處推斷其為0。
alf_data( ) { 描述符
  alf_luma_filter_signal_flag u(1)
<ADD>    if( ChromaArrayType ) </ADD>  
    alf_chroma_filter_signal_flag u(1)
 
}  
alf_chroma_filter_signal_flag等於1,表示用訊號通知色度濾波器。alf_chroma_filter_signal_flag等於0,表示不用訊號通知色度濾波器。<ADD>如果不存在alf_chroma_filter_signal_flag,則推斷其等於0。</ADD>
在一些例子中,可能存在用於單色的色度解塊濾波器參數信令。可以添加用於對單色內容的Cb和Cr的tc和beta偏移進行解塊操作的約束。可以將以下技術中的一種或多種(包括任何一種)應用於PPS(圖片參數集)、PH(圖片頭)和/或SH(片段頭)。
對於語義約束,在一個例子中,對於單色內容,可以添加語義約束,以便將用於Cb和Cr的tc和beta偏移進行解塊操作的值約束為0。
pps_cb_beta_offset_div2和pps_cb_tc_offset_div2指定用於β和tC的預設解塊參數偏移(除以2),其應用於引用PPS的片段的Cb分量,除非圖片頭或引用PPS的片段的片段頭中存在的解塊參數偏移覆蓋了預設的解塊參數偏移。pps_cb_beta_offset_div2和pps_cb_tc_offset_div2的值都應當在-12到12的範圍內(包括-12和12)。如果不存在<ADD>或者ChromaArrayType等於0 </ADD>,則將pps_cb_beta_offset_div2和pps_cb_tc_offset_div2的值均推斷為等於0。
pps_cr_beta_offset_div2和pps_cr_tc_offset_div2指定用於β和tC的預設解塊參數偏移(除以2),其應用於引用PPS的片段的Cr分量,除非圖片頭或引用PPS的片段的片段頭中存在的解塊參數偏移覆蓋了預設的解塊參數偏移。pps_cr_beta_offset_div2和pps_cr_tc_offset_div2的值都應當在-12到12的範圍內(包括-12和12)。如果不存在<ADD>或者ChromaArrayType等於0 </ADD>,則將pps_cr_beta_offset_div2和pps_cr_tc_offset_div2的值均推斷為等於0。
對於使用單色內容的一些例子,下文描述了有條件地用訊號通知。對於單色內容,可能在位元流中不存在用於Cb和Cr分量的解塊tc和beta偏移。
本公開內容還描述了基於色度格式和標誌有條件地用訊號通知。可以基於某些用訊號通知的標誌,有條件地用訊號通知用於Cb和Cr的解塊tc和beta偏移。例如,<ADD> pps_chroma_tool_offsets_present_flag </ADD>可以重用於色度解塊濾波器。替代地,可以引入新的標誌而不是重用pps_chroma_tool_offsets_present_flag來指示色度解塊偏移的存在。例如,可以在PPS和/或圖片和/或片段頭中用訊號通知該標誌。 圖片參數集:
      if( !pps_deblocking_filter_disabled_flag ) {  
        pps_beta_offset_div2 se(v)
        pps_tc_offset_div2 se(v)
      <ADD> if( ChromaArrayType != 0 || pps_chroma_tool_offsets_present_flag ) { </ADD>  
           pps_cb_beta_offset_div2 se(v)
           pps_cb_tc_offset_div2 se(v)
           pps_cr_beta_offset_div2 se(v)
           pps_cr_tc_offset_div2 se(v)
         }  
      }  
圖片頭:
         if( !ph_deblocking_filter_disabled_flag ) {  
           ph_beta_offset_div2 se(v)
           ph_tc_offset_div2 se(v)
            <ADD> if( ChromaArrayType != 0 || pps_chroma_tool_offsets_present_flag ) { </ADD>  
             ph_cb_beta_offset_div2 se(v)
             ph_cb_tc_offset_div2 se(v)
             ph_cr_beta_offset_div2 se(v)
             ph_cr_tc_offset_div2 se(v)
            }  
         }  
片段頭:
      if( !slice_deblocking_filter_disabled_flag ) {  
        slice_beta_offset_div2 se(v)
        slice_tc_offset_div2 se(v)
         <ADD> if( ChromaArrayType != 0 || pps_chroma_tool_offsets_present_flag ) { </ADD>  
           slice_cb_beta_offset_div2 se(v)
           slice_cb_tc_offset_div2 se(v)
           slice_cr_beta_offset_div2 se(v)
           slice_cr_tc_offset_div2 se(v)
         }  
      }  
可以如下更新pps_chroma_tool_offsets_present_flag的語義,以反映PH和SH中的用法。
pps_chroma_tool_offsets_present_flag等於1表示在PPS RBSP語法結構中存在與色度工具偏移相關的語法元素,<ADD>並且在引用PPS的PH和SH中存在相關的語法元素</ADD> 。pps_chroma_tool_offsets_present_flag等於0表示在PPS RBSP、<ADD> PH和SH </ADD>語法結構中不存在與色度工具偏移相關的語法元素。當ChromaArrayType等於0時,pps_chroma_tool_offsets_present_flag的值應當等於0。
對於LMCS_APS中的亮度映射與色度縮放(LMCS)色度縮放參數信令,可能存在一些變化。下面描述lmcs_delta_cw_prec_minus1信令的修改。為了使LMCS_APS信令與SPS解耦並且避免lmcs_delta_cw_prec_minus1在視頻解碼器300處為無限值,可以用諸如u(4)之類的固定長度編碼來用訊號通知lmcs_delta_cw_prec_minus1。
lmcs_data( ) { 描述符
lmcs_min_bin_idx ue(v)
  lmcs_delta_max_bin_idx ue(v)
  lmcs_delta_cw_prec_minus1 <ADD> u(4) </ADD>
   for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {  
     lmcs_delta_abs_cw [ i ] u(v)
      if( lmcs_delta_abs_cw[ i ] > 0 )  
        lmcs_delta_sign_cw_flag [ i ] u(1)
   }  
  lmcs_delta_abs_crs u(3)
   if( lmcs_delta_abs_crs > 0 )  
     lmcs_delta_sign_crs_flag u(1)
}  
可以通過添加一些語義約束,來執行有條件地用訊號通知色度縮放。 例如,lmcs_delta_abs_crs指定變量lmcsDeltaCrs的絕對碼字值。 lmcs_delta_abs_crs的值應當在0到7之間(包括0和7)。如果不存在lmcs_delta_abs_crs,則推斷其等於0。<ADD>當ChromaArrayType等於0時,lmcs_delta_abs_crs應當等於0。</ADD>
下面描述了有條件地用訊號通知通過色度格式進行色度縮放。
lmcs_data( ) {  描述符
lmcs_min_bin_idx   ue(v) 
lmcs_delta_max_bin_idx   ue(v) 
lmcs_delta_cw_prec_minus1   ue(v) 
for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {   
lmcs_delta_abs_cw [ i ]  u(v) 
if( lmcs_delta_abs_cw[ i ] > 0 )    
lmcs_delta_sign_cw_flag [ i ]  u(1) 
 
<ADD> if ( ChromaArrayType !=0) { </ADD>  
lmcs_delta_abs_crs   u(3) 
if( lmcs_delta_abs_crs > 0 )   
lmcs_delta_sign_crs_flag   u(1) 
}  
 
lmcs_delta_abs_crs指定變量lmcsDeltaCrs的絕對碼字值。lmcs_delta_abs_crs 的值應當在0到7之間(包括0和7)。如果不存在lmcs_delta_abs_crs,則推斷其等於0。 2.4.4 通過另一種信令標誌來有條件地用訊號通知色度縮放
lmcs_data( ) {  描述符  
lmcs_min_bin_idx   ue(v) 
lmcs_delta_max_bin_idx   ue(v) 
lmcs_delta_cw_prec_minus1   ue(v) 
for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {   
lmcs_delta_abs_cw [ i ]  u(v) 
if( lmcs_delta_abs_cw[ i ] > 0 )    
lmcs_delta_sign_cw_flag [ i ]  u(1) 
 
<ADD> lmcs_cs_present_flag </ADD>  <ADD> u(1) </ADD>
<ADD> if( lmcs_cs_present_flag ) { </ADD>  
lmcs_delta_abs_crs   u(3) 
if( lmcs_delta_abs_crs > 0 )   
lmcs_delta_sign_crs_flag   u(1) 
}  
 
<ADD>lmcs_cs_present_flag等於1表示在LMCS_APS中存在lmcs_delta_abs_crs。lmcs_cs_present_flag等於0表示在LMCS_APS中不存在lmcs_delta_abs_crs。當ChromaArrayType等於0時,lmcs_cs_present_flag應當等於0。</ADD>
lmcs_delta_abs_crs指定變量lmcsDeltaCrs的絕對碼字值。lmcs_delta_abs_crs的值應當在0到7之間(包括0和7)。 如果不存在lmcs_delta_abs_crs,則推斷其等於0。
下文描述基於色度格式來有條件地用訊號通知色度縮放列表。對於單色內容,可能不用訊號通知色度縮放列表參數。在VVC中,在單色內容的位元流中可能不存在scaling_list_chroma_present_flag,故在視頻解碼器300處推斷其為0。
scaling_list_data( ) { 描述符
scaling_matrix_for_lfnst_disabled_flag u(1)
    if (ChromaArrayType != 0)  
scaling_list_chroma_present_flag u(1)
….  
scaling_list_chroma_present_flag等於1表示在scaling_list_data( )中存在色度縮放列表。scaling_list_chroma_present_flag等於0表示在scaling_list_data( )中不存在色度標度列表。<ADD>如果不存在,則推斷它等於0。</ADD>
下面描述PPS、APS和PPS之間的依賴性。來自PPS和APS的、依賴於SPS的語法約束可以移動到引用該語法元素的位置,例如在PH和SH中。
對於LMCS,當引用LMCS時,可以檢查對lmcs_delta_cw_prec_minus1的值的約束。在一個例子中,可以使用諸如u(4)之類的固定長度編碼來用訊號通知lmcs_delta_cw_prec_minus1。
lmcs_data( ) { 描述符
lmcs_min_bin_idx ue(v)
  lmcs_delta_max_bin_idx ue(v)
  lmcs_delta_cw_prec_minus1 u(4)
   for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {  
     lmcs_delta_abs_cw [ i ] u(v)
      if( lmcs_delta_abs_cw[ i ] > 0 )  
        lmcs_delta_sign_cw_flag [ i ] u(1)
   }  
  lmcs_delta_abs_crs u(3)
   if( lmcs_delta_abs_crs > 0 )  
     lmcs_delta_sign_crs_flag u(1)
}  
<ADD>當存在ph_lmcs_aps_id時,要求具有aps_params_type等於LMCS_APS且adaptive_parameter_set_id等於ph_lmcs_aps_id的APS NAL單元的lmcs_delta_cw_prec_minus1的值應當在0到位元深度-2的範圍內。</ADD>
在另一個例子中,
lmcs_data( ) { 描述符
lmcs_min_bin_idx ue(v)
  lmcs_delta_max_bin_idx ue(v)
  lmcs_delta_cw_prec_minus1 ue(v)
   for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {  
     lmcs_delta_abs_cw [ i ] u(v)
      if( lmcs_delta_abs_cw[ i ] > 0 )  
        lmcs_delta_sign_cw_flag [ i ] u(1)
   }  
  lmcs_delta_abs_crs u(3)
   if( lmcs_delta_abs_crs > 0 )  
     lmcs_delta_sign_crs_flag u(1)
}  
lmcs_delta_cw_prec_minus1加1指定用於表示語法lmcs_delta_abs_cw[i]的位元數。lmcs_delta_cw_prec_minus1的值應當在0到<ADD>max_lmcs_delta_cw_prec_minus1</ADD>(包括)的範圍內。<ADD> max_lmcs_delta_cw_prec_minus1</ADD>是用於所有位元流的固定值。例如,max_lmcs_delta_cw_prec_minus1可以為14。
<ADD>當存在ph_lmcs_aps_id時,要求具有aps_params_type等於LMCS_APS且adaptive_parameter_set_id等於ph_lmcs_aps_id的APS NAL單元的lmcs_delta_cw_prec_minus1的值應當在0到位元深度-2(包括)的範圍內。</ADD>
下面描述了通過另一個信令標誌來有條件地用訊號通知色度縮放。
lmcs_data( ) {  描述符  
lmcs_min_bin_idx   ue(v) 
lmcs_delta_max_bin_idx   ue(v) 
lmcs_delta_cw_prec_minus1   ue(v) 
for( i = lmcs_min_bin_idx; i  <=  LmcsMaxBinIdx; i++ ) {   
lmcs_delta_abs_cw [ i ]  u(v) 
if( lmcs_delta_abs_cw[ i ] > 0 )    
lmcs_delta_sign_cw_flag [ i ]  u(1) 
 
<ADD> lmcs_cs_present_flag </ADD> u(1)
<ADD> if( lmcs_cs_present_flag ) { </ADD>  
lmcs_delta_abs_crs   u(3) 
if( lmcs_delta_abs_crs > 0 )   
lmcs_delta_sign_crs_flag   u(1) 
}  
 
<ADD>lmcs_cs_present_flag等於1表示在LMCS_APS中存在lmcs_delta_abs_crs。lmcs_cs_present_flag等於0表示在LMCS_APS中不存在lmcs_delta_abs_crs。</ADD>
<ADD>當存在ph_lmcs_aps_id時,要求具有aps_params_type等於LMCS_APS且adaptation_parameter_set_id等於ph_lmcs_aps_id的APS NAL單元的lmcs_cs_present_flag的值等於0(如果ChromaArrayType等於0的話,否則應當為1)。 </ADD>。
下面描述與ALF有關的技術。當在諸如PH、SH、塊和樣本之類的位元流中引用ALF_APS時,如果sps_ccalf_enabled_flag為假,則ALF_APS不包含任何CCALF濾波器。
slice_alf_aps_id_luma[ i ]指定片段的亮度分量所引用的第i個ALF APS的adaptation_parameter_set_id。當slice_alf_enabled_flag等於1並且slice_alf_aps_id_luma [ i ]不存在時,將slice_alf_aps_id_luma [ i ]的值推斷為等於ph_alf_aps_id_luma [ i ]的值。
<ADD>如果存在slice_alf_aps_id_luma [ i ],則以下條件適用:</ ADD> a.  具有aps_params_type等於ALF_APS 且adaptation_parameter_set_id等於slice_alf_aps_id_luma [ i ]的APS NAL單元的TemporalId應當小於或等於經譯碼的片段NAL單元的TemporalId。 b.  具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於slice_alf_aps_id_luma[ i ]的APS NAL單元的alf_luma_filter_signal_flag的值應當等於1。 c.  <ADD>當sps_ccalf_enabled_flag等於0時,具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於slice_alf_aps_id_luma[i]的APS NAL單元的alf_cc_cb_filter_signal_flag和alf_cc_cr_filter_signal_flag的值應當全部等於0。</ADD>
slice_alf_aps_id_chroma指定片段的色度分量所引用的ALF APS的adaptation_parameter_set_id。當slice_alf_enabled_flag等於1並且slice_alf_aps_id_chroma不存在時,將slice_alf_aps_id_chroma的值推斷為等於ph_alf_aps_id_chroma的值。
<ADD>如果存在slice_alf_aps_id_chroma,則以下條件適用:</ADD> a.  具有aps_params_type等於ALF_APS 且adaptation_parameter_set_id等於slice_alf_aps_id_chroma 的APS NAL單元的TemporalId應當小於或等於編碼的片段NAL單元的TemporalId。 b.  具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於slice_alf_aps_id_chroma的APS NAL單元的alf_chroma_filter_signal_flag的值應當等於1。 c.  <ADD>當sps_ccalf_enabled_flag等於0時,具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於slice_alf_aps_id_chroma的APS NAL單元的alf_cc_cb_filter_signal_flag和alf_cc_cr_filter_signal_flag的值應當全部等於0。</ADD>
ph_alf_aps_id_luma[ i ]指定與PH相關聯的片段的亮度分量所引用的第i個ALF APS的adaptation_parameter_set_id。
<ADD>當存在ph_alf_aps_id_luma[i]時,以下條件適用:</ADD> a.  具有aps_params_type等於ALF_APS 且adaptation_parameter_set_id等於ph_alf_aps_id_luma[ i ]的APS NAL單元的alf_luma_filter_signal_flag的值應當等於1。 b.  具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於ph_alf_aps_id_luma[ i ]的APS NAL單元的TemporalId應當小於或等於與PH相關聯的圖片的TemporalId。 c.  <ADD>當sps_ccalf_enabled_flag等於0時,具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於ph_alf_aps_id_luma[ i ]的APS NAL單元的alf_cc_cb_filter_signal_flag和alf_cc_cr_filter_signal_flag的值應當全部等於0。</ADD>
ph_alf_aps_id_chroma指定與PH相關聯的片段的色度分量所指的ALF APS的adaptation_parameter_set_id。
<ADD>如果存在ph_alf_aps_id_chroma,則以下條件適用:</ ADD> a.  具有aps_params_type等於ALF_APS 且adaptation_parameter_set_id等於ph_alf_aps_id_chroma的APS NAL單元的alf_chroma_filter_signal_flag的值應當等於1。 b.  具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於ph_alf_aps_id_chroma的APS NAL單元的TemporalId應當小於或等於與PH相關聯的圖片的TemporalId。 c.  <ADD>當sps_ccalf_enabled_flag等於0時,具有aps_params_type等於ALF_APS且adaptation_parameter_set_id等於ph_alf_aps_id_chroma的APS NAL單元的alf_cc_cb_filter_signal_flag和alf_cc_cr_filter_signal_flag的值應當全部等於0。</ADD>
下面描述與色度QP偏移有關的內容。在片段頭中,
   if( pps_slice_chroma_qp_offsets_present_flag ) {  
     slice_cb_qp_offset se(v)
     slice_cr_qp_offset se(v)
      if( sps_joint_cbcr_enabled_flag )  
        slice_joint_cbcr_qp_offset se(v)
   }  
在一些例子中,當使用pps_slice_chroma_qp_offsets_present_flag並且當前內容為單色時,pps_slice_chroma_qp_offsets_present_flag的值應當為0。
   if( pps_cu_chroma_qp_offset_list_enabled_flag )  
     cu_chroma_qp_offset_enabled_flag u(1)
在一些例子中,當使用pps_cu_chroma_qp_offset_list_enabled_flag並且當前內容為單色時,pps_cu_chroma_qp_offset_list_enabled_flag的值應當為0。
替代地或另外地,僅當pps_slice_chroma_qp_offsets_present_flag為真並且當前內容不是單色時,才可以有條件地用訊號通知用於色度分量的slice_qp_offsets。如果當前內容是單色的,則不應該用訊號通知用於色度分量的片段qp偏移。
   if( pps_slice_chroma_qp_offsets_present_flag <ADD> && ChromaArrayType </ADD>) {  
     slice_cb_qp_offset se(v)
     slice_cr_qp_offset se(v)
      if( sps_joint_cbcr_enabled_flag )  
        slice_joint_cbcr_qp_offset se(v)
   }  
僅當pps_cu_chroma_qp_offset_list_enabled_flag為真並且當前內容不是單色時,才可以有條件地用訊號通知色度分量的cu_chroma_qp_offset_enabled_flag。 如果當前內容是單色的,則不應該用訊號通知用於色度分量的cu_chroma_qp_offset_enabled_flag。
   if( pps_cu_chroma_qp_offset_list_enabled_flag <ADD> && ChromaArrayType </ADD>)  
     cu_chroma_qp_offset_enabled_flag u(1)
在PH中,
      if( pps_cu_chroma_qp_offset_list_enabled_flag )  
        ph_cu_chroma_qp_offset_subdiv_intra_slice ue(v)
      if( pps_cu_chroma_qp_offset_list_enabled_flag )  
        ph_cu_chroma_qp_offset_subdiv_inter_slice ue(v)
在一些例子中,當使用pps_cu_chroma_qp_offset_list_enabled_flag並且當前內容為單色時,pps_cu_chroma_qp_offset_list_enabled_flag的值應當為0。
替代地或另外地,僅當pps_slice_chroma_qp_offsets_present_flag為真並且當前內容不是單色時,才可以有條件地用訊號通知用於色度分量的ph_cu_chroma_qp_offset_subdiv_intra_slice和ph_cu_chroma_qp_offset_subdiv_inter_slice。如果當前內容是單色的,則不應該用訊號通知用於色度分量的ph_cu_chroma_qp_offset_subdiv_intra_slice和ph_cu_chroma_qp_offset_subdiv_inter_slice。
      if( pps_cu_chroma_qp_offset_list_enabled_flag <ADD> && ChromaArrayType </ADD>)  
        ph_cu_chroma_qp_offset_subdiv_intra_slice ue(v)
      if( pps_cu_chroma_qp_offset_list_enabled_flag <ADD> && ChromaArrayType </ADD>)  
        ph_cu_chroma_qp_offset_subdiv_inter_slice ue(v)
圖2A和圖2B是示出示例性四叉樹二叉樹(QTBT)結構130以及對應的譯碼樹單元(CTU)132的概念圖。實線表示四叉樹分割,而虛線表示二叉樹分割。在二叉樹的每個分割(即,非葉)節點中,用訊號通知一個標誌以指示使用哪種分割類型(即,水平或垂直),在該例子中,0表示水平分割,而1表示垂直分割。對於四叉樹分割,由於四叉樹節點將一個塊水平和垂直分割為大小相等的4個子塊,因此無需指示分割類型。因此,視頻編碼器200可以對QTBT結構130的區域樹層級(即,實線)的語法元素(例如,分割資訊)和QTBT結構130的預測樹層級(即,虛線)的語法元素(例如,分割資訊)進行編碼,並且視頻解碼器300可以對其進行解碼。視頻編碼器200可以對QTBT結構130的終端葉節點表示的CU的視頻資料(例如,預測和轉換資料)進行編碼,並且視頻解碼器300可以對其進行解碼。
一般而言,圖2B的CTU 132可以與規定塊的大小的參數相關聯,塊的大小與第一層級和第二層級的QTBT結構130的節點相對應。這些參數可以包括CTU大小(其以樣本來代表CTU 132的大小)、最小四叉樹大小(MinQTSize,其代表最小允許的四叉樹葉節點大小)、最大二叉樹大小(MaxBTSize,其代表最大允許二叉樹根節點大小)、最大二叉樹深度(MaxBTDepth,其代表最大允許二叉樹深度)和最小二叉樹大小(MinBTSize,其代表最小允許二叉樹葉子節點大小)。
對應於CTU的QTBT結構的根節點可以在QTBT結構的第一層級具有四個子節點,可以根據四叉樹劃分來劃分每個子節點。即,第一層級的節點是葉節點(沒有子節點)或者具有四個子節點。QTBT結構130的例子表示這樣的節點,例如包括具有用於分支的實線的父節點和子節點。如果第一層級的節點不大於最大允許的二叉樹根節點大小(MaxBTSize),則可以通過相應的二叉樹進一步對這些節點進行劃分。可以迭代一個節點的二叉樹分割,直到分割產生的節點達到最小允許的二叉樹葉節點大小(MinBTSize)或最大允許的二叉樹深度(MaxBTDepth)為止。QTBT結構130的例子將這樣的節點表示為具有用於分支的虛線。二進制樹葉節點稱為譯碼單元(CU),其用於預測(例如,幀內或幀間預測)和轉換,而無需任何進一步的劃分。如上所述,CU也可以稱為「視頻塊」或「塊」。
在QTBT劃分結構的一個例子中,將CTU大小設置為128x128(亮度樣本和兩個相應的64x64色度樣本),將MinQTSize設置為16x16,將MaxBTSize設置為64x64,將MinBTSize(對於寬度和高度二者)設置為4,將MaxBTDepth設置為4。首先,對CTU應用四叉樹劃分以生成四叉樹葉節點。四叉樹葉節點的大小可以從16x16(即,MinQTSize)到128x128(即,CTU大小)。如果四叉樹葉節點為128x128,則由於該大小超過MaxBTSize(即,在該例子中為64x64),因此不會通過二叉樹進一步分割葉四叉樹節點。否則,將通過二叉樹,對四叉樹葉節點進一步劃分。因此,四叉樹葉節點也是二叉樹的根節點,並且二叉樹的深度為0。當二叉樹的深度達到MaxBTDepth(在該例子中為4)時,不允許進一步分割。當二叉樹節點的寬度等於MinBTSize(在該例子中為4)時,表示不允許進一步的垂直分割。類似地,高度等於MinBTSize的二叉樹節點意味著該二叉樹節點不允許進一步的水平分割。如上所述,將二叉樹的葉節點稱為CU,並且根據預測和轉換對其進行進一步處理而無需進一步劃分。
圖3是示出可以執行本公開內容的技術的示例性視頻編碼器200的方塊圖。提供圖3以便於解釋的目的,故其不應被認為是對本公開內容中廣泛例示和描述的技術的限制。為了便於說明起見,本公開內容描述了根據VVC(在開發中的ITU-T H.266)和HEVC(ITU-T H.265)技術的視頻編碼器200。但是,被配置為實現其它視頻譯碼標準的視頻編碼設備可以執行本公開內容的技術。
在圖3的例子中,視頻編碼器200包括視頻資料記憶體230、模式選擇單元202、殘差生成單元204、轉換處理單元206、量化單元208、逆量化單元210、逆轉換處理單元212、重構單元214、濾波單元216、解碼圖片緩衝器(DPB)218和熵編碼單元220。視頻資料記憶體230、模式選擇單元202、殘差生成單元204、轉換處理單元206、量化單元208、逆量化單元210、逆轉換處理單元212、重構單元214、濾波單元216、DPB 218和熵編碼單元220中的任何一個或全部,可以在一個或多個處理器中或者在處理電路中實現。例如,可以將視頻編碼器200的單元實現成作為硬體電路的一部分、或者處理器的一部分的一個或多個電路或邏輯元件、ASIC或FPGA。此外,視頻編碼器200可以包括另外的或替代的處理器或處理電路,以執行這些功能和其它功能。
視頻資料記憶體230可以儲存將由視頻編碼器200的組件編碼的視頻資料。視頻編碼器200可以從例如視頻源104(圖1)接收儲存在視頻資料記憶體230中的視頻資料。DPB 218可以充當參考圖片記憶體,該參考圖片記憶體儲存參考視頻資料,以供視頻編碼器200預測後續視頻資料時使用。視頻資料記憶體230和DPB 218可以由多種儲存設備(例如,動態隨機存取記憶體(DRAM)(其包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、電阻性RAM(RRAM)或其它類型的儲存設備)中的任何一個形成。視頻資料記憶體230和DPB 218可以由相同的儲存設備或不同的儲存設備提供。在各個例子中,視頻資料記憶體230可以與視頻編碼器200的其它組件一起在晶片上,如圖所示,或者相對於那些組件在晶片外。
在本公開內容中,對視頻資料記憶體230的引用不應被解釋為限於視頻編碼器200內部的記憶體(除非如此具體地描述),也不應被解釋為限於視頻編碼器200之外的記憶體(除非如此具體地描述)。而是,對視頻資料記憶體230的引用應當被理解為儲存視頻資料的參考記憶體,其中視頻編碼器200接收該視頻資料(例如,要編碼的當前塊的視頻資料)以進行編碼。圖1的記憶體106還可以提供對來自視頻編碼器200的各個單元的輸出的臨時儲存。
示出了圖3的各個單元以幫助理解由視頻編碼器200執行的操作。這些單元可以實現為固定功能電路、可程式電路或者其組合。固定功能電路指代提供特定功能、並在可以執行的操作上預先設置的電路。可程式電路指代可以被程式以執行各種任務,並且在可以執行的操作中提供靈活功能的電路。例如,可程式電路可以執行使可程式電路以軟體或韌體的指令所定義的方式進行操作的軟體或韌體。固定功能電路可以執行軟體指令(例如,用於接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些例子中,這些單元中的一個或多個單元可以是不同的電路塊(固定功能或可程式),並且在一些例子中,這些單元中的一個或多個可以是積體電路。
視頻編碼器200可以包括由可程式電路形成的算術邏輯單元(ALU)、基本功能單元(EFU)、數位電路、類比電路和/或可程式核。在使用由可程式電路執行的軟體來執行視頻編碼器200的操作的例子中,記憶體106(圖1)可以儲存視頻編碼器200接收並執行的軟體的指令(例如,目標代碼),或者視頻編碼器200中的另一個記憶體(沒有示出)可以儲存這樣的指令。
視頻資料記憶體230被配置為儲存接收到的視頻資料。視頻編碼器200可以從視頻資料記憶體230檢索視頻資料的圖片,並將視頻資料提供給殘差生成單元204和模式選擇單元202。視頻資料記憶體230中的視頻資料可以是將進行編碼的原始視頻資料。
模式選擇單元202包括運動估計單元222、運動補償單元224、幀內預測單元226和亮度映射與色度縮放(LMCS)單元227。模式選擇單元202可以包括其它功能單元,以根據其它預測模式來執行視頻預測。舉例而言,模式選擇單元202可以包括調色板單元、塊內複製單元(其可以是運動估計單元222和/或運動補償單元224的一部分)、仿射單元、線性模型(LM)單元等等。
模式選擇單元202通常協調多個編碼通道,以測試編碼參數的組合以及針對此類組合的最終率失真值。編碼參數可以包括:CTU到CU的劃分、用於CU的預測模式、用於CU的殘差資料的轉換類型、用於CU的殘差資料的量化參數等等。模式選擇單元202可以最終選擇具有比其它測試的組合更好的速率失真值的編碼參數的組合。
視頻編碼器200可以將從視頻資料記憶體230檢索到的圖片劃分為一系列CTU,並將一個或多個CTU封裝在片段中。模式選擇單元202可以根據樹結構(例如,上面所描述的HEVC的QTBT結構或四叉樹結構)來劃分圖片的CTU。如上所述,視頻編碼器200可以根據樹結構,通過劃分CTU來形成一個或多個CU。這樣的CU通常也可以稱為「視頻塊」或「塊」。
通常,模式選擇單元202還控制其組件(例如,運動估計單元222、運動補償單元224和幀內預測單元226)以生成針對當前塊(例如,當前CU、或者在HEVC中,PU和TU的重疊部分)的預測塊。對於當前塊的幀間預測,運動估計單元222可以執行運動搜索以識別一個或多個參考圖片(例如,儲存在DPB 218中的一個或多個先前編碼的圖片)中的一個或多個緊密匹配的參考塊。具體而言,運動估計單元222可以例如根據絕對差之和(SAD)、平方差之和(SSD)、平均絕對差(MAD)、均方差(MSD)等等,來計算表示潛在參考塊與當前塊有多麼相似的值。運動估計單元222通常可以使用當前塊與正考慮的參考塊之間的逐樣本差異來執行這些計算。運動估計單元222可以識別具有由這些計算所產生的最小值的參考塊,該參考塊指示與當前塊最緊密匹配的參考塊。
運動估計單元222可以形成一個或多個運動向量(MV),這些MV定義參考圖片中的參考塊相對於當前圖片中的當前塊的位置。然後,運動估計單元222可以將運動向量提供給運動補償單元224。例如,對於單向幀間預測,運動估計單元222可以提供單個運動向量,而對於雙向幀間預測,運動估計單元222可以提供兩個運動向量。然後,運動補償單元224可以使用運動向量來生成預測塊。例如,運動補償單元224可以使用運動向量來檢索參考塊的資料。再舉一個例子,如果運動向量具有分數採樣精度,則運動補償單元224可以根據一個或多個內插濾波器,對用於預測塊的值進行內插。此外,對於雙向幀間預測,運動補償單元224可以例如通過逐樣本平均或加權平均,來檢索由相應的運動向量識別的兩個參考塊的資料,並對檢索到的資料進行組合。
再舉一個例子,對於幀內預測或幀內預測譯碼,幀內預測單元226可以根據與當前塊相鄰的樣本來生成預測塊。例如,對於定向模式,幀內預測單元226通常可以在數學上組合相鄰樣本的值,並在當前塊上沿定義的方向填充這些計算的值以產生預測塊。再舉一個例子,對於DC模式,幀內預測單元226可以計算與當前塊的相鄰樣本的平均值,並且生成預測塊以包括針對預測塊的每個樣本的該所得平均值。
LMCS單元227可以被配置為執行LMCS視頻譯碼工具的操作。例如,LMCS單元227可以對CU的亮度塊執行亮度映射,對CU的色度塊執行色度縮放。對於亮度映射,LMCS單元227可以映射CU的亮度塊的亮度樣本,以生成經映射的亮度塊的經映射亮度樣本。LMCS單元227還可以針對運動補償單元224或幀內預測單元226生成的預測塊,生成經映射的亮度預測塊。
模式選擇單元202將預測塊或經映射的亮度預測塊提供給殘差生成單元204。殘差生成單元204從視頻資料記憶體230或經映射的亮度塊接收當前塊的原始未編碼版本,並從模式選擇單元202接收預測塊。殘差生成單元204計算當前塊和預測塊之間的逐樣本差異。所得的逐樣本差異定義了當前塊的殘差塊。在一些例子中,殘差生成單元204還可以確定殘差塊中的樣本值之間的差,以使用殘差差分脈衝編碼調變(RDPCM)來生成殘差塊。在一些例子中,可以使用執行二進制減法的一個或多個減法器電路,來形成殘差生成單元204。
對於LMCS,殘差生成單元204可以基於CU的經映射的亮度塊與經映射的預測塊之間的差異,生成經映射的亮度殘差塊。對於色度分量,殘差生成單元204可以基於色度塊與色度預測塊之間的差異來生成色度殘差塊,從而生成色度殘差塊。LMCS單元227可以對色度殘差塊執行縮放,以生成經縮放的色度殘差塊。
在模式選擇單元202將CU劃分為PU的例子中,每一個PU可以與亮度預測單元和對應的色度預測單元相關聯。視頻編碼器200和視頻解碼器300可以支持具有各種大小的PU。如上所述,CU的大小可以指代CU的亮度譯碼塊的大小,而PU的大小可以指代PU的亮度預測單元的大小。假設特定CU的大小為2Nx2N,則視頻編碼器200可以支持2Nx2N或NxN的PU大小來用於幀內預測,並支持2Nx2N、2NxN、Nx2N、NxN等等的對稱PU大小來用於幀間預測。視頻編碼器200和視頻解碼器300還可以對於幀間預測,支持PU大小為2NxnU、2NxnD、nLx2N和nRx2N的非對稱劃分。
在模式選擇單元202不將CU進一步劃分成PU的例子中,每個CU可以與亮度譯碼塊和對應的色度譯碼塊相關聯。如上所述,CU的大小可以指代CU的亮度譯碼塊的大小。視頻編碼器200和視頻解碼器300可以支持2Nx2N、2NxN或Nx2N的CU大小。
對於其它視頻譯碼技術(例如,塊內複製模式編碼、仿射模式編碼和線性模型(LM)模式編碼,僅舉幾個例子),模式選擇單元202經由與譯碼技術相關聯的各個單元,針對正在編碼的當前塊來生成預測塊。在一些例子中(例如,調色板模式編碼),模式選擇單元202可以不生成預測塊,而是生成語法元素,這些語法元素指示基於所選的調色板來重構塊的方式。在這樣的模式下,模式選擇單元202可以將這些語法元素提供給熵編碼單元220以進行編碼。
如上所述,殘差生成單元204接收當前塊和對應的預測塊的視頻資料。然後,殘差生成單元204生成當前塊的殘差塊。為了生成殘差塊,殘差生成單元204計算預測塊和當前塊之間的逐樣本差。
轉換處理單元206將一個或多個轉換應用於殘差塊以生成轉換係數的塊(本文稱為「轉換係數塊」)。轉換處理單元206可以將各種轉換應用於殘差塊以形成轉換係數塊。例如,轉換處理單元206可以將離散餘弦轉換(DCT)、方向轉換、Karhunen-Loeve轉換(KLT)或者概念上類似的轉換應用於殘差塊。在一些例子中,轉換處理單元206可以對殘差塊執行多個轉換(例如,主轉換和次要轉換(如,旋轉轉換))。在一些例子中,轉換處理單元206不向殘差塊應用轉換。
量化單元208可以對轉換係數塊中的轉換係數進行量化,以產生量化的轉換係數塊。量化單元208可以根據與當前塊相關聯的量化參數(QP)值,來量化轉換係數塊的轉換係數。視頻編碼器200(例如,經由模式選擇單元202)可以通過調整與CU相關聯的QP值,來調整應用於與當前塊相關聯的轉換係數塊的量化程度。量化可能導致資訊的丟失,因此,量化後的轉換係數的精度可能比轉換處理單元206生成的原始轉換係數的精度低。
逆量化單元210和逆轉換處理單元212可以將逆量化和逆轉換分別應用於量化的轉換係數塊,以根據轉換係數塊來重建殘差塊。重構單元214可以基於重構的殘差塊和由模式選擇單元202生成的預測塊,來產生與當前塊相對應的重構塊(儘管可能具有一定程度的失真)。例如,重構單元214可以將重構的殘差塊的樣本添加到模式選擇單元202所生成的預測塊中的對應樣本,以生成重構的塊。
濾波單元216可以對重構的塊執行一個或多個濾波操作。例如,濾波單元216可以執行解塊操作以減少沿著CU的邊緣的塊狀偽影。在一些例子中,可以跳過濾波單元216的操作。
視頻編碼器200將重構的塊儲存在DPB 218中。例如,在不需要濾波單元216的操作的例子中,重構單元214可以將重構的塊儲存到DPB 218中。在需要濾波單元216的操作的例子中,濾波單元216可以將濾波後的重構塊儲存到DPB 218中。運動估計單元222和運動補償單元224可以從DPB 218檢索參考圖片,該參考圖片由重構(並且可能濾波)的塊形成,以對隨後編碼的圖片進行幀間預測。另外,幀內預測單元226可以使用當前圖片的DPB 218中的重構塊,對當前圖片中的其它塊進行幀內預測。
通常,熵編碼單元220可以對從視頻編碼器200的其它功能組件接收的語法元素進行熵編碼。例如,熵編碼單元220可以對來自量化單元208的量化的轉換係數塊進行熵編碼。再舉一個例子,熵編碼單元220可以對來自模式選擇單元202的預測語法元素(例如,用於幀間預測的運動資訊或者用於幀內預測的幀內模式資訊)進行熵編碼。熵編碼單元220可以對作為視頻資料的另一個例子的語法元素執行一個或多個熵編碼操作,以生成熵編碼的資料。例如,熵編碼單元220可以執行上下文自適應可變長度編碼(CAVLC)操作、CABAC操作、變量至變量(V2V)長度編碼操作、基於語法的上下文自適應二進制算術編碼(SBAC)操作、機率間隔分割熵(PIPE)編碼操作、指數格倫布編碼(Exponential-Golomb encoding)操作、或者對資料的另一種類型的熵編碼操作。在一些例子中,熵編碼單元220可以在不對語法元素進行熵編碼的旁通模式下操作。
視頻編碼器200可以輸出位元流,該位元流包括用於重構片段或圖片的塊所需要的經熵編碼的語法元素。具體而言,熵編碼單元220可以輸出位元流。
關於塊描述了上面所描述的操作。這樣的描述應當被理解為用於亮度譯碼塊和/或色度譯碼塊的操作。如上所述,在一些例子中,亮度譯碼塊和色度譯碼塊是CU的亮度和色度分量。在一些例子中,亮度譯碼塊和色度譯碼塊是PU的亮度和色度分量。
在一些例子中,不需要針對色度譯碼塊重複針對亮度譯碼塊執行的操作。舉一個例子,不需要重多工於識別亮度譯碼塊的運動向量(MV)和參考圖片的操作,來識別用於色度塊的MV和參考圖片。相反,可以縮放用於亮度譯碼塊的MV以確定用於色度塊的MV,並且參考圖片可以是相同的。再舉一個例子,對於亮度譯碼塊和色度譯碼塊,幀內預測處理可以是相同的。
視頻編碼器200表示被配置為對視頻資料進行編碼的設備的例子,該設備包括被配置為儲存視頻資料的記憶體、以及在電路中實現並且被配置為執行本公開內容中描述的示例性技術的一個或多個處理單元。
例如,如上所述,視頻編碼器200可以被配置為執行LMCS。視頻編碼器200可以被配置為用訊號通知由視頻解碼器300用來執行LMCS的語法元素。例如,視頻編碼器200可以被配置為編碼和用訊號通知用於確定視頻解碼器300將用於色度縮放的縮放參數的語法元素。但是,可能存在CU沒有色度分量,但針對CU啟用了LMCS的情形。在這種情況下,可能發生不必要或錯誤的信令,例如在視頻編碼器200儘管沒有色度分量仍然用訊號通知語法元素以確定用於色度縮放的縮放參數的情況下。
舉一個例子,當ChromaArrayType等於零時,可能不存在色度分量。ChromaArrayType等於零可能意味著顏色格式是單色(例如,黑色和白色)。
根據一個或多個例子,視頻編碼器200可以確定對於譯碼單元(CU),存在用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素。也就是說,視頻編碼器200可以確定存在用於對CU的LMCS的色度分量。在這種例子中,視頻編碼器200可以基於確定存在與色度相關的語法元素(例如,存在色度分量),用訊號通知用於指示存在與色度相關的語法元素(例如,存在色度分量)的標誌(例如,lmcs_cs_present_flag(也稱為aps_chroma_present_flag))。
當存在用於對CU的LMCS的與色度相關的語法元素時,視頻編碼器200可以對語法元素(例如,lmcs_delta_abs_crs)進行編碼。該語法元素可以指示用於確定用於LMCS中的色度縮放的縮放參數的值。例如,lmcs_delta_abs_crs可以指示lmcsDeltaCrs值(例如,lmcs_delta_abs_crs是lmcsDeltaCrs的絕對值),而lmcsDeltaCrs可以用於確定用於LMCS中的色度縮放的縮放參數(例如,ChromaScaleCoeff)。視頻編碼器200可以對在自適應參數集(APS)中的LMCS語法結構中的該語法元素進行編碼。
視頻編碼器200可以基於用於色度縮放的縮放參數,對CU的色度塊進行編碼。例如,視頻編碼器200可以確定色度預測塊,從色度塊中減去色度預測塊以生成殘差塊,基於縮放參數來縮放殘差塊以生成經縮放的殘差塊,並用訊號通知用於指示經縮放的殘差塊的資訊。
在一些例子中,僅當存在與色度相關的語法元素時,視頻編碼器200才可以對語法元素(例如,lmcs_delta_abs_crs)進行編碼(例如,用訊號通知)。例如,可以將上面的CU視作為第一CU。對於第二CU,視頻編碼器200可以確定對於針對第二CU的LMCS,不存在與色度相關的語法元素。在該例子中,當對於針對第二CU的LMCS,不存在與色度相關的語法元素時,視頻編碼器200可以跳過該語法元素的編碼(例如,包括用訊號通知)。也就是說,如果不存在色度分量,則視頻編碼器200可以不用訊號通知lmcs_delta_abs_crs。
還可能存在對於視頻編碼器200的某些約束。例如,視頻編碼器200可以確定用於第二語法元素的值(例如,lmcs_delta_cw_prec_minus1),以指定用於表示LMCS的第三語法元素(例如,lmcs_delta_abs_cw [i])的位元數,在用於CU的自適應參數集(APS)中用訊號通知該值。可以將用於第二語法元素的值限制在0到基於位元深度的值的範圍內(例如,從0到BitDepth-2的範圍)。
再舉一個例子,視頻編碼器200可以確定序列參數集(SPS)指示交叉分量自適應環路濾波器(CCALF)被禁用。在這樣的例子中,視頻編碼器200可以被約束為(例如,被配置為根據某種約束進行操作)在自適應參數集(APS)中設置至少一個標誌,該標誌指定當SPS指示CCALF被禁用時,不用訊號通知用於色度分量的交叉分量濾波器。
在一些例子中,視頻編碼器200可以被配置為:確定對於一個或多個塊禁用了自適應環路濾波(ALF),基於對於一個或多個塊禁用了ALF,避免將自適應參數集(APS)類型設置為等於與ALF相對應的APS類型,並且用訊號通知用於指示對一個或多個塊禁用了ALF的資訊。
在一些例子中,視頻編碼器200可以被配置為:確定對於一個或多個塊,禁用了交叉分量自適應環路濾波器(CCALF),基於對於一個或多個塊禁用了CCALF,避免用訊號通知指示用於一個或多個塊的CCALF的資訊,並且用訊號通知用於指示對一個或多個塊禁用了CCALF的資訊。
在一些例子中,視頻編碼器200可以被配置為:基於用於塊的色度陣列類型,來確定是否用訊號通知用於指示是否用訊號通知色度濾波器的語法元素。
在一些例子中,視頻編碼器200可以被配置為:基於色度陣列類型,來確定是否用訊號通知用於指示亮度映射與色度縮放(LMCS)的資訊,並基於該確定,來用訊號通知用於指示LMCS的資訊。
在一些例子中,視頻編碼器200可以被配置為:用訊號通知用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來用訊號通知LMCS資訊。
圖4是示出可以執行本公開內容的技術的示例性視頻解碼器300的方塊圖。提供圖4以便於解釋的目的,故其不應被認為是對本公開內容中廣泛例示和描述的技術的限制。為了便於說明起見,本公開內容描述了根據VVC(在開發中的ITU-T H.266)和HEVC(ITU-T H.265)的技術的視頻解碼器300。但是,本公開內容的技術可以由被配置為實現其它視頻編碼標準的視頻編碼設備來執行。
在圖4的例子中,視頻解碼器300包括編碼圖片緩衝器(CPB)記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆轉換處理單元308、重構單元310、濾波單元312和解碼圖片緩衝器(DPB)314。CPB記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆轉換處理單元308、重構單元310、濾波單元312和DPB 314中的任何一個或全部,可以在一個或多個處理器中或者在處理電路中實現。例如,可以將視頻解碼器300的單元實現成作為硬體電路的一部分、或者處理器的一部分的一個或多個電路或邏輯元件、ASIC或FPGA。此外,視頻解碼器300可以包括另外的或替代的處理器或處理電路,以執行這些功能和其它功能。
預測處理單元304包括運動補償單元316、幀內預測單元318和亮度映射與色度縮放(LMCS)單元319。預測處理單元304可以包括用於根據其它預測模式來執行預測的其它單元。舉例而言,預測處理單元304可以包括調色板單元、塊內複製單元(其可以形成運動補償單元316的一部分)、仿射單元、線性模型(LM)單元等等。在其它例子中,視頻解碼器300可以包括更多、更少或者不同的功能組件。
CPB記憶體320可以儲存將由視頻解碼器300的組件解碼的視頻資料(例如,編碼的視頻位元流)。例如,可以從計算機可讀媒體110(圖1)中獲得儲存在CPB記憶體320中的視頻資料。CPB記憶體320可以包括儲存來自編碼視頻位元流的編碼視頻資料(例如,語法元素)的CPB。而且,CPB記憶體320可以儲存除編碼圖片的語法元素之外的視頻資料,例如,表示來自視頻解碼器300的各個單元的輸出的臨時資料。DPB 314通常儲存解碼的圖片,視頻解碼器300在解碼編碼的視頻位元流的後續資料或圖片時,可以輸出和/或使用該解碼圖片作為參考視頻資料。CPB記憶體320和DPB 314可以由諸如DRAM(其包括SDRAM、MRAM、RRAM或其它類型的儲存設備)之類的各種儲存設備中的任何一個來形成。CPB記憶體320和DPB 314可以由相同的儲存設備或不同的儲存設備來提供。在各個例子中,CPB記憶體320可以與視頻解碼器300的其它組件一起在晶片上,或者相對於那些組件在晶片外。
另外地或替代地,在一些例子中,視頻解碼器300可以從記憶體120(圖1)中檢索譯碼的視頻資料。也就是說,記憶體120可以如上文參照CPB記憶體320所討論的來儲存資料。類似地,當視頻解碼器300的一些或全部功能利用由視頻解碼器300的處理電路執行的軟體來實現時,記憶體120可以儲存將由視頻解碼器300執行的指令。
示出了圖4的各個單元以幫助理解由視頻解碼器300執行的操作。這些單元可以實現為固定功能電路、可程式電路或者其組合。類似於圖3,固定功能電路指代提供特定功能、並在可以執行的操作上預先設置的電路。可程式電路指代可以被程式以執行各種任務,並且在可以執行的操作中提供靈活功能的電路。例如,可程式電路可以執行軟體或韌體,軟體或韌體使可程式電路以軟體或韌體的指令所定義的方式進行操作。固定功能電路可以執行軟體指令(例如,用於接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些例子中,這些單元中的一個或多個單元可以是不同的電路塊(固定功能或可程式),並且在一些例子中,這些單元中的一個或多個可以是積體電路。
視頻解碼器300可以包括ALU、EFU、數位電路、類比電路和/或由可程式電路形成的可程式核。在通過在可程式電路上執行的軟體來執行視頻解碼器300的操作的例子中,片上或片外記憶體可以儲存視頻解碼器300接收並執行的軟體的指令(例如,目標代碼)。
熵解碼單元302可以從CPB接收編碼的視頻資料,並且對視頻資料進行熵解碼以再現語法元素。預測處理單元304、逆量化單元306、逆轉換處理單元308、重構單元310和濾波單元312可以基於從位元流中提取的語法元素來生成解碼的視頻資料。
通常,視頻解碼器300在逐塊的基礎上重建圖片。視頻解碼器300可以單獨地對每個塊執行重構操作(其中,當前正在重構(即,解碼)的塊可以稱為「當前塊」)。
熵解碼單元302可以對定義量化的轉換係數塊的量化的轉換係數的語法元素、以及諸如量化參數(QP)和/或轉換模式指示之類的轉換資訊進行熵解碼。逆量化單元306可以使用與量化的轉換係數塊相關聯的QP來確定量化的度,並且同樣地,確定用於逆量化單元306應用的逆量化度。例如,逆量化單元306可以執行按位元左移運算以對量化的轉換係數進行逆量化。逆量化單元306可以由此形成包括轉換係數的轉換係數塊。
在逆量化單元306形成轉換係數塊之後,逆轉換處理單元308可以將一個或多個逆轉換應用於轉換係數塊以生成與當前塊相關聯的殘差塊。例如,逆轉換處理單元308可以向這些轉換係數塊應用逆DCT、逆整數轉換、逆Karhunen-Loeve轉換(KLT)、逆旋轉轉換、逆方向轉換或者另一種逆轉換。
此外,預測處理單元304根據由熵解碼單元302進行熵解碼的預測資訊語法元素,來生成預測塊。例如,如果預測資訊語法元素指示當前塊是幀間預測的,則運動補償單元316可以生成預測塊。在這種情況下,預測資訊語法元素可以指示DPB 314中的從其檢索參考塊的參考圖片、以及標識參考圖片中的參考塊相對於當前圖片中的當前塊的位置的運動向量。運動補償單元316通常可以以與關於運動補償單元224(圖3)所描述的方式基本上相似的方式,來執行幀間預測處理。
再舉一個例子,如果預測資訊語法元素指示當前塊是幀內預測的,則幀內預測單元318可以根據由預測資訊語法元素指示的幀內預測模式來生成預測塊。再次,幀內預測單元318通常可以以與關於幀內預測單元226(圖3)所描述的方式基本上相似的方式來執行幀內預測處理。幀內預測單元318可以從DPB 314檢索當前塊的相鄰樣本的資料。
LMCS單元319可以被配置為執行LMCS視頻譯碼工具的操作。 例如,LMCS單元319可以接收經映射的亮度殘差塊。LMCS單元319還可以生成經映射的預測塊。例如,LMCS單元319可以對於由運動補償單元316或幀內預測單元318生成的預測塊執行映射操作,以生成經映射的預測塊。重構單元310可以將經映射的預測塊添加到經映射的亮度殘差塊,以生成經映射的亮度塊。LMCS單元319可以執行逆映射以生成亮度塊。
對於色度,LMCS單元319可以接收縮放的殘差塊(例如,來自逆轉換處理單元308)。LMCS單元319可以利用縮放參數,對縮放的殘差塊進行縮放(例如,逆縮放)以生成色度殘差塊。重構單元310可以將色度殘差塊添加到色度預測塊以重構色度塊。
重構單元310可以使用預測塊和殘差塊來重構當前塊。例如,重構單元310可以將殘差塊的樣本添加到預測塊的對應樣本以重構當前的塊。
濾波單元312可以對重構的塊執行一個或多個濾波操作。例如,濾波單元312可以執行解塊操作,以減少沿著重構塊的邊緣的塊狀偽像。不一定在所有示例中都執行濾波單元312的操作。
視頻解碼器300可以將重構的塊儲存在DPB 314中。例如,在不執行濾波單元312的操作的例子中,重構單元310可以將重構的塊儲存到DPB 314中。在執行濾波單元312的操作的例子中,濾波單元312可以將濾波的重構塊儲存到DPB 314中。如上所述,DPB 314可以向預測處理單元304提供參考資訊,例如用於幀內預測的當前圖片的樣本以及用於後續運動補償的先前解碼的圖片。此外,視頻解碼器300可以從DPB 314輸出解碼的圖片(例如,解碼的視頻),以便隨後在諸如圖1的顯示設備118之類的顯示設備上呈現。
用此方式,視頻解碼器300表示視頻解碼設備的例子,該視頻解碼設備包括被配置為儲存視頻資料的記憶體、以及在電路中實現並且被配置為執行本公開內容中描述的示例性技術的一個或多個處理單元。
如上所述,視頻解碼器300可以被配置為執行LMCS。視頻解碼器300可以被配置為對視頻編碼器200用訊號通知用以執行LMCS的語法元素進行解析。例如,視頻解碼器300可以被配置為對用於確定視頻解碼器300將用於色度縮放的縮放參數的語法元素進行解析和解碼。但是,可能存在CU沒有色度分量,但針對CU啟用了LMCS的情形。在這種情況下,可能發生不必要或錯誤的信令,例如在視頻編碼器200仍然用訊號通知語法元素,並且視頻解碼器300仍然對語法元素進行解析以確定用於色度縮放的縮放參數的情況下(儘管此時沒有色度分量)。
如上所述,當ChromaArrayType等於零時,可能不存在色度分量。ChromaArrayType等於零,意味著顏色格式是單色(例如,黑色和白色)。
根據一個或多個例子,視頻解碼器300可以確定對於用於譯碼單元(CU)的亮度映射與色度縮放(LMCS),存在與色度相關的語法元素(例如,色度分量)。例如,視頻解碼器300可以對用於指示存在與色度相關的語法元素(例如,存在色度分量)的標誌(例如,lmcs_cs_present_flag(也稱為aps_chroma_present_flag))進行解析。視頻解碼器300可以基於該標誌,來確定存在與色度相關的語法元素(例如,色度分量)。
當存在用於CU的LMCS的與色度相關的語法元素時,視頻解碼器300可以對語法元素(例如,lmcs_delta_abs_crs)進行解碼。該語法元素可以指示用於確定用於LMCS中的色度縮放的縮放參數的值。例如,lmcs_delta_abs_crs可以指示lmcsDeltaCrs值(例如,lmcs_delta_abs_crs是lmcsDeltaCrs的絕對值),而lmcsDeltaCrs可以用於確定用於LMCS中的色度縮放的縮放參數(例如,ChromaScaleCoeff)。視頻解碼器300可以對自適應參數集(APS)中的LMCS語法結構裡的該語法元素進行解碼。
視頻解碼器300可以基於用於色度縮放的縮放參數,對CU的色度塊進行解碼。例如,視頻解碼器300可以基於縮放參數,對縮放的殘差色度塊進行逆縮放以生成殘差色度塊,確定色度預測塊,並將殘差色度塊添加到色度預測塊以重構色度塊。
在一些例子中,視頻解碼器300可以基於確定存在與色度相關的語法元素,對語法元素(例如,lmcs_delta_abs_crs)進行解碼(例如,解析)。例如,可以將上面的CU視作為第一CU。對於第二CU,視頻解碼器300可以確定對於第二CU的LMCS,不存在與色度相關的語法元素。在該例子中,當對於第二CU的LMCS,不存在與色度相關的語法元素時,視頻解碼器300可以跳過該語法元素的解碼(例如,包括解析)。也就是說,如果不存在色度分量,則視頻解碼器300可以不解析lmcs_delta_abs_crs。
在一些例子中,視頻解碼器300可以被配置為:基於對一個或多個塊禁用了ALF,跳過對於指示用於一個或多個塊的自適應環路濾波(ALF)的自適應參數集(APS)類型的資訊的解析,並重構所述一個或多個塊。
在一些例子中,視頻解碼器300可以被配置為:基於對一個或多個塊禁用了CCALF,跳過對於指示用於一個或多個塊的交叉分量自適應環路濾波器(CCALF)的資訊的解析,並重構所述一個或多個塊。
在一些例子中,視頻解碼器300可以被配置為:基於用於塊的色度陣列類型,來確定是否對於指示是否用訊號通知色度濾波器的語法元素進行解析,並重構該塊。
在一些例子中,視頻解碼器300可以被配置為:基於色度陣列類型,確定是否對指示亮度映射與色度縮放(LMCS)的資訊進行解析,並基於是否解析指示LMCS的資訊來執行LMCS。
在一些例子中,視頻解碼器300可以被配置為:接收用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來解析LMCS資訊。
圖5是示出用於對視頻資料進行譯碼的示例方法的流程圖。關於視頻譯碼器(例如,視頻編碼器200或視頻解碼器300)來描述圖5的例子。視頻譯碼器可以是處理電路的一部分(例如,固定功能或可程式)。例如,記憶體可以被配置為儲存視頻資料,並且記憶體的例子包括記憶體106、記憶體120、視頻資料記憶體230、DPB 218、CPB記憶體320、DPB 314或者某種其它記憶體。處理電路(例如,視頻譯碼器的處理電路)可以耦合到記憶體並且被配置為執行這些示例技術。
視頻譯碼器可以確定對於用於視頻資料的譯碼單元(CU)的亮度映射與色度縮放(LMCS),存在該視頻資料的與色度相關的語法元素(350)。例如,視頻編碼器200可以基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌(例如,lmcs_cs_present_flag(也稱為aps_chroma_present_flag))。視頻解碼器300可以對指示存在與色度相關的語法元素的標誌(例如,lmcs_cs_present_flag(也稱為aps_chroma_present_flag))進行解析。在該例子中,視頻解碼器300可以基於該標誌,來確定存在與色度相關的語法元素。如上所述,存在或者不存在與色度相關的語法元素可以指示存在或者不存在色度分量。
當存在用於CU的LMCS的與色度相關的語法元素時,視頻譯碼器可以對該視頻資料的語法元素進行譯碼(352)。該語法元素指示用於確定LMCS中的色度縮放的縮放參數(例如,ChromaScaleCoeff)的值(例如,lmcsDeltaCrs)。例如,該語法元素可以指定用於確定用於色度縮放的縮放參數(例如,ChromaScaleCoeff)的值(例如,lmcsDeltaCrs)的絕對碼字值。在一些例子中,視頻譯碼器可以將在自適應參數集(APS)中的LMCS語法結構中的該語法元素譯碼。
視頻譯碼器可以基於用於色度縮放的縮放參數,對CU的視頻資料的色度塊進行譯碼(354)。例如,視頻編碼器200可以確定色度預測塊,從色度塊中減去色度預測塊以生成殘差塊,基於縮放參數來縮放殘差塊以生成經縮放的殘差塊,並用訊號通知用於指示經縮放的殘差塊的資訊。再舉一個例子,視頻解碼器300可以基於縮放參數,對縮放的殘差色度塊進行逆縮放以生成殘差色度塊,確定色度預測塊,並將殘差色度塊添加到色度預測塊以重構色度塊。
在一些例子中,僅當存在與色度相關的語法元素時,視頻編碼器200才可以用訊號通知該語法元素(例如,lmcs_delta_abs_crs),並且視頻解碼器300可以基於確定存在與色度相關的語法元素,對語法元素(例如,lmcs_delta_abs_crs)進行解析。例如,在上面的例子中,可以將該CU視作為第一CU。
視頻編碼器200可以確定對於第二CU的LMCS,不存在與色度相關的語法元素,並且在該例子中,可以用訊號通知lmcs_cs_present_flag,以指示不存在用於第二CU的色度分量。視頻解碼器300可以對用於第二CU的lmcs_cs_present_flag進行解析,並確定不存在用於第二CU的色度分量。
當對於第二CU的LMCS,不存在與色度相關的語法元素時,視頻編碼器200可以跳過該語法元素(例如,lmcs_delta_abs_crs)的編碼,而視頻解碼器300可以跳過該語法元素(例如,lmcs_delta_abs_crs)的解碼。例如,上面的表提供了以下內容: if (lmcs_cs_present_flag) { lmcs_delta_abs_crs.
根據上面的代碼,僅當lmcs_cs_present_flag為真(即,存在色度分量)時,視頻編碼器200才用訊號通知語法元素lmcs_delta_abs_crs,而視頻解碼器300才對該語法元素進行解析。但是,如果lmcs_cs_present_flag為假(即,不存在色度分量),則視頻編碼器200跳過信令(例如,不用訊號通知),並且視頻解碼器300跳過對於lmcs_delta_abs_crs語法元素的解析(例如,不進行解析)。因此,僅當存在色度分量時,視頻編碼器200才用訊號通知lmcs_delta_abs_crs語法元素,並且視頻解碼器300才對該語法元素進行解析。
下面描述根據本公開內容的示例性技術。可以單獨地利用這些示例性技術,也可以以任何組合來利用這些示例性技術。
條款1A。一種對視頻資料進行解碼的方法,該方法包括:基於對一個或多個塊禁用了自適應環路濾波(ALF),跳過對於指示用於所述一個或多個塊的ALF的自適應參數集(APS)類型的資訊的解析,並重構所述一個或多個塊。
條款2A。根據條款1A所述的方法,還包括:基於在參數集中接收的信令,確定對所述一個或多個塊禁用了ALF。
條款3A。一種對視頻資料進行解碼的方法,該方法包括:基於對一個或多個塊禁用了交叉分量自適應環路濾波器(CCALF),跳過對於指示用於所述一個或多個塊的CCALF的資訊的解析,並重構所述一個或多個塊。
條款4A。根據條款3A所述的方法,還包括:基於在參數集中接收的信令,確定對所述一個或多個塊禁用了CCALF。
條款5A。根據條款3A和4A中的任何一項所述的方法,其中,跳過解析包括:跳過自適應環路濾波器(ALF)自適應參數集(APS)中的解析。
條款6A。根據條款3A-5A中的任何一項所述的方法,還包括:基於指示是否啟用了CCALF的語法元素或者指示色度陣列類型的語法元素中的至少一個,確定是否解析用於指示是否用訊號通知用於色度分量的交叉分量濾波器的語法元素。
條款7A。一種解碼的方法,該方法包括:基於用於塊的色度陣列類型,來確定是否解析用於指示是否用訊號通知色度濾波器的語法元素,並重構所述塊。
條款8A。一種對視頻資料進行解碼的方法,該方法包括:基於色度陣列類型,確定是否對指示亮度映射與色度縮放(LMCS)的資訊進行解析,並基於是否解析指示LMCS的資訊來執行LMCS。
條款9A。一種對視頻資料進行解碼的方法,該方法包括:接收用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來解析LMCS資訊。
條款10A。一種對視頻資料進行編碼的方法,該方法包括:確定對於一個或多個塊禁用了自適應環路濾波(ALF),基於對於一個或多個塊禁用了ALF,避免將自適應參數集(APS)類型設置為等於與ALF相對應的APS類型,並且用訊號通知用於指示對一個或多個塊禁用了ALF的資訊。
條款11A。一種對視頻資料進行編碼的方法,該方法包括:確定對於一個或多個塊,禁用了交叉分量自適應環路濾波器(CCALF),基於對於一個或多個塊禁用了CCALF,避免用訊號通知指示用於一個或多個塊的CCALF的資訊,並且用訊號通知用於指示對一個或多個塊禁用了CCALF的資訊。
條款12A。根據條款11A所述的方法,其中,避免用訊號通知包括:避免在自適應環路濾波器(ALF)自適應參數集(APS)中用訊號通知。
條款13A。一種編碼的方法,該方法包括:基於用於塊的色度陣列類型,來確定是否用訊號通知用於指示是否用訊號通知色度濾波器的語法元素。
條款14A。一種對視頻資料進行編碼的方法,該方法包括:基於色度陣列類型,來確定是否用訊號通知用於指示亮度映射與色度縮放(LMCS)的資訊,並基於所述確定,來用訊號通知用於指示LMCS的資訊。
條款15A。一種對視頻資料進行編碼的方法,該方法包括:用訊號通知用於指示在語法結構中是否存在亮度映射與色度縮放(LMCS)資訊的一個或多個語法元素,並基於所述一個或多個語法元素來用訊號通知LMCS資訊。
條款16A。一種對視頻資料進行解碼的方法,該方法包括條款1A-9A中的任何一項或者任意組合。
條款17A。一種對視頻資料進行編碼的方法,該方法包括條款10A-15A中的任何一項或者任意組合。
條款18A。一種用於對視頻資料進行解碼的設備,該設備包括:被配置為儲存視頻資料的記憶體、以及被配置為執行根據條款16A所述的方法的處理電路。
條款19A。一種用於對視頻資料進行編碼的設備,該設備包括:被配置為儲存視頻資料的記憶體、以及被配置為執行根據條款17A所述的方法的處理電路。
條款20A。根據條款18A和19A中的任何一項所述的設備,還包括:被配置為顯示解碼的視頻資料的顯示器。
條款21A。根據條款18A-20A中的任何一項所述的設備,其中,所述設備包括照相機、計算機、行動設備、廣播接收器設備或機上盒中的一個或多個。
條款22A。根據條款18A-21A中的任何一項所述的設備,其中,所述設備包括視頻解碼器。
條款23A。根據條款18A-22A中的任何一項所述的設備,其中,所述設備包括視頻編碼器。
條款24A。一種具有其上儲存的指令的計算機可讀儲存媒體,當所述指令被執行時,使一個或多個處理器執行條款16A或17A中的任何一項所述的方法。
條款25A。一種用於對視頻資料進行譯碼的設備,該設備包括:用於執行根據條款16A或17A中的任何一項所述的方法的構件。
條款1B。一種對視頻資料進行譯碼的方法,所述方法包括:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;並基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
條款2B。根據條款1B所述的方法,還包括:解析用於指示存在與色度相關的語法元素的標誌,其中,確定存在所述與色度相關的語法元素包括:基於所述標誌,確定存在所述與色度相關的語法元素。
條款3B。根據條款1B和2B中的任何一項所述的方法,還包括:基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
條款4B。根據條款1B-3B中的任何一項所述的方法,其中,對所述語法元素進行譯碼包括:基於確定存在與色度相關的語法元素,來解析所述語法元素。
條款5B。根據條款1B-4B中的任何一項所述的方法,其中,對所述語法元素進行譯碼包括:僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
條款6B。根據條款1B-5B中的任何一項所述的方法,其中,對所述語法元素進行譯碼包括:對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼。
條款7B。根據條款1B-6B中的任何一項所述的方法,其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
條款8B。根據條款1B-7B中的任何一項所述的方法,其中,所述語法元素包括第一語法元素,並且其中,所述譯碼的方法包括編碼方法,所述方法還包括:確定在用於所述CU的自適應參數集(APS)中用訊號通知的第二語法元素的值,以指定用於表示用於LMCS的第三語法元素的位元數,其中,所述第二語法元素的所述值被限制至0到基於位元深度的值的範圍。
條款9B。根據條款1B-8B中的任何一項所述的方法,其中,所述譯碼的方法包括編碼方法,所述方法還包括:確定序列參數集(SPS)指示交叉分量自適應環路濾波器(CCALF)被禁用;當所述SPS指示CCALF被禁用時,在自適應參數集(APS)中設置至少一個標誌,以指定不用訊號通知用於色度分量的交叉分量濾波器。
條款10B。根據條款1B-9B中的任何一項所述的方法,其中,所述CU是第一CU,所述方法還包括:確定對於第二CU,不存在用於LMCS的與色度相關的語法元素;當針對所述第二CU不存在用於LMCS的所述與色度相關的語法元素時,跳過所述語法元素的譯碼。
條款11B。根據條款1B-10B中的任何一項所述的方法,其中,基於用於色度縮放的所述縮放參數來對所述CU的所述色度塊進行譯碼包括:對所述色度塊進行解碼,並且其中,對所述色度塊進行解碼包括:基於所述縮放參數,對經縮放的殘差色度塊進行逆縮放以生成殘差色度塊;確定色度預測塊;並將所述殘差色度塊與所述色度預測塊相加以重構所述色度塊。
條款12B。根據條款1B-11B中的任何一項所述的方法,其中,基於用於色度縮放的所述縮放參數來對所述色度塊進行譯碼包括:對所述色度塊進行編碼,並且其中,對所述色度塊進行編碼包括:確定色度預測塊;從色度塊中減去所述色度預測塊,以生成殘差塊;基於所述縮放參數來對所述殘差塊進行縮放以生成經縮放的殘差塊;並用訊號通知指示所述經縮放的殘差塊的資訊。
條款13B。一種用於對視頻資料進行譯碼的設備,所述設備包括配置為儲存所述視頻資料的記憶體、以及配置為進行以下操作的處理電路:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
條款14B。根據條款13B所述的設備,其中,所述處理電路被配置為:解析用於指示存在與色度相關的語法元素的標誌,其中,為了確定存在所述與色度相關的語法元素,所述處理電路被配置為基於所述標誌,確定存在所述與色度相關的語法元素。
條款15B。根據條款13B和14B中的任何一項所述的設備,其中,所述處理電路被配置為:基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
條款16B。根據條款13B-15B中的任何一項所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:基於確定存在與色度相關的語法元素,來解析所述語法元素。
條款17B。根據條款13B-16B中的任何一項所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
條款18B。根據條款13B-17B中的任何一項所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼。
條款19B。根據條款13B-18B中的任何一項所述的設備,其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
條款20B。根據條款13B-19B中的任何一項所述的設備,其中,所述語法元素包括第一語法元素,並且其中,所述處理電路被配置為:確定在用於所述CU的自適應參數集(APS)中用訊號通知的第二語法元素的值,以指定用於表示用於LMCS的第三語法元素的位元數,其中,所述第二語法元素的所述值被限制至0到基於位元深度的值的範圍。
條款21B。根據條款13B-20B中的任何一項所述的設備,其中,所述處理電路被配置為:確定序列參數集(SPS)指示交叉分量自適應環路濾波器(CCALF)被禁用;並且當所述SPS指示CCALF被禁用時,在自適應參數集(APS)中設置至少一個標誌,以指定不用訊號通知用於色度分量的交叉分量濾波器。
條款22B。根據條款13B-21B中的任何一項所述的設備,其中,所述CU是第一CU,並且其中,所述處理電路被配置為:確定對於第二CU,不存在用於LMCS的與色度相關的語法元素;當針對所述第二CU不存在用於LMCS的所述與色度相關的語法元素時,跳過所述語法元素的譯碼。
條款23B。根據條款13B-22B中的任何一項所述的設備,其中,為了基於用於色度縮放的所述縮放參數來對所述CU的所述色度塊進行譯碼,所述處理電路被配置為對所述色度塊進行解碼,並且其中,為了對所述色度塊進行解碼,所述處理電路被配置為:基於所述縮放參數,對經縮放的殘差色度塊進行逆縮放以生成殘差色度塊;確定色度預測塊;並將所述殘差色度塊與所述色度預測塊相加以重構所述色度塊。
條款24B。根據條款13B-23B中的任何一項所述的設備,其中,為了基於用於色度縮放的所述縮放參數來對所述色度塊進行譯碼,所述處理電路被配置為對所述色度塊進行編碼,並且其中,為了對所述色度塊進行編碼,所述處理電路被配置為:確定色度預測塊;從色度塊中減去所述色度預測塊,以生成殘差塊;基於所述縮放參數來對所述殘差塊進行縮放以生成經縮放的殘差塊;並用訊號通知指示所述經縮放的殘差塊的資訊。
條款25B。根據條款13B-24B中的任何一項所述的設備,其中,所述設備包括照相機、計算機、行動設備、廣播接收器設備或機上盒中的一個或多個。
條款26B。一種具有其上儲存的指令的計算機可讀儲存媒體,當所述指令被執行時,使一個或多個處理器進行以下操作:確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素;當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;並基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
條款27B。根據條款26B所述的計算機可讀儲存媒體,還包括使所述一個或多個處理器進行以下操作中的至少一項的指令:解析用於指示存在與色度相關的語法元素的標誌,其中,使所述一個或多個處理器確定存在所述與色度相關的語法元素的所述指令包括使所述一個或多個處理器進行以下操作的指令:基於所述標誌,確定存在所述與色度相關的語法元素,或者基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
條款28B。根據條款26B和27B中的任何一項所述的計算機可讀儲存媒體,其中,使所述一個或多個處理器對所述語法元素進行譯碼的所述指令包括使所述一個或多個處理器進行以下操作中的至少一項的指令:基於確定存在與色度相關的語法元素,來解析所述語法元素,或者僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
條款29B。根據條款26B-28B中的任何一項所述的計算機可讀儲存媒體,其中,使所述一個或多個處理器對所述語法元素進行譯碼的所述指令包括:使所述一個或多個處理器對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼的指令,並且其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
條款30B。一種用於對視頻資料進行譯碼的設備,所述設備包括:用於確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素的構件;用於當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼的構件,其中所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;用於基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼的構件。
應當認識到,根據示例,本文所描述的任何技術的某些動作或事件可以以不同的順序執行、可以進行添加、合併或者完全省略(例如,並非所有描述的動作或事件都是實施該技術所必需的)。此外,在某些例子中,可以例如通過多線程處理、中斷處理或多個處理器併發地而不是順序地執行動作或事件。
在一個或多個例子中,所描述的功能可以利用硬體、軟體、韌體或者其任意組合來實現。當利用軟體實現時,可以將這些功能儲存在計算機可讀媒體上,或者作為計算機可讀媒體上的一個或多個指令或代碼進行傳輸,並由基於硬體的處理單元來執行。計算機可讀媒體可以包括計算機可讀儲存媒體,計算機可讀儲存媒體對應於諸如資料儲存媒體或通訊媒體之類的有形媒體,其中通訊媒體包括有助於例如根據通訊協議,將計算機程序從一個地方傳送到另一個地方的任何媒體。用此方式,計算機可讀媒體通常可以對應於:(1)非臨時性的有形計算機可讀儲存媒體;或者(2)諸如訊號或載波波形之類的通訊媒體。資料儲存媒體可以是一個或多個計算機或者一個或多個處理器能夠進行存取以獲取用於實現本公開內容中描述的技術的指令、代碼和/或資料結構的任何可用媒體。計算機程序產品可以包括計算機可讀媒體。
舉例而言,但非做出限制,這種計算機可讀儲存媒體可以包括RAM、ROM、EEPROM、CD-ROM或者其它光碟記憶體、磁碟記憶體或其它磁儲存設備、閃存或者能夠用於儲存具有指令或資料結構形式的期望的程序代碼並能夠由計算機進行存取的任何其它媒體。此外,可以將任何連接適當地稱作計算機可讀媒體。舉例而言,如果指令是使用同軸電纜、光纖光纜、雙絞線、數位用戶線路(DSL)或者諸如紅外線、無線和微波之類的無線技術,從網站、伺服器或其它遠程源傳輸的,那麼所述同軸電纜、光纖光纜、雙絞線、DSL或者諸如紅外線、無線和微波之類的無線技術包括在所述媒體的定義中。但是,應當理解的是,計算機可讀儲存媒體和資料儲存媒體並不包括連接、載波波形、訊號或者其它臨時媒體,而是針對於非臨時的有形儲存媒體。如本文所使用的,磁碟和光碟包括壓縮光碟CD、雷射光碟、光碟、數位通用光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟則用雷射來光學地複製資料。上述的組合也應當包括在計算機可讀媒體的保護範圍之內。
指令可以由諸如一個或多個數位訊號處理器(DSP)、通用微處理器、專用積體電路(ASIC)、現場可程式閘陣列(FPGA)之類的一個或多個處理器或者其它等同的積體或分立邏輯電路來執行。因此,如本文所使用的,術語「處理器」和「處理電路」可以指代前述的結構或者適合於實現本文所描述的技術的任何其它結構中的任何一種。此外,在一些方面,本文所描述的功能可以提供在被配置為實現編碼和解碼的專用硬體和/或軟體模塊中,或者併入到組合的編解碼器中。此外,這些技術可以在一個或多個電路或邏輯元件中完全實現。
本公開內容的技術可以使用多種多樣的設備或裝置來實現,其包括使用無線手持裝置、積體電路(IC)或者一組IC(例如,晶片集)。本公開內容中描述了各種組件、模塊或單元,以強調被配置為執行所公開的技術的設備的功能方面,但不一定需要由不同的硬體單元來實現。相反,如上所述,各個單元可以組合在編解碼器硬體單元中,或者通過協作的硬體單元集合(其包括如上所述的一個或多個處理器)結合適當的軟體和/或韌體來提供。
描述了各個示例。這些和其它示例落入所附申請專利範圍的保護範圍之內。
100:視頻編碼和解碼系統/系統 102:源設備 104:視頻源 106:記憶體 108:輸出介面 110:計算機可讀媒體 112:儲存設備 114:檔案伺服器 116:目的地設備 118:顯示設備 120:記憶體 122:輸入介面 130:四叉樹二叉樹(QTBT)結構 132:譯碼樹單元(CTU) 200:視頻編碼器 202:模式選擇單元 204:殘差生成單元 206:轉換處理單元 208:量化單元 210:逆量化單元 212:逆轉換處理單元 214:重構單元 216:濾波單元 218:解碼圖片緩衝器(DPB) 220:熵編碼單元 222:運動估計單元 224:運動補償單元 226:幀內預測單元 227:亮度映射與色度縮放(LMCS)單元 300:視頻解碼器 302:熵解碼單元 304:預測處理單元 306:逆量化單元 308:逆轉換處理單元 310:重構單元 312:濾波單元 314:解碼圖片緩衝器(DPB) 316:運動補償單元 318:幀內預測單元 319:亮度映射與色度縮放(LMCS)單元 350,352,354:步驟
圖1是示出可以執行本公開內容的技術的示例性視頻編碼和解碼系統的方塊圖。
圖2A和圖2B是示出示例性四叉樹二叉樹(QTBT)結構和相應的譯碼樹單元(CTU)的概念圖。
圖3是示出可以執行本公開內容的技術的示例性視頻編碼器的方塊圖。
圖4是示出可以執行本公開內容的技術的示例性視頻解碼器的方塊圖。
圖5是示出用於對視頻資料進行譯碼的示例方法的流程圖。
350,352,354:步驟

Claims (30)

  1. 一種對視頻資料進行譯碼的方法,所述方法包括: 確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素; 當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;以及 基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
  2. 根據請求項1所述的方法,還包括: 解析用於指示存在與色度相關的語法元素的標誌, 其中,確定存在所述與色度相關的語法元素包括:基於所述標誌,確定存在所述與色度相關的語法元素。
  3. 根據請求項1所述的方法,還包括: 基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
  4. 根據請求項1所述的方法,其中,對所述語法元素進行譯碼包括:基於確定存在與色度相關的語法元素,來解析所述語法元素。
  5. 根據請求項1所述的方法,其中,對所述語法元素進行譯碼包括:僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
  6. 根據請求項1所述的方法,其中,對所述語法元素進行譯碼包括:對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼。
  7. 根據請求項1所述的方法,其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
  8. 根據請求項1所述的方法,其中,所述語法元素包括第一語法元素,並且其中,所述譯碼的方法包括編碼方法,所述方法還包括: 確定在用於所述CU的自適應參數集(APS)中用訊號通知的第二語法元素的值,以指定用於表示用於LMCS的第三語法元素的位元數,其中,所述第二語法元素的所述值被限制至0到基於位元深度的值的範圍。
  9. 根據請求項1所述的方法,其中,所述譯碼的方法包括編碼方法,所述方法還包括: 確定序列參數集(SPS)指示交叉分量自適應環路濾波器(CCALF)被禁用;以及 當所述SPS指示CCALF被禁用時,在自適應參數集(APS)中設置至少一個標誌,以指定不用訊號通知用於色度分量的交叉分量濾波器。
  10. 根據請求項1所述的方法,其中,所述CU是第一CU,所述方法還包括: 確定對於第二CU,不存在用於LMCS的與色度相關的語法元素;以及 當針對所述第二CU不存在用於LMCS的所述與色度相關的語法元素時,跳過所述語法元素的譯碼。
  11. 根據請求項1所述的方法,其中,基於用於色度縮放的所述縮放參數來對所述CU的所述色度塊進行譯碼包括:對所述色度塊進行解碼,並且其中,對所述色度塊進行解碼包括: 基於所述縮放參數,對經縮放的殘差色度塊進行逆縮放以生成殘差色度塊; 確定色度預測塊;以及 將所述殘差色度塊與所述色度預測塊相加以重構所述色度塊。
  12. 根據請求項1所述的方法,其中,基於用於色度縮放的所述縮放參數來對所述色度塊進行譯碼包括:對所述色度塊進行編碼,並且其中,對所述色度塊進行編碼包括: 確定色度預測塊; 從色度塊中減去所述色度預測塊,以生成殘差塊; 基於所述縮放參數來對所述殘差塊進行縮放以生成經縮放的殘差塊;以及 用訊號通知指示所述經縮放的殘差塊的資訊。
  13. 一種用於對視頻資料進行譯碼的設備,所述設備包括: 記憶體,其配置為儲存所述視頻資料;以及 處理電路,其配置為: 確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素; 當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;以及 基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
  14. 根據請求項13所述的設備,其中,所述處理電路被配置為: 解析用於指示存在與色度相關的語法元素的標誌, 其中,為了確定存在所述與色度相關的語法元素,所述處理電路被配置為基於所述標誌,確定存在所述與色度相關的語法元素。
  15. 根據請求項13所述的設備,其中,所述處理電路被配置為: 基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
  16. 根據請求項13所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:基於確定存在與色度相關的語法元素,來解析所述語法元素。
  17. 根據請求項13所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
  18. 根據請求項13所述的設備,其中,為了對所述語法元素進行譯碼,所述處理電路被配置為:對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼。
  19. 根據請求項13所述的設備,其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
  20. 根據請求項13所述的設備,其中,所述語法元素包括第一語法元素,並且其中,所述處理電路被配置為: 確定在用於所述CU的自適應參數集(APS)中用訊號通知的第二語法元素的值,以指定用於表示用於LMCS的第三語法元素的位元數,其中,所述第二語法元素的所述值被限制至0到基於位元深度的值的範圍。
  21. 根據請求項13所述的設備,其中,所述處理電路被配置為: 確定序列參數集(SPS)指示交叉分量自適應環路濾波器(CCALF)被禁用;以及 當所述SPS指示CCALF被禁用時,在自適應參數集(APS)中設置至少一個標誌,以指定不用訊號通知用於色度分量的交叉分量濾波器。
  22. 根據請求項13所述的設備,其中,所述CU是第一CU,以及其中,所述處理電路被配置為: 確定對於第二CU,不存在用於LMCS的與色度相關的語法元素;以及 當針對所述第二CU不存在用於LMCS的所述與色度相關的語法元素時,跳過所述語法元素的譯碼。
  23. 根據請求項13所述的設備,其中,為了基於用於色度縮放的所述縮放參數來對所述CU的所述色度塊進行譯碼,所述處理電路被配置為對所述色度塊進行解碼,並且其中,為了對所述色度塊進行解碼,所述處理電路被配置為: 基於所述縮放參數,對經縮放的殘差色度塊進行逆縮放以生成殘差色度塊; 確定色度預測塊;以及 將所述殘差色度塊與所述色度預測塊相加以重構所述色度塊。
  24. 根據請求項13所述的設備,其中,為了基於用於色度縮放的所述縮放參數來對所述色度塊進行譯碼,所述處理電路被配置為對所述色度塊進行編碼,並且其中,為了對所述色度塊進行編碼,所述處理電路被配置為: 確定色度預測塊; 從色度塊中減去所述色度預測塊,以生成殘差塊; 基於所述縮放參數來對所述殘差塊進行縮放以生成經縮放的殘差塊;以及 用訊號通知指示所述經縮放的殘差塊的資訊。
  25. 根據請求項13所述的設備,其中,所述設備包括照相機、計算機、行動設備、廣播接收器設備或機上盒中的一個或多個。
  26. 一種具有在其上儲存的指令的計算機可讀儲存媒體,當所述指令被執行時,使一個或多個處理器進行以下操作: 確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素; 當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;以及 基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼。
  27. 根據請求項26所述的計算機可讀儲存媒體,還包括使所述一個或多個處理器進行以下操作中的至少一項的指令: 解析用於指示存在與色度相關的語法元素的標誌,其中,使所述一個或多個處理器確定存在所述與色度相關的語法元素的所述指令包括:使所述一個或多個處理器基於所述標誌,確定存在所述與色度相關的語法元素的指令,或者 基於確定存在與色度相關的語法元素,用訊號通知用於指示存在與色度相關的語法元素的標誌。
  28. 根據請求項26所述的計算機可讀儲存媒體,其中,使所述一個或多個處理器對所述語法元素進行譯碼的所述指令包括使所述一個或多個處理器進行以下操作中的至少一項的指令: 基於確定存在與色度相關的語法元素,來解析所述語法元素,或者 僅當存在所述與色度相關的語法元素時,才用訊號通知所述語法元素。
  29. 根據請求項26所述的計算機可讀儲存媒體,其中,使所述一個或多個處理器對所述語法元素進行譯碼的所述指令包括:使所述一個或多個處理器對在自適應參數集(APS)中的LMCS語法結構中的所述語法元素進行譯碼的指令,並且其中,所述語法元素指定用於確定用於色度縮放的所述縮放參數的所述值的絕對碼字值。
  30. 一種用於對視頻資料進行譯碼的設備,所述設備包括: 用於確定針對所述視頻資料的譯碼單元(CU),存在所述視頻資料的用於亮度映射與色度縮放(LMCS)的與色度相關的語法元素的構件; 用於當針對所述CU存在用於LMCS的所述與色度相關的語法元素時,對所述視頻資料的語法元素進行譯碼的構件,所述語法元素指示用於確定LMCS中的色度縮放的縮放參數的值;以及 用於基於用於色度縮放的所述縮放參數,對所述CU的色度塊進行譯碼的構件。
TW110112242A 2020-04-02 2021-04-01 視頻譯碼中的亮度映射與色度縮放(lmcs) TW202143717A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063004397P 2020-04-02 2020-04-02
US63/004,397 2020-04-02
US17/218,898 US11601657B2 (en) 2020-04-02 2021-03-31 LUMA mapping with chroma scaling (LMCS) in video coding
US17/218,898 2021-03-31

Publications (1)

Publication Number Publication Date
TW202143717A true TW202143717A (zh) 2021-11-16

Family

ID=77922634

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110112242A TW202143717A (zh) 2020-04-02 2021-04-01 視頻譯碼中的亮度映射與色度縮放(lmcs)

Country Status (7)

Country Link
US (1) US11601657B2 (zh)
EP (1) EP4128788A1 (zh)
KR (1) KR20220162697A (zh)
CN (1) CN115315957A (zh)
BR (1) BR112022018817A2 (zh)
TW (1) TW202143717A (zh)
WO (1) WO2021202905A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3912343A4 (en) * 2019-03-08 2022-07-20 Beijing Bytedance Network Technology Co., Ltd. LIMITATIONS OF MODEL-BASED TRANSFORMING IN VIDEO PROCESSING
CA3135968A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
JP7317991B2 (ja) 2019-04-23 2023-07-31 北京字節跳動網絡技術有限公司 クロスコンポーネント依存性を低減するための方法
JP7407206B2 (ja) 2019-05-08 2023-12-28 北京字節跳動網絡技術有限公司 クロスコンポーネントコーディングの適用条件
CN113994697A (zh) 2019-06-22 2022-01-28 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
CN114391258B (zh) 2019-07-05 2023-07-18 Lg电子株式会社 基于亮度映射的视频或图像编码
KR102660738B1 (ko) 2019-07-07 2024-04-26 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 잔차 스케일링의 시그널링
US11425405B2 (en) * 2019-11-15 2022-08-23 Qualcomm Incorporated Cross-component adaptive loop filter in video coding
US11303914B2 (en) * 2020-01-08 2022-04-12 Tencent America LLC Method and apparatus for video coding
CN115443653A (zh) * 2020-04-07 2022-12-06 抖音视界有限公司 高级别语法中的帧间预测的信令通知
JP2023521588A (ja) 2020-04-09 2023-05-25 北京字節跳動網絡技術有限公司 映像コーディングにおけるデブロッキング信号通知
CN115486064A (zh) * 2020-04-10 2022-12-16 抖音视界有限公司 标头语法元素和自适应参数集的使用
CN115868159A (zh) 2020-04-17 2023-03-28 抖音视界有限公司 自适应参数集单元的存在
CN115486081A (zh) 2020-04-26 2022-12-16 字节跳动有限公司 视频编解码语法元素的条件信令通知
KR20230015405A (ko) * 2020-05-22 2023-01-31 알리바바 그룹 홀딩 리미티드 비디오 콘텐츠를 처리하기 위한 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2020008499A (es) * 2018-02-14 2020-09-25 Dolby Laboratories Licensing Corp Reconfiguracion de imagenes en codificacion de video usando la optimizacion de tasa-distorsion.
WO2020180737A1 (en) * 2019-03-04 2020-09-10 Alibaba Group Holding Limited Method and system for processing video content
JP2022538747A (ja) * 2019-06-24 2022-09-06 アリババ グループ ホウルディング リミテッド ルマ及びクロマ信号を処理するための方法及びシステム
US11902584B2 (en) * 2019-12-19 2024-02-13 Tencent America LLC Signaling of picture header parameters
US11303914B2 (en) * 2020-01-08 2022-04-12 Tencent America LLC Method and apparatus for video coding
KR20230015405A (ko) * 2020-05-22 2023-01-31 알리바바 그룹 홀딩 리미티드 비디오 콘텐츠를 처리하기 위한 방법 및 장치

Also Published As

Publication number Publication date
CN115315957A (zh) 2022-11-08
US11601657B2 (en) 2023-03-07
BR112022018817A2 (pt) 2022-11-08
KR20220162697A (ko) 2022-12-08
US20210314579A1 (en) 2021-10-07
WO2021202905A1 (en) 2021-10-07
EP4128788A1 (en) 2023-02-08

Similar Documents

Publication Publication Date Title
US11601657B2 (en) LUMA mapping with chroma scaling (LMCS) in video coding
US11095916B2 (en) Wraparound motion compensation in video coding
CN114009026A (zh) 视频译码中的色度量化参数偏移的块级信令
CN113940069A (zh) 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令
US20210195179A1 (en) Picture header signaling for video coding
US11303935B2 (en) Deriving coding system operational configuration
CN113994694A (zh) 视频译码中的简化帧内色度模式译码
TW202127887A (zh) 視訊解碼中用於聯合色度殘差模式的量化參數訊號傳遞
CN115486066A (zh) 在视频编解码中的独立子图片信令通知
TW202131676A (zh) 視訊編碼中針對參考圖片重取樣的環繞偏移
US20210092406A1 (en) Inter-layer reference picture signaling in video coding
CN114982233A (zh) 用信号通知视频译码中的缩放矩阵
TW202141988A (zh) 用於視訊譯碼中的變換跳過區塊的高級約束
TW202133615A (zh) 基於色度變換跳過的用於色度的lfnst信號傳遞
US11683489B2 (en) Monochrome palette mode for video coding
US11973983B2 (en) Signaling coding scheme for residual values in transform skip for video coding
US11356685B2 (en) Signaling number of sub-pictures in high-level syntax for video coding
US11863787B2 (en) Maximum allowed block size for BDPCM mode
TW202143712A (zh) 視訊轉碼中的低頻不可分離變換處理