TW202131679A - 在視訊編碼中利用縮減的歸零項的低頻不可分變換(lfnst) - Google Patents
在視訊編碼中利用縮減的歸零項的低頻不可分變換(lfnst) Download PDFInfo
- Publication number
- TW202131679A TW202131679A TW109144985A TW109144985A TW202131679A TW 202131679 A TW202131679 A TW 202131679A TW 109144985 A TW109144985 A TW 109144985A TW 109144985 A TW109144985 A TW 109144985A TW 202131679 A TW202131679 A TW 202131679A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- transform
- transform coefficients
- zero
- coefficients
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一種示例性視訊資料解碼設備包括配置為儲存視訊資料的記憶體;及在電路系統中實現的一或多個處理器,該等處理器被配置為:決定視訊資料的變換區塊的尺寸為8×8個係數並且該變換區塊是使用低頻不可分變換(LFNST)而進行變換的;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
Description
本專利申請案主張於2019年12月20日提出申請的美國臨時申請案第62/951,984的權益,其全部內容經由引用合併於此。
本案係關於視訊編碼和視訊解碼。
數位視訊功能可以被整合到各種各樣的設備中,包括數位電視、數位直播系統、無線廣播系統、個人數位助理(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)切片中的視訊區塊,可以使用相對於同一圖片中相鄰區塊中參考取樣的空間預測或者相對於其他參考圖片中的參考取樣的時間預測。圖片可以被稱為訊框,而參考圖片可以被稱為參考訊框。
大體而言,本案對視訊編碼,例如視訊壓縮標準,中的變換編解碼(transform coding)進行了描述。例如,本案描述了可以提高編碼效率的低頻不可分變換設計的多種實例。該等示例性技術可以用於通用視訊編碼(VVC/H.266)中。該等示例性技術可以與包括HEVC和下一代視訊編解碼標準的擴展的其他先進視訊轉碼器一起使用。具體的,本案中的某些技術係關於對使用低頻不可分變換(LFNST)進行變換的8×8變換區塊的一定數量的非零變換係數進行顯式編解碼(explicity coding)(編碼(encoding)或解碼(deconding)),而不對該變換區塊的剩餘變換係數進行編解碼。舉例而言,視訊轉碼器可以被配置為顯式地對變換區塊的多至10個變換係數進行編解碼,並且該視訊轉碼器可以將剩餘的變換係數的值推斷為零值。
在一個實例中,一種視訊資料解碼方法包括以下步驟:決定視訊資料的變換區塊的尺寸為8×8個變換係數,且使用低頻不可分變換(LFNST)對該變換區塊進行了變換;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
在另一實例中,一種視訊資料解碼設備包括:配置為儲存視訊資料的記憶體;及在電路系統中實現的一或多個處理器,該等處理器被配置為:決定視訊資料的變換區塊的尺寸為8×8個變換係數,且使用低頻不可分變換(LFNST)對該變換區塊進行了變換;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
在另一實例中,一種其上儲存有指令的電腦可讀取儲存媒體,當執行指令時,使得處理器:決定視訊資料的變換區塊的尺寸為8×8個變換係數,且使用低頻不可分變換(LFNST)對該變換區塊進行了變換;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
在另一實例中,一種視訊資料解碼設備包括:用於決定視訊資料的變換區塊的尺寸為8×8個變換係數,且使用低頻不可分變換(LFNST)對該變換區塊進行了變換的構件;用於對該變換區塊的至少九個非零變換係數進行解碼的構件;用於使用逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的殘差區塊的構件;及用於使用該殘差區塊來重建該視訊資料的區塊的構件。
在以下附圖和描述中闡明了一或多個實例的細節。根據說明書、附圖和申請專利範圍,其他特徵、目的和優勢將是顯而易見的。
圖1是圖示進行本案的技術的一種示例性視訊編解碼系統100的方塊圖。本案的技術大體而言係關於視訊資料編解碼(編碼及/或解碼)。通常,視訊資料包括用於處理視訊的任何資料。因而,視訊資料可以包括原始視訊、未編碼視訊、已編碼視訊、已解碼(例如,重建)視訊以及視訊中繼資料,例如信號傳遞資料。
如圖1所示,在本實例中,系統100包括源設備102,源設備102向目標設備116提供待被解碼和顯示的已編碼視訊資料。具體的,源設備102經由電腦可讀取媒體110向目標設備116提供視訊資料。源設備102和目標設備116可以包括多種設備中的任何設備,包括桌上型電腦、筆記本(亦即,膝上型)電腦、平板電腦、機上盒、例如智慧型電話的電話手機、電視、相機、顯示設備、數位媒體播放機、視訊遊戲控制台、視訊串流設備等等。在一些情況下,源設備102和目標設備116可以被配置用於無線通訊,因此可以被稱為無線通訊設備。
在圖1的實例中,源設備102包括視訊源104、記憶體106、視訊編碼器200和輸出介面108。目標設備116包括輸入介面122、視訊解碼器300、記憶體120和顯示設備118。根據本案所述,源設備102的視訊編碼器200和目標設備116的視訊解碼器300可以用於應用減少歸零項(zero-out)的低頻不可分變換(LFNST)的技術。源設備102表示視訊編碼設備的實例,而目標設備116表示視訊解碼設備的實例。在其他實例中,源設備和目標設備可以包括其他元件或佈置。例如,源設備102可以從諸如外部相機的外部視訊源接收視訊資料。同樣地,目標設備116可以與外部顯示設備連接,而不是包括整合顯示設備。
圖1中所示的系統100僅僅是一個實例。總的而言,如本案所述,任何數位視訊編碼及/或解碼設備皆可以進行縮減歸零項的LFNST的技術。源設備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可以包括多種分散式的或本端存取的資料的儲存媒體中的任何一種,例如硬碟、Blu-ray光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體,或用於儲存已編碼視訊資料的任何其他合適的數位儲存媒體。
在一些實例中,源設備102可以將已編碼視訊資料輸出到檔案伺服器114或可以儲存由源設備102產生的已編碼視訊的另一中間儲存設備。目標設備116可以以串流或下載的方式來存取檔案伺服器114所儲存的視訊資料。檔案伺服器114可以是能夠儲存已編碼視訊資料並能將該已編碼視訊資料傳輸至目標設備116的任何類型的伺服器設備。檔案伺服器114可以表示web伺服器(例如,用於網站)、檔案傳輸通訊協定(FTP)伺服器、內容遞送網路設備,或網路連接式儲存(NAS)設備。目標設備116可以經由包括網際網路連接的任何標準資料連接來存取檔案伺服器114的已編碼視訊資料。該等連接可以包括無線通道(例如Wi-Fi連接)、有線連接(例如數位用戶線路(DSL)、纜線數據機等),或者二者的組合,該組合適合於存取儲存在檔案伺服器114上的已編碼視訊資料。檔案伺服器114和輸入介面122可以被配置為根據串流傳輸協定、下載傳輸協定或二者的組合來操作。
輸出介面108和輸入介面122可以表示無線傳輸器/接收器、數據機、有線網路元件(例如乙太網路卡)、根據多種IEEE 802.11標準中的任一種操作的無線通訊元件,或其他實體元件。在其中輸出介面108和輸入介面122包括無線元件的實例中,輸出介面108和輸入介面122可以被配置為根據蜂巢通訊標準來傳送例如已編碼視訊資料的資料。該蜂巢通訊標準包括例如4G、4G-LTE(長期進化)、高級LTE、5G等等。在其中輸出介面108包括無線傳輸器的一些實例中,輸出介面108和輸入介面122可以被配置為根據其他無線標準來傳送例如已編碼視訊資料的資料。該等其他無線標準包括IEEE 802.11規範、IEEE 802.15規範(例如ZigBeeTM
)、BluetoothTM
標準等等。在一些實例中,源設備102及/或目標設備116可以包括相應的晶片上系統(SoC)設備。例如,源設備102可以包括執行分發給視訊編碼器200及/或輸出介面108的功能的SoC設備,而目標設備116可以包括執行分發給視訊解碼器300及/或輸入介面122的功能的SoC設備。
可以將本案的技術應用於支援多種多媒體應用中任一種的視訊編解碼。該等多媒體應用包括例如空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路串流視訊傳輸,例如基於HTTP的動態自我調整串流(DASH)、編碼至資料儲存媒體上的數位視訊、儲存於資料儲存媒體上的數位視訊的解碼,或其他應用。
目標設備116的輸入介面122接收來自電腦可讀取媒體110(例如,通訊媒體、儲存設備112、檔案伺服器114等)的已編碼視訊位元串流。已編碼視訊位元串流可以包括由視訊編碼器200定義的用信號傳遞通知資訊。該用信號傳遞通知資訊亦被視訊解碼器300使用,例如具有描述視訊區塊或其他已編解碼單元(例如,切片、圖片、圖片群組、序列等)的特徵及/或處理的值的語法元素。顯示設備118向使用者顯示已解碼視訊資料的已解碼圖片。顯示設備118可以表示多種顯示設備中的任何一種。該多種顯示設備包括例如陰極射線管(CRT)顯示器、液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器或另一種類顯示設備。
儘管圖1中未圖示,在一些實例中,視訊編碼器200和視訊解碼器300分別可以與音訊編碼器及/或音訊解碼器整合在一起,並且可以包括適當的MUX-DEMUX單元或其他硬體及/或軟體,以處理普通資料串流中包括音訊和視訊兩者的多工串流。若適用,則MUX-DEMUX單元遵循ITU H.223多工器協定或例如使用者資料包通訊協定的其他協定一致。
視訊編碼器200和視訊解碼器300均可以實現為多種合適的編碼器及/或解碼器電路系統中的任何一種。上述多種合適的編碼器及/或解碼器電路系統包括:例如,一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或以上各種電路系統的任意組合。在使用軟體部分地實現上述技術的情況下,設備可以將用於軟體的指令儲存在合適的非暫時性電腦可讀取媒體中,並在使用一或多個處理器的硬體中執行該等指令,以進行本案的技術。視訊編碼器200和視訊解碼器300中的每一個可以被包括在一或多個編碼器或解碼器中,視訊編碼器200和視訊解碼器300中的任一個可以被整合為相應設備中的組合編碼器/解碼器(CODEC)的一部分。包括視訊編碼器200及/或視訊解碼器300的設備可以包括積體電路、微處理器及/或無線通訊設備,例如蜂巢式電話。
如前述,一種視訊編解碼標準是HEVC。M.Wien於2015年在柏林出版的High Efficiency Video Coding: Coding Tools and Specification ,
Springer-Verlag中對HEVC進行了描述。
視訊編碼器200和視訊解碼器300可以根據諸如聯合探索測試模型(Joint Exploration Test Model,JEM)或ITU-T H.266(亦稱為通用視訊編碼(Versatile Video Coding,VVC)),的其他專有或工業標準操作。2019年10月1日至11日的瑞士日內瓦舉辦的ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET)第16次會議的提案的JVET-P2001-v14章節中的Bross等人的「Versatile Video Coding (Draft 7)」描述了VVC標準的最新草案(以下簡稱「VVC草案7」)。然而,本案的技術不限於任何特定的編碼標準。
通常,視訊編碼器200和視訊解碼器300可以執行基於區塊的圖片編解碼。術語「區塊」通常是指包括待處理的資料(例如,已編碼的、已解碼的,或者在編碼及/或解碼程序中使用的)的結構。例如,區塊可以包括具有亮度及/或色度資料的取樣的二維矩陣。通常,視訊編碼器200和視訊解碼器300可以對以YUV(例如,Y、Cb、Cr)格式表示的視訊資料進行編解碼。亦即,視訊編碼器200和視訊解碼器300不是對圖片的取樣的紅、綠和藍(RGB)資料進行編解碼,而是可以對亮度和色度分量進行編解碼,其中色度分量可以包括紅色色度分量和藍色色度分量兩者。在一些實例中,視訊編碼器200在編碼之前將接收到的RGB格式的資料轉換成YUV表示,而視訊解碼器300將YUV表示轉換成RGB格式。或者,預處理單元和後處理單元(未圖示)可以執行該等轉換。
本案通常可以指圖片的編解碼(例如,編碼和解碼),其包括對該圖片的資料進行編碼或解碼的程序。類似地,本案可以指對圖片的區塊的編解碼,其包括對該等區塊的資料進行編碼或解碼的程序,例如,預測及/或殘差編解碼。已編碼視訊位元串流通常包括用於語法元素(syntax elements)的一系列值,該等語法元素表示編解碼決策(例如,編解碼模式)和圖片到區塊的劃分方式。因此,通常應該將對圖片或區塊進行編解碼的描述理解為用於形成該圖片或區塊的語法元素的編解碼值。
HEVC定義了各種區塊,包括編碼單元(CU)、預測單元(PU)和變換單元(TU)。根據HEVC,視訊編碼器(例如,視訊編碼器200)根據四叉樹結構將編碼樹單元(CTU)劃分為CU。亦即,該視訊編碼器將CTU和CU劃分為四個相等的且不重疊的正方形,並且該四叉樹的每個節點具有零個或四個子節點。沒有子節點的節點可以被稱為「葉節點」,並且此種葉節點的CU可以包括一或多個PU及/或一或多個TU。視訊編碼器可以對PU和TU進行進一步劃分。例如,在HEVC中,殘差四叉樹(RQT)表示TU的劃分。在HEVC中,PU表示訊框間預測資料,而TU表示殘差資料。訊框內預測所得的CU包括訊框內預測資訊,例如訊框內模式指示。
作為另一實例,視訊編碼器200和視訊解碼器300可以被配置為根據JEM或VVC操作。根據JEM或VVC,視訊編碼器(例如,視訊編碼器200)將圖片劃分為複數個編碼樹單元(CTU)。視訊編碼器200可以根據樹結構對CTU進行劃分,該樹結構包括諸如四叉樹-二叉樹(quadtree-binary tree,QTBT)結構或混合樹(Multi-Type Tree,MTT)結構。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或CU)進行分類。作為一個實例,磚塊(brick)指包括圖片中特定片內的CTU行組成的矩形區域。片(tile)是包括圖片中的某個片列和某個片行內的CTU組成的矩形區域。片列是指CTU組成的矩形區域,該矩形區域的高度等於圖片的高度,其寬度(例如,諸如在圖片參數集中)由語法元素指定。片行是指CTU組成的矩形區域,該矩形區域的高度由語法元素(例如,諸如在圖片參數集中)指定,其寬度等於圖片的寬度。
在一些實例中,可以將片劃劃分為多個磚塊,每個磚塊包括該片內的一或多個CTU行。沒有被劃分為多個磚塊的片亦可以稱為磚塊。但是,作為片的真子集的磚塊不能稱為片。
圖片中的磚塊亦可以排列於切片中。切片可以包括圖片的可以排他包含在單個網路抽象層(network abstraction layer,NAL)單元中的整數個磚塊。在一些實例中,切片包括多個完整的片或僅包括一個片的連續序列的完整磚塊。
本案可以互換地使用「N×N」和「N乘N」來代表區塊(例如CU或其他視訊區塊)在垂直維度和水平維度上的取樣維度,例如16×16取樣或16乘16取樣。通常,16×16的CU在垂直方向上會有16個取樣(y=16),在水平方向上會有16個取樣(x=16)。同樣地,N×N的CU通常在垂直方向上具有N個取樣並且在水平方向上亦具有N個取樣,其中N表示非負的整數值。CU中的取樣可以以行和列的方式排列。此外,CU在水平方向上的取樣數量不必與垂直方向上的取樣數量相同。舉例而言,CU可以包括N×M個取樣,其中M不必要等於N。
視訊編碼器200對表示預測及/或殘差資訊以及其他資訊的CU的視訊資料進行編碼。預測資訊指示將如何對該CU進行預測以便形成該CU的預測區塊。殘差資訊通常表示預測區塊與編碼之前的CU取樣之間的逐取樣差值。
為了預測CU,視訊編碼器200通常可以經由訊框間預測或訊框內預測來形成用於CU的預測區塊。訊框間預測通常是指根據先前已編碼的圖片的資料來預測CU,而訊框內預測通常是指根據同一圖片的先前已編碼的資料來預測CU。為了執行訊框間預測,視訊編碼器200可使用一或多個運動向量來產生預測區塊。視訊編碼器200通常可以進行運動搜尋,例如,根據CU與參考區塊之間的差,來辨識與CU緊密匹配的參考區塊。視訊編碼器200可以使用絕對差值和(SAD)、平方差值和(SSD)、平均絕對差(MAD)、均方差(MSD)或其他此類差值計算來計算差值度量,以決定參考區塊是否緊密匹配當前CU。在一些實例中,視訊編碼器200可以使用單向預測或雙向預測來預測該當前CU。
JEM和VVC的一些實例亦提供可以被認為是訊框間預測模式的仿射運動補償模式。在仿射運動補償模式中,視訊編碼器200可以決定表示非平移運動的兩個或更多個運動向量。該非平移運動包括例如放大或縮小、旋轉、透視運動或其他不規則運動類型。
為了進行訊框內預測,視訊編碼器200可以選擇訊框內預測模式來產生預測區塊。JEM和VVC的一些實例提供了67種訊框內預測模式,包括各種方向模式以及平面模式和DC模式。通常,視訊編碼器200選擇描述與當前區塊(例如,CU的區塊)的相鄰取樣的訊框內預測模式,根據相鄰取樣可以預測當前區塊的取樣。假設視訊編碼器200以光柵掃瞄順序(從左到右,從上到下)對CTU和CU進行編解碼,則相鄰取樣通常位於同一圖片中當前區塊的上方,左上方,或左側。
視訊編碼器200對表示當前區塊的預測模式的資料進行編碼。舉例而言,對於訊框間預測模式,視訊編碼器200可以對表示使用多種可用訊框間預測模式中的何種的資料以及用於對應模式的運動資訊進行編碼。對於單向或雙向訊框間預測,例如,視訊編碼器200可以使用高級運動向量預測(AMVP)或合併模式來對運動向量進行編碼。對於仿射運動補償模式,視訊編碼器200可以使用類似的模式來對運動向量進行編碼。
在諸如區塊的訊框內預測或訊框間預測的預測之後,視訊編碼器200可以計算該區塊的殘差資料。殘差資料,例如殘差區塊,表示該區塊與使用對應的預測模式形成的該區塊的預測區塊之間的逐取樣差值。視訊編碼器200可以對殘差區塊應用一或多種變換,以在變換域而非取樣域中產生經變換的資料。舉例而言,視訊編碼器200可以將離散餘弦變換(DCT)或離散正弦變換(DST)、整數變換、小波變換或概念上類似的變換應用於殘差視訊資料。另外,視訊編碼器200可以在一次變換之後應用二次變換,例如,模式依賴的不可分的二次變換(mode-dependent non-separable secondary transform,MDNSST)、信號依賴的變換、Karhunen-Loeve變換(KLT)、低頻不可分變換(low-frequency non-separable transform,LFNST)等。視訊編碼器200在應用一或多種變換之後產生變換係數。
如前述,在進行任何產生變換係數的變換之後,視訊編碼器200可以對該等變換係數進行量化。量化通常是指對變換係數進行量化以使得減少用於表示該等變換係數的資料量,從而實現進一步的壓縮的程序。經由進行量化程序,視訊編碼器200可以減小與變換係數中一些或全部相關聯的位元深度。例如,視訊編碼器200可以在量化期間將n
位元值捨入為m
位元值,其中n
大於m
。在一些實例中,為了進行量化,視訊編碼器200可以對待量化的值進行按位元右移。
在量化之後,視訊編碼器200可以對變換係數進行掃瞄,從而根據包括已量化變換係數的二維矩陣來產生一維向量。該掃瞄可以被設計為將較高能量(因此頻率較低)的變換係數放在向量的前部,而將較低能量(因此頻率較高)的變換係數放在向量的後部。在一些實例中,視訊編碼器200可以利用預定義的掃瞄順序來掃瞄已量化變換係數以產生序列化的向量,隨後對該向量的已量化變換係數進行熵編碼。在其他實例中,視訊編碼器200可以進行自我調整掃瞄。在對已量化變換係數進行掃瞄而形成一維向量之後,視訊編碼器200可以例如根據上下文的自我調整二進位算術編碼(context-adaptive binary arithmetic coding,CABAC)對該一維向量進行熵編碼。視訊編碼器200亦可以對描述中繼資料的語法元素的值進行熵編碼,該中繼資料與視訊解碼器300在解碼視訊資料的程序中使用的已編碼視訊資料相關聯。
為了進行CABAC,視訊編碼器200可以將上下文模型內的上下文分配給要傳輸的符號。該上下文可以關於例如該符號的相鄰值是否為零值。概率決定可以基於分配給該符號的上下文。
視訊編碼器200亦可以產生給視訊解碼器300的語法資料,例如基於區塊的語法資料、基於圖片的語法資料以及基於序列的語法資料。上述語法資料產生於例如圖片頭部、區塊頭部、切片頭部中,或其他語法資料中,諸如序列參數集(sequence parameter set,SPS)、圖片參數集(picture parameter set,PPS)或視訊參數集(video parameter set,VPS)中。視訊解碼器300可以同樣地對該等語法資料進行解碼以決定如何解碼對應的視訊資料。
以此種方式,視訊編碼器200可以產生位元串流。該位元串流包括已編碼視訊資料,例如,描述將圖片劃分為區塊(例如,CU)的語法元素以及上述區塊的預測及/或殘差資訊。最終,視訊解碼器300可以接收該位元串流並對上述已編碼視訊資料進行解碼。
通常,視訊解碼器300進行與視訊編碼器200相反的程序,來對位元串流的已編碼視訊資料進行解碼。例如,儘管與視訊編碼器200的CABAC編碼程序相反,但視訊解碼器300可以以大體上相似的方式來使用CABAC以對位元串流的語法元素的值進行解碼。語法元素可以定義將圖片劃分成CTU的劃分資訊,以及根據對應的劃分結構(諸如QTBT結構)的每個CTU的劃分,從而定義該CTU的CU。語法元素亦可以對視訊資料的區塊(例如,CU)的預測和殘差資訊進行定義。
殘差資訊可以由例如已量化變換係數表示。視訊解碼器300可以對區塊的已量化變換係數進行逆量化和逆變換以重現該區塊的殘差區塊。視訊解碼器300使用已用信號傳遞通知的預測模式(訊框內或訊框間預測)和相關的預測資訊(例如,用於訊框間預測的運動資訊)來形成該區塊的預測區塊。視訊解碼器300隨後可以將該預測區塊和上述殘差區塊(在逐取樣的基礎上)進行組合以重現原始區塊。視訊解碼器300可以進行附加處理,例如進行解區塊程序以減少沿著區塊的邊界的視覺偽像。
根據本案的技術,視訊編碼器200和視訊解碼器300可以被配置為進行與LFNST有關的操作。在LFNST中,如更詳細地描述的,視訊編碼器200可對殘差值進行DCT或DST以產生變換係數,對DCT或DST的所得變換係數進行LFNST以產生LFNST係數,隨後對LFNST係數進行量化,熵編碼以及通知。在相反的程序中,視訊解碼器300可以接收已量化的並經熵編碼的LFNST係數,並對上述已量化的並經熵編碼的LFNST係數進行熵解碼,隨後對已量化的LFNST係數進行逆量化以產生LFNST係數。視訊解碼器300可以對上述LFNST係數進行逆LFNST以產生經逆變換的LFNST係數,經逆變換的LFNST係數與視訊編碼器200產生的變換係數相同,對經逆變換的LFNST係數進行逆DCT或DST以產生重建的殘差區塊的殘差值。
視訊編碼器200可以被配置為僅對一定數量的已量化的LFNST係數(為簡潔起見,在下文中簡稱為「LFNST係數」,但是應當理解,LFNST係數亦可以被量化)進行顯式編碼。舉例而言,視訊編碼器200可以對多達十個LFNST係數進行顯式編碼。因此,視訊編碼器200可以對8×8的變換區塊的範圍在[1,2,…,9,10]中的任何數量的LFNST係數進行顯式編碼。
視訊編碼器200可以使用例如視訊資料的複雜度(例如視訊資料所遵循的視訊編碼標準的簡介,層次及/或級別)來決定要顯式編碼的LFNST係數的數量。另外地或可替換地,視訊編碼器200可以使用速率失真最佳化(rate-distortion optimization,RDO)程序來決定要顯式編碼的LFNST係數的數量。在一些實例中,可以例如由適用的視訊編碼標準來預定義要顯式編碼的LFNST係數的數量。
視訊編碼器200可以對下述參數集中的表示已顯式編碼的LFNST係數的數量的值進行編碼,該參數集包括,例如,視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、調適參數集(APS)、圖片頭部、切片頭部、區塊頭部或其他語法資料。視訊編碼器200可以避免對超過非零變換係數的數量的變換係數的值進行編碼。可以根據由視訊編碼標準規定的約束來對視訊編碼器200進行配置。該約束設置了顯式編碼的非零LFNST係數的最大數量,例如,最大為十。
視訊解碼器300亦可以決定8×8的區塊的非零LFNST係數的數量,該數量被編碼為在範圍[1、2,…,9、10]內。舉例而言,視訊解碼器300可將該數量決定為預定義的(亦即,預定的)值或來自通知的資料,諸如,在VPS、SPS、PPS、APS、圖片頭部、切片頭部、區塊頭部,或其他此類語法資料中的用信號傳遞通知的值。之後,視訊解碼器300可以從包括視訊資料的位元串流中解碼非零LFNST係數的數量,並且推斷(亦即,不進行編解碼)剩餘的變換係數(例如,64減去已編碼的LFNST係數的數量)為零值。因此,視訊解碼器300可以決定的是,變換區塊的最後一個已顯式編碼的非零LFNST係數之後的視訊位元串流的已編碼視訊資料對應於除了變換係數之外的語法元素(例如,除了表示該變換係數是否重要、是否大於1、是否大於2,剩餘級別或符號等的語法元素之外)。
因此,在一個實例中,可以使用LFNST對8×8的變換區塊進行變換,該變換區塊可以包括九個非零已顯式編碼的變換係數,而五十五個未編碼的變換係數被推斷為具有零值。亦即,在該實例中,位元串流不會包括該五十五個未編解碼的變換係數的任何資料。作為另一個實例,可以使用LFNST對8×8的變換區塊進行變換,該變換區塊可以包括十個非零已顯式編碼的變換係數,而五十四個未編解碼的變換係數被推斷為具有零值。亦即,在該實例中,位元串流不會包括該五十四個未編解碼的變換係數的任何資料。
以此種方式,對於允許的非零係數的數量會存在約束(例如,視訊編碼器200的DCT或DST變換之後的非零係數的數量或者LFNST係數中的非零係數的數量)。具有此約束可以減少視訊編碼器200和視訊解碼器300的計算管理負擔,從而可以提高視訊編碼器200和視訊解碼器300的操作效率。
在一個實例中,視訊編碼器200可以被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為4×4;對該TU的除了等於零的八個係數之外的所有係數進行設置;對具有至多八個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。在一個實例中,視訊編碼器200可以被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為8×8;對該TU的除了等於零的十個係數之外的所有係數進行設置;對具有至多十個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。在一個實例中,視訊編碼器200可以被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為大於8×8,對該TU的除了等於零的十六個係數之外的所有係數進行設置;對具有至多十六個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。
在一個實例中,視訊解碼器300可以被配置為:產生具有複數個係數的尺寸為4×4的TU,其中該TU包括至多八個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。在一實例中,視訊解碼器300可以被配置為:產生具有複數個係數的尺寸為8×8的TU,其中該TU包括至多十個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。在一實例中,視訊解碼器300可以被配置為:產生具有複數個係數的尺寸大於8×8的TU,其中該TU包括至多十六個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。
本案通常可以指「用信號傳遞通知(signaling)」某些資訊,例如語法元素。術語「用信號傳遞通知(signaling)」通常可以指語法元素的值及/或用於對已編碼視訊資料進行解碼的其他資料的通訊。亦即,視訊編碼器200可以通知位元串流中的語法元素的值。通常,信號傳遞是指在位元串流中產生值。如前述,源設備102可以基本上即時地將位元串流傳送到目標設備116,亦可以不是即時的,諸如在將語法元素儲存到儲存設備112以用於稍後目標設備116的取得時可能發生的情況。
圖2A和圖2B是圖示示例性四叉樹-二叉樹(QTBT)結構130和對應的編碼樹單元(CTU)132的示意圖。實線表示四叉樹分離,而虛線表示二叉樹分離。在二叉樹的每個分離(亦即非葉)節點中,用信號傳遞通知一個標誌以指示使用了何種分離類型(亦即,水平或垂直),其中在本實例中0指示水平分離,而1指示垂直分離。對於四叉樹分離,不需要指示分離類型,是因為四叉樹節點將區塊水平地和垂直地分離為大小相等的4個子區塊。因此,視訊編碼器200可以對QTBT結構130的區域樹級(亦即,實線)的語法元素(例如分離資訊)和QTBT結構130的預測樹級(亦即,虛線)的語法元素(例如分離資訊)進行編碼,而視訊解碼器300可以對QTBT結構130的區域樹級(亦即,實線)的語法元素(例如,分離資訊)和QTBT結構130的預測樹級(亦即,虛線)的語法元素(例如分離資訊)進行解碼。針對QTBT結構130的終端葉節點表示的CU,視訊編碼器200可以對例如預測和變換資料的視訊資料進行編碼,而視訊解碼器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的尺寸設置為128×128(亮度取樣和兩個對應的64×64色度取樣),MinQTSize設置為16×16,MaxBTSize設置為64×64,MinBTSize(針對寬度和高度兩者)設置為4,以及MaxBTDepth設置為4。首先對CTU應用四叉樹劃分以產生四叉樹葉節點。四叉樹葉節點的尺寸可以從16×16(亦即MinQTSize)到128×128(亦即CTU尺寸)。若四叉樹葉節點為128×128,則該四叉樹葉節點不會再被二叉樹進一步分離,因為其尺寸超過了MaxBTSize(亦即,此實例中為64×64)。否則,四叉樹葉節點亦會被二叉樹進一步劃分。因此,四叉樹葉節點亦是二叉樹的根節點並具有為0的二叉樹深度。當二叉樹的深度達到MaxBTDepth(此實例中為4)時,不允許進一步分離。當二叉樹節點的寬度等於MinBTSize(此實例中為4)時,表明不允許進一步的水平分離。類似地,二叉樹節點的高度等於MinBTSize表明不允許對該二叉樹節點再進行垂直分離。如前述,二叉樹的葉節點被稱為CU,並且根據預測和變換被進一步處理而無需再進行劃分。
以下對變換相關的工具進行介紹。在HEVC之前的視訊編碼標準中,僅有固定的可分離變換得以使用,其中在垂直方向和水平方向均使用DCT-2。在HEVC中,除了DCT-2之外,DST-7亦作為固定的可分離變換被用於4×4的區塊。
美國專利案第10,306,229、美國專利公開案第2018/0020218和美國專利公開案第2019/0373261對多重變換選擇(MTS)方法進行了描述。MTS以前稱為自我調整多重變換(AMT),其僅是進行了名稱更改而技術是相同的。聯合視訊專家組(JVET)的聯合實驗模型(JEM-7.0)中採用了美國專利公開案第2019/0373261中的MTS實例,後來在VVC中採用了MTS的簡化版本。
圖3是圖示可以進行本案的技術的一種示例性視訊編碼器200的方塊圖。出於闡述的目的提供圖3,而不應該將其視為限制本案中廣泛例示和描述的技術。為了說明的目的,本案基於諸如HEVC視訊編碼標準和開發中的H.266視訊編碼標準的視訊編碼標準描述了視訊編碼器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可以接收儲存於視訊資料記憶體230中的視訊資料(例如,來自視訊源104(圖1)的視訊資料)。DPB 218可以充當參考圖片記憶體。該參考圖片記憶體儲存視訊編碼器200預測後續視訊資料時使用的參考視訊資料。視訊資料記憶體230和DPB 218可以由多種記憶體設備中的任一種形成,例如動態隨機存取記憶體(DRAM)。該多種記憶體設備包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、電阻性RAM(RRAM)或其他類型的記憶體設備。視訊資料記憶體230和DPB 218可以提供為相同的記憶體設備或分離的記憶體設備。在多個實例中,視訊資料記憶體230可以與視訊編碼器200的其他元件一起在晶片上(on-chip),如上所示,或者相對於彼等元件在晶片外(off-chip)。
在本案中,對視訊資料記憶體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。模式選擇單元202可以包括根據其他預測模式進行視訊預測的另外的功能單元。作為實例,模式選擇單元202可以包括調色板單元、區塊內複製單元(可以是運動估計單元222及/或運動補償單元224中的一部分)、仿射單元、線性模型(LM)單元等。
模式選擇單元202通常協調多個編碼通路,以測試編碼參數的組合和該等組合的結果速率失真值。該等編碼參數可以包括從CTU到CU的劃分、用於CU的預測模式、用於CU的殘差資料的變換類型、用於CU的殘差資料的量化參數等。模式選擇單元202最終選擇具有比其他經測試的組合更好的速率失真值的編碼參數的組合。
視訊編碼器200可以將從視訊資料記憶體230取得到的圖片劃分分為一系列CTU,並將一或多個CTU封裝在切片內。模式選擇單元202可以根據樹結構,例如上述的QTBT結構或HEVC的四叉樹結構,來對圖片的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)。該等運動向量定義參考區塊在參考圖片中的位置相對於當前區塊在當前圖片中的位置。之後,運動估計單元222可以將運動向量提供給運動補償單元224。例如,對於單向訊框間預測,運動估計單元222提供單個運動向量,而對於雙向訊框間預測,運動估計單元222提供兩個運動向量。運動補償單元224之後可以使用運動向量來產生預測區塊。例如,運動補償單元224可以使用運動向量來取得參考區塊的資料。作為另一實例,若運動向量具有分數取樣精度,則運動補償單元224可以根據一或多個內插濾波器來內插預測區塊的值。此外,對於雙向訊框間預測,運動補償單元224可以取得相應的運動向量辨識的兩個參考區塊的資料並且例如經由逐取樣平均或加權平均來對取得到的資料進行組合。
作為另一個實例,對於訊框內預測或訊框內預測編解碼,訊框內預測單元226可以根據與當前區塊相鄰的取樣來產生預測區塊。例如,對於方向模式(directional mode),訊框內預測單元226通常可以對相鄰取樣的值進行數學組合,並在當前區塊上沿定義的方向填充該等計算出的值以產生預測區塊。作為另一實例,對於DC模式,訊框內預測單元226可以計算相鄰取樣到當前區塊的平均值並且產生預測區塊,該預測區塊包括該預測區塊的每個取樣的結果平均值。
模式選擇單元202將預測區塊提供給殘差產生單元204。殘差產生單元204從視訊資料記憶體230接收當前區塊的原始的未編碼的版本,並從模式選擇單元202接收預測區塊。殘差產生單元204計算當前區塊和預測區塊之間的逐取樣差值。所得逐取樣差值定義了該當前區塊的殘差區塊。在一些實例中,殘差產生單元204亦可以決定殘差區塊中的取樣值之間的差值以使用殘差差分脈衝代碼調制(Residual Differential Pulse Code Modulation,RDPCM)來產生殘差區塊。在一些實例中,可以使用進行二進位減法的一或多個減法器電路來形成殘差產生單元204。
在一些實例中,模式選擇單元202將CU劃分為PU,每個PU可以與亮度預測單元和對應的色度預測單元相關聯。視訊編碼器200和視訊解碼器300可以支援具有多種尺寸的PU。如上所示,CU的尺寸是指CU的亮度編解碼區塊的尺寸,PU的尺寸是指PU的亮度預測單元的尺寸。假設某CU的尺寸為2N×2N,則視訊編碼器200可以支援用於訊框內預測的PU尺寸為2N×2N或N×N,用於訊框間預測的對稱PU的尺寸為2N×2N、2N×N、N×2N、N×N或類似的尺寸。視訊編碼器200和視訊解碼器300亦可以支援用於訊框間預測的不對稱劃分的PU的尺寸為2N×nU、2N×nD、nL×2N以及nR×2N。
在一些實例中,模式選擇單元202不再將CU劃分為PU,每個CU可以與亮度編解碼區塊和對應的色度編解碼區塊相關聯。如前述,CU的尺寸是指CU的亮度編解碼區塊的尺寸。視訊編碼器200和視訊解碼器300可以支援CU的尺寸為2N×2N、2N×N或N×2N。
對於其他視訊編解碼技術(諸如,區塊內複製模式編解碼、仿射模式編解碼以及線性模型(LM)模式編解碼),作為少數實例,模式選擇單元202經由與編解碼技術相關聯的相應單元產生正在被編碼的當前區塊的預測區塊。在一些實例中,例如調色板模式編解碼,模式選擇單元202產生指示基於選擇的調色板重建區塊的方式的語法元素,而不會產生預測區塊。在該等模式中,模式選擇單元202可以將該等語法元素提供給熵編碼單元220以進行編碼。
如前述,殘差產生單元204接收當前區塊的視訊資料和對應的預測區塊的視訊資料。殘差產生單元204之後產生當前區塊的殘差區塊。殘差產生單元204計算預測區塊和當前區塊之間的逐取樣差值以產生殘差區塊。
變換處理單元206對殘差區塊應用一或多種變換以產生變換係數的區塊(在本文中稱為「變換係數區塊」)。變換處理單元206可以對殘差區塊應用多種變換以形成變換係數區塊。例如,變換處理單元206可以對殘差區塊應用離散餘弦變換(DCT)、離散正弦變換(DST)、方向變換、Karhunen-Loeve變換(KLT)或概念上類似的變換。在一些實例中,變換處理單元206對殘差區塊進行多種變換,例如初級變換和二次變換,諸如旋轉變換。在一些實例中,變換處理單元206不對殘差區塊進行變換。
根據本案中所描述的一或多個實例,變換處理單元206包括在以下圖5中標記為「編碼器側」的可分離的和LFNST區塊。例如,變換處理單元206可以對殘差值進行可分離的變換(例如,DCT-2)以產生變換係數,接著對變換係數進行LFNST以產生LFNST係數。之後,可以對LFNST係數進行量化以及熵編碼以用於信號傳遞通知。
量化單元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)編碼操作、指數-Golomb編碼操作或對資料進行的另一種熵編碼操作。在一些實例中,熵編碼單元220可以在其中語法元素未被熵編碼的旁路模式下操作。
根據本案的技術,熵編碼單元220可以對8×8的變換區塊的預定數量的非零LFNST係數進行熵編碼,例如,九個或十個LFNST係數。熵編碼單元220可以決定當前變換區塊具有8×8個係數的尺寸並且已經使用LFNST進行了變換。因此,熵編碼單元220可以對預定數量的非零LFNST係數(例如,九個或十個非零LFNST係數)進行熵編碼,隨後跳過對其餘LFNST係數的編碼。逆變換處理單元212可以將跳過的LFNST係數處理為具有零值。
熵編碼單元220可以預先配置為對預定數量的非零LFNST係數進行編碼。或者,熵編碼單元220可以從例如模式選擇單元202接收關於預定數量的資料。例如,模式選擇單元202可以決定速失真最佳化(RDO)值以對多達十個非零LFNST係數進行編碼,並且選擇產生最佳RDO值的非零LFNST係數的數量作為該預定數量。熵編碼單元220亦可以被配置為對預定最大數量的非零LFNST係數進行編碼,例如,十個。模式選擇單元202可以在編碼程序期間決定RDO值,例如,以對變換區塊(以及包含變換區塊的區塊,例如CU)進行編碼。另外地或可替換地,模式選擇單元202可以根據包括變換區塊的位元串流所遵循的適用視訊編碼標準的簡介、層次及/或級別來決定該預定數量。熵編碼單元220亦可以對例如VPS、SPS、PPS、APS、圖片頭部、切片頭部、區塊頭部或其他此種語法結構中表示該預定數量的資料進行熵編碼。
因此,在一個實例中,熵編碼單元220可以接收8×8的LFNST係數的區塊,亦即,總共六十四(64)個LFNST係數。熵編碼單元220可以對LFNST係數進行熵編碼,使得熵編碼單元220對九個或十個非零LFNST係數進行熵編碼,並且跳過對剩餘LFNST係數(六十四減去非零編碼的LFNST係數的數量,例如五十五或五十四)的編碼。
視訊編碼器200可以輸出包括重建切片或圖片的區塊所需的經熵編碼的語法元素的位元串流。具體地,熵編碼單元220可以輸出位元串流。該位元串流符合諸如HEVC或VVC的可適用視訊編碼標準,具體地,可以應用於對應位元串流的特定簡介、層次及/或級別的組合。
逆變換處理單元212可以被配置為對變換區塊進行逆變換。例如,逆變換處理單元212可以初始地決定僅預定數量的LFNST係數為非零值,而剩餘的LFNST係數為零值。逆變換處理單元212可以對從逆量化單元210接收的經逆量化的LFNST係數應用逆LFNST,之後再進行逆初級變換以重現殘差區塊。重建單元214可以重建原始區塊(例如,原始編解碼區塊)。以此種方式,視訊編碼器200亦可以被認為是用於對視訊資料進行解碼的設備,因為視訊編碼器200包括由逆量化單元210、逆變換處理單元212、重建單元214、濾波器單元216以及DPB 218所表示的解碼迴路。
以上所述的操作是相對於視訊資料的區塊來描述的。此種描述應當被理解為用於亮度編解碼區塊及/或色度編解碼區塊的操作。如前述,在一些實例中,亮度編解碼區塊和色度編解碼區塊分別是CU的亮度分量和色度分量。在一些實例中,亮度編解碼區塊和色度編解碼區塊分別是PU的亮度分量和色度分量。
在一些實例中,不必對色度編解碼區塊重複進行對亮度編解碼區塊進行過的操作。作為一個實例,不需要將用於辨識亮度編解碼區塊的運動向量(MV)和參考圖片的操作重複用於辨識色度區塊的MV和參考圖片。確切而言,可以對亮度編解碼區塊的MV進行縮放來決定色度區塊的MV,並且可以以相同的方式來決定參考圖片。作為另一實例,對於亮度編解碼區塊和色度編解碼區塊,訊框內預測程序是相同的。
視訊編碼器200表示配置為對視訊資料進行編碼的設備的實例,該設備包括配置為儲存視訊資料的記憶體以及在電路系統中實現的一或多個處理單元。該一或多個處理單元被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為4×4;對該TU的除了等於零的八個係數之外的所有係數進行設置;對具有至多八個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。在電路系統中實現的該一或多個處理單元可以被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為8×8;對該TU的除了等於零的十個係數之外的所有係數進行設置;對具有至多十個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。在電路系統中實現的該一或多個處理單元可以被配置為:對殘差值進行變換以產生TU;決定該TU尺寸為大於8×8;對該TU的除了等於零的十六個係數之外的所有係數進行設置;對具有至多十六個非零係數的該TU進行LFNST以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。
視訊編碼器200亦表示用於對視訊資料進行解碼的設備的實例。該設備包括配置為儲存視訊資料的記憶體和在電路系統中實現的一或多個處理器。該一或多個處理器被配置為:決定視訊資料的變換區塊的尺寸為8×8個係數並且該變換區塊是使用低頻不可分變換(LFNST)而進行變換的;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
圖4是圖示可以進行本案的技術的一種示例性視訊解碼器300的方塊圖。出於闡述的目的提供圖4,而不應該將其視為限制本案中廣泛例示和描述的技術。為了說明的目的,本案基於JEM、VVC和HEVC的技術描述了視訊解碼器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。預測處理單元304可以包括另外的單元以根據其他預測模式進行預測。作為實例,預測處理單元304可以包括調色板單元、區塊內複製單元(可以形成運動補償單元316的一部分)、仿射單元、線性模型(LM)單元等。在其他實例中,視訊解碼器300可以包括更多,更少或不同的功能元件。
CPB記憶體320可以儲存待由視訊解碼器300的元件進行解碼的視訊資料,例如已編碼視訊位元串流。儲存在CPB記憶體320中的視訊資料可以例如從電腦可讀取媒體110(圖1)獲得。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或逆DST、逆整數變換、逆Karhunen-Loeve變換(KLT)、逆旋轉變換、逆方向變換或另一種逆變換。
根據本案中所述的一或多個實例中,逆變換處理單元308可以包括圖5的解碼器側中所示的逆LFNST區塊和逆可分離區塊。例如,逆變換處理單元308可以接收已解碼係數(例如已解碼LFNST係數)並進行逆LFNST以產生經逆變換的LFNST係數(其與視訊編碼器200在可分離變換之後產生的變換係數相似或相同)。逆變換處理單元308可以進行逆可分離變換(例如DCT-2)以產生殘差值。
而且,預測處理單元304根據由熵解碼單元302進行熵解碼所得到的預測資訊語法元素來產生預測區塊。例如,若預測資訊語法元素指示當前區塊是訊框間預測的,則運動補償單元316會產生預測區塊。在此種情況下,預測資訊語法元素可以指示DPB 314中的參考圖片和運動向量。根據該參考圖片可以取得參考區塊,該運動向量辨識參考圖片中的參考區塊相對於當前圖片中的當前區塊的位置。運動補償單元316通常可以以針對運動補償單元224(圖3)所描述的方式基本相似的方式來進行訊框間預測程序。
作為另一實例,若預測資訊語法元素指示當前區塊是訊框內預測的,則訊框內預測單元318會根據預測資訊語法元素指示的訊框內預測模式來產生預測區塊。同樣地,訊框內預測單元318通常會以與針對訊框內預測單元226(圖3)所描述的方式基本相似的方式來執行訊框內預測程序。訊框內預測單元318可以從DPB 314取得當前區塊的相鄰取樣的資料。
重建單元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表示視訊解碼設備的實例。該視訊解碼設備包括配置為儲存視訊資料的記憶體以及在電路系統中實現的一或多個處理單元。該一或多個處理單元被配置為:產生具有複數個係數的尺寸為4×4的TU,其中該TU包括至多八個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。在電路系統中實現的該一或多個處理單元被配置為:產生具有複數個係數的尺寸為8×8的TU,其中該TU包括至多十個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。在電路系統中實現的該一或多個處理器單元被配置為:產生具有複數個係數的尺寸大於8×8的TU,其中該TU包括至多十六個非零係數;對該TU進行逆LFNST以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。
視訊解碼器300亦表示用於對視訊資料進行解碼的設備的實例。該設備包括配置為儲存視訊資料的記憶體和在電路系統中實現的一或多個處理器。該一或多個處理器被配置為:決定視訊資料的變換區塊的尺寸為8×8個係數並且該變換區塊是使用低頻不可分變換(LFNST)而進行變換的;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換以重現對應於該變換區塊的殘差區塊;及使用該殘差區塊來重建該視訊資料的區塊。
圖5是圖示可以進行低頻不可分變換(LFNST)的元件的示例性集合。圖5的實例對編碼器側LFNST和解碼器側LFNST均進行了描述。在編碼器側,例如視訊編碼器200的編碼器會應用初級(可分離)變換,隨後進行LFNST,再對LFNST係數進行量化。在解碼器側,例如視訊解碼器300的解碼器會應用逆量化,隨後進行逆LFNST,再進行逆初級(可分離)變換。
如圖5中所示,在JEM-7.0中使用了LFNST以進一步提高MTS的編解碼效率。LFNST之前叫做不可分離二次變換(NSST)或二次變換,其中全部該等簡稱皆指示相同的程序。LFNST的一種實現基於美國專利案第10,448,053。而且,美國專利案第10,491,922,美國專利公開案第2017/0094314,美國專利案第10,349,085,美國臨時申請案第62/668,105以及美國專利公開案第2019/0297351描述了可替代設計和更多細節。近來,LFNST已被VVC標準所採用。VVC標準基於2019年3月19日至27日在瑞士日內瓦舉辦的ITU-T SG 16 WP3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET)的第14次會議的提案的JVET-N0193章節中的Koo等人的「CE6: Reduced Secondary Transform (RST) (CE6-3.1)」(以下簡稱「JVET-N0193」)。
圖6是圖示對變換區塊應用逆LFNST以重現殘差區塊的示意圖。下文來描述關於LFNST的解碼程序。關於LFNST的逆變換涉及圖6所示的以下示例性步驟。經由首先經由預定義的掃瞄/排序將2-D區塊轉換為係數的1-D列表(或向量),將已解碼變換係數(例如,圖6中的子區塊400)用作逆LFNST的輸入。對輸入係數的1-D列表進行逆LFNST,並且經由預定義的掃瞄/排序將輸出係數重新組織成2-D區塊(例如,圖6中的子區塊402)。經逆變換的LFNST係數被用作可分離逆DCT-2的輸入以獲得重建殘差。
圖7是圖示將逆LFNST應用於4×4的區塊的示意圖。在VVC草案7的當前版本中,LFNST可以應用於4×4和8×8子區塊。在該兩種情況下,將4×4子區塊中的16個解碼係數(其中一些可能被規範地歸零)輸入到逆LFNST。對於4×4的情況,如圖7所示,在可分離的逆DCT-2之前,使用16×16逆LFNST來構建十六個中間係數。
圖8是圖示將逆LFNST應用於4×4的區塊以產生8×8的區塊的示意圖。具體地,在本實例中,逆LFNST用於從十六個輸入係數中重建四十八個中間係數,隨後將該等中間係數重新排列為L形圖案。對於8×8的情況,如圖8所示,在可分離的逆DCT-2之前,使用16×48的逆LFNST來構建四十八個中間係數。在圖8中,四十八個中間係數重組為L形圖案。
可以基於(i)變換矩陣(例如LFNST變換矩陣)和(ii)重組圖案/中間係數掃瞄來充分定義逆LFNST程序。美國臨時申請案第62/849,689描述了VVC草案7中的歸零程序的實例。美國臨時申請案第62/799,410中描述了以歸零對係數的有序列表進行分類的另一實例。
對於4×4的LFNST,取決於訊框內模式使用以下兩種圖案/掃瞄:
const int g_lfnstRGScan4x4 [16]=
{ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
};
const int g_lfnstRGTranScan4x4[16]=
{ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15
};
如上所示,兩種圖案/掃瞄指示對中間係數的重新排序。例如,例如,g_lfnstRGScan4x4不會更改係數的行優先重新排序。但是,lfnstRGTranScan4x4經由對係數的順序進行調換來完成重新排序(例如,分別將1,2,3,6,7和11處的係數與4,8,12,9,13和14處的係數交換)。
對於4×4的LFNST,現有VVC中將八個16×16的矩陣用作候選。在2019年7月3日至12日在瑞典哥德堡舉辦的ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET)的第15次會議的提案的JVET-O2001的8.7.4.3節中的Bross等人的「Versatile Video Coding (Draft 6)」中列出了該等內容。
對於8×8的LFNST,取決於訊框內模式使用了以下兩種圖案/掃瞄:
const int g_lfnstRGScan8x8 [48]=
{ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 42, 43, 48, 49, 50, 51, 56, 57, 58, 59
};
const int g_lfnstRGTranScan8x8[48]=
{ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
0, 8, 16, 24, 32, 40, 48, 56, 1, 9, 17, 25, 33, 41, 49, 57, 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59, 4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31
};
在上文中,兩種圖案/掃瞄指示對中間係數的重新排序。具體地,g_lfnstRGScan8x8將48個中間係數重組為L形圖案(例如,在圖8中將第48個係數映射到位置59)。掃瞄lfnstRGTranScan4x4經由調換係數(例如,在圖8中將第48個係數映射到位置31)對L形圖案進行重新排序。對於8×8的LFNST,在當前VVC中將八個16×48矩陣用作候選。該等在JVET-O2001的8.7.4.3節中列出。
LFNST技術可能存在一些問題。例如,除非有必要(例如,為了減少最壞情況下的乘法次數從而降低複雜度,可能需要歸零程序),否則歸零程序是不可取的。對於當前VVC中的LFNST設計,每個係數的最壞情況下的乘法次數等於8(由於將4×4的LFNST應用於4×4的TU,其中每個係數需要進行(8×16)/16=8次乘法)。第二壞的情況是由於將8×8的LFNST應用於8×8的TU,其中每個係數需要進行(8×48)/64=6次乘法。
除非在8×8的LFNST中允許多達10個非零係數(亦即,每個係數需要進行(10×48)/64=7.5次乘法),否則VVC中仍然會存在最壞的情況。因此,經由在變換區塊中允許另外兩個係數(例如,另外兩個非零係數),可以縮減不必要地歸零係數的數量。亦即,最壞情況的場景允許多達10個非零係數。
為了允許至多十個係數用於VVC設計,本案描述了以下可以一起或分開使用的示例性技術。若使用LFNST並且TU尺寸是4×4,則在已解碼係數中至多允許八個非零係數(例如,圖6的區塊400),並且剩餘的已解碼係數被規範地歸零。若使用LFNST並且TU尺寸是8×8,則在已解碼係數中至多允許十個非零係數(例如,圖6的區塊400),並且已解碼係數的剩餘部分被規範地歸零。若使用LFNST(例如,在TU尺寸大於8×8的實例中),則在已解碼係數中至多允許十六個非零係數(例如,圖6的區塊400),並且已解碼係數的剩餘部分被規範地歸零。
根據以上LFNST的依賴區塊尺寸的歸零實例而對VVC草案7進行的更新可以以下述欄位進行體現。該等欄位為指示刪除的<DELETE>和</DELETE>,以及用於指示添加的<ADD>和</ADD>。
變數predModeIntra、nLfnstOutSize、log2LfnstSize、nLfnstSize和nonZeroSize被推導如下:
predModeIntra = ( cIdx = = 0 ) ? IntraPredModeY[ xTbY ][ yTbY ] : IntraPredModeC[ xTbY ][ yTbY ] (1149)
nLfnstOutSize = ( nTbW >= 8 && nTbH >= 8 ) ? 48 : 16 (1150)
log2LfnstSize = ( nTbW >= 8 && nTbH >= 8 ) ? 3 : 2 (1151)
nLfnstSize = 1 << log2LfnstSize (1152)
<DELETE> nonZeroSize = ( ( nTbW = = 4 && nTbH = = 4 ) | | ( nTbW = = 8 && nTbH = = 8 ) ) ? 8 : 16 (1153)</DELETE>
-<ADD> If ( nTbW = = 4 && nTbH = = 4 ) is true, the following applies:
nonZeroSize = 8
-Otherwise, if ( nTbW = = 8 && nTbH = = 8 ) is true, the following applies:
nonZeroSize = 10
-Otherwise, the following applies:
nonZeroSize = 16 </ADD>
圖9是圖示用於對當前區塊進行編碼的一種示例性方法的流程圖。當前區塊可以包括當前CU。儘管參考視訊編碼器200(圖1和圖3)進行了描述,但是應當理解的是,可以將其他設備配置為執行與圖9的方法類似的方法。
在本實例中,視訊編碼器200最初對當前區塊(350)進行預測。舉例而言,視訊編碼器200可以形成當前區塊的預測區塊。接著,視訊編碼器200可以計算當前區塊的殘差區塊(352)。為了計算殘差區塊,視訊編碼器200可以對原始的未編碼的區塊與當前區塊的預測區塊之間的差進行計算。
之後,視訊編碼器200可以對該殘差區塊進行變換並且對該殘差區塊的變換係數進行量化(354)。具體地,根據本案的技術,視訊編碼器200可以對殘差區塊進行初級(可分離)變換,再對所得經變換的係數應用LFNST以產生LFNST係數。接下來,視訊編碼器200可以對該等LFNST係數進行量化。視訊編碼器200亦決定要編碼的非零LFNST係數的數量(356)。例如,視訊編碼器200可以進行RDO測試,及/或根據視訊資料所對應的對應視訊編碼標準的簡介,層次及/或級別來決定非零LFNST係數的數量。
接下來,視訊編碼器200可以對已量化的LFNST係數進行掃瞄(358)。在掃瞄期間或在掃瞄之後,視訊編碼器200可以對決定數量的非零LFNST係數進行熵編碼(360)。舉例而言,視訊編碼器200可以使用CAVLC或CABAC來對LFNST係數進行編碼。此外,視訊編碼器200可以跳過對後續LFNST係數的編碼,從而將變換區塊的剩餘LFNST係數視為具有零值。隨後,視訊編碼器200輸出區塊的熵編碼資料(362)。
視訊編碼器200亦可以對LFNST係數進行逆量化和逆變換(364)。具體地,視訊編碼器200可重建變換區塊。該重建的變換區塊包括預定數量的已編碼非零LFNST係數,以及針對該變換區塊的剩餘係數的零值係數。經由對變換區塊進行逆變換(使用逆LFNST和逆初級/可分離變換,視訊編碼器200可以重現殘差區塊。隨後,視訊編碼器200可以例如經由將殘差區塊與預測區塊進行組合來重建原始區塊(366)。
以此種方式,圖9的方法表示對視訊資料進行解碼的方法的實例。該方法包括以下步驟:決定視訊資料的變換區塊的尺寸為8×8個係數並且使用低頻不可分變換(LFNST)對該變換區塊進行了變換;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換以重現與該變換區塊相對應的殘差區塊;及使用該殘差區塊重建視訊資料的區塊。
圖10是圖示用於對當前區塊的視訊資料進行解碼的一種示例性方法的流程圖。當前區塊可以包括當前CU。儘管參考視訊解碼器300(圖1和圖4)進行了描述,但是應當理解的是,可以將其他設備配置為執行與圖10類似的方法。
視訊解碼器300可以接收用於當前區塊的經熵編碼的資料,例如經熵編碼的預測資訊和對應於當前區塊的殘差區塊的係數的經編碼資料(370)。假設當前區塊包含8×8個LFNST變換區塊,則視訊解碼器300決定用於當前區塊的非零LFNST係數的數量(372)。
視訊解碼器300可以對經熵編碼的資料進行熵解碼,以決定當前區塊的預測資訊並且重現殘差區塊的係數(374)。在對經熵編碼的資料進行熵解碼時,視訊解碼器300可以僅對當前區塊的決定數量的非零LFNST係數進行熵解碼,例如,對九個或十個非零LFNST係數進行熵解碼。
視訊解碼器300可以例如,使用由當前區塊的預測資訊所指示的訊框內或訊框間預測模式來預測當前區塊(376),以計算針對當前區塊的預測區塊。
隨後,視訊解碼器300對該數量的非零LFNST係數進行逆掃瞄(378),以建立已量化非零LFNST係數的變換區塊,並將變換區塊中的剩餘係數設置為零(380)。接著,視訊解碼器300對變換係數進行逆量化和逆變換(使用逆LFNST和逆初級/可分變換兩者)以產生殘差區塊(382)。視訊解碼器300最終對當前區塊進行了解碼和重建,包括將預測區塊與殘差區塊進行組合(384)。
以此種方式,圖10的方法表示用於對視訊資料進行解碼的方法的一種實例。該方法包括以下步驟:決定視訊資料的變換區塊的尺寸為8×8個係數並且使用低頻不可分變換(LFNST)對該變換區塊進行了變換;對該變換區塊的至少九個非零變換係數進行解碼;使用逆LFNST對該變換區塊進行逆變換以重現與該變換區塊相對應的殘差區塊;及使用該殘差區塊重建視訊資料的區塊。
本案的某些示例性技術總結為以下條款:
條款1:一種視訊資料解碼方法,包括以下步驟:產生具有複數個係數的尺寸為4×4的變換單元(TU),其中該TU包括至多八個非零係數;對該TU進行逆低頻不可分變換(LFNST)以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。
條款2:一種視訊資料解碼方法,包括以下步驟:產生具有複數個係數的尺寸為8×8的變換單元(TU),其中該TU包括至多十個非零係數;對該TU進行逆低頻不可分變換(LFNST)以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。
條款3:一種視訊資料解碼方法,包括以下步驟:產生具有複數個係數的尺寸大於8×8的變換單元(TU),其中該TU包括至多十六個非零係數;對該TU進行逆低頻不可分變換(LFNST)以產生經逆變換的LFNST係數;對該等經逆變換的LFNST係數進行逆變換以產生當前區塊的殘差值;及基於該等殘差值重建當前區塊。
條款4:根據條款1-3中任一項之方法,其中該逆變換包括可分離的逆變換。
條款5:根據條款4之方法,其中該可分離的逆變換包括逆離散餘弦變換(DCT)-2。
條款6:根據條款1-5的任意組合的方法。
條款7:一種視訊資料編碼方法,包括以下步驟:對殘差值進行變換以產生變換單元(TU);決定該TU尺寸為4×4;對該TU的除了等於零的八個係數之外的所有係數進行設置以使得該TU具有至多八個非零係數;對該TU進行低頻不可分變換(LFNST)以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。
條款8:一種視訊資料編碼方法,包括以下步驟:對殘差值進行變換以產生變換單元(TU);決定該TU尺寸為8×8;對該TU的除了等於零的十個係數之外的所有係數進行設置以使得該TU具有至多十個非零係數;對該TU進行低頻不可分變換(LFNST)以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。
條款9:一種視訊資料編碼方法,包括以下步驟:對殘差值進行變換以產生變換單元(TU);決定該TU尺寸為大於8×8;對該TU的除了等於零的十六個係數之外的所有係數進行設置以使得該TU具有至多十六個非零係數;對該TU進行低頻不可分變換(LFNST)以產生LFNST係數;及用信號傳遞通知指示該等LFNST係數的資訊。
條款10:根據條款7至9中任一項之方法,其中該變換是可分離變換。
條款11:根據條款10之方法,其中該變換包括離散餘弦變換(DCT)-2。
條款12:根據條款7-11的任意組合之方法。
條款13:一種視訊資料解碼設備,包括:配置為儲存視訊資料的記憶體;及配置為執行條款1-6中任一項或任一組合之方法的處理電路系統。
條款14:根據條款13之設備,亦包括配置為顯示已解碼視訊資料的顯示器。
條款15:一種視訊資料編碼設備,包括:配置為儲存視訊資料的記憶體;及配置為執行條款7-12中任一項或任一組合之方法的處理電路系統。
條款16:根據條款13-15中任一項之設備,其中該設備包括相機、電腦、行動設備、廣播接收器設備和機上盒中的一或多個。
條款17:一種其上儲存有指令的電腦可讀取儲存媒體,當指令被執行時,使得一或多個處理器執行條款1-6或條款7-12中任一項或任一組合之方法。
條款18:一種視訊資料編解碼設備,包括:執行條款1-6或條款7-12中任一項或任一組合之方法的構件。
根據實例可以看到的是,可以以不同的順序執行,亦可以添加,合併或完全省略(例如,並非所有描述的動作或事件是實踐該等技術所必要的)本文描述的技術中的任一種的某些動作或事件。此外,在某些實例中,可以例如經由多執行緒處理、中斷處理或多個處理器併發地執行動作或事件,而不是順序地執行動作或事件。
在一或多個實例中,可以以硬體,軟體,韌體或其任意組合來實現該等功能。若以軟體實現,則該等功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或經由電腦可讀取媒體進行傳輸,並由基於硬體的處理單元執行。電腦可讀取媒體可以包括電腦可讀取儲存媒體或者通訊媒體。電腦可讀取儲存媒體對應於諸如資料儲存媒體的有形媒體。通訊媒體包括促進,例如根據通訊協定,將電腦程式從一處傳送到另一處的任何媒體。以此種方式,電腦可讀取媒體通常可以對應於(1)非暫時性的有形電腦可讀取儲存媒體,或者(2)諸如信號或載波的通訊媒體。資料儲存媒體可以是滿足下述條件的任何可用的媒體。該條件為一或多台電腦或一或多個處理器可以存取該等資料儲存媒體以取得指令、代碼及/或資料結構,從而實現本案中描述的技術。電腦程式產品可以包括電腦可讀取媒體。
作為實例而非限制,上述電腦可讀取儲存媒體可以包括:RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存,或其他磁性儲存設備、快閃記憶體或任何其他可以用於以指令或資料結構形式儲存所需程式碼且可由電腦存取的媒體。而且,任何連接皆適當地稱為電腦可讀取媒體。例如,若使用同軸電纜、光纖電纜、雙絞線、數位用戶線路(DSL)或諸如紅外,無線電和微波的無線技術從網站、伺服器或其他遠端源傳輸指令,則上述同軸電纜、光纖電纜、雙絞線、DSL或諸如紅外、無線電和微波的無線技術皆包含於媒體的定義。然而,應當理解,電腦可讀取儲存媒體和資料儲存媒體並不包括連接、載波、信號或其他暫時性媒體,而是指非暫時性的有形儲存媒體。本文使用的磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和Blu-ray光碟,其中磁碟通常以磁性方式複製資料,而光碟則經由鐳射以光學方式複製資料。上述的組合亦應包括在電腦可讀取媒體的範疇內。
可以由一或多個處理器來執行指令。例如一或多個數位信號處理器(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:訊框內預測單元
230:視訊資料記憶體
300:視訊解碼器
302:熵解碼單元
304:預測處理單元
306:逆量化單元
308:逆變換處理單元
310:重建單元
312:濾波器單元
314:已解碼圖片緩衝器(DPB)
316:運動補償單元
318:訊框內預測單元
320:CPB記憶體
350:步驟
352:步驟
354:步驟
356:步驟
358:步驟
360:步驟
362:步驟
364:步驟
366:步驟
370:步驟
372:步驟
374:步驟
376:步驟
378:步驟
380:步驟
382:步驟
384:步驟
400:子區塊
402:子區塊
圖1是圖示執行本案的技術的一種示例性視訊編解碼系統的方塊圖;
圖2A和圖2B是圖示示例性的四叉樹-二叉樹(QTBT)結構和對應的編碼樹單元(CTU)的示意圖;
圖3是圖示執行本案的技術的一種示例性視訊編碼器的方塊圖;
圖4是圖示執行本案的技術的一種示例性視訊解碼器的方塊圖;
圖5是圖示執行低頻不可分變換(LFNST)的元件的示例性集合的方塊圖;
圖6是圖示對變換區塊進行逆LFNST以重現殘差區塊的示意圖;
圖7是圖示對4×4的區塊應用逆LFNST的示意圖;
圖8是圖示對4×4的區塊應用逆LFNST以產生8×8區塊的示意圖;
圖9是圖示根據本案的技術的一種視訊資料編碼實例的流程圖;及
圖10是圖示根據本案的技術的一種視訊資料解碼實例的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
Claims (33)
- 一種視訊資料解碼方法,包括以下步驟: 決定視訊資料的一變換區塊的一尺寸為8×8個係數並且該變換區塊是使用一低頻不可分變換(LFNST)而進行變換的; 對該變換區塊的至少九個非零變換係數進行解碼; 使用一逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的一殘差區塊;及 使用該殘差區塊來重建該視訊資料的一區塊。
- 根據請求項1之方法,其中對該至少九個非零變換係數進行解碼之步驟包括以下步驟: 對該變換區塊的至多十個非零變換係數進行解碼;及 推斷該變換區塊的剩餘變換係數為零值,而不對該等剩餘變換係數的值進行解碼。
- 根據請求項1之方法,其中該變換區塊總共包括六十四個變換係數,所有變換係數中的一部分變換係數為零值,所有變換係數中為零值的變換係數的一數量等於六十四減去該等非零變換係數的一數量,並且所有變換係數中為零值的變換係數的該數量至多為五十五。
- 根據請求項1之方法,其中對該至少九個非零變換係數進行解碼之步驟包括以下步驟:對於該變換區塊,至多對一預定最大數量的非零變換係數進行解碼。
- 根據請求項4之方法,亦包括以下步驟:將該變換區塊的剩餘變換係數的值設置為等於零。
- 根據請求項4之方法,亦包括以下步驟:根據一視訊參數集(VPS)、一序列參數集(SPS)、一圖片參數集(PPS)、一切片頭部、一編碼樹單元(CTU)頭部以及一區塊頭部中至少之一,對表示該預定數量的一值進行解碼。
- 根據請求項1之方法,亦包括以下步驟: 在對該變換區塊進行解碼之前對該變換區塊進行編碼; 當對該變換區塊進行編碼時,決定非零變換係數的一數量以對該變換區塊進行編碼,該數量為九或十;及 對該變換區塊的該數量的非零變換係數進行編碼而不對該變換區塊的其他變換係數進行編碼。
- 根據請求項7之方法,其中決定非零變換係數的該數量之步驟包括以下步驟:根據該視訊資料符合的一視訊編碼標準的一簡介、層次或級別,決定該非零變換係數的數量為九或十。
- 一種視訊資料解碼設備,包括: 配置為儲存視訊資料的一記憶體;及 在電路系統中實現的一或多個處理器,該處理器被配置為: 決定該視訊資料的一變換區塊的一尺寸為8×8個係數並且該變換區塊是使用一低頻不可分變換(LFNST)而進行變換的; 對該變換區塊的至少九個非零變換係數進行解碼; 使用一逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的一殘差區塊;及 使用該殘差區塊來重建該視訊資料的一區塊。
- 根據請求項9之設備,其中該一或多個處理器亦被配置為: 對該變換區塊的至多十個非零變換係數進行解碼;及 推斷該變換區塊的剩餘變換係數為零值,而不對該等剩餘變換係數的值進行解碼。
- 根據請求項9之設備,其中該變換區塊總共包括六十四個變換係數,所有變換係數中的一部分變換係數為零值,所有變換係數中為零值的變換係數的該數量等於六十四減去該等非零變換係數的一數量,並且所有變換係數中為零值的變換係數的該數量至多為五十五。
- 根據請求項9之設備,其中該一或多個處理器被配置為:對於該變換區塊,至多對一預定最大數量的非零變換係數進行解碼。
- 根據請求項12之設備,其中該一或多個處理器亦被配置為:將該變換區塊的剩餘變換係數的值設置為等於零。
- 根據請求項12之設備,其中該一或多個處理器亦被配置為:根據一視訊參數集(VPS)、一序列參數集(SPS)、一圖片參數集(PPS)、一切片頭部、一編碼樹單元(CTU)頭部以及一區塊頭部中至少之一,對表示該預定數量的一值進行解碼。
- 根據請求項9之設備,其中該一或多個處理器亦被配置為: 在對該變換區塊進行解碼之前對該變換區塊進行編碼; 當對該變換區塊進行編碼時,決定非零變換係數的一數量以對該變換區塊進行編碼,該數量為九或十;及 對該變換區塊的該數量的非零變換係數進行編碼而不對該變換區塊的其他變換係數進行編碼。
- 根據請求項9之設備,亦包括被配置為顯示該已解碼的視訊資料的一顯示器。
- 根據請求項9之設備,亦包括一相機、一電腦、一行動設備、一廣播接收器設備以及一機上盒中的一或多個。
- 一種其上儲存有指令的電腦可讀取儲存媒體,當執行該等指令時,使得一處理器: 決定視訊資料的一變換區塊的一尺寸為8×8個係數並且該變換區塊是使用一低頻不可分變換(LFNST)而進行變換的; 對該變換區塊的至少九個非零變換係數進行解碼; 使用一逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的一殘差區塊;及 使用該殘差區塊來重建該視訊資料的一區塊。
- 根據請求項18之電腦可讀取儲存媒體,其中使得該處理器對該至少九個非零變換係數進行解碼的該等指令包括使得該處理器進行以下操作的指令: 對該變換區塊的至多十個非零變換係數進行解碼;及 推斷該變換區塊的剩餘變換係數為零值,而不對該等剩餘變換係數的值進行解碼。
- 根據請求項18之電腦可讀取儲存媒體,其中該變換區塊總共包括六十四個變換係數,所有變換係數中的一部分變換係數為零值,所有變換係數中為零值的變換係數的該數量等於六十四減去該等非零變換係數的一數量,並且所有變換係數中為零值的變換係數的該數量至多為五十五。
- 根據請求項18之電腦可讀取儲存媒體,其中使得該處理器對該至少九個非零變換係數進行解碼的該等指令包括使得該處理器進行以下操作的指令:對於該變換區塊,至多對一預定最大數量的非零變換係數進行解碼。
- 根據請求項21之電腦可讀取儲存媒體,亦包括將該變換區塊的剩餘變換係數的值設置為等於零。
- 根據請求項21之電腦可讀取儲存媒體,亦包括使得該處理器進行以下操作的指令:根據一視訊參數集(VPS)、一序列參數集(SPS)、一圖片參數集(PPS)、一切片頭部、一編碼樹單元(CTU)頭部以及一區塊頭部中至少之一,對表示該預定數量的一值進行解碼。
- 根據請求項18之電腦可讀取儲存媒體,亦包括使得該處理器進行以下操作的指令: 在對該變換區塊進行解碼之前對該變換區塊進行編碼; 當對該變換區塊進行編碼時,決定非零變換係數的一數量以對該變換區塊進行編碼,該數量為九或十;及 對該變換區塊的該數量的非零變換係數進行編碼而不對該變換區塊的其他變換係數進行編碼。
- 根據請求項24之電腦可讀取儲存媒體,其中決定該非零變換係數的數量包括:根據該視訊資料符合的一視訊編碼標準的一簡介、層次或級別,決定該非零變換係數的數量為九或十。
- 一種視訊資料解碼設備,包括: 用於決定視訊資料的一變換區塊的一尺寸為8×8個係數並且該變換區塊是使用一低頻不可分變換(LFNST)而進行變換的的構件; 用於對該變換區塊的至少九個非零變換係數進行解碼的構件; 用於使用一逆LFNST對該變換區塊進行逆變換,以重現對應於該變換區塊的一殘差區塊的構件;及 用於使用該殘差區塊來重建該視訊資料的一區塊的構件。
- 根據請求項26之設備,其中該用於對該至少九個非零變換係數進行解碼的構件包括: 用於對該變換區塊的至多十個非零變換係數進行解碼的構件;及 用於推斷該變換區塊的剩餘變換係數為零值,而不對該等剩餘變換係數的值進行解碼的構件。
- 根據請求項26之設備,其中該變換區塊總共包括六十四個變換係數,所有變換係數中的一部分變換係數為零值,所有變換係數中為零值的變換係數的該數量等於六十四減去該等非零變換係數的一數量,並且所有變換係數中為零值的變換係數的該數量至多為五十五。
- 根據請求項26之設備,其中該用於對該至少九個非零變換係數進行解碼的構件包括:用於對於該變換區塊至多對一預定最大數量的非零變換係數進行解碼的構件。
- 根據請求項29之設備,亦包括用於將該變換區塊的剩餘變換係數的值設置為等於零的構件。
- 根據請求項29之設備,亦包括根據一視訊參數集(VPS)、一序列參數集(SPS)、一圖片參數集(PPS)、一切片頭部、一編碼樹單元(CTU)頭部以及一區塊頭部中至少之一,對表示該預定數量的一值進行解碼的構件。
- 根據請求項26之設備,亦包括: 用於在對該變換區塊進行解碼之前對該變換區塊進行編碼的構件; 用於當對該變換區塊進行編碼時,決定非零變換係數的一數量以對該變換區塊進行編碼的構件,其中該數量為九或十;及 用於對該變換區塊的該數量的非零變換係數進行編碼而不對該變換區塊的其他變換係數進行編碼的構件。
- 根據請求項32之設備,其中該用於決定該非零變換係數的數量的構件包括用於根據該視訊資料符合的一視訊編碼標準的一簡介、層次或級別,決定該非零變換係數的數量為九或十的構件。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962951984P | 2019-12-20 | 2019-12-20 | |
| US62/951,984 | 2019-12-20 | ||
| US17/125,778 | 2020-12-17 | ||
| US17/125,778 US11470353B2 (en) | 2019-12-20 | 2020-12-17 | Low-frequency non-separable transform (LFNST) with reduced zero-out in video coding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202131679A true TW202131679A (zh) | 2021-08-16 |
Family
ID=76438993
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109144985A TW202131679A (zh) | 2019-12-20 | 2020-12-18 | 在視訊編碼中利用縮減的歸零項的低頻不可分變換(lfnst) |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US11470353B2 (zh) |
| EP (1) | EP4078955A1 (zh) |
| KR (1) | KR20220114548A (zh) |
| CN (2) | CN114830657B (zh) |
| TW (1) | TW202131679A (zh) |
| WO (1) | WO2021127420A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20220047627A (ko) * | 2019-09-21 | 2022-04-18 | 엘지전자 주식회사 | 변환에 기반한 영상 코딩 방법 및 그 장치 |
| CN115443655B (zh) * | 2020-06-09 | 2025-08-01 | 阿里巴巴(中国)有限公司 | 用于处理视频数据的方法、装置、存储介质及程序产品 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
| WO2017052440A1 (en) * | 2015-09-23 | 2017-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Determination of qp values |
| US10681379B2 (en) | 2015-09-29 | 2020-06-09 | Qualcomm Incorporated | Non-separable secondary transform for video coding with reorganizing |
| US10448053B2 (en) | 2016-02-15 | 2019-10-15 | Qualcomm Incorporated | Multi-pass non-separable transforms for video coding |
| US10349085B2 (en) | 2016-02-15 | 2019-07-09 | Qualcomm Incorporated | Efficient parameter storage for compact multi-pass transforms |
| US10972733B2 (en) | 2016-07-15 | 2021-04-06 | Qualcomm Incorporated | Look-up table for enhanced multiple transform |
| US10863199B2 (en) | 2018-03-26 | 2020-12-08 | Qualcomm Incorporated | Minimization of transform memory and latency via parallel factorizations |
| US10986340B2 (en) | 2018-06-01 | 2021-04-20 | Qualcomm Incorporated | Coding adaptive multiple transform information for video coding |
| US11057622B2 (en) | 2018-12-13 | 2021-07-06 | Qualcomm Incorporated | Position dependent intra prediction combination with non-square block diagonals |
| US11032572B2 (en) | 2019-05-17 | 2021-06-08 | Qualcomm Incorporated | Low-frequency non-separable transform signaling based on zero-out patterns for video coding |
| GB2585030A (en) * | 2019-06-25 | 2020-12-30 | British Broadcasting Corp | Method of signalling in a video codec |
-
2020
- 2020-12-17 US US17/125,778 patent/US11470353B2/en active Active
- 2020-12-18 CN CN202080086499.6A patent/CN114830657B/zh active Active
- 2020-12-18 WO PCT/US2020/065991 patent/WO2021127420A1/en not_active Ceased
- 2020-12-18 TW TW109144985A patent/TW202131679A/zh unknown
- 2020-12-18 CN CN202510788901.XA patent/CN120658866A/zh active Pending
- 2020-12-18 KR KR1020227019586A patent/KR20220114548A/ko active Pending
- 2020-12-18 EP EP20842636.1A patent/EP4078955A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220114548A (ko) | 2022-08-17 |
| CN114830657A (zh) | 2022-07-29 |
| CN120658866A (zh) | 2025-09-16 |
| WO2021127420A1 (en) | 2021-06-24 |
| EP4078955A1 (en) | 2022-10-26 |
| US20210195242A1 (en) | 2021-06-24 |
| US11470353B2 (en) | 2022-10-11 |
| CN114830657B (zh) | 2025-07-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12301876B2 (en) | Transform and last significant coefficient position signaling for low-frequency non-separable transform in video coding | |
| US11032572B2 (en) | Low-frequency non-separable transform signaling based on zero-out patterns for video coding | |
| US11206400B2 (en) | Low-frequency non-separable transform (LFNST) simplifications | |
| US11095916B2 (en) | Wraparound motion compensation in video coding | |
| US11451840B2 (en) | Trellis coded quantization coefficient coding | |
| US11677984B2 (en) | Low-frequency non-separable transform (LFNST) signaling | |
| US20210235124A1 (en) | Decoded picture buffer (dpb) parameter signaling for video coding | |
| US11457229B2 (en) | LFNST signaling for chroma based on chroma transform skip | |
| TW202041009A (zh) | 用於轉換跳過模式之係數寫碼 | |
| US11134251B2 (en) | Video coding in triangular prediction unit mode using different chroma formats | |
| US11470334B2 (en) | Rice parameter derivation for lossless/lossy coding modes for video coding | |
| TW202127892A (zh) | 用於視訊編碼的角度訊框內預測模式的依賴位置的訊框內預測組合 | |
| US11973983B2 (en) | Signaling coding scheme for residual values in transform skip for video coding | |
| US20200288130A1 (en) | Simplification of sub-block transforms in video coding | |
| US11706425B2 (en) | Multiple transform set signaling for video coding | |
| US11228768B2 (en) | Restriction on block size of lossless coding | |
| US20210203963A1 (en) | Equation-based rice parameter derivation for regular transform coefficients in video coding | |
| TW202131676A (zh) | 視訊編碼中針對參考圖片重取樣的環繞偏移 | |
| TW202133619A (zh) | 用於合併估計區域的基於歷史的運動向量預測約束 | |
| US11729381B2 (en) | Deblocking filter parameter signaling | |
| US11991387B2 (en) | Signaling number of subblock merge candidates in video coding | |
| US20210195192A1 (en) | Coefficient group based restriction on multiple transform selection signaling in video coding | |
| US11470353B2 (en) | Low-frequency non-separable transform (LFNST) with reduced zero-out in video coding | |
| US11924410B2 (en) | Video coding using overlapped block motion compensation, combined inter-intra prediction, and/or luma mapping and chroma scaling | |
| US20200213589A1 (en) | Buffer update of stored adaptive loop filter (alf) coefficients for random access coding in video coding |