TW202131686A - 視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束 - Google Patents

視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束 Download PDF

Info

Publication number
TW202131686A
TW202131686A TW109144950A TW109144950A TW202131686A TW 202131686 A TW202131686 A TW 202131686A TW 109144950 A TW109144950 A TW 109144950A TW 109144950 A TW109144950 A TW 109144950A TW 202131686 A TW202131686 A TW 202131686A
Authority
TW
Taiwan
Prior art keywords
transform
block
coefficient
transform block
syntax element
Prior art date
Application number
TW109144950A
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 TW202131686A publication Critical patent/TW202131686A/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/12Selection 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
    • 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/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform 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

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

對於視訊資料的變換塊,視訊解碼器可以決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個。視訊解碼器至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼。視訊解碼器至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定對視訊資料進行解碼。

Description

視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束
本專利申請案主張2019年12月20日提出申請的美國臨時申請案第62/951,975號的權益,在此通過引用將其全部內容合併於此。
本案係關於視訊編碼和視訊解碼。
數位視訊功能能夠結合到廣泛的設備中,包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(PDA)、可攜式或桌上型電腦、平板電腦、電子書閱讀器、數碼相機、數位記錄設備、數位媒體播放機、視訊遊戲裝置、視訊遊戲機、蜂巢或衛星無線電電話、所謂的「智慧型電話」,視訊電話會議設備、視訊流式設備等。數位視訊設備實現了視訊解碼(coding)技術,諸如那些在由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)切片中的視訊可以使用關於同一圖片中的相鄰塊中的參考取樣的空間預測,或關於其他參考圖片中的參考取樣的時間預測。圖片可以被稱為訊框,並且參考圖片可以被稱為參考訊框。
一般來說,本案的各個態樣涉及變換解碼,變換解碼是視訊壓縮標準的元素。本案的各個態樣描述了能夠應用於視訊轉碼器或解碼器(轉碼器)的變換訊號傳遞技術,以指定從多個變換候選中選定的、用於編碼及/或解碼的變換。本文所述的技術可以基於諸如訊框內模式的可用輔助資訊來減少訊號傳遞管理負擔,從而提高解碼效率,並且可以應用於高級視訊轉碼器,包括高效視訊解碼(HEVC/H.265)和諸如通用視訊解碼(VVC/H.266)的下一代視訊解碼標準的擴展。
在一個實例中,本案描述了一種對視訊資料進行解碼的方法,包括:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於對至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
在另一實例中,本案內容描述了一種用於對資料進行解碼的設備,包括:用於對於視訊資料的變換塊決定變換塊的至少一個包括非零變換係數的係數組在變換塊的最低頻率區之外的部件,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;用於至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼的部件;及用於至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼的部件。
在另一實例中,本案描述了電腦可讀取儲存媒體,其上儲存有指令,該等指令在被執行時使一或多個處理器:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
在另一個實例中,本案描述了一種設備。該設備包括記憶體;及處理器,該處理器在電路中實現並被配置為:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
在附圖和以下描述中闡述了一或多個實例的細節。根據說明書、附圖和申請專利範圍,其他特徵、目的和優點將是顯而易見的。
本案涉及變換解碼。在變換解碼中,對於視訊轉碼器,存在殘差資料區塊(例如正在編碼的當前塊和預測塊之間的殘差)。殘差資料從空間域被變換到頻域,從而產生了變換係數的變換係數塊(在此亦稱為變換塊)。視訊解碼器接收變換係數塊(或者可能為量化後的變換係數塊),並執行逆量化(若需要)和逆變換來將殘差資料重建回值的空間域。
變換單元(TU)包括亮度取樣的變換塊和對應的色度取樣的變換塊。變換塊可以是由解碼程序中的變換產生的取樣的矩形M×N塊,並且變換可以是解碼程序的一部分,經由該變換程序,變換係數的塊被轉換為空間域值的塊。相應地,殘差塊可以是TU的實例。殘差塊可以是從取樣域被變換到頻域的殘差資料並且包括複數個變換係數。在M. Wien的「高效視訊解碼:解碼工具和規範(High Efficiency Video Coding:Coding Tools and Specification),施普林格,柏林,2015」中對變換解碼有更詳細的描述。
如更詳細描述的,在本案中描述的一或多個實例中描述的技術利用被稱為自我調整多重(或者多核)變換(AMT)或多重變換選擇(MTS)的變換方案。由於視訊解碼標準之間的名稱變更,AMT和MTS可以指相同的變換工具,因為AMT現在被稱為MTS,並且本文針對MTS描述的技術同樣適用於AMT。如下美國專利申請案描述了多重變換選擇(MTS)技術:2019年5月28日頒佈的美國專利案第10,306,229號、2018年1月18日揭示的美國專利公開案第2018/0020218號以及2019年5月30日提出申請的美國專利申請案第16/426,749號。MTS技術通常與先前描述的AMT技術相同。聯合視訊專家組(JVET)的聯合實驗模型(JEM-7.0)中已採用了2019年5月30日提出申請的美國專利申請案第16/426,749號中描述的MTS的實例(請參閱ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET),JEM軟體,https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0),並且後來VVC中採用了MTS的簡化版本。
如更詳細描述的,在一些實例中,根據MTS的技術,可以發訊號通知(signal)MTS索引來指定沿當前解碼單元中的相關聯的亮度變換塊的水平和垂直方向應用了哪些變換核。然而,僅當沒有非零變換係數(例如僅有零值變換係數)位於變換塊的最低頻率區之外時,才可以發訊號通知MTS索引。若有非零變換係數在變換塊的最低頻率區之外時,則不發訊號通知MTS索引。反而,可以推斷MTS索引的值來決定適用的變換核心。
本案的各個態樣描述了以僅在沒有非零變換係數位於變換塊的最低頻率區之外的情況下才發訊號通知MTS索引的方式,來決定是否發訊號通知用於變換塊的MTS索引的技術。例如,經由決定包括用於視訊資料的變換塊的變換係數的複數個係數組中的最後的解碼係數組是否在變換塊的最低頻率區之外,諸如視訊轉碼器或視訊解碼器的視訊解碼器可以決定在變換塊的最低頻率區之外是否有至少一個非零變換係數。至少部分地基於對最後的解碼係數組是否位於變換塊的最低頻率區之外的決定,視訊解碼器可以決定是否對指示變換塊的MTS索引的語法元素進行解碼。因此,視訊解碼器可以至少部分地基於是否對指示多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
以此方式,若在變換塊的最低頻率區之外有非零變換係數,則本案中描述的技術防止發訊號通知MTS索引,從而防止在變換塊的最低頻率區之外具有非零變換係數的變換塊的MTS索引的冗餘訊號傳遞。經由減少可以發訊號通知的冗餘資料量,本案中描述的技術可以提高視訊資料的解碼效率,並且可以在包括HEVC和諸如VVC的下一代視訊解碼標準的擴展的高級視訊轉碼器中使用。
圖1是示出可以執行本案的技術的實例視訊編碼和解碼系統100的方塊圖。本案的技術通常指向對視訊資料進行解碼(編碼及/或解碼)。通常,視訊資料包括用於處理視訊的任何資料。從而,視訊資料可以包括初始的未編碼視訊、編碼視訊、解碼(例如重構)視訊以及諸如訊號傳遞資料的視訊中繼資料。
如圖1所示,在此實例中,系統100包括提供將由目標設備116進行解碼和顯示的編碼視訊資料的源設備102。具體地,源設備102經由電腦可讀取媒體110將視訊資料提供給目標設備116。源設備102和目標設備116可以包括多種設備中的任何一種,包括桌上型電腦、筆記本(即膝上型電腦)、行動設備、平板電腦、機上盒、電話手持設備(如智慧手機)、電視、照相機、顯示裝置、數位媒體播放機、視訊遊戲機、視訊流式設備、廣播接收器設備等。在一些情況下,源設備102和目標設備116可以配備為用於無線通訊,並且因此可以被稱為無線通訊設備。
在圖1的實例中,源設備102包括視訊源104、記憶體106、視訊轉碼器200和輸出介面108。目標設備116包括輸入介面122、視訊解碼器300、記憶體120和顯示裝置118。根據本案,源設備102的視訊轉碼器200和目標設備116的視訊解碼器300可以被配置為應用用於決定是否對變換塊的MTS索引進行解碼的技術。因而,源設備102表示視訊編碼設備的實例,而目標設備116表示視訊解碼設備的實例。在其他實例中,源設備和目標設備可以包括其他部件或佈置。例如,源設備102可以從諸如外部照相機的外部視訊源接收視訊資料。同樣,目標設備116可以與外部顯示裝置介面,而不是包括整合的顯示裝置。
如圖1所示的系統100僅是一個實例。通常,任何數位視訊編碼及/或解碼設備皆可以執行用於決定是否對變換塊的MTS索引進行解碼的技術。源設備102和目標設備116僅僅是此類解碼設備的實例,其中源設備102產生用於發送到目標設備116的解碼視訊資料。本案將「解碼」設備稱為執行對資料進行解碼(編碼及/或解碼)的設備。從而,視訊轉碼器200和視訊解碼器300分別表示解碼設備的實例,具體地是視訊轉碼器和視訊解碼器的實例。在一些實例中,源設備102和目標設備116可以用基本上對稱的方式操作,使得源設備102和目標設備116中的每一個均包括視訊編碼和解碼用部件。於是,系統100可以支援源設備102和目標設備116之間的單向或雙向視訊發送,例如用於視訊流式、視訊重播、視訊廣播或者視訊電話。
通常,視訊源104表示視訊資料(即初始的未編碼視訊資料)的源,並將視訊資料的連續的圖片(亦稱為「訊框」)序列提供給視訊轉碼器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™)、藍芽™標準等的其他無線標準來傳送諸如編碼視訊資料的資料。在一些實例中,源設備102及/或目標設備116可以包括各自的片上系統(SoC)設備。例如,源設備102可以包括SoC設備來執行歸於視訊轉碼器200及/或輸出介面108的功能,並且目標設備116可以包括SoC設備來執行歸於視訊解碼器300及/或輸入介面122的功能。
本案的技術可以應用於支援各種多媒體應用中的任何一種的視訊解碼,各種多媒體應用諸如空中電視廣播、有線電視傳輸、衛星電視傳輸、諸如基於HTTP的動態自我調整流式(DASH)的網際網路流式視訊傳輸、被編碼到資料儲存媒體上的數位視訊、對儲存在資料儲存媒體上的數位視訊進行的解碼、或其他應用。
目標設備116的輸入介面122從電腦可讀取媒體110(例如通訊媒體、存放裝置112、檔案伺服器114等)接收編碼視訊位元串流。編碼視訊位元串流可以包括由視訊轉碼器200定義的、亦由視訊解碼器300使用的訊號傳遞資訊,諸如語法元素,該語法元素具有描述視訊塊或其他解碼單元(例如切片、圖片、圖片組、序列等)的特性及/或處理的值。顯示裝置118向使用者顯示解碼視訊資料的解碼圖片。顯示裝置118可以表示諸如液晶顯示器(LCD)、等離子顯示器、有機發光二極體(OLED)顯示器或另一類顯示裝置的各種顯示裝置中的任何一種。
儘管未在圖1中示出,但在一些實例中,視訊轉碼器200和視訊解碼器300每一個可以與音訊編碼器及/或音訊解碼器整合在一起,並且可以包括適當的MUX-DEMUX單元或其他硬體及/或軟體,以處理公共串流中包括音訊和視訊兩者的多工串流。若適用,MUX-DEMUX單元可以符合ITU H.223多工器協定或諸如使用者資料包通訊協定(UDP)的其他協定。
視訊轉碼器200和視訊解碼器300每一個可以實現為各種合適的編碼器及/或解碼器電路中的任何一種,諸如一或多個微處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、離散邏輯、軟體,硬體、韌體或其任何組合。當技術部分地以軟體實施時,設備可以將用於軟體的指令儲存在合適的非暫時電腦可讀取媒體中,並使用一或多個處理器在硬體中執行該等指令來執行本案的技術。可以在一或多個編碼器或解碼器中包括視訊轉碼器200和視訊解碼器300的每一個,它們中的任意一個可以整合為相應設備中的組合編碼器/解碼器(轉碼器)的一部分。包括視訊轉碼器200及/或視訊解碼器300的設備可以包括積體電路、微處理器及/或諸如蜂巢式電話的無線通訊設備。
視訊轉碼器200和視訊解碼器300可以根據視訊解碼標準進行操作,諸如ITU-T H.265,其亦稱為高效視訊解碼(HEVC)或其擴展,諸如多視圖及/或可縮放的視訊解碼擴展。可替代地,視訊轉碼器200和視訊解碼器300可以根據其他專有標準或工業標準來操作,諸如ITU-T H.266,其亦稱為通用視訊編碼(VVC)。在ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的聯合視訊專家組(JVET)的第18次會議(經由電話):2020年6月22日至7月1日,JVET-S2001-vA,Bross等人在「通用視訊解碼(草案10)」中描述了VVC標準的草案(以下簡稱「VVC草案10」)。然而,本案的技術不限於任何特定的解碼標準。
通常,視訊轉碼器200和視訊解碼器300可以執行圖片的基於塊的解碼。術語「塊」通常是指包括待處理(例如被編碼、解碼或以其他方式在編碼及/或解碼程序中使用)的資料的結構。例如,塊可以包括亮度及/或色度資料取樣的二維矩陣。通常,視訊轉碼器200和視訊解碼器300可以對以YUV(例如Y、Cb、Cr)格式表示的視訊資料進行解碼。亦即,視訊轉碼器200和視訊解碼器300可以對亮度和色度分量進行解碼,其中色度分量可以包括紅色色調色度分量和藍色色調色度分量兩者,而不是對圖片的取樣的紅色、綠色和藍色(RGB)資料進行解碼。在一些實例中,視訊轉碼器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)劃分以及一或多個類型的三叉樹(triple tree,TT)(亦稱為三元樹(ternary tree,TT))劃分來對塊進行劃分。三叉樹或三元樹劃分是將一個塊拆分三個子塊的劃分。在一些實例中,三叉樹或三元樹劃分將一個塊分割為三個子塊,而無需經由中心分割原始塊。MTT中的劃分(partitioning)類型(例如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的某個值的、取樣的N×N塊,使得將部件分割為CTB是劃分。部件是來自以4:2:0、4:2:2或4:4:4的顏色格式組成圖片的三個陣列(亮度和兩個色度)中的一個的陣列或單個取樣,或者是以單色格式組成圖片的陣列中的陣列或單個取樣。在一些實例中,解碼塊是針對M和N的某些值的、取樣的M×N塊,使得將CTB分割為解碼塊是劃分。
可以以各種方式在圖片中對塊(例如CTU或CU)進行群組。作為一個實例,磚塊(brick)可以指圖片中的特定圖塊(tile)內的CTU行的矩形區。圖塊可以是圖片中在特定圖塊列和特定圖塊行內的CTU的矩形區。圖塊列指的是CTU的矩形區,其高度等於圖片的高度並且寬度由語法元素(例如在圖片參數集中)指定。圖塊行是指CTU的矩形區,其具有由語法元素指定的高度(例如在圖片參數集中)並且其寬度等於圖片的寬度。
在一些實例中,可以將圖塊劃分成多個磚塊,每一個磚塊可以包括圖塊內一或多個CTU行。沒有被劃分為多個磚塊的圖塊亦可以被稱為磚塊。但是,作為圖塊的真子集的磚塊不可以被稱為圖塊。
圖片中的磚塊亦可以成切片排列。切片可以是圖片的磚塊的整數倍,這些磚塊可以排他地包含在單個網路抽象層(NAL)單元中。在一些實例中,切片包括多個完整圖塊或僅僅一個圖塊的完整磚塊的連續序列。
本案可以互換地使用「N×N」和「N乘N」來指塊(諸如CU或其他視訊塊)在垂直和水平維度態樣的取樣維度,例如16×16取樣或16乘16取樣。通常,16×16 CU在垂直方向上將有16個取樣1(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進行預測。
VVC的一些實例亦提供了仿射運動補償模式,其可以視為訊框間預測模式。在仿射運動補償模式中,視訊轉碼器200可以決定表示非平移運動的兩個或更多個運動向量,諸如放大或縮小、旋轉、透視運動或其他不規則運動類型。
為了執行訊框內預測,視訊轉碼器200可以選擇訊框內預測模式來產生預測塊。VVC的一些實例提供了六十七種訊框內預測模式,包括各種方向的模式以及平面模式和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可以對待量化的值執行按位元(bitwise)右移。
量化之後,視訊轉碼器200可以對變換係數進行掃瞄,從而從包括量化的變換係數的二維矩陣中產生一維向量。可以將掃瞄設計為將較高能量(因此頻率較低)的變換係數放在向量的前面,並將較低能量(因此頻率較高)的變換係數放在向量的後面。在一些實例中,視訊轉碼器200可以利用預定義的掃瞄順序來對量化的變換係數進行掃瞄以產生序列化的向量,隨後對向量的量化的變換係數進行熵編碼。在其他實例中,視訊轉碼器200可以執行自我調整掃瞄。在對量化的變換係數進行掃瞄以形成一維向量之後,例如根據上下文自我調整的二進位算術解碼(CABAC),視訊轉碼器200可以對一維向量進行熵編碼。視訊轉碼器200亦可以對語法元素的值進行熵編碼,語法元素描述與編碼視訊資料相關聯的中繼資料,以由視訊解碼器300在對視訊資料進行解碼中使用。
為了執行CABAC,視訊轉碼器200可以將上下文(context)模型內的上下文指派給待發送的符號。上下文可以涉及例如符號的相鄰值是否是零值。概率決定可以基於分配給符號的上下文。
視訊轉碼器200可以進一步地,諸如在圖片標頭、塊標頭、切片標頭中,產生至視訊解碼器300的語法資料,諸如基於塊的語法資料、基於圖片的語法資料以及基於序列的語法資料,或其他語法資料,諸如序列參數集(SPS)、圖片參數集(PPS)或視訊參數集(VPS)。視訊解碼器300可以類似地對此類語法資料進行解碼來決定如何對對應視訊資料進行解碼。
以此方式,視訊轉碼器200可以產生包括編碼視訊資料的位元串流,例如描述將圖片劃分成塊(例如CU)的語法元素以及塊的預測及/或殘差資訊。最終,視訊解碼器300可以接收位元串流並且對編碼視訊資料進行解碼。
通常,視訊解碼器300執行的是與視訊轉碼器200執行的相反程序,以對位元串流的編碼視訊資料進行解碼。例如,視訊解碼器300可以以與視訊轉碼器200的CABAC編碼程序基本相似(儘管與之相反)的方式,使用CABAC對位元串流的語法元素的值進行解碼。語法元素可以定義劃分資訊,該劃分資訊用於將圖片劃分為CTU,以及根據諸如QTBT結構的對應劃分結構對每一個CTU進行劃分來定義CTU的CU。語法元素可以進一步定義視訊資料的塊(例如CU)的預測和殘差資訊。
殘差資訊可以由例如量化的變換係數表示。視訊解碼器300可以對塊的量化的變換係數進行逆量化和逆變換,以對塊的殘差塊進行再現。視訊解碼器300使用訊號傳遞化的預測模式(訊框內或訊框間預測)和相關的預測資訊(例如用於訊框間預測的運動資訊)來形成用於塊的預測塊。隨後,視訊解碼器300可以組合預測塊和殘差塊(在逐取樣的基礎上)以對原始塊進行再現。視訊解碼器300可以執行額外處理(諸如執行解塊程序)來減少沿塊邊界的視覺偽像。
根據本案的技術,對於視訊資料的變換塊,視訊轉碼器200和視訊解碼器300可以決定變換塊的包括非零變換係數的至少一個係數組是否在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包含變換係數的複數個係數組中的一個;至少部分地基於對至少一個解碼係數組是否在變換塊的最低頻率區之外的決定,決定是否對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於對是否對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
圖2A和圖2B是示出實例四叉樹二叉樹(QTBT)結構130和對應解碼樹單元(CTU)132的概念圖。實線表示四叉樹拆分,並且虛線指示二叉樹拆分。在二叉樹的每一個拆分(即非葉)節點中,發訊號通知一個標誌以指示使用哪種拆分類型(即水平或垂直),其中在本實例中0指示水平拆分,而1指示垂直拆分。對於四叉樹拆分,由於四叉樹節點將塊水平和垂直地劃分為尺寸相等的4個子塊,因此無需指示拆分類型。相應地,視訊轉碼器200和視訊解碼器300可以分別地對用於QTBT結構130(即實線)的區域樹級別的語法元素(例如拆分資訊)和用於QTBT結構130(即虛線)的預測樹級別的語法元素(例如拆分資訊)進行編碼和解碼。視訊轉碼器200和視訊解碼器300可以分別地對針對由QTBT結構130的終端葉節點表示的CU的視訊資料(諸如預測和變換資料)進行編碼和解碼。
通常,圖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,並且根據預測和變換對其進行進一步處理而無需進一步劃分。
本案通常可以指「發訊號傳遞通知(signaling)」某些資訊,諸如語法元素。術語「發訊號傳遞通知」通常可以指對於語法元素及/或用於對編碼視訊資料進行解碼的其他資料的值的通訊。亦即,視訊轉碼器200可以發訊號傳遞通知位元串流中的語法元素的值。通常,發訊號傳遞通知是指在位元串流中產生值。如前述,源設備102可以基本上即時地將位元串流運送到目標設備116,或非即時地將位元串流運送到目標設備116,諸如在將語法元素儲存到存放裝置112以供稍後由目標設備116檢索時可能發生。
圖3A和圖3B是示出基於HEVC的殘差四叉樹的實例變換方案的概念圖。在HEVC中,應用了使用殘差四叉樹(RQT)的變換解碼結構來適應殘差塊的各種特性,這在IEEE聲學、語音和訊號處理國際會議(ICASSP),2010三月,726-729頁中J. Han,A. Saxena和K. Rose的「Towards jointly optimal spatial prediction and adaptive transform in video/image coding」中作了簡要描述,有關RQT的額外資訊可在: http://www.hhi.fraunhofer.de/fields-of-competence/image-processing/research-groups/image-video-coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual- quadtree-rqt.html獲得。
在RQT中,每個被圖片分割為解碼樹單元(CTU),對於特定的圖塊或切片以光柵掃瞄順序對其進行解碼。CTU是正方形塊,並且表示四叉樹即解碼樹的根。CTU尺寸可以在8×8到64×64亮度取樣的範圍內,但通常使用64×64。每個CTU可以進一步被拆分為被稱為解碼單元(CU)的更小的正方形塊。在將CTU遞迴地拆分成CU之後,每個CU被進一步分割為預測單元(PU)和變換單元(TU)。基於四叉樹方法遞迴地實施將CU劃分為TU,因此,每個CU的殘留訊號由樹結構即殘差四叉樹(RQT)解碼。RQT允許TU尺寸從4×4到32×32亮度取樣。
圖3A圖示了實例,其中CU 134包括用字母a至j標記的10個TU以及相應的塊劃分。圖3B中所示的RQT 136的每一個節點是對應於圖3A的變換單元(TU)。以深度優先樹遍歷順序(在圖3A中以字母順序示出)處理各個TU,其遵循具有深度優先遍歷的遞迴Z掃瞄。四叉樹方法使變換適應於殘留訊號的變化的空間-頻率特性。
典型地,具有較大的空間支援的較大的變換塊尺寸提供更好的頻率解析度。然而,具有較小的空間支援的較小的變換塊尺寸提供更好的空間解析度。空間解析度和頻率解析度兩者之間的權衡由編碼器模式決策來選擇,例如基於速率失真最佳化技術來選擇。速率失真最佳化技術對於每種解碼模式(例如,特定的RQT拆分結構)計算編碼位元和重構失真的加權和,即重構失真成本,並選擇速率失真成本最小的解碼模式作為最佳模式。
RQT中定義了三個參數:樹的最大深度、最小允許變換尺寸和最大允許變換尺寸。最小和最大變換尺寸能在4×4到32×32取樣的範圍內變化,這對應於先前段落中提到的所支援的塊變換。RQT的最大允許深度限制了TU的數量。最大深度等於零意味著,若每一個包含的TB達到最大允許變換尺寸,例如32x32,則無法進一步拆分解碼塊(CB)。
所有這些參數相互作用並影響RQT結構。考慮根CB尺寸為64×64、最大深度等於零且最大變換尺寸等於32×32的情況。在這種情況下,CB至少要被劃分一次,因為否則將導致64×64 TB,這是不允許的。這些RQT參數,即最大RQT深度、最小和最大變換尺寸,以序列參數集級別在位元串流中被發送。關於RQT深度,可以為訊框內和訊框間解碼的CU指定併發訊號通知不同的值。
四叉樹變換適用於訊框內和訊框間殘差塊兩者。典型地,對殘差塊應用當前殘差四叉樹劃分的相同尺寸的DCT-II變換。但是,若當前殘差四叉樹塊是4×4並且是經由訊框內預測產生的,則應用上述4×4 DST-VII變換。
在HEVC中,不採用較大尺寸的變換,例如64×64變換,主要是因為考慮到其有限的益處以及對於相對較小解析度視訊的較高複雜性。
要降低計算複雜度,通常以可分離的方式來計算塊變換,即獨立地變換水平線和垂直線,如圖4A和4B所示。圖4A和圖4B是示出作為可分離變換實現的水平和垂直變換的概念圖。圖4A表示H個水平變換的集合170,而圖4B表示W個垂直變換的集合172。具體地,可以分別使用水平變換170和垂直變換172獨立地對殘差值的水平線和垂直線進行變換。
在HEVC之前的視訊解碼標準中,僅使用固定的可分離變換,其中垂直和水平地使用DCT-2。在HEVC中,除了DCT-2之外,DST-7作為固定的可分離變換亦應用於4×4塊。美國專利公開案第2016/0219290號和美國專利公開案第2018/0020218號涵蓋了這些固定變換的自我調整擴展,並且在視訊專家聯合小組(JVET)的聯合實驗模型(JEM), X. Zhao,J.Chen,M.Karczewicz,L.Zhang,X.Li和W.-J.Chien,「Enhanced multiple transform for video coding.」(資料壓縮會議論文集,73-82頁,2016年三月)中採用了美國專利公開案第2016/0219290號中的AMT的實例。
美國專利公開案第2016/0219290號和美國專利公開案第2018/0020218號中描述的AMT設計提供了5種變換選項,以供視訊轉碼器200在每個區塊的基礎上進行選擇(此選擇通常基於速率失真指標來完成)。隨後,將選定的變換索引發訊號通知給視訊解碼器300。
圖5是示出變換訊號傳遞的概念圖。例如,圖5圖示在美國專利公開案第2016/0219290號和美國專利公開案第2018/0020218號中提出的訊號傳遞,其中1位元用於發訊號通知預設變換,並且2個額外位元(即總共3個位元)用於發訊號通知4個變換。例如,使用0(即1位元)發訊號通知五個變換中的一個(預設變換),而使用3位元(即100、101、110以及111)發訊號通知其他四個變換。
在美國專利公開案第2016/0219290號和美國專利公開案第2018/0020218號中,選擇預設變換為可分離2-D DCT,其在垂直和水平方向上均應用DCT-2。其餘的AMT是根據美國專利公開案第2016/0219290號中的訊框內模式資訊定義的。美國專利公開案第2018/0020218號提出了對美國專利公開案第2016/0219290號的擴展,經由基於預測模式和塊尺寸資訊兩者來定義那四個變換的集合。
在VVC參考軟體版本VTM 3.0中,使用了圖5中示出的訊號傳遞方案。對於每個解碼單元(CU),使用單個位元(標誌)來決定是(i)在水平和垂直方向兩者上都使用DCT2,還是(ii)使用兩個額外位元(被稱為AMT/MTS索引)來指定水平或垂直應用的1-D變換。經由分配要應用於給定塊的行/列的DST-7/DCT-8來定義這4個變換。例如,具有值為00的兩個額外位元可以對應於水平地且垂直地應用DST-7的可分離變換,且具有值為01的兩個額外位元可以對應於水平地應用DST-8且垂直地應用DST-7。
在整個本案中,MTS索引可以是語法元素,其指定沿當前解碼單元中的相關聯的亮度變換塊的水平和垂直方向上應用的可分離變換。在一些實例中,如上面關於圖5所描述的,MTS索引可以是leadint 1位元值或3位元值。在其他實例中,MTS索引可以是指定任意合適的多重變換的一或多個位元。
根據MTS的技術,可以發訊號通知MTS索引以指定沿著當前解碼單元中的相關聯的亮度變換塊的水平和垂直方向上應用了哪些變換核。但是,僅當針對變換塊沒有非零變換係數在變換塊的最低頻率區之外時才可以發訊號通知MTS索引,最低頻率區可以是變換塊的左上區,諸如32×32變換塊的16×16左上區。若有非零變換係數在變換塊的最低頻率區之外時,則不發訊號通知MTS索引。反而,可以推斷MTS索引的值來決定適用的變換核心。
圖6A和6B是示出變換塊的概念圖。如圖6A所示,變換塊182可以包括32×32取樣。儘管圖6A將變換塊182示出為包括32×32取樣,但是本案中描述的技術可以適用於包括N×M取樣的任何變換塊,其中M不必等於N。變換塊182可以包括最低頻率區184(在圖6A中帶陰影),其可以是表示變換塊182的最低頻率變換係數的變換塊182的左上部(例如左上子塊)。在圖6A的實例中,變換塊182的最低頻率區184可以是變換塊182的左上16×16取樣,其在x軸和y軸兩者上從0跨越到15。
作為一個實例,可以基於DCT或DST變換來產生變換塊182。DCT或DST變換的一種可能結果是,變換係數基於其各自的頻率排序。例如,與低頻相關聯的變換係數傾向於聚集在變換塊182的左上部中。相應地,最低頻率區184包括與低頻相關聯的變換係數。
在一些實例中,僅當在變換塊182中的最低頻率區184之外的、變換塊182中的變換係數的每一個均具有零值時,MTS索引(即指示多重變換選擇的語法元素)才指示為變換塊182選擇的多重變換(即可分離變換)。若在變換塊182中的最低頻率區184之外的係數組均不包含非零變換係數,則視訊轉碼器200可以對指示為變換塊182選擇的多重變換的MTS索引進行編碼,並且視訊解碼器300可以對用於變換塊182的MTS索引進行解碼。
然而,若變換塊182中的最低頻率區184之外的至少一個變換係數具有非零值,則視訊轉碼器200可以決定不對指示為變換塊182選擇的多重變換的MTS索引進行編碼,並且視訊解碼器300可以反而推斷(例如在沒有顯式語法元素的情況下決定)MTS索引的值是預設值(例如零),並且可以將預設變換(例如DCT-2變換)應用於變換塊。
在VVC Draft 7草案14(即JVET-P2001-vE)中,若滿足以下條件集,則發訊號通知MTS索引(以下稱為「mts_idx」):
if( treeType != DUAL_TREE_CHROMA && lfnst_idx = = 0 && transform_skip_flag[ x0 ][ y0 ][ 0 ]  = =  0  &&  Max( cbWidth, cbHeight ) <= 32 && IntraSubPartitionsSplit[ x0 ][ y0 ]  = =  ISP_NO_SPLIT  &&  cu_sbt_flag  = = 0 && MtsZeroOutSigCoeffFlag  = =  1  &&  tu_cbf_luma[ x0 ][ y0 ] ) {  
if( ( ( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTER && sps_explicit_mts_inter_enabled_flag )  | | ( CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_INTRA && sps_explicit_mts_intra_enabled_flag ) ) )  
mts_idx ae(v)
}  
表1
如表1所示,視訊解碼器(例如視訊轉碼器200及/或視訊解碼器300)可以至少部分地基於語法元素MtsZeroOutSigCoeffFlag的值是否等於一來決定是否發訊號通知語法元素mts_idx。若語法元素MtsZeroOutSigCoeffFlag的值等於一,則視訊解碼器可以發訊號通知語法元素mts_idx。若語法元素MtsZeroOutSigCoeffFlag的值不等於一,諸如當語法元素MtsZeroOutSigCoeffFlag的值為零時,則視訊轉碼器可以不發訊號通知語法元素mts_idx。反而,視訊解碼器可以推斷MTS索引的值,諸如0。MTS索引的推斷值可以對應於特定變換的選擇,諸如用於水平變換和垂直變換兩者的DCT-2變換。
語法元素MtsZeroOutSigCoeffFlag的值指示是否將在變換塊的最低頻率區之外的變換塊的係數的值清零(即每一個值都為零)。在一些實例中,對於32×32變換塊182,最低頻率區184是變換塊的左上16×16區,其從變換塊182的位置(0, 0)跨越到變換塊182的位置(15, 15)。
因此,在VVC Draft 7 草案14中,取決於最後的有效係數的位置,根據以下條件,將表1中的語法元素MtsZeroOutSigCoeffFlag的值設置為零:
if( ( LastSignificantCoeffX > 15  | |  LastSignificantCoeffY > 15 )  &&  cIdx = = 0 )  
MtsZeroOutSigCoeffFlag = 0  
表2
如在表2中可見,視訊解碼器可以基於變換塊182中的最後的有效(即非零)係數的位置(例如在x軸和y軸上的位置)決定語法元素MtsZeroOutSigCoeffFlag的值。要決定32×32變換塊182的最後的有效係數的位置是否在16×16最低頻率區184之外,視訊解碼器檢查x軸和y軸上最後的有效係數的位置是否大於15,其中語法元素LastSignificantCoeffX的值是變換塊182中在x軸上的最後的有效係數的位置,而其中LastSignificantCoeffY是變換塊182中在y軸上的最後的有效係數的位置。
若在x軸或y軸中的至少一個上最後的有效係數的位置大於15,則視訊解碼器可以決定在變換塊182的最低頻率區184之外的變換塊182的係數的值未被清零,並且因此可以將語法元素MtsZeroOutSigCoeffFlag的值設置為零。若在x軸或y軸上最後的有效係數的位置不大於15,則視訊解碼器可以決定在變換塊182的最低頻率區184之外的變換塊182的係數的值被清零,因此可以將語法元素MtsZeroOutSigCoeffFlag的值設置為一。
但是,變換塊182中最後的有效係數的位置可能並不總是在變換塊182的最低頻率區184之外的變換塊182的係數的值是否清零的可靠指示符。可能存在此類情況,即使變換塊182中的最後的有效係數在最低頻率區184之內,變換塊182的最低頻率區184之外的變換塊182的係數的值也未被清零。
例如,由於視訊解碼器經由對變換塊182的係數進行對角線掃瞄來決定變換塊182的最後的有效係數,有可能會在對變換塊182中的最低頻率區184中的最後的有效係數進行掃瞄之前,對變換塊182中的最低頻率區184之外的非零係數進行掃瞄。在此實例中,即使非零係數存在於變換塊182中的最低頻率區184之外,因為最後的有效係數在變換塊182中的最低頻率區184中,視訊解碼器仍可以決定變換塊182的最低頻率區184之外沒有非零系數值。
為了解決此問題,可以如下約束視訊位元串流:若當前解碼單元中residual_coding(x0,y0,log2sTbWidth,log2TbHeight、cIdx)語法結構中至少一個coded_sub_block_flag[xS][yS]不等於0,其中cIdx等於0且xS或yS大於3,則位元串流一致性要求mts_idx等於0。然而,位元串流約束亦不能保證即使變換塊182包含在變換塊182的最低頻率區184之外的非零係數,非一致的視訊轉碼器仍將不發訊號通知用於變換塊182的MTS索引。
這樣,本案的態樣描述了用基於語法的約束來代替如前述的用於MTS訊號傳遞的位元串流約束的變換訊號傳遞技術。例如,不使用最後的有效係數位置的位置來約束MTS索引的訊號傳遞,而是可以基於最後的解碼係數組(CG)的位置來約束MTS索引的訊號傳遞,其中解碼的CG是包含至少一個非零係數的CG,從而(i)避免了MTS的潛在冗餘訊號傳遞,並且(ii)當使用MTS時(例如當將DST-7和DCT-8的組合用作可分離變換時),32×32TU中左上16×16區之外的非零係數是不可能的。
在一些實例中,CG可以是按掃瞄順序的一組連續係數。例如,CG可以是按掃瞄順序的一組16個連續係數,使得CG可以對應於變換塊182的4×4子塊。在該實例中,32×32TU可以包括64個不重疊的CG。CG的其他實例可以同等地適用於本文揭示的技術。
如圖6B所示,在具有4×4係數組的32×32變換塊182的實例中,變換塊182中的CG的位置被表示為(x, y),其中x和y可以分別在0到7的範圍內,使得CG在變換塊182中的位置可以在從(0, 0)到(7, 7)的範圍內。從而,變換塊182的16×16最低頻率區184可以在變換塊182中跨越(0, 0)至(3, 3),並且若CG沿著x軸和y軸中至少一個的位置大於三,則CG因此在變換塊182的最低頻率區184之外。
這樣,在本案的一些態樣中,不允許視訊解碼器發訊號通知MTS索引(即語法元素mts_idx),並且,並且若最後的解碼CG沿x軸或y軸的位置大於三,則MTS索引的值被推斷為0(亦即,推斷DCT-2被用作係數塊的水平和垂直變換)。否則,若變換塊182中沒有具有沿著x軸和y軸中的至少一個的大於三的位置的CG,則視訊解碼器可以發訊號通知MTS索引。
根據本案的態樣,若最後的解碼CG在x軸或y軸上的位置大於三,視訊解碼器可以決定不發訊號通知用於變換塊182的MTS索引,從而反而推斷MTS索引的值為預設值(例如,推斷MTS索引的值為0,以表示選擇DCT-2變換)。否則,若沒有解碼CG在x軸或y軸上的位置均大於3,則例如可以由視訊轉碼器200發訊號通知MTS索引。類似地,若沒有解碼CG在x軸或y軸上的位置均大於三,則例如可以由視訊解碼器300解析MTS索引,以決定為變換塊182選擇的可分離變換。三可以僅僅是用於決定是否可以發訊號通知及/或解析MTS索引的、在x軸和y軸上的最後的解碼CG的閾值的一個實例,並且取決於任何合適的因素(例如變換塊182的尺寸)不同於三的值可以同樣適用於所揭示的技術。
表3圖示VVC Draft 7草案14中可以在本案中進行改進的部分。視訊轉碼器200可以基於表1中所示的解碼語法來決定是否發訊號通知用於變換塊182的MTS索引,而視訊解碼器300可以基於表1中所示的解碼語法來決定是否推斷用於變換塊182的MTS索引及/或是否對編碼MTS索引進行解析。
表3中描述了對VVC Draft 7版本14的語法更改,其中從殘差解碼語法及/或切片資料語義中刪除了<DELETE></DELETE>之間的內容,而添加了<ADD></ADD>之間的內容到殘差解碼語法及/或切片資料語義。根據本案的技術,此類標籤實際上不是殘差解碼語法的一部分。類似地,根據本案的技術,在本案中純粹為了可讀性目的而添加<ADD>、</ADD>、<DELETE>和</DELETE>,以便表示已經從殘差解碼語法中刪除的語法,而此類標籤實際上不是殘差解碼語法的一部分。 VCC Draft 7版本14中的7.3.9.11節殘差解碼語法
residual_coding(x0, y0, log2TbWidth, log2TbHeight, cIdx ) { 描述符
     …  
     do {  
           if( lastScanPos  = =  0 ) {  
                lastScanPos = numSbCoeff  
                lastSubBlock− −  
           }  
           lastScanPos− −  
           xS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 0 ]  
           yS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 1 ]  
           xC = ( xS << log2SbW ) + DiagScanOrder[ log2SbW ][ log2SbH ][ lastScanPos ][ 0 ]  
           yC = ( yS << log2SbH ) + DiagScanOrder[ log2SbW ][ log2SbH ][ lastScanPos ][ 1 ]  
     } while( ( xC  !=  LastSignificantCoeffX )  | |  ( yC  !=  LastSignificantCoeffY ) )  
     if( lastSubBlock  = =  0  &&  log2TbWidth  >=  2  &&  log2TbHeight  >=  2  &&            !transform_skip_flag[ x0 ][ y0 ][ cIdx ]  &&  lastScanPos  >  0 )  
           LfnstDcOnly = 0  
     if( ( lastSubBlock > 0  &&  log2TbWidth >= 2  &&  log2TbHeight >= 2 )  | |            ( lastScanPos > 7  &&  ( log2TbWidth = = 2  | |  log2TbWidth = = 3 )  &&            log2TbWidth = = log2TbHeight ) )  
           LfnstZeroOutSigCoeffFlag = 0  
     <DELETE>if( ( LastSignificantCoeffX > 15  | |  LastSignificantCoeffY > 15 )  &&  cIdx = = 0 )</DELETE>  
           <DELETE>MtsZeroOutSigCoeffFlag = 0</DELETE>  
     QState = 0  
     for( i = lastSubBlock; i  >=  0; i− − ) {  
           startQStateSb = QState  
           xS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ i ][ 0 ]  
           yS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ i ][ 1 ]  
           inferSbDcSigCoeffFlag = 0  
           if( i < lastSubBlock  &&  i > 0 ) {  
               coded_sub_block_flag [ xS ][ yS ] ae(v)
                inferSbDcSigCoeffFlag = 1  
           }  
         <ADD>if( ( coded_sub_block_flag[ xS ][ yS ]  | |  i = = lastSubBlock )  && cIdx = = 0 &&               ( xS > 3  | |  yS > 3  ) {</ADD>  
              <ADD>MtsZeroOutSigCoeffFlag = 0</ADD>  
         <ADD>}</ADD>  
           firstSigScanPosSb = numSbCoeff  
           lastSigScanPosSb = −1  
           firstPosMode0 = ( i  = =  lastSubBlock  ? lastScanPos : numSbCoeff − 1 )  
           firstPosMode1 = firstPosMode0  
           for( n = firstPosMode0; n  >=  0  &&  remBinsPass1 >= 4; n− − )  {  
                xC = ( xS << log2SbW ) + DiagScanOrder[ log2SbW ][ log2SbH ][ n ][ 0 ]  
                yC = ( yS << log2SbH ) + DiagScanOrder[ log2SbW ][ log2SbH ][ n ][ 1 ]  
                if( coded_sub_block_flag[ xS ][ yS ]  &&  ( n > 0  | |  !inferSbDcSigCoeffFlag )  &&                       ( xC != LastSignificantCoeffX  | |  yC != Last SignificantCoeffY ) )  {  
                    sig_coeff_flag [ xC ][ yC ] ae(v)
                     remBinsPass1− −  
                     if( sig_coeff_flag[ xC ][ yC ] )  
                           inferSbDcSigCoeffFlag = 0  
                }  
                if( sig_coeff_flag[ xC ][ yC ] ) {  
                    abs_level_gtx_flag [ n ][ 0 ] ae(v)
                     remBinsPass1− −  
                     if( abs_level_gtx_flag[ n ][ 0 ] ) {  
                          par_level_flag [ n ] ae(v)
                           remBinsPass1− −  
                          abs_level_gtx_flag [ n ][ 1 ] ae(v)
                           remBinsPass1− −  
                     }  
     …  
   
7.4.10 VCC Draft 7 版本 14 中的切片資料語義mts_idx 指定在當前解碼單元中沿著關聯的亮度變換塊182s的水平和垂直方向應用哪些變換核心。 在不存在mts_idx時,推斷其等於0。 <DELETE>對於cIdx等於0且xS或yS大於3,如果在當前解碼單元中residual_coding(x0,y0,log2TbWidth,log2TbHeight,cIdx)語法結構中至少有一個coded_sub_block_flag[xS][yS]不等於0,則位元串流一致性要求mts_idx應等於0。</DELETE> 當ResetIbcBuf等於1時,以下適用: 對於x = 0..IbcBufWidthY-1和y = 0..CtbSizeY-1,進行以下賦值: IbcVirBuf[ 0 ][ x ][ y ] = −1                                                        (175) … 表3
如表3所示,從殘差解碼語法中刪除了語法if((LastSignificantCoeffX> 15 | | LastSignificantCoeffY> 15)&& cIdx = = 0),其檢查變換快182的最後的有效係數的位置是否在變換塊的最低頻率區184之外。替代地,為了決定變換塊182的MtsZeroOutSigCoeffFlag的值,視訊解碼器(例如視訊轉碼器200或視訊解碼器300)可以經由對變換塊182中的CG進行反覆運算,以決定CG是否是解碼CG(即包含非零係數),並且若CG是解碼CG,則決定解碼CG是否在變換塊182的最低頻率區184之外。若視訊解碼器決定解碼CG在變換塊182的最低頻率區184之外,則視訊解碼器可以將變換塊182的MtsZeroOutSigCoeffFlag的值設置為零,以指示在變換塊182的最低頻率區184之外的係數未被清零。
對於變換塊182,視訊解碼器可以根據從最後的子塊開始的掃瞄順序(例如對角線掃瞄順序)對變換塊182的CG進行遍歷。對於視訊解碼器遇到的每一個CG,視訊解碼器可以經由決定是否為CG設置了解碼子塊標誌來決定CG是否是解碼CG。如表3所示,視訊解碼器遇到的每一個CG被表示為具有位置[xS][yS],其中xS是CG在變換塊182中沿x軸的位置,而yX是CG在變換塊182中沿y軸的位置。
亦如表3所示,用於在位置[xS][yS]處的CG的解碼子塊標誌被表示為語法元素coded_sub_block_flag[xS][yS]。CG的解碼子塊標誌可以具有值為一或值為零。若CG中的所有變換係數均為零,則CG的解碼子塊標誌的值為零;若CG中的變換係數中的至少一個非零,則CG的解碼子塊標誌的值為一。
當視訊解碼器遇到CG時,視訊解碼器可以基於CG的解碼子塊標誌的值決定CG是否是解碼CG(包含非零係數)。例如,若視訊解碼器決定CG的解碼子塊標誌的值是一,則視訊解碼器可以決定CG是解碼CG。若視訊解碼器決定CG的解碼子塊標誌的值為零,則視訊解碼器可以決定CG不是解碼CG。
回應於決定CG是解碼CG,視訊解碼器可以決定CG是否位於變換塊182的最低頻率區184之外。對於具有CG為4×4子塊的64×64變換塊182,CG在變換塊182中的位置可以在(0, 0)到(7, 7)的範圍內,並且變換塊182的最低頻率區184可以從(0, 0)跨越到(3, 3)。從而,為了決定解碼CG是否位於變換塊182的最低頻率區184之外,視訊解碼器可以決定解碼CG在x軸或y軸的至少一個中的位置是否大於三。若視訊解碼器決定解碼CG在x軸或y軸的至少一個中的位置大於三,則視訊解碼器可以決定至少一個包括非零變換係數的CG在變換塊182的最低頻率區184之外。
假定在殘差解碼語法中將CG的位置表示為[xS][yS],則視訊解碼器可以經由決定xS或yS的值是否大於3來決定解碼CG是否位於最低頻率區184之外。若視訊解碼器決定解碼CG的xS或yS的值大於3,則視訊解碼器可以決定包含非零變換係數的至少一個CG在變換塊182的最低頻率區184之外。
如在表3中可見,本案的技術向殘差解碼語法中添加了條件語法if(((coded_sub_block_flag[xS][yS] | | i = = lastSubBlock)&& cIdx = = 0 &&(xS> 3 | | yS> 3) MtsZeroOutSigCoeffFlag = 0。對於CG,基於決定CG的解碼子塊標誌是否被設置為一(coded_sub_block_flag[xS][yS])以及CG在x軸或y軸中至少一個上的位置是否大於三(xS>3||yS>3),視訊解碼器執行條件語法以檢查CG是否是解碼CG。若視訊解碼器決定CG是解碼CG,並且CG在x軸或y軸中至少一個上的位置大於三,則視訊解碼器可以決定至少一個非零變換係數在變換塊182的最低頻率區184之外,並且因此可以將語法元素MtsZeroOutSigCoeffFlag的值設置為零。若視訊解碼器決定CG不是解碼CG及/或CG在x軸或y軸上的位置均不大於三,則視訊解碼器可以避免設置語法元素的值MtsZeroOutSigCoeffFlag。
因此,根據上述技術,視訊解碼器可按掃瞄順序對變換塊182的CG進行反覆運算,以便決定包括非零變換係數的至少一個CG是否在變換塊182的最低頻率區184之外。若在反覆運算遍歷變換塊182的CG之後,視訊解碼器決定沒有包括非零變換係數的CG在變換塊182的最低頻率區184之外,則視訊解碼器可以發訊號通知及/或解析變換塊182的MTS索引。亦即,視訊轉碼器200可以發訊號通知用來指示要應用於變換塊182的多重變換的MTS索引,並且視訊解碼器300可以對用來指示要應用於變換塊182的多重變換的MTS索引進行解析。
若在反覆運算遍歷變換塊182的CG之後,視訊解碼器決定包含非零變換係數的至少一個CG在變換塊182的最低頻率區184之外,則視訊解碼器可以避免發訊號通知及/或解析變換塊182的MTS索引。亦即,視訊轉碼器200可以決定不發訊號通知用來指示要應用於變換塊182的多重變換的MTS索引。類似地,即使視訊轉碼器200發訊號通知用於變換塊182的MTS索引,視訊解碼器300亦可以推斷MTS索引的預設值。
如以上結合表1所述,視訊解碼器可以至少部分基於語法元素MtsZeroOutSigCoeffFlag的值是否等於一來決定是否發訊號通知變換塊182的MTS索引(語法元素mts_idx)。若語法元素MtsZeroOutSigCoeffFlag的值等於一,則視訊解碼器可以發訊號通知語法元素mts_idx。若語法元素MtsZeroOutSigCoeffFlag的值不等於一,諸如語法元素MtsZeroOutSigCoeffFlag的值為零,則視訊轉碼器不發訊號通知語法元素mts_idx。反而,視訊解碼器可以推斷MTS索引的值,諸如0。MTS索引的推斷值可以對應於特定變換的選擇,諸如用於水平變換和垂直變換的DCT-2變換。以此方式,視訊轉碼器200可以決定是否發訊號通知變換塊182的MTS索引,並且視訊解碼器300可以決定是否推斷變換塊182的MTS索引。
表4描述了改進了在VVC Draft 7草案14中描述的技術的替代方式,以用於視訊轉碼器200基於表1示出的解碼語法來決定是否發訊號通知用於變換塊182的MTS索引,以及用於解碼器300基於表3示出的解碼語法來決定否推斷用於變換塊182的MTS索引及/或是否對編碼的MTS索引進行解析。
視訊轉碼器200可以基於表1中所示的解碼語法來決定是否發訊號通知用於變換塊182的MTS索引,而視訊解碼器300可以基於表1中所示的解碼語法來決定是否推斷用於變換塊182的MTS索引及/或是否對編碼的MTS索引進行解析。
表4中描述了對VVC Draft 7版本14的可替代的語法更改,其中根據本案的技術,從殘差解碼語法及/或切片資料語義中刪除<DELETE></DELETE>之間的內容,而添加<ADD></ADD>之間的內容到殘差解碼語法及/或切片資料語義,而此類標籤實際上不是殘差解碼語法的一部分。類似地,根據本案的技術,在本案中純粹為了可讀性目的而添加<ADD>、</ADD>、<DELETE>和</DELETE>,以便表示已經從殘差解碼語法中刪除的語法,而此類標籤實際上不是殘差解碼語法的一部分。 7.3.9.11殘差解碼語法
residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { 描述符
     …  
     numSbCoeff = 1 << ( log2SbW + log2SbH )    
     lastScanPos = numSbCoeff    
     lastSubBlock = ( 1  <<  ( log2TbWidth + log2TbHeight − ( log2SbW + log2SbH ) ) ) − 1    
     do {    
           if( lastScanPos  = =  0 ) {    
                lastScanPos = numSbCoeff    
                lastSubBlock− −    
           }    
           lastScanPos− −    
           xS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 0 ]    
           yS = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 1 ]    
           xC = ( xS << log2SbW ) + DiagScanOrder[ log2SbW ][ log2SbH ][ lastScanPos ][ 0 ]    
           yC = ( yS << log2SbH ) + DiagScanOrder[ log2SbW ][ log2SbH ][ lastScanPos ][ 1 ]    
     } while( ( xC  !=  LastSignificantCoeffX )  | |  ( yC  !=  LastSignificantCoeffY ) )    
     if( lastSubBlock  = =  0  &&  log2TbWidth  >=  2  &&  log2TbHeight  >=  2  &&            !transform_skip_flag[ x0 ][ y0 ][ cIdx ]  &&  lastScanPos  >  0 )    
           LfnstDcOnly = 0    
     if( ( lastSubBlock > 0  &&  log2TbWidth >= 2  &&  log2TbHeight >= 2 )  | |            ( lastScanPos > 7  &&  ( log2TbWidth = = 2  | |  log2TbWidth = = 3 )  &&            log2TbWidth = = log2TbHeight ) )    
           LfnstZeroOutSigCoeffFlag = 0    
     <ADD>lastSubBlockX = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 0 ]</ADD>    
     <ADD>lastSubBlockY = DiagScanOrder[ log2TbWidth − log2SbW ][ log2TbHeight − log2SbH ]                                            [ lastSubBlock ][ 1 ]</ADD>    
     <DELETE>if( ( LastSignificantCoeffX > 15  | |  LastSignificantCoeffY > 15 )  &&  cIdx = = 0 )</DELETE>    
   <ADD> if( ( lastSubBlockX > 3  | |  lastSubBlockY > 3 )  &&  cIdx = = 0 )</ADD>    
           MtsZeroOutSigCoeffFlag = 0    
     QState = 0    
     for( i = lastSubBlock; i  >=  0; i− − ) {    
           startQStateSb = QState    
7.4.10 切片資料語義mts_idx 指定在當前解碼單元中沿著關聯的亮度變換塊182s的水平和垂直方向應用哪些變換核心。 在不存在mts_idx時,推斷其等於0。 <DELETE>對於cIdx等於0且xS或yS大於3,如果在當前解碼單元中residual_coding(x0,y0,log2TbWidth,log2TbHeight,cIdx)語法結構中至少有一個coded_sub_block_flag[xS][yS]不等於0,則位元串流一致性要求mts_idx應等於0。</DELETE> 當ResetIbcBuf等於1時,以下適用: – 對於x = 0..IbcBufWidthY-1和y = 0..CtbSizeY-1,進行以下賦值:: IbcVirBuf[ 0 ][ x ][ y ] = −1                                                          (175) – 變數ResetIbcBuf被設置為等於0。 當x0%VSize等於0並且y0%VSize等於0時,進行以下賦值,其中x = 0..IbcBufWidthY-1和y = 0..CtbSizeY-1: IbcVirBuf[ 0 ][ ( x + ( IbcBufWidthY >> 1 ) ) % IbcBufWidthY ][ y % CtbSizeY ] = −1 表4
在表4的實例殘差解碼語法可以看出,定義最後的解碼CG在x軸上的位置被定義為語法元素lastSubBlockX,且定義最後的解碼CG在y軸上的位置被定義為語法元素lastSubBlockY。進一步地,條件語法if((LastSignificantCoeffX> 15 | | LastSignificantCoeffY> 15)&& cIdx = = 0)被刪除並被替換為條件語法if((lastSubBlockX> 3 | | lastSubBlockY> 3)&& cIdx = 0)。從而,使用最後的解碼CG位置,而不是使用最後的係數位置,來約束MTS索引的訊號傳遞。
從而,對於變換塊182,視訊解碼器可以根據從最後的子塊開始的掃瞄順序(例如對角線掃瞄順序)對變換塊182的CG進行遍歷。對於視訊解碼器遇到的每一個CG,諸如經由決定是否為CG設置了解碼子塊標誌,視訊解碼器可以決定CG是否是解碼CG。若視訊解碼器決定CG是解碼CG,則決定CG是否位於變換塊182的最低頻率區184之外。
對於具有CG為4×4子塊的64×64變換塊182,CG在變換塊182中的位置可以在(0, 0)到(7, 7)的範圍內,並且變換塊182的最低頻率區184可以跨越(0, 0)到(3, 3)。從而,為了決定解碼CG是否位於變換塊182的最低頻率區184之外,視訊解碼器可以決定解碼CG在x軸或y軸的至少一個中的位置是否大於三。若視訊解碼器決定解碼CG在x軸或y軸的至少一個中的位置大於三,則視訊解碼器可以決定至少一個包括非零變換係數的CG在變換塊182的最低頻率區184之外。
這樣,在上述實例語法中,在變換塊182中,若最後的解碼CG在x軸上的位置(即lastSubBlockX)大於3,或者若最後的解碼CG在y軸上的位置(即lastSubBlockY)大於3,則視訊轉碼器200可以不發訊號通知用於變換塊182的MTS索引,並且視訊解碼器300可以推斷MTS索引的值為零(即MtsZeroOutSigCoeffFlag被設置為零)。另一態樣,若最後的解碼CG在x軸上的位置(即lastSubBlockX)不大於3,並且最後的解碼CG在y軸上的位置(即lastSubBlockY)不大於3,則發訊號通知MTS索引(例如,經由諸如視訊轉碼器200的視訊轉碼器)或對其進行解析(例如經由諸如視訊解碼器300的視訊解碼器)。
如上所示,在表3和表4中,從切片資料語義中刪除了短語「對於cIdx等於0且xS或yS大於3,若在當前解碼單元中residual_coding(x0,y0,log2TbWidth,log2TbHeight,cIdx)語法結構中至少有一個coded_sub_block_flag[xS][yS]不等於0,則位元串流一致性要求mts_idx應等於0」。如上面所論述的,反而,若最後的解碼CG在x軸上的位置大於3,或者若最後的解碼CG在y軸上的位置大於3,則可以推斷MTS索引為諸如零的值。
圖7是示出可以執行本案的技術的實例視訊轉碼器200的方塊圖。提供圖7是為了解釋的目的,並且不應認為是對本案中廣泛例示和描述的技術的限制。出於解釋的目的,本案描述了根據VVC(開發中的ITU-T H.266)和HEVC(ITU-T H.265)技術的視訊轉碼器200。然而,本案的技術可以由被配置為其他視訊解碼標準的視訊編碼設備來執行。
在圖7的實例中,視訊轉碼器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(SDRAM)、磁阻RAM(MRAM)、阻變RAM(RRAM)的動態隨機存取記憶體(DRAM)或其他類型的記憶體設備。視訊資料記憶體230和DPB 218可以由相同的記憶體設備或單獨的記憶體設備提供。在各種實例中,視訊資料記憶體230可以與視訊轉碼器200的其他部件一起位於晶片上,如圖所示,或者相對於那些部件位於晶片外。
在本案中,對視訊資料記憶體230的引用不應解釋為限於視訊轉碼器200內部的記憶體(除非特別這樣說明),或者視訊轉碼器200外部的記憶體(除非特別這樣說明)。而是,對視訊資料記憶體230的引用應理解為儲存視訊轉碼器200所接收的用於編碼的視訊資料(例如待編碼的當前塊的視訊資料)的參考記憶體。圖1的記憶體106亦可以提供對來自視訊轉碼器200的各個單元的輸出的臨時儲存。
圖示了圖7的各個單元來説明理解由視訊轉碼器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可以根據諸如上述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),運動向量定義相對於當前塊在當前圖片中的位置的、參考塊在參考圖片中的位置。隨後,運動估計單元222可以將運動向量提供給運動補償單元224。例如,對於單向訊框間預測,運動估計單元222可以提供單個運動向量,而對於雙向訊框間預測,運動估計單元222可以提供兩個運動向量。隨後,運動補償單元224可以使用運動向量來產生預測塊。例如,運動補償單元224可以使用運動向量來檢索參考塊的資料。作為另一實例,若運動向量具有分數取樣精度,則運動補償單元224可以根據一或多個內插濾波器來對預測塊的值進行內插。而且,對於雙向訊框間預測,運動補償單元224可以檢索由相應的運動向量辨識的兩個參考塊的資料,並且例如經由逐取樣平均或加權平均來組合檢索資料。
作為另一實例,對於訊框內預測或訊框內預測解碼,訊框內預測單元226可以從與當前塊相鄰的取樣來產生預測塊。例如,對於定向模式,訊框內預測單元226通常可以數學地組合相鄰取樣的值,並在當前塊上沿定義的方向填充這些計算值以產生預測塊。作為另一實例,對於DC模式,訊框內預測單元226可以計算當前塊的相鄰取樣的平均值,並且產生預測塊來包括針對預測塊的每一個取樣的該結果平均值。
模式選擇單元202將預測塊提供給殘差產生單元204。殘差產生單元204從視訊資料記憶體230接收當前塊的原始的未編碼版本,並從模式選擇單元202接收預測塊。殘差產生單元204計算當前塊和預測塊之間的逐取樣差。所得到的逐取樣差定義當前塊的殘差塊。在一些實例中,殘差產生單元204亦可以決定殘差塊中取樣值之間的差,以使用殘差差分脈衝代碼調制(RDPCM)來產生殘差塊。在一些實例中,可以使用執行二進位減法的一或多個減法器電路來形成殘差產生單元204。
在模式選擇單元202將CU劃分為PU的實例中,每個PU可以與亮度預測單元和對應的色度預測單元相關聯。視訊轉碼器200和視訊解碼器300可以支援具有各種尺寸的PU。如上面所指出的,CU的尺寸可以指CU的亮度解碼塊的尺寸,而PU的尺寸可以指PU的亮度預測單元的尺寸。假設特定CU的尺寸為2N×2N,則視訊轉碼器200可以支援用於訊框內預測的2N×2N或NxN的PU尺寸,以及用於訊框間預測的2N×2N、2N×N、N×2N、N×N或類似尺寸的對稱PU尺寸。視訊轉碼器200和視訊解碼器300亦可以支援對用於訊框間預測的2N×nU、2N×nD、nL×2N和nR×2N的PU尺寸的非對稱劃分。
在模式選擇單元202不將CU進一步劃分為PU的實例中,每個CU可以與亮度解碼塊和對應的色度解碼塊相關聯。如前述,CU的尺寸可以指CU的亮度解碼塊的尺寸。視訊轉碼器200和視訊解碼器300可以支援2N×2N、2N×N或N×2N的CU尺寸。
對於其他視訊解碼技術,諸如作為一些實例的塊內複製模式解碼、仿射模式解碼和線性模型(LM)模式解碼,模式選擇單元202經由與解碼技術相關聯的相應單元來產生正在編碼的當前塊的預測塊。在一些實例中,諸如調色板模式解碼,模式選擇單元202可以不產生預測塊,而是產生語法元素,該語法元素指示將基於所選調色板重構塊的方式。在此類模式中,模式選擇單元202可以將這些語法元素提供給熵編碼單元220來進行編碼。
如前述,殘差產生單元204接收針對當前塊和相應預測塊的視訊資料。隨後,殘差產生單元204為當前塊產生殘差塊。為了產生殘差塊,殘差產生單元204計算預測塊和當前塊之間的逐取樣差。
變換處理單元206將一或多個變換應用於殘差塊以產生變換係數的塊(在本文中稱為「變換係數塊」)。變換處理單元206可以將各種變換應用於殘差塊以形成變換係數塊。例如,變換處理單元206可以將離散餘弦變換(DCT)、方向變換、Karhunen-Loeve變換(KLT)或概念上類似的變換應用於殘差塊。在一些實例中,變換處理單元206可以對殘差塊執行例如主變換和諸如旋轉變換的輔變換的多重變換。在一些實例中,變換處理單元206不將變換應用於殘差塊。
在一些實例中,變換處理單元206可以將多重變換(MT)方案的多重變換應用於當前塊的殘差塊,包括將MT方案的多重變換應用於從對殘差塊的劃分得到的複數個殘差子塊中的每一個。MT方案可以定義例如將應用於殘差塊的主變換和輔變換。補充地或可替代地,MT方案可以定義水平變換和垂直變換,諸如如上面論述的圖4A和圖4B中所示的那些。在任何情況下,變換處理單元206都可以將MT方案的每個變換應用於殘差塊來產生變換係數塊的變換係數。
量化單元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)解碼操作、指數哥倫布編碼操作或另一類型的熵編碼操作。在一些實例中,熵編碼單元220可以在語法元素未被熵編碼的旁路模式下操作。
在一些實例中,作為對每個變換塊進行編碼(例如對每個量化的變換係數塊進行熵編碼)的一部分,對於每個變換塊,熵編碼單元220可以對變換塊的變換係數進行掃瞄來決定變換塊的一或多個解碼塊標誌,作為減少將由視訊轉碼器200發送的、用於發訊號通知有效值映射的區間(bin)的數量的一部分。例如,熵編碼單元220可以對於變換塊之每一者係數組(例如4×4變換係數組)決定針對該係數組的解碼子塊標誌,其中針對該係數組的解碼子塊標誌的值指示該係數組是否包括非零變換係數,並且可以發訊號通知(例如熵編碼)變換塊的解碼子塊標誌。
熵編碼單元220可以被配置為對MTS索引進行編碼(即對指示多重變換選擇的語法元素進行編碼),該MTS索引指示用於視訊資料的變換塊的(由例如變換處理單元206)所選擇的多重變換(即可分離變換)。
在一些實例中,熵編碼單元220可以被配置為決定是否對MTS索引進行編碼(即對指示多重變換選擇的語法元素進行編碼),該MTS索引指示視訊資料的變換塊的(由例如變換處理單元206)所選擇的多重變換(即可分離變換)。在一些實例中,熵編碼單元220可以被配置為僅當在變換塊中的最低頻率區之外的變換塊中的變換係數每個均具有零值的情況下才決定對MTS索引進行編碼,其中變換塊中的最低頻率區可以是表示變換塊的最低頻率變換係數的變換塊的左上部。
為了決定變換塊中的最低頻率區之外的每個變換係數是否具有零值,熵編碼單元220可以決定變換塊中的在最低頻率區之外的至少一個係數組是否具有非零變換係數。例如,熵編碼單元220可以逐係數組地對變換塊進行掃瞄來檢視包含非零變換係數的係數組。
因為熵編碼單元220已經對於變換塊決定了針對每個係數組的解碼子塊標誌,該解碼子塊標誌指示係數組是否包括非零變換係數,熵編碼單元220能夠使用針對係數組的解碼子塊標誌逐係數組地對變換塊進行掃瞄以檢視包含非零變換係數的係數組。例如,對於變換塊之每一者係數組,熵編碼單元220可以基於針對該係數組的解碼子塊標誌的值決定該係數組是否包含非零係數。
因為例如經由解碼單元220已經決定了解碼子塊標誌以減少由視訊轉碼器200發訊號通知的有效標誌的數量,經由使用解碼子塊標誌來決定係數組是否包含非零變換係數,熵編碼單元220能夠更有效地(例如使用更少的處理週期)決定非零變換係數在變換塊中的位置。例如,在給定64×64變換塊和4×4係數組的情況下,相比於潛在地不得不對變換塊的多達4,096個係數進行掃瞄,熵編碼單元220可以潛在地對多達16個解碼子塊標誌進行掃瞄來對變換塊進行逐係數組的掃瞄,以檢視包含非零變換係數的係數組,從而使熵編碼單元220能夠更有效地決定非零變換係數在變換塊中的位置。
當熵編碼單元220遇到包含非零變換係數的係數組(例如具有指示係數包含非零變換的關聯的解碼子塊標誌的係數組)時,熵編碼單元220可以決定該係數組是否在變換塊的最低頻率區之外。若熵編碼單元220決定熵編碼單元220遇到的包含非零變換係數的係數組在變換塊中的最低頻率區之外,則熵編碼單元220可以決定在變換塊中的最低頻率區之外的至少一個變換係數具有非零值。
經由對為變換塊決定的解碼子塊標誌進行掃瞄來在變換塊內決定每個與解碼子塊標誌相關聯的一或多個係數組,來對變換塊進行逐陣列的掃瞄以檢視包括非零變換係數的係數組,該解碼子塊標指示該係數組包括非零變換係數。
若熵編碼單元220決定變換塊中的最低頻率區之外的係數組均不包含非零變換係數,熵編碼單元220可以決定在變換塊中的最低頻率區之外的、變換塊中的變換係數每一個均具有零值。熵編碼單元220可以對指示為視訊資料的變換塊選擇的多重變換的MTS索引進行編碼,諸如經由設置指示在變換塊中的最低頻率區之外的係數被清零(即每個均具有零值)的標誌。
若熵編碼單元220決定在變換塊中的最低頻率區之外的至少一個變換係數具有非零值,熵編碼單元220可以決定不對指示為視訊資料的變換塊選擇的多重變換的MTS索引進行編碼。反而,視訊解碼器300可以推斷(例如在沒有顯式語法元素的情況下決定)MTS索引的值是預設值,諸如零,並且可以將預設變換(例如DCT-2變換)應用於變換塊。
視訊轉碼器200可以輸出包括對切片或圖片的塊進行重構所需的熵編碼的語法元素的位元串流。具體地,熵編碼單元220可以輸出該位元串流。
關於塊描述了上述操作。此類描述應該理解為是用於亮度解碼塊及/或色度解碼塊的操作。如前述,在一些實例中,亮度解碼塊和色度解碼塊是CU的亮度和色度分量。在一些實例中,亮度解碼塊和色度解碼塊是PU的亮度和色度分量。
在一些實例中,無需針對色度解碼塊重複關於亮度解碼塊執行的操作。作為一個實例,無需重多工於辨識亮度解碼塊的運動向量(MV)和參考圖片的操作來辨識色度塊的MV和參考圖片。而是,可以縮放用於亮度解碼塊的MV來決定用於色度塊的MV,並且參考圖片可以相同。作為另一實例,對於亮度解碼塊和色度解碼塊,訊框內預測處理可以相同。
如以下將更詳細解釋的,視訊轉碼器200表示被配置為編碼視訊資料的設備的實例,該設備包括:記憶體,被配置為儲存視訊資料;及一或多個處理單元,在電路中實現並被配置為,對於視訊資料的變換塊,決定包括變換係數的複數個係數組中的包括非零變換係數的至少一個係數組是否在變換塊的最低頻率區之外;至少部分地基於對至少一個解碼係數組是否在變換塊的最低頻率區之外的決定,決定是否對指示用於變換塊的多重變換選擇(MTS)的語法元素進行編碼;及至少部分地基於是否對指示多重變換選擇的語法元素進行解碼的決定,對視訊資料進行編碼。
圖8是示出可執行本案的技術的實例視訊解碼器300的方塊圖。提供圖8是出於解釋的目的,並且不限制本案中廣泛例示和描述的技術。出於解釋的目的,本案描述了根據VVC(開發中的ITU-T H.266)和HEVC(ITU-T H.265)的技術的視訊解碼器300。然而,本案的技術可以由被配置為其他視訊解碼標準的視訊解碼設備來執行。
在圖8的實例中,視訊解碼器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的部件進行解碼的視訊資料,諸如編碼的視訊位元串流。例如,可以從電腦可讀取媒體110(圖1)獲得儲存在CPB記憶體320中的視訊資料。CPB記憶體320可以包括儲存來自編碼的視訊位元串流的編碼的視訊資料(例如語法元素)的CPB。而且,CPB記憶體320可以儲存除了解碼圖片的語法元素之外的視訊資料,諸如表示來自視訊解碼器300的各個單元的輸出的臨時資料。DPB 314一般儲存解碼圖片,當對編碼的視訊位元串流的後續資料或圖片進行解碼時,視訊解碼器300可以輸出解碼圖片及/或將其用作參考視訊資料。CPB記憶體320和DPB 314可以由各種記憶體設備中的任何一種形成,諸如包括SDRAM、MRAM、RRAM 的DRAM,或其他類型的記憶體設備。CPB記憶體320和DPB 314可以由相同的記憶體設備或獨立的記憶體設備提供。在各種實例中,CPB記憶體320可以與視訊解碼器300的其他部件一起位於晶片上,或者相對於那些部件位於晶片外。
補充地或可替代地,在一些實例中,視訊解碼器300可以從記憶體120(圖1)中檢索解碼視訊資料。亦即,記憶體120可以如上述論述的與CPB記憶體320一起儲存資料。同樣,當視訊解碼器300的某些或全部功能將以由視訊解碼器300的處理電路執行的軟體實現時,記憶體120可以儲存將由視訊解碼器300執行的指令。
圖示了圖8所示的各種單元以説明理解由視訊解碼器300執行的操作。這些單元可以實現為固定功能電路、可程式設計電路或其組合。類似於圖7,固定功能電路是指提供特定功能並且預設了能夠執行的操作的電路。可程式設計電路是指可以被程式設計來執行各種任務,並且在能夠執行的操作中提供靈活功能的電路。例如,可程式設計電路可以執行軟體或韌體,軟體或韌體使可程式設計電路以軟體或韌體的指令所定義的方式操作。固定功能電路可以執行軟體指令(例如以接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些實例中,一或多個單元可以是不同的電路塊(固定功能或可程式設計的),並且在一些實例中,一或多個單元可以是積體電路。
視訊解碼器300可包括ALU、EFU、數位電路、類比電路及/或由可程式設計電路形成的可程式設計核心。在視訊解碼器300的操作由在可程式設計電路上執行的軟體來執行的實例中,晶片上或晶片外記憶體可以儲存視訊解碼器300接收並執行的軟體的指令(例如目標代碼)。
熵解碼單元302可從CPB接收編碼的視訊資料,並對視訊資料進行熵解碼以再現語法元素。預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310和濾波器單元312可以基於從位元串流中提取的語法元素來產生解碼的視訊資料。
通常,視訊解碼器300在逐塊的基礎上重構圖片。視訊解碼器300可單獨地對每個區塊執行重構操作(其中當前正在進行重構(即解碼)的塊可以被稱為「當前塊」)。
熵解碼單元302可以對定義量化的變換係數塊的量化的變換係數的語法元素以及諸如量化參數(QP)及/或(一或多個)變換模式指示的變換資訊進行熵解碼。逆量化單元306可以使用與量化的變換係數塊相關聯的QP來決定量化程度,並且同樣地,決定逆量化程度以供逆量化單元306應用。逆量化單元306可以例如執行按位元左移操作來對量化的變換係數進行逆量化。逆量化單元306從而可以形成包括變換係數的變換係數塊。
在一些實例中,作為對每個變換塊進行解碼(例如對每個變換係數塊進行熵解碼)的一部分,熵解碼單元302可以對針對變換塊之每一者係數組(例如4×4變換係數組)的解碼子塊標誌進行解碼,其中針對係數組的解碼子塊標誌的值指示該係數組是否包括非零變換係數。
在逆量化單元306形成變換係數塊之後,逆變換處理單元308可以將一或多個逆變換應用於變換係數塊,以產生與當前塊相關聯的殘差塊。例如,逆變換處理單元308可以將逆DCT、逆整數變換、逆Karhunen-Loeve變換(KLT)、逆旋轉變換、逆方向變換或另一逆變換應用於變換係數塊。
在一些實例中,逆變換處理單元308可以被配置成將一或多個逆多重變換(例如使用MTS技術)應用於視訊資料的變換塊。如上所解釋的,視訊轉碼器200可以僅在變換塊中沒有非零變換係數的情況下對指示為視訊資料的變換塊選擇的多重變換的語法元素進行編碼。這樣,如以下將更詳細解釋的,在一些實例中,逆變換處理單元308可以被配置為決定視訊轉碼器200是否應當對在位元串流中發訊號通知的MTS索引進行解碼(即對指示多重變換選擇的語法元素進行解碼),該MTS索引指示由視訊轉碼器200為視訊資料的變換塊選擇的多重變換(即可分離變換)。
在一些實例中,逆變換處理單元308可以被配置為僅當在變換塊中的最低頻率區之外的、變換塊中的變換係數各自具有零值的情況下,解碼和使用在位元串流中發訊號通知的MTS索引,其中變換塊中的最低頻率區可以是變換塊的左上部,其表示變換塊的最低頻率變換係數。
為了決定變換塊中的最低頻率區之外的每個變換係數是否具有零值,逆變換處理單元308可以決定在變換塊中的最低頻率區之外的至少一個係數組是否具有非零變換係數。例如,逆變換處理單元308可以對變換塊進行逐係數組的掃瞄以檢視包含非零變換係數的係數組。
因為熵解碼單元302已經對於變換塊解碼了針對每個係數組的解碼子塊標誌,該解碼子塊標誌指示係數組是否包括非零變換係數,逆變換處理單元308能夠使用針對係數組的解碼子塊標誌來對變換塊進行逐係數組的掃瞄,以檢視包含非零變換係數的係數組。例如,逆變換處理單元308可以對於變換塊之每一者係數組,基於該係數組的解碼子塊標誌的值來決定該係數組是否包含非零係數。
因為解碼子塊標誌已經由熵解碼單元302解碼,經由使用解碼子塊標誌來決定係數組是否包含非零變換係數,逆變換處理單元308能夠更有效地(例如使用更少的處理週期來)決定非零變換係數在變換塊中的位置。例如,在給定64×64變換塊和4×4係數組的情況下,相比於潛在地不得不對變換塊的多達4,096個係數進行掃瞄,逆變換處理單元308可以潛在地對多達16個解碼子塊標誌進行掃瞄來對變換塊進行逐係數組的掃瞄,以檢視包含非零變換係數的係數組,因此使逆變換處理單元308能夠更有效地決定非零變換係數在變換塊中的位置。
當逆變換處理單元308遇到包含非零變換係數的係數組(例如係數組具有指示係數包含非零變換的相關聯的解碼子塊標誌)時,逆變換處理單元308可以決定係數組是否在變換塊中的最低頻率區之外。若逆變換處理單元308決定由逆變換處理單元308遇到的包含非零變換係數的係數組在變換塊中的最低頻率區之外,則逆變換處理單元308可以決定在變換塊中的最低頻率區之外的至少一個變換係數具有非零值。
若逆變換處理單元308決定在變換塊中的最低頻率區之外的係數組均不包含非零變換係數,則逆變換處理單元308可以決定在變換塊中的最低頻率區之外的、變換塊中的變換係數每個具有零值。因此,逆變換處理單元308可以將由語法元素指示的多重變換的逆多重變換應用於視訊資料的變換塊。
若逆變換處理單元308決定在變換塊中的最低頻率區之外的至少一個變換係數具有非零值,則逆變換處理單元308可以推斷(例如在沒有顯式語法元素的情況下決定)用於變換塊的MTS索引的值是諸如零的預設值,並且可以將預設變換(例如DCT-2變換)應用於視訊資料的變換塊。即使從視訊轉碼器200接收的位元串流發訊號通知了用於變換塊的MTS索引,逆變換處理單元308亦可以推斷用於變換塊的MTS索引的值,從而避免對用於變換塊的MTS索引進行解碼。
進一步來說,預測處理單元304根據由熵解碼單元302熵解碼的預測資訊語法元素來產生預測塊。例如,若預測資訊語法元素指示當前塊是被訊框間預測的,則運動補償單元316可以產生預測塊。在這種情況下,預測資訊語法元素可以指示DPB 314中的從其檢索參考塊的參考圖片,以及辨識相對於當前塊在當前圖片中的位置的、參考塊在參考圖片中的位置的運動向量。運動補償單元316一般可以以與關於運動補償單元224(圖7)所描述的方式基本上相似的方式來執行訊框間預測程序。
作為另一實例,若預測資訊語法元素指示當前塊是訊框內預測的,則訊框內預測單元318可以根據由預測資訊語法元素指示的訊框內預測模式來產生預測塊。再者,訊框內預測單元318一般可以以與關於訊框內預測單元226(圖7)所描述的方式基本上相似的方式來執行訊框內預測程序。訊框內預測單元318可以從DPB 314中檢索當前塊的相鄰取樣的資料。
重構單元310可以使用預測塊和殘差塊來重構當前塊。例如,重構單元310可以將殘差塊的取樣添加到預測塊的對應取樣來重構當前塊。
濾波器單元312可以對重構塊執行一或多個濾波操作。例如,濾波器單元312可以執行解塊操作來減少沿著重構塊的邊緣的塊狀偽影。不一定在所有實例中皆執行濾波器單元312的操作。
視訊解碼器300可以將重構塊儲存在DPB 314中。例如,在不執行濾波器單元312的操作的實例中,重構單元310可以將重構塊儲存到DPB314。在執行濾波器單元312的操作的實例中,濾波器單元312可以將濾波後的重構塊儲存到DPB 314。如上面所論述的,DPB 314可以向預測處理單元304提供參考資訊,諸如用於訊框內預測的當前圖片的取樣以及用於隨後的運動補償的先前解碼的圖片。此外,視訊解碼器300可以從DPB 314輸出解碼圖片(例如解碼視訊),以隨後呈現在例如圖1的顯示裝置118的顯示裝置上。
以此方式,視訊解碼器300表示視訊解碼設備的實例,該視訊解碼設備包括:記憶體,被配置為儲存視訊資料;及一或多個處理單元,其在電路中實現並被配置為,對於視訊資料變換塊,決定包括變換係數的複數個係數組中的包括非零變換係數的至少一個係數組是否在變換塊的最低頻率區之外;至少部分地基於對至少一個解碼係數組是否在變換塊的最低頻率區之外的決定,決定是否對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於是否對指示多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
圖9是示出根據本案的技術的用於對當前塊進行編碼的實例方法的流程圖。當前塊可以包括當前CU。儘管關於視訊轉碼器200(圖1和圖7)進行了描述,但是應當理解的是,可以將其他設備配置為執行與圖9類似的方法。
在此實例中,視訊轉碼器200最初預測當前塊(350)。例如,視訊轉碼器200可以形成當前塊的預測塊。隨後,視訊轉碼器200可以計算當前塊的殘差塊(352)。為了計算殘差塊,視訊轉碼器200可以計算當前塊的初始未編碼塊與預測塊之間的差。隨後,視訊轉碼器200可以對殘差塊進行變換並且對殘差塊的變換係數進行量化(354)。例如,視訊轉碼器200可以為殘差塊選擇多重變換,且經由MTS索引發訊號通知所選擇的多重變換。接下來,視訊轉碼器200可以對殘差塊的量化的變換係數進行掃瞄(356)。在掃瞄期間,視訊轉碼器200可以決定包括變換係數的複數個係數組中的、包括非零變換係數的至少一個係數組是否在殘差塊的最低頻率區之外。在掃瞄期間或掃瞄之後,視訊轉碼器200可以對變換係數進行熵編碼(358)。例如,視訊轉碼器200可以至少部分地基於對至少一個解碼係數組是否在變換單元的最低頻率區之外的決定,決定是否對指示用於殘差塊的多重變換選擇的語法元素進行編碼,並且可以至少部分地基於是否對指示多重變換選擇的語法元素進行編碼的決定,對視訊資料進行編碼。視訊轉碼器200可以使用CAVLC或CABAC對變換係數進行編碼。隨後,視訊轉碼器200可以輸出塊的熵編碼的資料(360)。
圖10是圖示根據本案的技術的用於解碼視訊資料的當前塊的實例方法的流程圖。當前塊可以包括當前CU。儘管關於視訊轉碼器300(圖1和8)進行了描述,但是應當理解的是,可以將其他設備配置為執行與圖10類似的方法。
視訊解碼器300可以接收當前塊的熵編碼的資料,諸如針對與當前塊對應的殘差塊的變換係數的熵編碼的預測資訊和熵編碼的資料(370)。視訊解碼器300可以對熵編碼的資料進行熵解碼,以決定當前塊的預測資訊並再現殘差塊的變換係數(372)。例如,視訊解碼器300可以決定包括變換係數的複數個係數組中的、包括非零變換係數的至少一個係數組是否在殘差塊的最低頻率區之外,並且,可以至少部分地基於對至少一個解碼係數組是否在變換單元的最低頻率區之外的決定,決定是否對指示用於殘差塊的多重變換選擇的語法元素進行解碼。若視訊解碼器300決定包括變換係數的多個係數組中的、包括非零變換係數的至少一個係數組在殘差塊的最低頻率區之外,則視訊解碼器300可以不對指示用於殘差塊的多重變換選擇的語法元素進行解碼,並且可以反而推斷指示用於殘差塊的多重變換選擇的語法元素的值。
視訊解碼器300可以例如使用如當前塊的預測資訊所指示的訊框內或訊框間預測模式來預測當前塊,以計算當前塊的預測塊(374)。隨後,視訊解碼器300可以對再現的變換係數進行反向掃瞄,以建立量化的變換係數的塊(376)。隨後,視訊解碼器300可以對量化係數進行逆量化,並將逆變換(諸如由視訊解碼器300推斷的多重變換的逆)應用於變換係數來產生殘差塊(378)。視訊解碼器300可以經由組合預測塊和殘差塊來最終解碼當前塊(380)。
圖11是示出用於決定是否對多重變換選擇進行解碼的實例方法的流程圖。如圖11所示,對於視訊資料的變換塊,諸如視訊轉碼器200或視訊解碼器300的視訊解碼器決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是複數個均包括變換係數的係數組中的一個(402)。視訊解碼器可以至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼(404)。視訊解碼器可以至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,決定對視訊資料進行解碼(406)。
在一些實例中,為了決定係數塊中的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,對於包括變換係數的複數個係數組的係數組,視訊解碼器可以回應於決定設置了針對係數組的解碼子塊標誌,決定設置了針對係數組的解碼子塊標誌,決定係數組在x軸或y軸的至少一個中的位置大於3,並且回應於決定係數組在x軸或y軸的至少一個中的位置大於3,對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外。
在一些實例中,視訊解碼器可以進一步決定,對於視訊資料的第二變換塊,第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外,其中第二複數個係數組每個包括複數個變換係數;至少部分地基於對沒有係數組在第二變換塊的最低頻率區之外的決定,對指示用於第二變換塊的MTS的第二語法元素進行解碼;並且至少部分地基於對指示用於第二變換塊的MTS的第二語法元素進行解碼的決定,對視訊資料進行解碼。
在一些實例中,要決定沒有包括非零係數組的係數組在第二變換塊的最低頻率區之外,視訊解碼器亦可以:從第二變換塊的複數個係數組中決定一或多個係數組,其中為一或多個係數組中的每一個設置了解碼子塊標誌;決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3;並且回應於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3,對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外。
在一些實例中,變換塊的最低頻率區包括變換塊的左上區。在一些實例中,變換塊包括32×32塊,變換塊的左上區包括32×32塊的左上16×16區,並且複數個係數組中的每一個包括與變換塊相關聯的4×4係數塊。在一些實例中,指示用於變換塊的多重變換選擇的語法元素指示MTS索引,該MTS索引指定用於變換塊的可分離變換。
在一些實例中,視訊解碼器包括視訊轉碼器200。為了決定不對語法元素進行解碼,視訊轉碼器200可以決定不對語法元素進行編碼,並且基於不對語法元素進行解碼的決定,對視訊資料進行解碼,視訊轉碼器200被配置為對視訊資料進行編碼而不對語法元素進行編碼。
在一些實例中,視訊解碼器包括視訊解碼器300。為了決定不對語法元素進行解碼,視訊解碼器300被配置為決定不對語法元素進行解碼。為了基於不對語法元素進行解碼的決定來對視訊資料進行解碼,視訊解碼器300被配置為對視訊資料進行解碼而不對語法元素進行解碼。在一些實例中,為了對視訊資料進行解碼,視訊解碼器300被配置為回應於決定不對語法元素進行解碼而推斷語法元素的值。
在一些實例中,視訊解碼器進一步包括被配置為顯示解碼的視訊資料的顯示器。在一些實例中,視訊解碼器包括照相機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。在一些實例中,設備包括以下中的至少一個:積體電路、微處理器或無線通訊設備。
在一些實例中,為了決定包括變換係數的複數個係數組中的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,視訊解碼器可以:對於包括變換係數的複數個係數組中的係數組,決定是否為該係數組設置了解碼子塊標誌;回應於決定為該係數組設置了解碼子塊標誌,決定係數組在x軸或y軸的至少一個中的位置是否大於3;並且回應於決定係數組在x軸或y軸的至少一個中的位置大於3,對於視訊資料的變換塊,決定包括變換係數的複數個係數組中的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外。
在一些實例中,對於視訊資料的變換塊,為了決定包括變換係數的複數個係數組中的包括非零變換係數的至少一個係數組是否在變換塊的最低頻率區之外,視訊解碼器可以決定包括變換係數的係數組中沒有一個係數組在變換塊的最低頻率區之外。在一些實例中,為了至少部分地基於對至少一個解碼係數組是否在變換塊的最低頻率區之外的決定,來決定是否對指示用於變換塊的多重變換選擇的語法元素進行解碼,視訊解碼器可以回應於決定包括變換係數的係數組中沒有一個係數組在變換塊的最低頻率區之外,決定對指示用於變換塊的多重變換選擇的語法元素進行解碼。在一些實例中,為了至少部分地基於是否對指示多重變換選擇的語法元素進行解碼的決定來對視訊資料進行解碼,視訊解碼器可以對包括指示用於變換塊的多重變換選擇的語法元素的視訊資料進行解碼。
在一些實例中,為了決定包括變換係數的係數組中沒有一個係數組在變換塊的最低頻率區之外,視訊解碼器可以:從包括變換係數的複數個係數組中決定一或多個係數組,其中為一或多個係數組中的每一個設置了解碼子塊標誌;決定一或多個係數組中的每一個在x軸或y軸的至少一個中的位置大於3;並回應於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3,對於視訊資料的變換塊,決定包括變換係數的係數組中沒有一個係數組在變換塊的最低頻率區之外。
在一些實例中,變換塊的最低頻率區包括變換塊的左上區。在一些實例中,變換塊包括32×32塊,變換塊的左上區包括32×32塊的左上16×16區,並且複數個係數組中的每一個包括與變換塊相關聯的4×4係數塊。
在一些實例中,指示用於變換塊的多重變換選擇的語法元素指示MTS索引,該MTS索引指定用於變換塊的可分離變換。
在一些實例中,視訊解碼器是視訊解碼器300,其中為了決定是否對語法元素進行解碼,視訊解碼器300被配置為決定是否對語法元素進行解碼,以及其中為了對視訊資料進行解碼,視訊解碼器300被配置為對視訊資料進行解碼。在一些實例中,為了解碼視訊資料,視訊解碼器300可以回應於決定不對語法元素進行解碼來推斷語法元素的值。
在一些實例中,視訊解碼器300進一步包括被配置為顯示解碼的視訊資料的顯示器。在一些實例中,視訊解碼器300包括照相機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。在一些實例,視訊解碼器300包括以下中的至少一個:積體電路,微處理器或無線通訊設備。
本案包含如下態樣:
態樣1:一種對視訊資料進行解碼的方法,包括:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於對至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
態樣2:如態樣1之方法,其中決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外進一步包括:對於包括變換係數的複數個係數組中的係數組,決定為該係數組設置了解碼子塊標誌;回應於決定為該係數組設置了解碼子塊標誌,決定該係數組在x軸或y軸的至少一個中的位置大於3;及回應於決定該係數組在x軸或y軸的至少一個中的位置大於3,對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外。
態樣3:如態樣1之方法,進一步包括:對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外,其中第二複數個係數組每一個包括複數個變換係數;至少部分地基於沒有係數組在第二變換塊的最低頻率區之外的決定,決定對指示用於第二變換塊的MTS的第二語法元素進行解碼;至少部分地基於對指示用於第二變換塊的MTS的第二語法元素進行解碼的決定,對視訊資料進行解碼。
態樣4:如態樣3之方法,其中決定沒有包括非零係數組的係數組在第二變換塊的最低頻率區之外包括:從第二變換塊的複數個係數組中決定一或多個係數組,其中為該一或多個係數組中的每一個設置解碼子塊標誌;決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3;回應於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3,對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外。
態樣5:如態樣1-4中的任一態樣所述的方法,其中變換塊的最低頻率區包括變換塊的左上區。
態樣6:如態樣5之方法,其中:變換塊包括32×32塊;變換塊的左上區包括32×32塊的左上16×16區;及複數個係數組中的每一個包括與變換塊相關聯的4×4係數塊。
態樣7:如態樣1-6中的任一態樣所述的方法,其中:指示用於變換塊的多重變換選擇的語法元素指示MTS索引,該MTS索引指定用於變換塊的可分離變換。
態樣8:如態樣1和2中的任一態樣所述的方法,其中:決定不對語法元素進行解碼包括:決定不對語法元素進行編碼;及基於不對語法元素進行解碼的決定對視訊資料進行解碼包括:對視訊資料進行編碼而不對語法元素進行編碼。
態樣9:如態樣1和2中的任一態樣所述的方法,其中:決定不對語法元素進行解碼包括:決定不對語法元素進行解碼;基於不對語法元素進行解碼的決定對視訊資料進行解碼包括:對視訊資料進行解碼而不對語法元素進行解碼。
態樣10:如態樣9的方法,其中對視訊資料進行解碼進一步包括:回應於決定不對語法元素進行解碼,推斷語法元素的值。
態樣11:一種用於對視訊資料進行解碼的設備,包括:記憶體;及處理器,其在電路中實現並被配置為:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
態樣12:如態樣11之設備,其中為了決定係數塊中包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,處理器進一步被配置為:對於包括變換係數的複數個係數組中的係數組,決定為該係數組設置了解碼子塊標誌;回應於決定為該係數組設置了解碼子塊標誌,決定係數組在x軸或y軸的至少一個中的位置大於3;及回應於決定係數組在x軸或y軸的至少一個中的位置大於3,對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外。
態樣13:如態樣11之設備,其中處理器進一步被配置為:對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外,其中第二複數個係數組的每一個均包括複數個變換係數;至少部分地基於沒有係數組在第二變換塊的最低頻率區之外的決定,決定對指示用於第二變換塊的MTS的第二語法元素進行解碼;至少部分地基於對指示用於第二變換塊的MTS的第二語法元素進行解碼的決定,對視訊資料進行解碼。
態樣14:如態樣13之設備,其中為了決定沒有包括非零係數組的係數組在第二變換塊的最低頻率區之外,處理器進一步被配置為:從第二變換塊的複數個係數組中決定一或多個係數組,其中為該一或多個係數組中的每一個設置解碼子塊標誌;決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3;及回應於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3,對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外。
態樣15:如態樣11-14中的任一態樣所述的設備,其中變換塊的最低頻率區包括變換塊的左上區。
態樣16:如態樣15之設備,其中:變換塊包括32×32塊;變換塊的左上區包括32×32塊的左上16×16區;及複數個係數組中的每一個包括與變換塊相關聯的4×4係數塊。
態樣17:如態樣11-16中的任一態樣所述的設備,其中:指示用於變換塊的多重變換選擇的語法元素指示MTS索引,該MTS索引指定用於變換塊的可分離變換。
態樣18:如態樣11和12中的任一態樣所述的設備,其中:該設備包括視訊解碼器以:決定不對語法元素進行解碼,處理器被配置為決定不對語法元素進行編碼;及基於不對語法元素進行解碼的決定對視訊資料進行解碼,處理器被配置為對視訊資料進行編碼而不對語法元素進行編碼。
態樣19:如態樣11和12中的任一態樣所述的設備,其中:該設備包括視訊解碼器以:決定不對語法元素進行解碼,處理器被配置為決定不對語法元素進行解碼;及基於不對語法元素進行解碼的決定對視訊資料進行解碼,處理器被配置為對視訊資料進行解碼而不對語法元素進行解碼。
態樣20:如態樣19之設備,其中為了對視訊資料進行解碼,處理器被配置為:回應於決定不對語法元素進行解碼,推斷語法元素的值。
態樣21:如態樣11-20中的任一態樣所述的設備,進一步包括被配置為顯示解碼的視訊資料的顯示器。
態樣22:如態樣11-21中的任一態樣所述的設備,其中該設備包括照相機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。
態樣23:如態樣11-22中的任一態樣所述的設備,其中該設備包括以下中的至少一個:積體電路;微處理器;或無線通訊設備。
態樣24:一種用於對資料進行解碼的設備,包括:對於視訊資料的變換塊,用於決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外的部件,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;用於至少部分地基於對至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼的部件;及用於至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼的部件。
態樣25:如態樣24之設備,其中用於決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外的部件進一步包括:用於對於包括變換係數的複數個係數組中的係數組,決定為該係數組設置了解碼子塊標誌的部件;用於回應於決定為該係數組設置了解碼子塊標誌,決定該係數組在x軸或y軸的至少一個中的位置大於3的部件;及用於回應於決定係數組在x軸或y軸的至少一個中的位置大於3,對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外的部件。
態樣26:如態樣24之設備,進一步包括:對於視訊資料的第二變換塊,用於決定第二變換塊的第二複數個係數組中沒有包括非零變換係數的係數組在第二變換塊的最低頻率區之外的部件,其中第二複數個係數組的每一個包括複數個變換係數;用於至少部分地基於沒有係數組在第二變換塊的最低頻率區之外的決定,決定不對指示用於第二變換塊的多重變換選擇(MTS)的第二語法元素進行解碼的部件;及用於至少部分地基於對指示用於第二變換塊的MTS的第二語法元素進行解碼的決定,對視訊資料進行解碼的部件。
態樣27:如態樣26之設備,其中用於決定沒有包括非零係數組的係數組在第二變換塊的最低頻率區之外的部件包括:用於從第二變換塊的複數個係數組中決定一或多個係數組的部件,其中為該一或多個係數組中的每一個設置解碼子塊標誌;用於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3的部件;及用於回應於決定一或多個係數組中的每一個在x軸和y軸兩者中的位置均不大於3,對於視訊資料的第二變換塊,決定第二變換塊的第二複數個係數組中沒有包含非零變換係數的係數組在第二變換塊的最低頻率區之外的部件。
態樣28:如態樣24和25中的任一態樣所述的設備,其中:用於決定不對語法元素進行解碼的部件包括用於決定不對語法元素進行解碼的部件;及用於基於不對語法元素進行解碼的決定,對視訊資料進行解碼的部件包括用於對視訊資料進行解碼而不對語法元素進行解碼的部件。
態樣29:如態樣28之設備,其中用於對視訊資料進行解碼的部件進一步包括:用於回應於決定不對語法元素進行解碼,推斷語法元素的值的部件。
態樣30:一種電腦可讀取儲存媒體,其上儲存有被執行時使一或多個處理器執行以下操作的指令:對於視訊資料的變換塊,決定變換塊的包括非零變換係數的至少一個係數組在變換塊的最低頻率區之外,其中至少一個係數組是每一個均包括變換係數的複數個係數組中的一個;至少部分地基於至少一個係數組在變換塊的最低頻率區之外的決定,決定不對指示用於變換塊的多重變換選擇(MTS)的語法元素進行解碼;及至少部分地基於不對指示用於變換塊的多重變換選擇的語法元素進行解碼的決定,對視訊資料進行解碼。
態樣31:一種對視訊資料進行解碼的方法,該方法包括:決定最後的解碼係數組在x軸或y軸的至少一個中的位置;基於最後的解碼係數組在x軸或y軸的至少一個中的位置,決定是否發訊號通知多重換選擇(MTS)索引或者是否對MTS索引進行解析;及至少部分地基於是否發訊號通知MTS索引或是否對MTS索引進行解析的決定,對視訊資料進行解碼。
態樣32:如態樣31之方法,其中基於最後的解碼係數組在x軸或y軸的至少一個中的位置,決定是否發訊號通知MTS索引或是否對MTS索引進行解析進一步包括:根據最後的解碼係數組在x軸或y軸的至少一個中的位置大於3,決定不發訊號通知MTS索引或者決定不對MTS索引進行解析。
態樣33:如態樣32之方法,其中決定不發訊號通知MTS索引或決定不對MTS索引進行解析進一步包括推斷MTS索引的值。
態樣34:如態樣31-33中的任一態樣所述的方法,其中推斷MTS索引的值包括推斷MTS索引的值為0。
態樣35:如態樣31-34中的任一態樣所述的方法,其中推斷MTX索引的值包括推斷對應於DCT-2變換的MTS索引的值。
態樣36:如態樣31-35中的任一態樣所述的方法,其中基於最後的解碼係數組在x軸或y軸的至少一個中的位置,決定是否發訊號通知MTS索引或是否對MTS索引進行解析進一步包括:基於最後的解碼係數組在x軸和y軸兩者中的位置均不大於3,決定不發訊號通知MTS索引及/或決定不對MTS索引進行解析。
態樣37:如態樣31-36中的任一態樣所述的方法,其中MTS索引指定正用於對視訊資料進行解碼的可分離變換。
態樣38:如態樣31-37中的任一態樣所述的方法,其中MTS索引指定沿著視訊資料的當前解碼單元中的一或多個相關聯的亮度變換塊的水平方向和垂直方向應用的一或多個變換核。
態樣39:如態樣31-38中的任一態樣所述的方法,其中解碼包括解碼。
態樣40:如態樣31-38中的任一態樣所述的方法,其中解碼包括編碼。
態樣41:一種用於對視訊資料進行編碼的設備,該設備包括用於執行如態樣31-30中的任一態樣所述的方法的一或多個部件。
態樣42:如態樣41之設備,其中該一或多個部件包括以電路實現的一或多個處理器。
態樣43:如態樣41和42中的任一態樣所述的設備,進一步包括用於儲存視訊資料的記憶體。
態樣44:如態樣41-43中的任一態樣所述的設備,進一步包括被配置為顯示解碼的視訊資料的顯示器。
態樣45:如態樣41-44中的任一態樣所述的設備,其中該設備包括照相機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。
態樣46:如態樣41-45中的任一態樣所述的設備,其中該設備包括視訊解碼器。
態樣47:如態樣41-46中的任一態樣所述的設備,其中該設備包括視訊轉碼器。
態樣48:一種電腦可讀取儲存媒體,其上儲存有執行時使一或多個處理器執行如態樣30-40中的任一態樣所述的方法的指令。
應當認識到的是,取決於實例,本文描述的任何技術的某些動作或事件可以以不同的循序執行,可以被添加、合併或完全省略(例如,並非所有描述的動作或事件都是技術實踐所必需的)。此外,在某些實例中,動作或事件可以例如經由多執行緒處理、中斷處理或多個處理器併發地而不是順序地執行。
在一或多個實例中,可以以硬體、軟體、韌體或其任何組合來實現所描述的功能。若以軟體實現,則功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上發送,並由基於硬體的處理單元執行。電腦可讀取媒體可以包括電腦可讀取儲存媒體,其對應於諸如資料儲存媒體的有形媒體,或者包括例如根據通訊協定來促進將電腦程式從一個地方轉移到另一個地方的任何媒體的通訊媒體。以這種方式,電腦可讀取媒體通常可以對應於(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) 134:CU 136:RQT 170:水平變換 172:垂直變換 182:變換塊 184:最低頻率區 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:方塊 370:方塊 372:方塊 374:方塊 376:方塊 378:方塊 380:方塊 402:方塊 404:方塊 406:方塊
圖1是示出可執行本案的技術的實例視訊編碼和解碼系統的方塊圖。
圖2A和圖2B是示出實例四叉樹二叉樹(QTBT)結構以及對應解碼樹單元(CTU)的概念圖。
圖3A和圖3B是示出基於HEVC殘差四叉樹的實例變換方案的概念圖。
圖4A和圖4B是示出作為單獨變換實現的水平和垂直變換的概念圖。
圖5是示出變換訊號傳遞的概念圖。
圖6A和6B是示出變換塊的概念圖。
圖7是示出可執行本案的技術的實例視訊轉碼器的方塊圖。
圖8是示出可執行本案的技術的實例視訊解碼器的方塊圖。
圖9是示出根據本案的技術用於對當前塊進行編碼的方法實例的流程圖。
圖10是示出根據本案的技術用於對當前塊進行解碼的實例方法的流程圖。
圖11是示出用於決定是否對多重變換選擇進行解碼的實例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
100:視訊編碼和解碼系統
102:源設備
104:視訊源
106:記憶體
108:輸出介面
110:電腦可讀取媒體
112:存放裝置
114:檔案伺服器
116:目標設備
118:顯示裝置
120:記憶體
122:輸入介面
300:視訊解碼器
200:視訊轉碼器

Claims (30)

  1. 一種對視訊資料進行解碼的方法,該方法包括以下步驟: 對於視訊資料的一變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的一最低頻率區之外,其中該至少一個係數組是每一個均包括變換係數的複數個係數組中的一個; 至少部分地基於對該至少一個係數組在該變換塊的最低頻率區之外的該決定,決定不對指示用於該變換塊的一多重變換選擇(MTS)的一語法元素進行解碼;及 至少部分地基於不對指示用於該變換塊的該多重變換選擇的該語法元素進行解碼的該決定,對該視訊資料進行解碼。
  2. 如請求項1之方法,其中決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的該最低頻率區之外進一步包括以下步驟: 對於包括變換係數的複數多個係數組中的一係數組,決定為該係數組設置了一解碼子塊標誌; 回應於決定為該係數組設置了該解碼子塊標誌,決定該係數組在一x軸或一y軸的至少一個中的一位置大於3;及 回應於決定該係數組在該x軸或該y軸的至少一個中的位置大於3,對於該視訊資料的該變換塊,決定該變換塊的包括一非零變換係數的該至少一個係數組在該變換塊的該最低頻率區之外。
  3. 如請求項1之方法,進一步包括以下步驟: 對於視訊資料的一第二變換塊,決定該第二變換塊的第二複數個係數組中沒有包括一非零變換係數的係數組在該第二變換塊的一最低頻率區之外,其中該第二複數個係數組的每一個均包括複數個變換係數; 至少部分地基於對沒有係數組在該第二變換塊的該最低頻率區之外的該決定,決定對指示用於該第二變換塊的該MTS的一第二語法元素進行解碼;及 至少部分地基於對指示用於該第二變換塊的該MTS的該第二語法元素進行解碼的該決定,對該視訊資料進行解碼。
  4. 如請求項3之方法,其中決定沒有包括一非零係數組的係數組在該第二變換塊的該最低頻率區之外包括以下步驟: 從該第二變換塊的該複數個係數組中決定一或多個係數組,其中為該一或多個係數組中的每一個設置了一解碼子塊標誌; 決定該一或多個係數組中的每一個在一x軸和一y軸兩者中的一位置均不大於3;及 回應於決定該一或多個係數組中的每一個在該x軸和該y軸兩者中的該位置均不大於3,對於該視訊資料的該第二變換塊,決定該第二變換塊的該第二複數個係數組中沒有包括一非零變換係數的係數組在該第二變換塊的一最低頻率區之外。
  5. 如請求項1之方法,其中該變換塊的該最低頻率區包括該變換塊的一左上區。
  6. 如請求項5之方法,其中: 該變換塊包括一32×32塊; 該變換塊的該左上區包括該32×32塊的一左上16×16區;及 該複數個係數組中的每一個包括與該變換塊相關聯的一4×4係數塊。
  7. 如請求項1之方法,其中: 指示用於該變換塊的多重變換選擇的語法元素指示一MTS索引,該MTS索引指定用於該變換塊的一可分離變換。
  8. 如請求項1之方法,其中: 決定不對該語法元素進行解碼包括以下步驟:決定不對該語法元素進行編碼;及 基於不對該語法元素進行解碼的該決定對該視訊資料進行解碼包括以下步驟:對該視訊資料進行編碼而不對該語法元素進行編碼。
  9. 如請求項1之方法,其中: 決定不對該語法元素進行解碼包括以下步驟:決定不對該語法元素進行解碼;及 基於不對該語法元素進行解碼的該決定對該視訊資料進行解碼包括以下步驟:對該視訊資料進行解碼而不對該語法元素進行解碼。
  10. 如請求項9之方法,其中對該視訊資料進行解碼進一步包括以下步驟: 回應於決定不對該語法元素進行解碼,推斷該語法元素的一值。
  11. 一種用於對視訊資料進行解碼的設備,該設備包括: 一記憶體;及 一處理器,該處理器在電路中實現並且被配置為: 對於視訊資料的一變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的一最低頻率區之外,其中該至少一個係數組是每一個均包括變換係數的複數個係數組中的一個; 至少部分地基於對該至少一個係數組在該變換塊的該最低頻率區之外的該決定,決定不對指示用於該變換塊的一多重變換選擇(MTS)的語法元素進行解碼;及 至少部分地基於不對指示用於該變換塊的該多重變換選擇的該語法元素進行解碼的該決定,對該視訊資料進行解碼。
  12. 如請求項11之設備,其中為了決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的該最低頻率區之外,該處理器進一步被配置為: 對於包括變換係數的該複數個係數組中的一係數組,決定為該係數組設置了一解碼子塊標誌; 回應於決定為該係數組設置了該解碼子塊標誌,決定該係數組在一x軸或一y軸的至少一個中的一位置大於3;及 回應於決定該係數組在該x軸或該y軸的至少一個中的該位置大於3,對於該視訊資料的該變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的該最低頻率區之外。
  13. 如請求項11之設備,其中該處理器進一步被配置為: 對於視訊資料的一第二變換塊,決定該第二變換塊的第二複數個係數組中沒有包括一非零變換係數的一係數組在該第二變換塊的一最低頻率區之外,其中該第二複數個係數組的每一個均包括複數個變換係數; 至少部分地基於對沒有係數組在該第二變換塊的該最低頻率區之外的該決定,決定對指示用於該第二變換塊的該MTS的一第二語法元素進行解碼;及 至少部分地基於對指示用於該第二變換塊的該MTS的該第二語法元素進行解碼的該決定,對該視訊資料進行解碼。
  14. 如請求項13之設備,其中為了決定沒有包含一非零係數組的係數組在該第二變換塊的該最低頻率區之外,該處理器進一步被配置為: 從該第二變換塊的該複數個係數組中決定一或多個係數組,其中為該一或多個係數組中的每一個設置了一解碼子塊標誌; 決定該一或多個係數組中的每一個在一x軸和一y軸兩者中的一位置均不大於3;及 回應於決定該一或多個係數組中的每一個在該x軸和該y軸兩者中的該位置均不大於3,對於該視訊資料的該第二變換塊,決定該第二變換塊的該第二多個係數組中沒有包括一非零變換係數的係數組在該第二變換塊的一最低頻率區之外。
  15. 如請求項11之設備,其中該變換塊的該最低頻率區包括該變換塊的一左上區。
  16. 如請求項15之設備,其中: 該變換塊包括一32×32塊; 該變換塊的該左上區包括該32×32塊的一左上16×16區;及 該複數個係數組中的每一個包括與該變換塊相關聯的一4×4係數塊。
  17. 如請求項11之設備,其中: 指示用於該變換塊的多重變換選擇的該語法元素指示一MTS索引,該MTS索引指定用於該變換塊的一可分離變換。
  18. 如請求項11之設備,其中: 該設備包括一視訊轉碼器; 為了決定不對該語法元素進行解碼,該處理器被配置為不對該語法元素進行編碼;及 為了基於不對該語法元素進行解碼的該決定對該視訊資料進行解碼,該處理器被配置為對該視訊資料進行編碼而不對該語法元素進行編碼。
  19. 如請求項11之設備,其中: 該設備包括一視訊解碼器; 為了決定不對該語法元素進行解碼,該處理器被配置為不對該語法元素進行解碼;及 為了基於不對該語法元素進行解碼的該決定對該視訊資料進行解碼,該處理器被配置為對該視訊資料進行解碼而不對該語法元素進行解碼。
  20. 如請求項19之設備,其中為了對該視訊資料進行解碼,該處理器被配置為: 回應於決定不對該語法元素進行解碼,推斷該語法元素的一值。
  21. 如請求項11之設備,進一步包括一顯示器,該顯示器被配置為顯示解碼的視訊資料。
  22. 如請求項11之設備,其中該設備包括一照相機、一電腦、一行動設備、一廣播接收器設備或一機上盒中的一或多個。
  23. 如請求項11之設備,其中該設備包括以下至少一個: 一積體電路; 一微處理器;或 一無線通訊設備。
  24. 一種用於對資料進行解碼的設備,該設備包括: 用於對於視訊資料的一變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的一最低頻率區之外的部件,其中該至少一個係數組是每一個均包括變換係數的複數個係數組中的一個; 用於至少部分地基於對該至少一個係數組在該變換塊的該最低頻率區之外的該決定,決定不對指示用於該變換塊的一多重變換選擇(MTS)的一語法元素進行解碼的部件;及 用於至少部分地基於不對指示用於該變換塊的該多重變換選擇的該語法元素進行解碼的該決定,對該視訊資料進行解碼的部件。
  25. 如請求項24之設備,其中用於決定該變換塊的包括一非零變換係數的該至少一個係數組在該變換塊的該最低頻率區之外的部件進一步包括: 用於對於包括變換係數的該複數個係數組中的一係數組,決定為該係數組設置了一解碼子塊標誌的部件; 用於回應於決定為該係數組設置了該解碼子塊標誌,決定該係數組在一x軸或一y軸的至少一個中的一位置大於3的部件;及 回應於決定該係數組在該x軸或該y軸的至少一個中的該位置大於3,對於該視訊資料的該變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的該最低頻率區之外的部件。
  26. 如請求項24之設備,進一步包括: 用於對於視訊資料的一第二變換塊,決定該第二變換塊的第二複數個係數組中沒有包括一非零變換係數的係數組在該第二變換塊的一最低頻率區之外的部件,其中該第二複數個係數組的每一個均包括複數個變換係數; 用於至少部分地基於對沒有係數組在該第二變換塊的該最低頻率區之外的決定,決定對指示用於該第二變換塊的MTS的一第二語法元素進行解碼的部件;及 用於至少部分地基於對指示用於該第二變換塊的該MTS的該第二語法元素進行解碼的該決定,對該視訊資料進行解碼的部件。
  27. 如請求項26之設備,其中用於決定沒有包括一非零係數組的係數組在該第二變換塊的該最低頻率區之外的該部件包括: 用於從該第二變換塊的該複數個係數組中決定一或多個係數組的部件,其中為該一或多個係數組中的每一個設置了一解碼子塊標誌; 用於決定該一或多個係數組中的每一個在一x軸和一y軸兩者中的一位置均不大於3的部件;及 回應於決定該一或多個係數組中的每一個在該x軸和該y軸兩者中的該位置均不大於3,對於該視訊資料的該第二變換塊,決定該第二變換塊的該第二複數個係數組中沒有包含一非零變換係數的係數組在該第二變換塊的一最低頻率區之外的部件。
  28. 如請求項24之設備,其中: 用於決定不對該語法元素進行解碼的部件包括用於決定不對該語法元素進行解碼的部件;及 用於基於不對該語法元素進行解碼的該決定對該視訊資料進行解碼的部件包括用於對該視訊資料進行解碼而不對該語法元素進行解碼的部件。
  29. 如請求項28之設備,其中用於對該視訊資料進行解碼的部件進一步包括: 用於回應於決定不對該語法元素進行解碼,推斷該語法元素的一值的部件。
  30. 一種電腦可讀取儲存媒體,其上儲存有指令,該等指令在被執行時使一或多個處理器: 對於視訊資料的一變換塊,決定該變換塊的包括一非零變換係數的至少一個係數組在該變換塊的一最低頻率區之外,其中該至少一個係數組是每一個均包括變換係數的複數個係數組中的一個; 至少部分地基於對該至少一個係數組在該變換塊的該最低頻率區之外的該決定,決定不對指示用於該變換塊的一多重變換選擇(MTS)的一語法元素進行解碼;及 至少部分地基於不對指示用於該變換塊的該多重變換選擇的該語法元素進行解碼的該決定,對該視訊資料進行解碼。
TW109144950A 2019-12-20 2020-12-18 視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束 TW202131686A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962951975P 2019-12-20 2019-12-20
US62/951,975 2019-12-20
US17/125,159 US20210195192A1 (en) 2019-12-20 2020-12-17 Coefficient group based restriction on multiple transform selection signaling in video coding
US17/125,159 2020-12-17

Publications (1)

Publication Number Publication Date
TW202131686A true TW202131686A (zh) 2021-08-16

Family

ID=76438662

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109144950A TW202131686A (zh) 2019-12-20 2020-12-18 視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束

Country Status (11)

Country Link
US (1) US20210195192A1 (zh)
EP (1) EP4078976A1 (zh)
JP (1) JP2023507099A (zh)
KR (1) KR20220110757A (zh)
CN (1) CN114868397A (zh)
AU (1) AU2020405164A1 (zh)
BR (1) BR112022011535A2 (zh)
CA (1) CA3162707A1 (zh)
MX (1) MX2022007316A (zh)
TW (1) TW202131686A (zh)
WO (1) WO2021127402A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11785254B2 (en) * 2020-05-29 2023-10-10 Tencent America LLC Implicit mode dependent primary transforms

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10972733B2 (en) 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
WO2020244662A1 (en) * 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Simplified transform coding tools

Also Published As

Publication number Publication date
WO2021127402A1 (en) 2021-06-24
CA3162707A1 (en) 2021-06-24
AU2020405164A1 (en) 2022-06-16
JP2023507099A (ja) 2023-02-21
MX2022007316A (es) 2022-07-13
EP4078976A1 (en) 2022-10-26
CN114868397A (zh) 2022-08-05
US20210195192A1 (en) 2021-06-24
BR112022011535A2 (pt) 2022-08-30
KR20220110757A (ko) 2022-08-09

Similar Documents

Publication Publication Date Title
US11234010B2 (en) Cross-component adaptive loop filtering for video coding
US11095916B2 (en) Wraparound motion compensation in video coding
TW202114418A (zh) 用於視訊寫碼中低頻非可分離變換之變換及最後有效係數位置信令傳輸
JP2022531913A (ja) ビデオエンコードのための0化パターンに基づく低周波数非分離変換シグナリング
US11451840B2 (en) Trellis coded quantization coefficient coding
US20210136422A1 (en) Merge estimation region for multi-type-tree block structure
TW202121903A (zh) 低頻不可分離變換(lfnst)簡化
TW202118297A (zh) 用於視訊寫碼之縮放矩陣及傳訊
TW202041009A (zh) 用於轉換跳過模式之係數寫碼
TW202044836A (zh) 用於視訊寫碼中的調色板語法的分組寫碼
TW202112135A (zh) 用於視訊寫碼之色度內預測單元
TW202038613A (zh) 在視訊寫碼中用於平行處理之處理區域之推導
TW202133619A (zh) 用於合併估計區域的基於歷史的運動向量預測約束
TW202133621A (zh) 支援有損解碼和無損解碼兩者的殘差解碼
TW202127882A (zh) 視訊編解碼中的層間參考圖像傳訊
US11706425B2 (en) Multiple transform set signaling for video coding
US11729381B2 (en) Deblocking filter parameter signaling
TW202143712A (zh) 視訊轉碼中的低頻不可分離變換處理
TW202131679A (zh) 在視訊編碼中利用縮減的歸零項的低頻不可分變換(lfnst)
TW202141977A (zh) 視訊解碼中的變換跳過塊的係數編碼
TW202143715A (zh) 視訊譯碼中的子區塊合併候選的信令數目
TW202143734A (zh) 視訊譯碼中的低頻不可分離變換索引信號傳遞
TW202131696A (zh) 用於視訊編碼中的一般變換係數的基於方程的萊斯參數推導
TW202133615A (zh) 基於色度變換跳過的用於色度的lfnst信號傳遞
TW202112133A (zh) 調色板及預測模式信令發送