TW202145792A - 使用深度學習的並行化的速率失真最佳化量化 - Google Patents

使用深度學習的並行化的速率失真最佳化量化 Download PDF

Info

Publication number
TW202145792A
TW202145792A TW110113490A TW110113490A TW202145792A TW 202145792 A TW202145792 A TW 202145792A TW 110113490 A TW110113490 A TW 110113490A TW 110113490 A TW110113490 A TW 110113490A TW 202145792 A TW202145792 A TW 202145792A
Authority
TW
Taiwan
Prior art keywords
transform coefficient
coefficients
determining
block
video
Prior art date
Application number
TW110113490A
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 TW202145792A publication Critical patent/TW202145792A/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/124Quantisation
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13343Neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/343Neural network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

視訊轉碼器決定縮放的變換係數,其中決定縮放的變換係數包括:根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放。視訊轉碼器決定經標量量化係數,其中決定經標量量化係數包括:將標量量化應用於該塊的縮放的變換係數。另外,視訊轉碼器應用神經網路,該神經網路針對塊的每個相應的變換係數,來決定相應的概率集合。用於各個變換係數的各個概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值。神經網路的輸入包括縮放的變換係數和經標量量化係數。視訊轉碼器基於針對塊的特定變換係數的概率集合,來決定用於該特定變換係數的量化位準。

Description

使用深度學習的並行化的速率失真最佳化量化
本專利申請案主張享受2020年4月17日提出申請的美國臨時專利申請案第63/011,685號和2020年6月4日提出申請的美國臨時專利申請案第63/034,618號的權益,以引用方式將這些申請案中的每一份申請案的全部內容併入本文。
本案內容係關於視訊編碼和視訊解碼。
數位視訊能力可以併入到各種各樣的設備中,這些設備包括數位電視、數位直接廣播系統、無線廣播系統、個人數位助理(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)片段中的視訊塊可以使用相對於同一圖片中相鄰塊中的參考取樣的空間預測,或者使用相對於其他參考圖片中的參考取樣的時間預測。圖片可以稱為訊框,而參考圖片可以稱為參考訊框。
通常,本案內容描述了用於使用深度學習來執行並行化的速率失真最佳化量化的技術。如本文所描述的,視訊轉碼器應用神經網路,該神經網路針對塊的每個變換係數,決定用於該變換係數的概率集合。隨後,視訊轉碼器可以基於用於變換係數的概率集合,來決定用於該變換係數的量化位準。視訊轉碼器可以發訊號通知所決定的用於變換係數的量化位準。
在一個實例中,一種方法包括對視訊資料進行編碼的方法,該方法包括:決定縮放的變換係數,d其中決定該等縮放的變換係數包括:根據給定的量化步驟,對該視訊資料的塊的變換係數進行縮放;決定經標量量化係數,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該縮放的變換係數;應用用於決定針對該塊的每個相應的變換係數的相應的概率集合的神經網路,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;基於針對該塊的特定變換係數的該概率集合,決定用於該特定變換係數的量化位準;在包括該視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
在另一個實例中,本案內容描述了一種用於對視訊資料進行編碼的設備,該設備包括:用於儲存該視訊資料的記憶體;及在電路中實現的一或多個處理器,該一或多個處理器被配置為:決定縮放的變換係數,其中決定該等縮放的變換係數包括:根據給定的量化步驟,對該視訊資料的塊的變換係數進行縮放;決定經標量量化係數,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數;應用用於決定針對該塊的每個相應的變換係數的相應的概率集合的神經網路,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;基於針對該塊的特定變換係數的該概率集合,決定用於該特定變換係數的量化位準;並在包括該視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
在另一個實例中,本案內容描述了一種用於對視訊資料進行編碼的設備,該設備包括:用於決定縮放的變換係數的單元,其中決定該等縮放的變換係數包括:根據給定的量化步驟,對該視訊資料的塊的變換係數進行縮放;用於決定經標量量化係數的單元,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數;用於應用用於決定針對該塊的每個相應的變換係數的相應的概率集合的神經網路的單元,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;用於基於針對該塊的特定變換係數的該概率集合,決定用於該特定變換係數的量化位準的單元;用於在包括該視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準的單元。
在另一個實例中,本案內容描述了一種其上儲存有指令的電腦可讀取儲存媒體,當該等指令被執行時,使一或多個處理器進行以下操作:決定縮放的變換係數,其中決定該等縮放的變換係數包括:根據給定的量化步驟,對該視訊資料的塊的變換係數進行縮放;決定經標量量化係數,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數;應用用於決定針對該塊的每個相應的變換係數的相應的概率集合的神經網路,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;基於針對該塊的特定變換係數的該概率集合,決定用於該特定變換係數的量化位準;及在包括該視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
在附圖和下文的說明書中闡述了一或多個實例的細節。根據說明書、附圖以及申請專利範圍,其他特徵、物件和優點將變得顯而易見。
速率失真最佳化量化(RDOQ)是視訊轉碼器為視訊資料區塊的各個變換係數選擇量化位準的量化技術。隨後,視訊轉碼器可以發訊號通知所選擇的量化位準。為變換係數選擇量化位準的程序可以涉及:測試變換係數的不同量化位準,以決定針對該變換係數產生最優速率失真分數的量化位準。執行此類搜尋可能是耗時的,並且是資源密集的。
本案內容描述了可以實現類似於RDOQ的結果,但是具有更高的效率和更少的資源消耗的技術。如本文所描述的,視訊轉碼器可決定縮放的變換係數。作為決定縮放的變換係數的一部分,視訊轉碼器可以根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放。此外,視訊轉碼器可以決定經標量量化係數。作為決定經標量量化係數的一部分,視訊轉碼器可以將標量量化應用於塊的縮放的變換係數。另外,視訊轉碼器可以應用神經網路,該神經網路針對塊的每個相應的變換係數,決定相應的概率集合。針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值。針對神經網路的輸入可以包括縮放的變換係數和經標量量化係數。此外,視訊轉碼器可以基於針對塊的特定變換係數的概率集合,來決定用於該特定變換係數的量化位準。視訊轉碼器可以在包括視訊資料的經編碼表示的位元串流中,用訊號通知所決定的針對特定變換係數的量化位準。以這種方式執行RDOQ可以加速量化程序,並且可以佔用較少的資源。
圖1是示出可以執行本案內容的技術的實例視訊編碼和解碼系統100的方塊圖。本案內容的技術通常針對於視訊資料的解碼(編碼及/或解碼)。通常,視訊資料包括用於處理視訊的任何資料。因此,視訊資料可以包括原始的、未編碼的視訊、編碼的視訊、解碼的(例如,重構的)視訊以及視訊中繼資料(例如,訊號傳遞資料)。
如圖1中所示,在該實例中,系統100包括源設備102,其提供要由目的地設備116進行解碼和顯示的經編碼的視訊資料。具體而言,源設備102經由電腦可讀取媒體110,將視訊資料提供給目的地設備116。源設備102和目的地設備116可以包括廣泛的設備中的任何設備,其包括桌面型電腦、行動設備(例如,膝上型)電腦、平板電腦、電話手持裝置(例如,智慧手機、照相機)、廣播接收器設備、機上盒、電視、顯示裝置、數位媒體播放機、視訊遊戲機、視訊流式設備等等。在一些情況下,源設備102和目的地設備116可以被配備用於無線通訊,因此可以稱為無線通訊設備。
在圖1的實例中,源設備102包括視訊源104、記憶體106、視訊轉碼器200和輸出介面108。目的地設備116包括輸入介面122、視訊解碼器300、記憶體120和顯示裝置118。根據本案內容,源設備102的視訊轉碼器200和目的地設備116的視訊解碼器300可以被配置為應用用於使用深度學習進行並行化速率失真最佳化量化的技術。因此,源設備102表示視訊編碼設備的實例,而目的地設備116表示視訊解碼設備的實例。在其他實例中,源設備和目的地設備可以包括其他部件或佈置。例如,源設備102可以從諸如外部照相機之類的外部視訊源接收視訊資料。同樣,目的地設備116可以與外部顯示裝置對接,而不是包括整合顯示裝置。
如圖1中所示的系統100僅僅是一個實例。通常,任何數位視訊編碼及/或解碼設備皆可以執行用於使用深度學習進行並行化速率失真最佳化量化的技術。源設備102和目的地設備116僅僅是此類解碼設備的實例,其中源設備102產生用於向目的地設備116傳輸的經編碼的視訊資料。本案內容將「解碼」設備稱為執行資料的解碼(編碼及/或解碼)的設備。因此,視訊轉碼器200和視訊解碼器300分別表示解碼設備(具體而言,視訊轉碼器和視訊解碼器)的實例。在一些實例中,源設備102和目的地設備116可以以基本上對稱的方式操作,使得源設備102和目的地設備116中的每一個包括視訊編碼和解碼用部件。因此,系統100可以支援源設備102和目的地設備116之間的單向或雙向視訊傳輸,例如,用於視訊流式傳輸、視訊重播、視訊廣播或視訊電話。
通常,視訊源104代表視訊資料(亦即,原始的、未編碼的視訊資料)的源,並將視訊資料的圖片的連續序列(亦稱為「訊框」)提供給視訊轉碼器200,其中視訊轉碼器200對圖片的資料進行編碼。源設備102的視訊源104可以包括視訊擷取裝置(例如,攝像機)、包含先前擷取的原始視訊的視訊檔案及/或用於從視訊內容提供者接收視訊的視訊饋送介面。作為另一替代方案,視訊源104可以產生基於電腦圖形的資料作為源視訊、或者即時視訊、存檔視訊和電腦產生的視訊的組合。在每種情況下,視訊轉碼器200對擷取的、預擷取的或電腦產生的視訊資料進行編碼。視訊轉碼器200可以將圖像從接收到的順序(有時稱為「顯示順序」)重新排列為用於解碼的解碼順序。視訊轉碼器200可以產生包括有編碼的視訊資料的位元串流。隨後,源設備102可以經由輸出介面108將編碼的視訊資料輸出到電腦可讀取媒體110上,以經由例如目的地設備116的輸入介面122進行接收及/或檢索。
源設備102的記憶體106和目的地設備116的記憶體120代表通用記憶體。在一些實例中,記憶體106、120可以儲存原始視訊資料,例如,來自視訊源104的原始視訊和來自視訊解碼器300的原始解碼的視訊資料。補充地或替代地,記憶體106、120可以儲存可由例如視訊轉碼器200和視訊解碼器300分別執行的軟體指令。儘管在該實例中,將記憶體106和記憶體120與視訊轉碼器200和視訊解碼器300分開地示出,但應當理解,視訊轉碼器200和視訊解碼器300亦可以包括內部記憶體,以實現功能上相似或等效的目的。此外,記憶體106、120可以儲存編碼的視訊資料(例如,從視訊轉碼器200輸出並輸入到視訊解碼器300的資料)。在一些實例中,可以將記憶體106、120的一部分分配為一或多個視訊緩衝器,例如,用於儲存原始的、解碼及/或編碼的視訊資料。
電腦可讀取媒體110可以代表能夠將編碼的視訊資料從源設備102傳輸到目的地設備116的任何類型的媒體或設備。在一個實例中,電腦可讀取媒體110代表用於使源設備102能夠即時地例如經由射頻網路或基於電腦的網路將編碼的視訊資料直接發送到目的地設備116的通訊媒體。輸出介面108可以根據諸如無線通訊協定之類的通訊標準,對包括編碼的視訊資料的傳輸訊號進行解調,並且輸入介面122可以對接收到的傳輸訊號進行解調。通訊媒體可以包括任何無線或有線通訊媒體,例如射頻(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成諸如區域網路、廣域網或全球網路(例如,網際網路)的基於封包的網路的一部分。通訊媒體可以包括路由器、交換機、基地台或者有助於從源設備102到目的地設備116的通訊的任何其他設備。
在一些實例中,源設備102可以將編碼的資料從輸出介面108輸出到存放裝置112。類似地,目的地設備116可以經由輸入介面122,從存放裝置112存取編碼的資料。存放裝置112可以包括多種分散式或本端存取的資料儲存媒體(例如,硬碟、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體)或者用於儲存編碼的視訊資料的任何其他適當的數位儲存媒體中的任何一種。
在一些實例中,源設備102可以將編碼的視訊資料輸出到檔案伺服器114或者可以儲存源設備102所產生的編碼的視訊資料的另一個中間存放裝置。目的地設備116可以經由流式傳輸或下載,從檔案伺服器114存取所儲存的視訊資料。檔案伺服器114可以是能夠儲存編碼的視訊資料並將該編碼的視訊資料發送到目的地設備116的任何類型的伺服器設備。檔案伺服器114可以代表網路服務器(例如,用於網站)、檔案傳輸通訊協定(FTP)伺服器、內容交付網路設備或網路附加儲存(NAS)設備。目的地設備116可以經由包括互連網連接的任何標準資料連接,從檔案伺服器114存取編碼的視訊資料。這可以包括適合於存取已儲存在檔案伺服器114上的編碼視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,數位用戶線路(DSL)、纜線數據機等等)或二者的組合。檔案伺服器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規範(例如,ZigBee™)、Bluetooth™標準等等),來傳輸諸如編碼的視訊資料之類的資料。在一些實例中,源設備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中的每一個可以被包括在一或多個編碼器或解碼器中,編碼器或解碼器中的任何一個可以整合為相應設備中的組合編碼器/解碼器(CODEC)的一部分。包括視訊轉碼器200及/或視訊解碼器300的設備可以包括積體電路、微處理器及/或無線通訊設備(例如,蜂巢式電話)。
視訊轉碼器200和視訊解碼器300可以根據諸如ITU-T H.265之類的視訊編碼標準(亦稱為高效視訊編碼(HEVC))或者其擴展(例如,多視圖及/或可擴展的視訊編碼擴展)進行操作。替代地,視訊轉碼器200和視訊解碼器300可以根據諸如ITU-T H.266(亦稱為通用視訊編碼(VVC))之類的其他專有或工業標準來操作。Bross等人在以下文件中描述了VVC標準的最近草案:ITU-T SG 16 WP 3的聯合視訊專家組(JVET)「通用視訊編碼(草案8)」,以及2020年1月7日至17日,ISO/IEC JTC 1/SC 29/WG 11在比利時布魯塞爾的第17次會議的JVET-Q2001-vE(以下簡稱「VVC草案8」)。然而,本案內容的技術並不限於任何特定的編碼標準。
通常,視訊轉碼器200和視訊解碼器300可以執行圖片的基於塊的編碼。術語「塊」通常是指包括要處理的資料的結構(例如,在編碼及/或解碼程序中使用的編碼、解碼或其他方式)。例如,一個塊可以包括亮度及/或色度資料的取樣的二維矩陣。通常,視訊轉碼器200和視訊解碼器300可以對以YUV(例如,Y、Cb、Cr)格式表示的視訊資料進行編碼。亦即,不是對圖片的取樣的紅色、綠色和藍色(RGB)資料進行解碼,而是視訊轉碼器200和視訊解碼器300可以對亮度和色度分量進行解碼,其中色度分量可以包括紅色和藍色色度分量。在一些實例中,視訊轉碼器200在編碼之前,將接收到的RGB格式的資料轉換成YUV表示,而視訊解碼器300將YUV表示轉換成RGB格式。替代地,預處理和後處理單元(未圖示)可以執行這些轉換。
本案內容通常可以涉及圖片的解碼(例如,編碼和解碼),以包括對圖片的資料進行編碼或解碼的程序。類似地,本案內容可以涉及對圖片的塊的解碼,以包括對這些塊的資料進行編碼或解碼的程序(例如,預測及/或殘差編碼)。編碼的視訊位元串流通常包括用於語法元素的一系列值,其中這些語法元素表示解碼決策(例如,解碼模式)以及將圖片劃分成塊的分割。因此,對圖片或塊進行解碼的提及,通常應當被理解為用於形成該圖片或塊的語法元素的解碼值。
HEVC定義了各種塊,其包括解碼單元(CU)、預測單元(PU)和變換單元(TU)。根據HEVC,視訊解碼器(例如,視訊轉碼器200)根據四叉樹結構,將解碼樹單元(CTU)劃分為CU。亦即,視訊解碼器將CTU和CU劃分為四個相等的、不重疊的正方形,並且四叉樹的每個節點具有零個或四個子節點。沒有子節點的節點可以稱為「葉節點」,並且這種葉節點的CU可以包括一或多個PU及/或一或多個TU。視訊解碼器可以進一步分割PU和TU。例如,在HEVC中,殘餘四叉樹(RQT)表示TU的劃分。在HEVC中,PU表示訊框間預測資料,而TU表示殘差資料。訊框內預測的CU包括訊框內預測資訊(例如,訊框內模式指示)。
再舉一個實例,視訊轉碼器200和視訊解碼器300可以被配置為根據VVC進行操作。根據VVC,視訊解碼器(例如,視訊轉碼器200)將圖片劃分為複數個解碼樹單元(CTU)。視訊轉碼器200可以根據諸如四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構之類的樹結構,對CTU進行劃分。QTBT結構消除了多個分區類型的概念,例如HEVC的CU、PU和TU之間的分隔。QTBT結構包括兩個層級:根據四叉樹劃分而劃分的第一層級、根據二叉樹劃分而劃分的第二層級。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於解碼單元(CU)。
在MTT劃分結構中,可以使用四叉樹(QT)分割、二叉樹(BT)分割和一或多個類型的三叉樹(TT)(亦稱為三叉型樹(TT))分割,對塊進行劃分。三叉樹或三叉型樹分割是將一個塊分割成三個子塊的劃分。在一些實例中,三叉樹或三叉型樹分割將一個塊劃分為三個子塊,而不穿過中心來劃分原始塊。MTT中的劃分類型(例如,QT、BT和TT)可以是對稱的,亦可以是不對稱的。
在一些實例中,視訊轉碼器200和視訊解碼器300可以使用單個QTBT或MTT結構來表示亮度和色度分量中的每一個,而在其他實例中,視訊轉碼器200和視訊解碼器300可以使用兩個或更多QTBT或MTT結構,例如一個QTBT/MTT結構用於亮度分量,另一個QTBT/MTT結構用於兩個色度分量(或者兩個QTBT/MTT結構用於相應的色度分量)。
視訊轉碼器200和視訊解碼器300可以被配置為使用每個HEVC的四叉樹劃分、QTBT劃分、MTT劃分或其他劃分結構。為了便於說明起見,相對於QTBT劃分提供了本案內容的技術的描述。但是,應當理解的是,本案內容的技術亦可以應用於被配置為使用四叉樹劃分或其他類型的劃分的視訊解碼器。
在一些實例中,CTU包括亮度取樣的解碼樹塊(CTB)、具有三個取樣陣列的圖片的色度取樣的兩個對應的CTB、或單色圖片或者使用三個獨立的色彩平面和語法結構(用於對取樣進行編碼)進行編碼的圖片的取樣的CTB。CTB可以是某個N值的NxN取樣塊,使得組成元素到CTB的分割是一種劃分。組成元素是一個陣列或來自三個陣列(亮度和兩個色度)之一的單個取樣(其中這三個陣列以4:2:0、4:2:2或4:4:4的顏色格式組成圖片),或者是該陣列或該陣列中以單色格式組成圖片的單個取樣。在一些實例中,解碼塊是針對一些M和N值的取樣的MxN取樣塊,使得CTB到解碼塊的分割是一種劃分。
可以以各種方式,在圖片中對塊(例如,CTU或CU)進行群組。舉一個實例,磚塊(brick)可以代表圖片中特定瓦片(tile)內的矩形區域的CTU行。瓦片可以是圖片中的特定瓦片列和特定瓦片行內的CTU的矩形區域。瓦片列是指高度等於圖片的高度、並且具有由語法元素指定的寬度(例如,諸如在圖片參數集中提供的)的CTU的矩形區域。瓦片行是指具有由語法元素指定的高度(例如,諸如在圖片參數集中提供的)、並且寬度等於圖片的寬度的CTU的矩形區域。
在一些實例中,可將一個瓦片劃分成多個磚塊,每個磚塊可以包括該瓦片內的一或多個CTU行。沒有被劃分為多個磚塊的瓦片,亦可以稱為磚塊。但是,作為瓦片的一個真實子集的磚塊不能稱為瓦片。
亦可以將圖片中的磚塊排列在片段中。片段可以是圖片中能夠專有地包含在單個網路抽象層(NAL)單元中的整數數量磚塊。在一些實例中,一個片段包括多個完整瓦片,或者僅包括一個瓦片的連續序列的磚塊。
本案內容可以互換地使用「NxN」和「N乘N」來代表塊(例如,CU或其他視訊塊)的以垂直和位準維度的取樣尺寸,例如16x16取樣或16乘16取樣。通常,一個16x16 CU在垂直方向上將有16個取樣(y = 16),在位準方向上將有16個取樣(x = 16)。同樣地,一個NxN CU通常在垂直方向上具有N個取樣,在位準方向上具有N個取樣,其中N表示非負整數值。可以按行和列來排列CU中的取樣。此外,CU在位準方向上不必具有與垂直方向上相同數量的取樣。舉例而言,CU可以包含NxM個取樣,其中M不一定等於N。
視訊轉碼器200對用於表示預測及/或殘差資訊以及其他資訊的CU的視訊資料進行編碼。預測資訊指示將如何預測CU,以便形成用於該CU的預測塊。殘差資訊通常表示在編碼之前的CU的取樣與預測塊之間的逐取樣差異。
為了預測CU,視訊轉碼器200通常可以經由訊框間預測或訊框內預測來形成用於CU的預測塊。訊框間預測通常代表從先前編碼的圖片的資料中預測CU,而訊框內預測通常代表從同一圖片的先前編碼的資料中預測CU。為了執行訊框間預測,視訊轉碼器200可以使用一或多個運動向量來產生預測塊。視訊轉碼器200通常可以例如在CU與參考塊之間的差異態樣,執行運動搜尋以辨識與CU緊密匹配的參考塊。視訊轉碼器200可以使用絕對差之和(SAD)、平方差之和(SSD)、平均絕對差(MAD)、均方差(MSD)或其他此類差值計算來計算差值度量,以判斷參考塊是否緊密匹配當前CU。在一些實例中,視訊轉碼器200可以使用單向預測或雙向預測來預測當前CU。
VVC的一些實例亦提供仿射運動補償模式,其可以被認為是訊框間預測模式。在仿射運動補償模式中,視訊轉碼器200可以決定表示非平移運動的兩個或更多運動向量,例如縮小或放大、旋轉、透視運動或其他不規則運動類型。
為了執行訊框內預測,視訊轉碼器200可以選擇訊框內預測模式來產生預測塊。VVC的某些實例提供了67種訊框內預測模式,其包括各種定向模式以及平面模式和DC模式。通常,視訊轉碼器200選擇訊框內預測模式,該訊框內預測模式描述了到當前塊(例如,CU的塊)的相鄰取樣,從這些取樣中預測當前塊的取樣。假設視訊轉碼器200以光柵掃瞄順序(從左到右、從上到下)對CTU和CU進行解碼,則這些取樣通常可以在與當前塊相同的圖片中的當前塊的上方、左上方或左側。
視訊轉碼器200對表示當前塊的預測模式的資料進行編碼。舉例而言,對於訊框間預測模式,視訊轉碼器200可以對表示使用各種可用訊框間預測模式中的哪一個訊框間預測模式的資料、以及對應模式的運動資訊進行編碼。對於單向或雙向訊框間預測,例如,視訊轉碼器200可以使用高級運動向量預測(AMVP)或合併模式,來對運動向量進行編碼。視訊轉碼器200可以使用類似模式來對仿射運動補償模式的運動向量進行編碼。
在諸如塊的訊框內預測或訊框間預測之類的預測之後,視訊轉碼器200可以計算該塊的殘差資料。殘差資料(例如,殘差塊)表示該塊與使用相應預測模式形成的該塊的預測塊之間的逐取樣差異。視訊轉碼器200可以向殘差塊應用一或多個變換,以在變換域而非取樣域中產生經變換的資料。舉例而言,視訊轉碼器200可以向殘差視訊資料應用離散餘弦變換(DCT)、整數變換、小波變換或概念上類似的變換。另外,視訊轉碼器200可以在第一變換之後應用次級變換,例如依賴於模式的不可分離次級變換(MDNSST)、依賴於訊號的變換、Karhunen-Loeve變換(KLT)等等。視訊轉碼器200在應用該一或多個變換之後,產生變換係數。
如前述,在進行任何變換以產生變換係數之後,視訊轉碼器200可以執行變換係數的量化。量化通常代表此類程序:對變換係數進行量化,以可能地減少用於表示這些變換係數的資料量,從而提供進一步壓縮。經由執行量化程序,視訊轉碼器200可以減小與一些或所有這些變換係數相關聯的位元深度。例如,視訊轉碼器200可以在量化期間,將n位元值捨入為m位元值,其中n大於m。在一些實例中,為了執行量化,視訊轉碼器200可以執行待量化的值的按位元右移。
在量化之後,視訊轉碼器200可以掃瞄變換係數,從而根據包括量化的變換係數的二維矩陣產生一維向量。可以將該掃瞄設計為將較高能量(因此頻率較低)的變換係數放在向量的前面,並將較低能量(因此頻率較高)的變換係數放在向量的後面。在一些實例中,視訊轉碼器200可以利用預定義的掃瞄順序來掃瞄經量化的變換係數,以產生經序列化的向量,隨後對向量的經量化的變換係數進行熵編碼。在其他實例中,視訊轉碼器200可以執行自我調整掃瞄。在掃瞄量化的變換係數以形成一維向量之後,視訊轉碼器200可以例如根據上下文自我調整二進位算術編碼(CABAC)對一維向量進行熵編碼。視訊轉碼器200亦可以對語法元素的值進行熵編碼,該語法元素描述與編碼的視訊資料相關聯的中繼資料,以供視訊解碼器300在對視訊資料進行解碼時使用。
為了執行CABAC,視訊轉碼器200可以將上下文模型內的上下文分配給要發送的符號。例如,該上下文可以涉及符號的相鄰值是否為零值。概率決定可以基於分配給符號的上下文。
視訊轉碼器200亦可以在例如圖片頭、塊頭、片段頭或其他語法資料(例如,序列參數集(SPS)、圖片參數集(PPS)或視訊參數集(VPS))中,產生針對視訊解碼器300的語法資料(例如,基於塊的語法資料、基於圖片的語法資料、以及基於序列的語法資料)。視訊解碼器300可以類似地對此類語法資料進行解碼,以決定如何解碼對應的視訊資料。
用此方式,視訊轉碼器200可以產生包括編碼的視訊資料的位元串流,例如,用於描述將圖片劃分成塊(例如,CU)的語法元素、以及這些塊的預測及/或殘差資訊的語法元素。最終,視訊解碼器300可以接收位元串流,並對編碼的視訊資料進行解碼。
通常,視訊解碼器300執行與視訊轉碼器200所執行的程序相互的程序,以解碼位元串流的編碼的視訊資料。舉例而言,視訊解碼器300可以以與視訊轉碼器200的CABAC編碼程序實質上相似的方式(儘管相互),使用CABAC,對位元串流的語法元素的值進行解碼。語法元素可以將用於對圖片進行劃分的分割資訊定義為CTU,並根據相應的分割結構(例如,QTBT結構),對每個CTU進行劃分以定義CTU的CU。這些語法元素可以進一步規定用於視訊資料的塊(例如,CU)的預測和殘差資訊。
可以經由例如量化的變換係數來表示殘差資訊。視訊解碼器300可以對塊的量化的變換係數進行逆量化和逆變換,以再現該塊的殘差塊。視訊解碼器300使用用訊號通知的預測模式(訊框內或訊框間預測)和相關的預測資訊(例如,用於訊框間預測的運動資訊)來形成用於該塊的預測塊。隨後,視訊解碼器300可以組合預測塊和殘差塊(在逐個取樣的基礎上)以再現原始塊。視訊解碼器300可以執行其他的處理,例如執行解塊處理以減少沿塊的邊界的視覺偽像。
圖2是示出具有視訊轉碼器流水線和視訊解碼器流水線的量化器的示例性通用示意圖的概念圖,該量化器適用於多種視訊解碼程序中的任何一種(例如,HEVC、VVC和其他視訊解碼標準)。具體而言,如圖2的實例中所示,視訊轉碼器200接收視訊訊框(圖片)150。對於每個視訊訊框150的每個區塊,視訊轉碼器200可以產生殘差資料的塊152。隨後,視訊轉碼器200可以向塊152應用變換(例如,DCT變換)以產生變換係數塊154。視訊轉碼器200可以掃瞄變換係數154(156)。視訊轉碼器200的量化器158可以對掃瞄後的變換係數進行量化。視訊轉碼器200可以將熵編碼(160)應用於表示經量化的變換係數的語法元素。
此外,在圖2的實例中,視訊解碼器300可以向經熵編碼的語法元素應用熵解碼(162)以決定經量化的變換係數。視訊解碼器300的解量化器164可以對量化的變換係數進行解量化(亦即,逆量化),並且應用逆掃瞄166以決定逆量化的變換係數168。視訊解碼器300可以應用逆變換(例如,逆DCT)(169),以決定重構的變換係數168。隨後,視訊解碼器300可以基於重構的變換係數168來產生重構塊170。重構塊170可以形成一組重構訊框172中的重構訊框的一部分。
如前述,視訊轉碼器200可以執行量化。速率失真最佳化量化(RDOQ)是一種形式的量化。RDOQ在最近的視訊壓縮標準(例如,H.264/AVS、H.265/HEVC、VP9和AV1)的解碼效能中,發揮了重要作用。在實踐中,由於變換係數填充了編碼位元串流的大部分,因此該方案以可允許的失真增加為代價,顯著降低了位元速率。但是,由於以下兩種限制,在硬體上實現多變數RDOQ最佳化的目標是過分昂貴的:第一,在編碼時發現每個變換係數(TC)的最佳量化位準,需要太多的時鐘週期;第二,普通RDOQ演算法在本質上是連續的。
本案內容可以經由使用基於神經網路的方法來解決這兩種限制,其中基於神經網路的方法在單個前向通路中推斷出針對多個變換係數的量化位準,並且亦能夠並行化執行針對許多個塊的推斷(亦即,並行地推斷針對複數個塊的量化位準)。本案內容的方法在離線監督訓練期間,學習權衡速率和失真。在一些實例中,本案內容僅基於在任何現有的圖形處理單元(GPU)或神經處理單元(NPU)上執行的標準網路操作。因此,在一些實例中,不需要保留另外的片上區域作為專用RDOQ電路。
根據本案內容的技術,諸如設備之類的計算系統可以訓練一類或多類的神經網路(例如,全神經迴旋網路和自回歸模型),並且可以將每個神經網路評估為被設計用於改進量化方案(例如,標量量化(SQ))的後量化步驟。標量量化可以採用
Figure 02_image001
的形式,其中x 是變換係數,s 是步長。在一些實例中,標量量化可以採用
Figure 02_image003
的形式,其中x 是變換係數,s 是步長,ϵ 是量化偏移參數。此外,本案內容描述了一種用於收集高品質標籤的資料收集演算法。全迴旋模型和自回歸模型皆可以被設計為具有低計算成本。本案內容將模型整合在HEVC參考模型(HM)或者用於其他視訊編碼標準(例如,通用視訊編碼(VVC))的模型中。
根據本案內容的技術,視訊轉碼器200可以決定縮放的變換係數。決定縮放的變換係數可以包括:根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放。另外,視訊轉碼器200可以決定經標量量化係數。決定經標量量化係數可以包括:將標量量化應用於塊的經縮放的變換係數。隨後,視訊轉碼器200可以應用神經網路,其中該神經網路針對塊的每個相應的變換係數,決定相應的概率集合。針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值。神經網路的輸入包括縮放的變換係數和經標量量化係數。此外,視訊轉碼器200可以基於針對塊的特定變換係數的概率集合,決定用於該特定變換係數的量化位準。視訊轉碼器200可以在包括視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於特定變換係數的量化位準。
本案內容通常涉及「用訊號通知」某些資訊(例如,語法元素)。術語「用訊號通知」通常可以代表用於語法元素的值及/或用於對編碼的視訊資料進行解碼的其他資料的通訊。亦即,視訊轉碼器200可以在位元串流中用訊號通知用於語法元素的值。通常,用訊號通知是指在位元串流中產生值。如前述,源設備102可以基本即時地或者不即時地,將位元串流傳輸到目的地設備116,例如在將語法元素儲存到存放裝置112以便稍後由目的地設備116檢索時,可能發生這種情形。
圖3是示出可以執行本案內容的技術的示例性視訊轉碼器200的方塊圖。提供圖3以便於解釋的目的,故其不應被認為是對本案內容中廣泛例示和描述的技術的限制。為了便於說明起見,本案內容描述了根據VVC(在開發中的ITU-T H.266)和HEVC(ITU-T H.265)技術的視訊轉碼器200。但是,被配置為實現其他視訊解碼標準的視訊編碼設備可以執行本案內容的技術。
在圖3的實例中,視訊轉碼器200包括視訊資料記憶體230、模式選擇單元202、殘差產生單元204、變換處理單元206、量化單元208、逆量化單元210、逆變換處理單元212、重構單元214、濾波單元216、解碼圖片緩衝器(DPB)218和熵編碼單元220。此外,在圖3的實例中,量化單元208包括包含神經網路211的量化單元208。視訊資料記憶體230、模式選擇單元202、殘差產生單元204、變換處理單元206、量化單元208、逆量化單元210、逆變換處理單元212、重構單元214、濾波單元216、DPB 218、熵編碼單元220、量化單元208和神經網路211中的任何一個或全部,可以在一或多個處理器中或者在處理電路中實現。例如,可以將視訊轉碼器200的單元實現成作為硬體電路的一部分、或者處理器的一部分的一或多個電路或邏輯部件、ASIC或FPGA。此外,視訊轉碼器200可以包括補充的或替代的處理器或處理電路,以執行這些功能和其他功能。
視訊資料記憶體230可以儲存將由視訊轉碼器200的部件編碼的視訊資料。視訊轉碼器200可以從例如視訊源104(圖1)接收儲存在視訊資料記憶體230中的視訊資料。DPB 218可以充當參考圖片記憶體,該參考圖片記憶體儲存參考視訊資料,以供視訊轉碼器200預測後續視訊資料時使用。視訊資料記憶體230和DPB 218可以由多種存放裝置(例如,動態隨機存取記憶體(DRAM)(其包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、電阻性RAM(RRAM)或其他類型的存放裝置)中的任何一個形成。視訊資料記憶體230和DPB 218可以由相同的存放裝置或不同的存放裝置提供。在各個實例中,視訊資料記憶體230可以與視訊轉碼器200的其他部件一起在晶片上,如圖所示,或者相對於那些部件在晶片外。
在本案內容中,對視訊資料記憶體230的引用不應被解釋為限於視訊轉碼器200內部的記憶體(除非如此具體地描述),亦不應被解釋為限於視訊轉碼器200之外的記憶體(除非如此具體地描述)。而是,對視訊資料記憶體230的引用應當被理解為儲存視訊資料的參考記憶體,其中視訊轉碼器200接收該視訊資料(例如,要編碼的當前塊的視訊資料)以進行編碼。圖1的記憶體106亦可以提供對來自視訊轉碼器200的各個單元的輸出的臨時儲存。
圖示圖3的各個單元以説明理解由視訊轉碼器200執行的操作。這些單元可以實現為固定功能電路、可程式設計電路或者其組合。固定功能電路代表提供特定功能、並在可以執行的操作上預先設置的電路。可程式設計電路代表可以被程式設計以執行各種任務,並且在可以執行的操作中提供靈活功能的電路。例如,可程式設計電路可以執行使可程式設計電路以軟體或韌體的指令所定義的方式進行操作的軟體或韌體。固定功能電路可以執行軟體指令(例如,用於接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些實例中,這些單元中的一或多個單元可以是不同的電路塊(固定功能或可程式設計),並且在一些實例中,這些單元中的一或多個可以是積體電路。
視訊轉碼器200可以包括由可程式設計電路形成的算數邏輯單位(ALU)、基本功能單元(EFU)、數位電路、類比電路及/或可程式設計核。在使用由可程式設計電路執行的軟體來執行視訊轉碼器200的操作的實例中,記憶體106(圖1)可以儲存視訊轉碼器200接收並執行的軟體的指令(例如,目標代碼),或者視訊轉碼器200中的另一個記憶體(未圖示)可以儲存此類指令。
視訊資料記憶體230被配置為儲存接收到的視訊資料。視訊轉碼器200可以從視訊資料記憶體230檢索視訊資料的圖片,並將視訊資料提供給殘差產生單元204和模式選擇單元202。視訊資料記憶體230中的視訊資料可以是將進行編碼的原始視訊資料。
模式選擇單元202包括運動估計單元222、運動補償單元224和訊框內預測單元226。模式選擇單元202可以包括其他功能單元,以根據其他預測模式來執行視訊預測。舉例而言,模式選擇單元202可以包括調色板單元、塊內複製單元(其可以是運動估計單元222及/或運動補償單元224的一部分)、仿射單元、線性模型(LM)單元等等。
模式選擇單元202通常協調多個編碼通道,以測試編碼參數的組合以及針對此類組合的最終速率失真值。編碼參數可以包括:CTU到CU的劃分、用於CU的預測模式、用於CU的殘差資料的變換類型、用於CU的殘差資料的量化參數等等。模式選擇單元202可以最終選擇具有比其他測試的組合更好的速率失真值的編碼參數的組合。
視訊轉碼器200可以將從視訊資料記憶體230檢索到的圖片劃分為一系列CTU,並將一或多個CTU封裝在片段中。模式選擇單元202可以根據樹結構(例如,上面所描述的HEVC的QTBT結構或四叉樹結構)來劃分圖片的CTU。如前述,視訊轉碼器200可以根據樹結構,經由劃分CTU來形成一或多個CU。此類CU通常亦可以稱為「視訊塊」或「塊」。
通常,模式選擇單元202亦控制其部件(例如,運動估計單元222、運動補償單元224和訊框內預測單元226)以產生針對當前塊(例如,當前CU、或者在HEVC中,PU和TU的重疊部分)的預測塊。對於當前塊的訊框間預測,運動估計單元222可以執行運動搜尋以辨識一或多個參考圖片(例如,儲存在DPB 218中的一或多個先前編碼的圖片)中的一或多個緊密匹配的參考塊。具體而言,運動估計單元222可以例如根據絕對差之和(SAD)、平方差之和(SSD)、平均絕對差(MAD)、均方差(MSD)等等,來計算表示潛在參考塊與當前塊的相似程度的值。運動估計單元222通常可以使用當前塊與正考慮的參考塊之間的逐取樣差異來執行這些計算。運動估計單元222可以辨識具有由這些計算所產生的最小值的參考塊,該參考塊指示與當前塊最緊密匹配的參考塊。
運動估計單元222可以形成一或多個運動向量(MV),這些MV定義參考圖片中的參考塊相對於當前圖片中的當前塊的位置。隨後,運動估計單元222可以將運動向量提供給運動補償單元224。例如,對於單向訊框間預測,運動估計單元222可以提供單個運動向量,而對於雙向訊框間預測,運動估計單元222可以提供兩個運動向量。隨後,運動補償單元224可以使用運動向量來產生預測塊。例如,運動補償單元224可以使用運動向量來檢索參考塊的資料。再舉一個實例,若運動向量具有分數取樣精度,則運動補償單元224可以根據一或多個內插濾波器,對用於預測塊的值進行內插。此外,對於雙向訊框間預測,運動補償單元224可以例如經由逐取樣平均或加權平均,來檢索由相應的運動向量辨識的兩個參考塊的資料,並對檢索到的資料進行組合。
再舉一個實例,對於訊框內預測或訊框內預測解碼,訊框內預測單元226可以根據與當前塊相鄰的取樣來產生預測塊。例如,對於定向模式,訊框內預測單元226通常可以在數學上組合相鄰取樣的值,並在當前塊上沿定義的方向填充這些計算的值以產生預測塊。再舉一個實例,對於DC模式,訊框內預測單元226可以計算與當前塊的相鄰取樣的平均值,並且產生預測塊以包括針對預測塊的每個取樣的該最終平均值。
模式選擇單元202將預測塊提供給殘差產生單元204。殘差產生單元204從視訊資料記憶體230接收當前塊的原始未編碼版本,並從模式選擇單元202接收預測塊。殘差產生單元204計算當前塊和預測塊之間的逐取樣差異。所得的逐取樣差異定義了當前塊的殘差塊。在一些實例中,殘差產生單元204亦可以決定殘差塊中的取樣值之間的差,以使用殘餘差分脈衝碼調制(RDPCM)來產生殘差塊。在一些實例中,可以使用執行二進位減法的一或多個減法器電路,來形成殘差產生單元204。
在模式選擇單元202將CU劃分為PU的實例中,每一個PU可以與亮度預測單元和對應的色度預測單元相關聯。視訊轉碼器200和視訊解碼器300可以支援具有各種大小的PU。如前述,CU的大小可以代表CU的亮度解碼塊的大小,而PU的大小可以代表PU的亮度預測單元的大小。假設特定CU的大小為2Nx2N,則視訊轉碼器200可以支援2Nx2N或NxN的PU大小來用於訊框內預測,並支援2Nx2N、2NxN、Nx2N、NxN等等的對稱PU大小來用於訊框間預測。視訊轉碼器200和視訊解碼器300亦可以對於訊框間預測,支援PU大小為2NxnU、2NxnD、nLx2N和nRx2N的非對稱劃分。
在模式選擇單元202不將CU進一步劃分成PU的實例中,每個CU可以與亮度解碼塊和對應的色度解碼塊相關聯。如前述,CU的大小可以代表CU的亮度解碼塊的大小。視訊轉碼器200和視訊解碼器300可以支援2Nx2N、2NxN或Nx2N的CU大小。
對於其他視訊解碼技術(例如,塊內複製模式解碼、仿射模式解碼和線性模型(LM)模式解碼,僅舉幾個實例),模式選擇單元202經由與解碼技術相關聯的各個單元,針對正在編碼的當前塊來產生預測塊。在一些實例中(例如,調色板模式編碼),模式選擇單元202可以不產生預測塊,而是產生語法元素,這些語法元素指示基於所選的調色板來重構塊的方式。在此類模式下,模式選擇單元202可以將這些語法元素提供給熵編碼單元220以進行編碼。
如前述,殘差產生單元204接收當前塊和對應的預測塊的視訊資料。隨後,殘差產生單元204產生當前塊的殘差塊。為了產生殘差塊,殘差產生單元204計算預測塊和當前塊之間的逐取樣差。
變換處理單元206將一或多個變換應用於殘差塊以產生變換係數的塊(本文稱為「變換係數塊」)。變換處理單元206可以將各種變換應用於殘差塊以形成變換係數塊。例如,變換處理單元206可以將離散餘弦變換(DCT)、方向變換、Karhunen-Loeve變換(KLT)或者概念上類似的變換應用於殘差塊。在一些實例中,變換處理單元206可以對殘差塊執行多個變換(例如,主變換和次要變換(如,旋轉變換))。在一些實例中,變換處理單元206不向殘差塊應用變換。
量化單元208可以對變換係數塊中的變換係數進行量化,以產生量化的變換係數塊。量化單元208可以根據與當前塊相關聯的量化參數(QP)值,來量化變換係數塊的變換係數。視訊轉碼器200(例如,經由模式選擇單元202)可以經由調整與CU相關聯的QP值,來調整應用於與當前塊相關聯的變換係數塊的量化程度。量化可能導致資訊的丟失,因此,量化後的變換係數的精度可能比變換處理單元206產生的原始變換係數的精度低。
根據本案內容的一或多個技術,量化單元208的量化單元208可以決定縮放的變換係數。決定縮放的變換係數可以包括:根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放。另外,量化單元208可以決定經標量量化係數。決定經標量量化係數可以包括:將標量量化應用於塊的經縮放的變換係數。另外,量化單元208可以應用神經網路,以針對塊的每個相應的變換係數來決定相應的概率集合。針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值。神經網路211的輸入可以包括縮放的變換係數和經標量量化係數。量化單元208可以基於針對塊的特定變換係數的概率集合,決定用於該特定變換係數的量化位準。
逆量化單元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可以在不對語法元素進行熵編碼的旁通模式下操作。
視訊轉碼器200可以輸出位元串流,該位元串流包括用於重構片段或圖片的塊所需要的經熵編碼的語法元素。具體而言,熵編碼單元220可以輸出位元串流。
關於塊描述了上面所描述的操作。此類描述應當被理解為用於亮度解碼塊及/或色度解碼塊的操作。如前述,在一些實例中,亮度解碼塊和色度解碼塊是CU的亮度和色度分量。在一些實例中,亮度解碼塊和色度解碼塊是PU的亮度和色度分量。
在一些實例中,不需要針對色度解碼塊重複針對亮度解碼塊執行的操作。舉一個實例,不需要重多工於辨識亮度解碼塊的運動向量(MV)和參考圖片的操作,來辨識用於色度塊的MV和參考圖片。相反,可以縮放用於亮度解碼塊的MV以決定用於色度塊的MV,並且參考圖片可以是相同的。再舉一個實例,對於亮度解碼塊和色度解碼塊,訊框內預測處理可以是相同的。
用此方式,視訊轉碼器200表示被配置為對視訊資料進行編碼的設備的實例,該設備包括被配置為儲存視訊資料的記憶體、以及在電路中實現並且被配置為執行以下操作的一或多個處理單元:決定縮放的變換係數,其中決定縮放的變換係數包括:根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放;決定經標量量化係數,其中決定經標量量化係數包括:將標量量化應用於塊的經縮放的變換係數;應用神經網路,其中該神經網路針對塊的每個相應的變換係數來決定相應的概率集合,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;基於針對塊的特定變換係數的概率集合,決定用於該特定變換係數的量化位準;在包括視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於特定變換係數的量化位準。
圖4是示出可以執行本案內容的技術的示例性視訊解碼器300的方塊圖。提供圖4以便於解釋的目的,故其不應被認為是對本案內容中廣泛例示和描述的技術的限制。為了便於說明起見,本案內容描述了根據VVC(在開發中的ITU-T H.266)和HEVC(ITU-T H.265)的技術的視訊解碼器300。但是,本案內容的技術可以由被配置為實現其他視訊解碼標準的視訊解碼設備來執行。
在圖4的實例中,視訊解碼器300包括編碼圖片緩衝器(CPB)記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310、濾波單元312和解碼圖片緩衝器(DPB)314。CPB記憶體320、熵解碼單元302、預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310、濾波單元312和DPB 314中的任何一個或全部,可以在一或多個處理器中或者在處理電路中實現。例如,可以將視訊解碼器300的單元實現成作為硬體電路的一部分、或者處理器的一部分的一或多個電路或邏輯部件、ASIC或FPGA。此外,視訊解碼器300可以包括額外的或替代的處理器或處理電路,以執行這些功能和其他功能。
預測處理單元304包括運動補償單元316和訊框內預測單元318。預測處理單元304可以包括用於根據其他預測模式來執行預測的其他單元。舉例而言,預測處理單元304可以包括調色板單元、塊內複製單元(其可以形成運動補償單元316的一部分)、仿射單元、線性模型(LM)單元等等。在其他實例中,視訊解碼器300可以包括更多、更少或者不同的功能部件。
CPB記憶體320可以儲存將由視訊解碼器300的部件解碼的視訊資料(例如,編碼的視訊位元串流)。例如,可以從電腦可讀取媒體110(圖1)中獲得儲存在CPB記憶體320中的視訊資料。CPB記憶體320可以包括儲存來自編碼視訊位元串流的編碼視訊資料(例如,語法元素)的CPB。而且,CPB記憶體320可以儲存除編碼圖片的語法元素之外的視訊資料,例如,表示來自視訊解碼器300的各個單元的輸出的臨時資料。DPB 314通常儲存解碼的圖片,視訊解碼器300在解碼編碼的視訊位元串流的後續資料或圖片時,可以輸出及/或使用該解碼圖片作為參考視訊資料。CPB記憶體320和DPB 314可以由諸如DRAM(其包括SDRAM、MRAM、RRAM或其他類型的存放裝置)之類的各種存放裝置中的任何一個來形成。CPB記憶體320和DPB 314可以由相同的存放裝置或不同的存放裝置來提供。在各個實例中,CPB記憶體320可以與視訊解碼器300的其他部件一起在晶片上,或者相對於那些部件在晶片外。
補充地或替代地,在一些實例中,視訊解碼器300可以從記憶體120(圖1)中檢索解碼的視訊資料。亦即,記憶體120可以如上文參照CPB記憶體320所論述的來儲存資料。類似地,當視訊解碼器300的一些或全部功能利用由視訊解碼器300的處理電路執行的軟體來實現時,記憶體120可以儲存將由視訊解碼器300執行的指令。
圖示圖4的各個單元以説明理解由視訊解碼器300執行的操作。這些單元可以實現為固定功能電路、可程式設計電路或者其組合。類似於圖3,固定功能電路代表提供特定功能、並在可以執行的操作上預先設置的電路。可程式設計電路代表可以被程式設計以執行各種任務,並且在可以執行的操作中提供靈活功能的電路。例如,可程式設計電路可以執行軟體或韌體,軟體或韌體使可程式設計電路以軟體或韌體的指令所定義的方式進行操作。固定功能電路可以執行軟體指令(例如,用於接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些實例中,這些單元中的一或多個單元可以是不同的電路塊(固定功能或可程式設計),並且在一些實例中,這些單元中的一或多個可以是積體電路。
視訊解碼器300可以包括ALU、EFU、數位電路、類比電路及/或由可程式設計電路形成的可程式設計核。在經由在可程式設計電路上執行的軟體來執行視訊解碼器300的操作的實例中,片上或片外記憶體可以儲存視訊解碼器300接收並執行的軟體的指令(例如,目標代碼)。
熵解碼單元302可以從CPB接收編碼的視訊資料,並且對視訊資料進行熵解碼以再現語法元素。預測處理單元304、逆量化單元306、逆變換處理單元308、重構單元310和濾波單元312可以基於從位元串流中提取的語法元素來產生解碼的視訊資料。
通常,視訊解碼器300在逐塊的基礎上重建圖片。視訊解碼器300可以單獨地對每個區塊執行重構操作(其中當前正在重構(亦即,解碼)的塊可以稱為「當前塊」)。
熵解碼單元302可以對定義量化的變換係數塊的量化的變換係數的語法元素、以及諸如量化參數(QP)及/或變換模式指示之類的變換資訊進行熵解碼。逆量化單元306可以使用與量化的變換係數塊相關聯的QP來決定量化的度,並且同樣地,決定用於逆量化單元306應用的逆量化度。例如,逆量化單元306可以執行按位元左移運算以對量化的變換係數進行逆量化。逆量化單元306可以由此形成包括變換係數的變換係數塊。
在逆量化單元306形成變換係數塊之後,逆變換處理單元308可以將一或多個逆變換應用於變換係數塊以產生與當前塊相關聯的殘差塊。例如,逆變換處理單元308可以向這些變換係數塊應用逆DCT、逆整數變換、逆Karhunen-Loeve變換(KLT)、逆旋轉變換、逆方向變換或者另一種逆變換。
此外,預測處理單元304根據由熵解碼單元302進行熵解碼的預測資訊語法元素,來產生預測塊。例如,若預測資訊語法元素指示當前塊是訊框間預測的,則運動補償單元316可以產生預測塊。在這種情況下,預測資訊語法元素可以指示DPB 314中的從其檢索參考塊的參考圖片、以及標識參考圖片中的參考塊相對於當前圖片中的當前塊的位置的運動向量。運動補償單元316通常可以以與關於運動補償單元224(圖3)所描述的方式基本上相似的方式,來執行訊框間預測處理。
再舉一個實例,若預測資訊語法元素指示當前塊是訊框內預測的,則訊框內預測單元318可以根據由預測資訊語法元素指示的訊框內預測模式來產生預測塊。再次,訊框內預測單元318通常可以以與關於訊框內預測單元226(圖3)所描述的方式基本上相似的方式來執行訊框內預測處理。訊框內預測單元318可以從DPB 314檢索當前塊的相鄰取樣的資料。
重構單元310可以使用預測塊和殘差塊來重構當前塊。例如,重構單元310可以將殘差塊的取樣添加到預測塊的對應取樣以重構當前的塊。
濾波單元312可以對重構的塊執行一或多個濾波操作。例如,濾波單元312可以執行解塊操作,以減少沿著重構塊的邊緣的塊狀偽像。不一定在所有實例中皆執行濾波單元312的操作。
視訊解碼器300可以將重構的塊儲存在DPB 314中。例如,在不執行濾波單元312的操作的實例中,重構單元310可以將重構的塊儲存到DPB 314中。在執行濾波單元312的操作的實例中,濾波單元312可以將濾波的重構塊儲存到DPB 314中。如前述,DPB 314可以向預測處理單元304提供參考資訊,例如用於訊框內預測的當前圖片的取樣以及用於後續運動補償的先前解碼的圖片。此外,視訊解碼器300可以從DPB 314輸出解碼的圖片(例如,解碼的視訊),以便隨後在諸如圖1的顯示裝置118之類的顯示裝置上呈現。
量化是視訊解碼流水線的一部分。在一些實例中,量化是解碼流水線中發生資訊丟失的唯一步驟。當前,視訊解碼實現可以使用貪婪搜尋方法或啟發式方法來進行量化決策。使用標量量化來決定初始量化值,該標量量化可以經由移位及/或縮放和捨入到最接近的整數值來對係數捨入。經由擾動這些量化值,可以對速率(傳輸訊號所需要的位元數)和失真(重構訊號的品質損失)進行平衡。給定足夠的時間,窮舉搜尋可以找到對某些折衷參數lambda來說最佳的量化值的帕累托(Pareto)前沿。但是,在實踐中,線上執行這種搜尋可能是不可行的。本案內容提出了訓練神經網路(例如,神經網路211),並輸出由窮舉搜尋產生的量化值。
傳統的RDOQ方法使用具有高計算複雜度的搜尋演算法。由於畫面播放速率限制和有限的片上面積,這些解決方案對於片上系統硬體上的即時視訊解碼可能是不可行的。為了決定變換係數塊的(例如,局部的)最佳量化位準,任何搜尋演算法必須針對每個圖元都嘗試至少幾個不同的量化位準,並即時選擇最佳的量化位準。HEVC的稱為HM的開源參考實施方式,實現了貪婪RDOQ演算法(例如,參見M.Karczewicz、Y.Yan、I.Chong,「速率失真最佳化量化」,ITU-T SG 16 Q.6的視訊編碼專家組(VCEG),VCG-AH21,2008)。本案內容中描述的方法使用深度學習,經由神經網路211來學習搜尋演算法,使得利用神經網路211的單個前向通路,可以並行地推斷用於許多變換係數塊的量化位準。這可以經由利用神經網路的並行化功能來加速RDOQ推理,並且推理效能要比傳統方法更快。對於具有專用神經處理單元的片上系統(SoC)(或AI處理器),視訊轉碼器200使用的神經網路211的實現不需要任何其他片上區域。可以使用經標注的資料集,以有監督的方式對神經網路211進行離線訓練。可以將神經網路211組織為輸入X和標籤Y,其中在看到輸入X時,對神經網路211進行訓練以預測Y。在本案內容中,X包含縮放的變換係數和對應的標量量化變換係數。為了收集標籤Y,可以使用RDOQ演算法來決定RDOQ量化的變換係數,並且Y是標量量化變換係數和RDOQ量化的變換係數之間的差。
晶片設計的最新發展是對用於神經網路推理的專用部件的整合。經由將神經網路與特定於域的演算法結合使用或者替代特定於域的演算法,神經處理單元(NPU)可以消除傳統上在片上系統(SoC)上存在的對於不同域的專用硬體的需求。例如,高品質影像處理通常需要的圖像訊號處理器(ISP)流水線正在被神經網路完全替代(或者具有可以被神經網路替代的部件)(參見E.Schwartz、R.Giryes和A.M.Bronstein,「DeepISP:走向學習端到端影像處理流水線」,IEEE Transactions on Image Processing, vol. 28, no. 2, pp. 912–923, 2018)。從硬體設計的角度來看,這是一個趨勢,因為專用ISP硬體在晶片上保留了相當大的面積。另外,用於最佳化NPU功耗的資源現在不僅使ISP流水線受益,而且使使用NPU的所有其他處理亦受益。
類似地,可以在專用硬體中實現通常稱為HEVC的最新視訊壓縮標準H.265(參見G.J.Sullivan、J.Ohm、W.Han和T.Wiegand,「高效視訊編碼(HEVC)標準概述」,IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, pp. 1649–1668, 2012)。先前的工作意欲使用例如以下的深度學習來替換或增強HEVC標準的部件:訊框內預測模式決策(參見T. Laude和J. Ostermann,「HEVC的基於深度學習的訊框內預測模式決策」,2016年圖片編碼研討會(PCS),IEEE,2016,第1-5頁)、CU樹拆分決策(參見,M.Xu、T.Li、Z.Wang、X.Deng、R.Yang和Z.Guan,「降低HEVC的複雜性:深度學習方法」,IEEE Transactions on Image Processing, vol. 27, no. 10, pp. 5044–5059, 2018)、殘差預測(參見Z.-T.Zhang、C.-H、Yeh、L.-W.Kang和M.-H.Lin,「用於基於深度學習的HEVC的基於CTU的高效訊框內編碼」,2017年亞太訊號與資訊處理協會年度峰會和會議(APSIPA ASC),IEEE,2017年,第661-664頁)、或者甚至訊框內速率控制(參見J.-H. Hu、W.-H.Peng和C.-H.Chung,「HEVC/H.265訊框內速率控制的增強學習」,2018年IEEE國際電路與系統專題論述會(ISCAS),IEEE,2018年,第1-5頁)。當標準遵從性不是一個要求時,已經將端到端學習視訊壓縮提出作為一種替代的視訊解碼流水線。
速率失真最佳化量化(RDOQ)是已知比傳統的標量量化(SQ)提供更好的位元速率的符合標準的量化程序(參見M.Karczewicz、Y.Ye和I.Chong,「速率失真最佳化量化」,ITU-T Q,2008年第6卷)。RDOQ是一種形式的自我調整量化,其中使用塊的統計資訊來決定其量化位準。原始的RDOQ程序提出了針對所有係數的所有可能量化位準的暴力搜尋,例如使用維特比(Viterbi)演算法。這種暴力搜尋在計算上昂貴並且難以並行化。因此,為找到最佳值而進行暴力搜尋可能是最壞的情況。
對於某個給定的成本權衡參數λ ,經由權衡失真與位元速率,RDOQ可以勝過SQ。在實踐中,該程序經由(例如,近似地)求解以下離散最佳化問題,為每個變換係數設置新的量化位準:
Figure 02_image005
(1)
在式1中,R 量測位元速率,並且λ 是拉格朗日係數。D 量測量化的變換係數的向量相對於縮放的變換係數的原始向量的失真。
在另一個實例中,該程序經由(例如,近似地)求解以下離散問題,來決定用於每個變換係數的量化位準:
Figure 02_image007
(1’) 在式(1')中,D (q ,x )是在量化位準q 和縮放的變換係數x 之間計算的失真度量(例如,均方誤差),R (q )是與具有熵編碼器的編碼q 相關聯的位元速率,並且
Figure 02_image009
在即時編碼-解碼設置中以及在存在(例如,硬體施加)畫面播放速率約束的情況下,這些方法可能仍然太昂貴。另外,這些方法可能難以並行化。另外,並行化版本可能難以在硬體上實現,並且可能需要在晶片上為RDOQ電路保留額外的區域。
有潛力解決這兩個問題的有希望的解決方案方向是訓練神經網路,以模仿昂貴的RDOQ演算法(例如,參見T.N.Canh、M.Xu和B.Jeon,「速率失真最佳化量化:深度學習方法」,Proc. IEEE High Perform. Extreme Comput. Conf, 2018, pp. 1–4,以下簡稱「Canh」)。這種方法需要權衡時鐘週期和片上面積與乘法累加(MAC)操作和能耗。並行化可能很容易實現(例如,因為大多數神經網路推斷用硬體都被設計為處理一批多個數據點,這是因為推斷用硬體允許傳遞一批的資料以及單個資料點等等)。但是,Canh使用了昂貴的基於視覺幾何組(VGG)的語義分割模型,該模型具有大約1.38億個參數。參見J.Long、E.Shelhamer和T.Darrell,「用於語義分割的全迴旋網路」,IEEE電腦視覺和模式辨識會議論文集,2015年,第3431–3440頁。
圖5A圖示基於神經網路的RDOQ流水線的示意圖。量化單元208(圖3)可以實現圖5A的基於神經網路的RDOQ流水線。在圖5A的實例中,神經網路211將縮放的變換係數500(縮放的TC)和對應的標量量化的量化位準502作為輸入,並預測每個變換係數的加性殘差。例如,如圖5A的實例中所示,該流水線在加法器512處應用(例如,相加)網路輸出(亦即,調整值510)和標量量化量化位準(量化的TC)502,以產生更新的量化位準514。視訊轉碼器200(例如,HM 16.20或其他編碼器)應用速率失真(RD)決定程序516,以決定速率失真估計518。速率失真估計518估計將量化位準502替換為更新的量化位準514的效果。視訊轉碼器200可以經由執行熵編碼、產生位元速率、以及經由計算原始輸入視訊和經編碼視訊的峰值訊雜比,計算速率失真估計518。
圖5B是根據本案內容的一或多個技術的基於神經網路的RDOQ流水線的替代實例示意圖。具體而言,圖5B是示出基於神經網路的RDOQ流水線的實例示意圖的概念圖,其中在神經網路推斷期間忽略每個變換係數的符號。在圖5B的實例中,神經網路模型採用絕對值縮放的變換係數(縮放的TC)(550)和量化的變換係數(量化的TC)(552)作為輸入。另外,視訊轉碼器200針對每個變換係數來預測加性調整值(554)。為了預測變換係數的加性調整值,視訊轉碼器200可以丟棄變換係數的符號(556)。換句話說,視訊轉碼器200可以決定變換係數的絕對值。隨後,視訊轉碼器200可以應用神經網路(558),來決定變換係數的預測的加性調整值(554)。在圖5B的實例中,可能的一組調整值是{-1,0}。為了獲得最終的量化的變換係數(更新的量化位準)(560),視訊轉碼器200向絕對值的量化的變換係數增加(562)調整(554)。視訊轉碼器200經由乘法(566)插回符號(564),從而決定最終量化位準(568)。隨後,視訊轉碼器200可以使用例如上文參照圖5A所描述的內容(572),來獲得最終量化的量化位準的速率失真估計(570)。
本案內容擴展了Canh的工作,並至少做出以下貢獻: 1)RDOQ的兩種神經架構:全迴旋神經網路和自回歸網路。與Canh的工作相比,這兩種架構的參數要少得多,這使得這些架構可能既執行速度更快,又具有更高的記憶體效率。 2)一種用於根據對整個塊的速率失真的經驗影響,來縮放每個變換係數的交叉熵損失的方法; 3)一種獲得高品質訓練標籤,以訓練神經網路來模仿昂貴的RDOQ演算法的方法; 4)一種由於對其相應標量量化的量化位準為0的變換係數的錯誤分類而限制增長率的方法。
根據本案內容的一或多個技術,計算系統(例如,源設備102、目的地設備116或一或多個其他設備中的一或多個)訓練神經網路,以決定針對給定塊之每一者變換係數的量化位準,例如,如圖5A和圖5B中所顯示的。隨後,該計算系統可以使用啟發式搜尋來收集高品質的訓練標籤。隨後,該計算系統可以將這些訓練標籤用作訓練目標。因此,在一些實例中,對網路進行訓練以模仿RDOQ/暴力殘差。
在一些實例中,計算系統可以針對該資料,訓練兩種類型的神經網路(亦即,全迴旋神經網路(CNN)和自回歸模型(ARM))。可以將這些神經網路整合到轉碼器(例如,HM或另一種轉碼器實現)中,以替代一般RDOQ。
對視訊轉碼器的硬體實現的畫面播放速率限制可能禁止在硬體上實現一般的RDOQ演算法。如先前所提及的,此類實現將需要為RDOQ電路保留額外的晶片面積。使用深度學習方法可以克服這些障礙,在深度學習方法中,時鐘週期和片上面積可以與乘法累加(MAC)操作和能耗進行權衡。
x 為大小為N×N 的縮放的變換係數塊,其中該塊大小N ϵ {4,8,16,32}對應於HEVC允許的塊尺寸。令fRDOQ是將塊x 映射到N×N 量化位準qRDOQ的RDOQ演算法。另外,令q SQ 為使用標量量化方法獲得的經量化的量化位準。
類似於Canh,計算系統可以經由輸出應當如何對q SQ 的每個元素進行調整來近似q RDOQ ,來訓練網路模仿f RDOQ 。亦即,給定未量化的標量變換係數及其對應的經標量量化係數的輸入元組(x ,q SQ ),網路將預測Δ使得Δ + qSQ = fRDOQ (x )。以這種方式,網路經由將內容不可知的量化轉換為改進的內容感知的量化,來執行細化。換句話說,給定現有的量化向量qSQ ,返回向量Δ使得
Figure 02_image011
在一些實例中,計算系統經由輸出應當如何對q SQ 的每個元素進行細化,來訓練網路模仿f RDOQ 。具體而言,在給定未量化的變換係數x的情況下,計算系統對網路進行訓練以輸出調整值Δ:
Figure 02_image013
用此方式,網路經由將內容不可知的量化q SQ 轉換為改進的內容感知的量化
Figure 02_image015
來執行細化。在一些實例中,僅使用該網路來預測殘差量化位準,並且可以跳過搜尋。可以在視訊解碼流水線的符號位元隱藏步驟之前,應用網路決策。
由於網路的效能受標籤品質的限制,因此本案內容提出花費另外的離線時間來進一步細化由RDOQ提供的標籤。計算系統使用樹搜尋方法。首先,對未量化的係數x 進行縮放,以使未量化的係數位於[0;8]內。對於每個未量化的縮放的係數,可以使用一或多個量化選項(例如,向上捨入或向下捨入)。一種示例性方法包括局部貪婪搜尋,該局部貪婪搜尋針對給定的係數順序(例如,光柵掃瞄順序),窮舉地搜尋每個4×4係數組的最低成本。在該上下文中,成本是指聯合速率失真目標(如式1中該)。該程序可以重複npasses 次。另一個實例是基於A*演算法的啟發式搜尋。返回所獲得的量化位準,並保存以進行網路訓練。
計算系統使用監督學習,在產生的資料上訓練神經網路f 。例如,計算系統可以在RDOQ解決方案所產生的資料(X, Δ) 上訓練神經網路f 。網路的最後一層將具有N × N × k 輸出,其中k 是可能的量化值的數量。網路的輸出可以對應於每個調整值的未正規化的對數概率。計算系統對網路進行訓練,以使選擇由資料提供的量化值的概率最大化,或者等效地針對所有量化係數
Figure 02_image017
,使資料的負對數概度性最小化:
Figure 02_image019
(2)
在一些實例中,計算系統對網路進行訓練,以使選擇由資料提供的量化值的概率最大化,或者等效地針對所有量化係數
Figure 02_image017
,使資料的負對數概度性最小化:
Figure 02_image021
為了避免資料分佈上的(不可行的)邊緣化,使用了小批次(Minibatch)梯度下降法。
基於專家軌跡的實例來訓練網路,通常稱為模仿學習(例如,參見S.Schaal,「模仿學習是通往人形機器人的路線嗎?」,《認知科學趨勢》,第3卷,第6期,第233-242頁,1999)(或具體地說,行為克隆)。實際上,網路f 的效能受到專家(f FROQ )的的效能限制。亦即,訓練後的網路將僅與所提供的訓練標籤一樣好。在該任務中,為我們的資料獲取並提供最佳標籤(量化位準)可能會在計算上受到阻礙。但是,可以經由離線搜尋方法來提高訓練標籤的品質。在測試時,僅使用網路來預測殘差量化位準,並且跳過搜尋。
可以在神經網路的前向傳遞期間,丟棄輸入變數的符號,例如,如圖5B的(556)中所示。視訊轉碼器200在添加調整值之後插入符號。因為符號與量化決策無關,所以丟棄符號可以簡化最佳化問題,並且可以使網路(例如,神經網路558)更容易訓練。可以經由減去經驗均值並根據能夠從訓練資料集獲得的經驗標準差進行縮放,將網路(例如,神經網路558)的所有輸入標準化為根據標準正態分佈進行分佈。由於輸入資料統計資訊可能在不同的QP和預測結構之間發生顯著變化,因此可以為每對QP和預測結構訓練單獨的模型。
在一些實例中,計算系統訓練兩種類型的神經網路:前饋網路及/或自回歸網路。此外,在一些實例中,為了簡化學習任務,可以將訓練目標設置為在經標量量化係數qSQ 與訓練目標qRDOQ 和限幅Δ之間的差,使得所有訓練目標皆處於有限集合中。此外,在一些實例中,可以使用限幅將調整值限制為可能的調整值的一個子集。例如,為了將調整值限制為集合{-1,0; 1},可以使用下式:
Figure 02_image023
(3) 訓練集可以由形式為(X;Y)的元組組成,其中X := (x; qSQ )或它們的變換形式,並且在圖5A和圖5B中描述了Y := Δ和推斷程序。為了減少可能的訓練目標的數量,刪除了小於-1和大於+1的值。在其他實例中,訓練目標位於{-1,0}中。
計算系統可以訓練兩種類型的神經體系結構:前饋全迴旋模型(FCN)和自回歸模型(ARM)。前饋模型速度快,這是因為它們只需要一次推測程序就可以獲得所有係數的預測
Figure 02_image015
。相比而言,自回歸模型可以進行一對一的預測,這可能會使它們比FCN慢,但允許對複雜度較高的資料進行建模。在圖5B中描述了這兩種類型的網路的推理程序。
全迴旋神經網路:在一些實例中,全迴旋神經網路fFCN 的輸入可以包括縮放的變換係數x (例如,未量化的係數)和標量量化的量化位準qSQ (例如,標量量化的基線量化位準)或者它們的某種變換,針對每一個變換係數,同時地輸出所有k 個可能的調整值(例如,2、3個可能的調整值)的概率。
Figure 02_image025
(4)
該方法類似於以下文件中的方法:T.N.Canh、M.Xu和B.Jeon,「速率失真最佳化量化:一種深度學習方法」,Proc. IEEE High Perform. Extreme Comput. Conf, 2018, pp. 1–4,該方法亦使用全迴旋架構。與RDOQ相比,該方法的優點是不再需要搜尋,並且可以使用單個神經網路前向調用來獲得調整值,這可以在晶片上已經存在的專用硬體上輕鬆執行。
自回歸網路:使用前饋網路(例如,全迴旋網路)的潛在缺點是前饋網路對所有係數同時做出的聯合決策可能會限制預測的品質。這樣做的原因是,單個變換係數的最佳決策可能取決於所有其他變換係數的決策。另外,對於最終成本而言,某些決策可能比其他決策更為重要,這是因為量化值的分佈在塊之每一者位置都不同。出於這種原因,本案內容探索了自回歸神經網路,對於某種給定的係數順序(例如,光柵掃瞄順序),其調節其在所有先前係數Δi 上的變換係數I 的輸出:
Figure 02_image027
與前饋情況類似,使聯合負對數可能性最小,其可以表示為條件的乘積:
Figure 02_image029
(6) 這裡,在i = 1時的第一係數的調節(conditioning)等於Δ<1 =ф 。在另一個實例中,聯合負對數概度率可以表示為條件的乘積:
Figure 02_image031
(6’) 在式(6’)中,第一係數i = 1僅基於等於Δ<1 =ф 的原始變換係數。
可以以使推測並行化的方式,來設計自回歸神經網路(參見Y.Bengio和S. Bengio,「使用多層神經網路建模高維離散資料」,Advances in Neural Information Processing Systems, 2000, pp. 400–406,以及H.Larochelle和I.Murray,「神經自回歸分佈估計器」,Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics, 2011, pp. 29–37),其使用稱為教師強迫(teacher forcing)的方案實現高效的訓練。代替逐個預測輸出值並填充至先前的預測
Figure 02_image033
,將基本事實作為調節提供。換句話說,不是逐個地進行預測(亦即,對所有i 都使用預測
Figure 02_image035
),而是對所有時間步長,都將基本事實Δ<i 提供給ARM,以並行地產生預測
Figure 02_image015
。結果,視訊轉碼器200在訓練期間僅查詢網路(例如,神經網路558)一次。
但是,在沒有基本事實可用的測試時間,獲得完整預測
Figure 02_image015
所需的網路查詢數量可以等於塊的維數:N2 。當以執行時間效率為主要考慮因素時,這會使與前饋網路相比,自回歸神經網路不是那麼吸引人的選擇。最近的工作經由利用條件概率可以不依賴於所有先前的輸出來緩解該問題(例如,參見A.J.Wiggers和E.Hoogeboom,「使用預測自回歸模型進行預測取樣」,arXiv preprint arXiv:2002.09928,2020)。本案內容的技術亦可以利用該方法,這是因為該方法允許利用資料不平衡,以便潛在地減少取樣時間。
如本案內容中的其他地方所提及的,本案內容探索了用於我們的實驗的兩種神經網路架構:全迴旋神經網路(FCN)和具有全域條件的自回歸模型(ARM)。在不同的實例中,層數、核心大小(用於FCN)、每層隱藏單元/通道數量、啟動函數、學習率、BatchNorm(例如,參見S.Ioffe和C.Szegedy,「批次處理正規化:經由減少內部協變數偏移來加速深度網路訓練」,第32屆國際機器學習國際會議論文集-第37卷,ser.ICML'15.JMLR.org,2015年,第448-456頁)和Dropout(丟棄)(例如,參見N.Srivastava、G.Hinton、A.Krizhevsky、I.Sutskever和R.Salakhutdinov,「Dropout:防止神經網路過度擬合的簡單方法」,J.Mach.Learn.Res., vol. 15, no. 1, p. 1929–1958, Jan. 2014)的使用,其他各個態樣可以有所不同。
FCN架構可以包括具有固定核心大小和通道深度的多個2D迴旋層(或者由其組成)。每一層之後可以是具有預定的丟棄概率p 的丟棄層或BatchNorm層和ReLU非線性。必要時可以使用零填充,以確保每層的輸出高度和寬度尺寸保持恆定。最後的迴旋層可以執行1 × 1迴旋,並且可以具有等於k(可能的調整值的數量)的通道深度。在一些實例中,通道深度等於3,以輸出每個預測類的logits(按-1、0和+1的順序)。在其他實例中,通道深度等於2或其他值。
圖6A是根據本案內容的一或多個技術的實例全迴旋網路600。如在圖6A的實例中所示,提供給網路600的輸入資料602可以包括正方形塊的DCT係數。在一些實例中,輸入資料602包括縮放的變換係數和量化的變換係數。網路600包括第一層集604、第二層集606和第三層集608。層集604、606、608中的每一個都包括迴旋網路,其中神經元具有二維3x3接收場(即3x3 Conv2D)。迴旋網路的輸出由二維批次處理正規化層(Batchnorm2D)或二維丟棄層(Dropout2D)進行處理。Batchnorm2D層或dropout2D層的輸出由修正線性單元(ReLU)層進行處理。將層集608的輸出提供給迴旋層610,其中每個神經元具有二維1x1接受場(亦即,1x1 Conv2D)。網路600亦包括輸出層612,其接收迴旋層610的輸出。在圖6A的實例中,輸出層612將logit函數應用於迴旋層610的輸出,以產生潛在調整值(在本上下文中可以稱為殘差)的概率值(例如,對數概率)。
圖6B是根據本案內容的一或多個技術的另一種實例全迴旋網路650。在圖6B的實例中,網路650包括層集652、654和656。類似於層集604、606和608(圖6A),層集652、654和656中的每一個包括3x3 Conv2D網路、batchnorm2D或dropout2D層和ReLU層。在圖6B的實例中,網路650接收輸入資料658。輸入資料658可以包括縮放的變換係數和量化的變換係數。此外,網路650包括正規化層660,其例如經由以下方式來對輸入資料658進行標準化:減去資料集的經驗均值,並除以經驗標準差。層集652接收正規化的輸入資料。
網路650亦包括迴旋層662,其中每個神經元具有二維1x1接收場(亦即,1x1 Conv2D)。迴旋層662對層集656的輸出進行處理。網路600包括將argmax函數應用於迴旋層662的輸出的輸出層664,從而產生網路650的輸出。
圖7A是根據本案內容的一或多個技術,示出具有調節層的自回歸模型(ARM)架構700的實例示意圖的概念圖。在圖7A的實例中,ARM架構700包括兩個軌道(或由兩個軌道組成):調節層702和自回歸層704。調節層702和自回歸層704經由門控的全連接層706進行連接。自回歸層704以獨熱(one-hot)編碼調整量Δ作為輸入,其中獨熱編碼的調整量向量包含:與資料集中記錄的RDOQ的調整決策相對應的向量元素中的數字1、以及針對該向量中所有其他元素的數字0,而調節層702則採用與迴旋神經網路(CNN)相同的輸入。每個嚴格的三角形層都是一個線性層,它以能保留自回歸結構的方式來對權重遮罩:第i 個輸出通道僅取決於輸入Δ<i 。這對係數施加了順序。在一些實例中,使用光柵掃瞄順序。但是,在其他實例中,可以使用任何掃瞄順序。門層706中的每一個可以包括輸出2n 個通道的全連接層(或者由其組成)。經由sigmoid來經由前n 個通道,隨後將結果與後n 個通道相乘。
如前述,圖7A是具有調節層702的ARM的示意圖。第一ARM層可以經由嚴格的三角形權重層來使用因果關係,以確保不違反連續殘差的時間依賴性。每個ARM層可以經由相應的隱藏層,從調節網路接收關於塊的全域資訊(例如,標量量化的量化位準和縮放的變換係數)。每個ARM層及/或調節層之後都可以跟著具有預定dropout概率p 的dropout層或BatchNorm層和ReLU非線性。
在圖7B中圖示另一種實例ARM架構750。ARM架構750類似於ARM架構700(圖7A),除了每個層集的第二層使用dropout而不是batchnorm之外。
除了在訓練期間改變神經網路(例如,神經網路558)的架構和超參數之外,亦可以使用對訓練方法的幾種變型來潛在地獲得更強的效能。
可以考慮不同的輸入變換和輸入類型。實例包括帶有偏移和不帶有偏移的標量量化變換係數。對於具有偏移的標量量化的變換係數,視訊轉碼器200可以使用具有偏移的HM16.20的標量量化(亦即,HM-SQ)。縮放的變換係數輸入亦可以是變化的輸入,其中代替從HM16.20獲得的縮放的變換係數,可以使用縮放的變換係數和量化的變換係數之間的偏移量,該偏移量等於由於量化而丟失的資訊。
調整值:輸出類別的數量k決定了調整值的集合。因為本案內容的目的是降低每幅圖片的位元速率,所以任何此類集合應當至少包含{-1,0}。設置k = 2限制了模型(例如,神經網路558)可以做出的可能決策集。但是,調整值分佈可能會在0處達到高峰,並且進行二進位分類訓練的便利性可能超過模型的有限決策能力。
損失縮放:當視訊轉碼器200使用HM16.20獲得準確的率估計時,可能無法使用隨機梯度下降來訓練網路(例如,神經網路558)以直接最佳化速率失真。這種限制可能會阻礙訓練功能強大的模型,這是因為交叉熵損失可能並不總是適合於速率失真。這是由於以下的事實:交叉熵會在所有類和變換係數之間平均懲罰所有分類錯誤。但是,在視訊解碼中使用的速率失真函數中不存在這種對稱性。錯誤地輸出Δ為0而不是Δ為-1會比反分類錯誤(亦即,Δ為-1而不是Δ為0)對成本產生不同的影響。類似地,在塊中的左升頻轉換係數(亦即,DC變換係數)中產生的分類誤差對於速率失真的影響與在另一變換係數中產生相同誤差的影響不同。但是,在訓練網路時使用交叉熵作為損失函數,可以等同地懲罰這些分類錯誤。
為了減輕這種限制,可以計算速率失真敏感性圖,其根據每個變換係數相對於其他變換係數而對速率失真的經驗影響,對每個變換係數處的交叉熵損失進行縮放。速率失真敏感性圖的使用可以更加強調對於塊的速率失真具有較大影響的變換係數。經由以下方式來計算該圖:獲取量化的變換係數在訓練集中的單邊偏移(例如,-1或+1)引起的速率失真變化的絕對值的總和,並除以所有變換係數上的這些值的總和,以便使總和為1。在訓練期間,可以將每個變換係數處的交叉熵值乘以該圖中的相應標量值。
因此,在一些實例中,作為訓練神經網路的一部分,設備(例如,源設備102或另一個設備)可以決定神經網路的輸出的交叉熵損失(例如,所決定的用於特定變換係數的量化位準)。隨後,該設備可以基於速率失真敏感性圖,對神經網路的交叉熵損失進行縮放。該設備可以基於縮放的交叉熵損失,對神經網路進行訓練。例如,該設備可以使用縮放的交叉熵損失來執行反向傳播演算法,以更新神經網路的參數。
如先前所提及的,調整值分佈可能嚴重偏斜。為了促進訓練,可以使用類別平衡,相對於顯性類別0來增加不太頻繁類別的權重。可以經由網格搜尋,來決定用於類別平衡的值。
零遮罩:為了限制經由神經網路(例如,神經網路558)的預測的在速率上的任何潛在增加,在訓練及/或推理期間,可以丟棄對於HM-SQ位準為零的變換係數的調整。這可以經由針對HM-SQ位準為零的變換係數,覆寫網路的輸出來完成,使得調整值為零的概率為最大概率。,對於改變0 →+/- 1引起的失真的任何潛在降低而言,經由改變0 →+/- 1的速率增加可能成本太高了。
在各個實例中,視訊轉碼器200可以使用具有不同數量的層、核心大小(用於FCN)、啟動函數、學習率及/或其他特徵的網路(例如,神經網路558)。在一些實例中,在訓練期間,計算系統可以使用BatchNorm(參見S.Ioffe和C.Szegedy,「批量正規化:經由減少內部協變數偏移來加速深度網路訓練」,第32屆國際機器學習會議國際會議論文集-第37卷,ser.ICML'15.JMLR.org,2015年,第448-456頁)和Dropout(例如,參見N.Srivastava、G.Hinton、A.Krizhevsky、I.Sutskever和R.Salakhutdinov,「Dropout:防止神經網路過度擬合的簡單方法」,J.Mach.Learn.Res,vol. 15, no. 1, p. 1929–1958, Jan. 2014)。另外,可以改變速率失真敏感性圖和類別平衡。
在FCN和ARM中,對網路(例如,神經網路558)的輸入是相同的,並描述如下。網路在每個區塊b 的級別上執行。網路的輸入是針對b 和標量變換係數的量化位準qSQ 。可以基於標量量化並且在一些實例中基於塊b 的變換係數的其他附加變換(例如,絕對值變換),來決定量化位準qSQ 。可以經由將標量量化應用於縮放的變換係數,並且在一些實例中經由應用縮放的變換係數的其他附加變換(例如,絕對值變換),來決定標量變換係數。
圖8是示出用於對當前塊進行編碼的實例方法的流程圖。當前塊可以包括當前CU。儘管參照視訊轉碼器200(圖1和圖3)進行了描述,但是應當理解,其他設備亦可以被配置為執行與圖8類似的方法。
在該實例中,視訊轉碼器200最初預測當前塊(350)。舉例而言,視訊轉碼器200可以形成針對當前塊的預測塊。隨後,視訊轉碼器200(例如,視訊轉碼器200的殘差產生單元204)可以計算當前塊的殘差塊(352)。為了計算殘差塊,視訊轉碼器200可以計算在原始未編碼的塊與當前塊的預測塊之間的差。接著,視訊轉碼器200可以對殘差塊進行變換,並對殘差塊的變換係數進行量化(354)。例如,在圖3的上下文中,變換處理單元206可以對殘差塊進行變換,並且量化單元208可以對所獲得的變換係數進行量化。根據本案內容的一或多個技術,視訊轉碼器200(例如,視訊轉碼器200的量化單元208的量化單元208)可以使用本案內容的深度學習技術作為量化變換係數的一部分來執行RDOQ。
接著,在圖8的實例中,視訊轉碼器200可以掃瞄殘差塊的量化的變換係數(356)。在掃瞄期間或在掃瞄之後,視訊轉碼器200(例如,視訊轉碼器200的熵編碼單元220)可以對變換係數進行熵編碼(358)。例如,視訊轉碼器200可以使用CAVLC或CABAC,對變換係數進行編碼。隨後,視訊轉碼器200可以例如在位元串流中,輸出塊的熵編碼資料(360)。
圖9是示出用於對視訊資料的當前塊進行解碼的實例方法的流程圖。當前塊可以包括當前CU。儘管參照視訊解碼器300(圖1和圖4)進行了描述,但是應當理解,其他設備亦可以被配置為執行與圖9類似的方法。
視訊解碼器300可以接收當前塊的經熵編碼的資料,例如,針對與當前塊相對應的殘差塊的變換係數的熵編碼的預測資訊和熵編碼的資料(370)。視訊解碼器300(例如,視訊解碼器300的熵解碼單元302)可以對經熵編碼的資料進行熵解碼,以決定當前塊的預測資訊,並再現殘差塊的變換係數(372)。視訊解碼器300可以例如使用如當前塊的預測資訊所指示的訊框內或訊框間預測模式來預測當前塊(374),以計算針對當前塊的預測塊。在圖4的上下文中,視訊解碼器300的預測處理單元304可以預測當前塊(亦即,產生針對當前塊的預測塊)。隨後,視訊解碼器300可以對所再現的變換係數進行逆掃瞄(376),以建立量化的變換係數的塊。隨後,視訊解碼器300可以對變換係數進行逆量化,並將逆變換應用於變換係數以產生殘差塊(378)。例如,在圖4的上下文中,逆量化單元306可以對變換係數進行逆量化,並且逆變換處理單元308可以將逆變換應用於變換係數。根據本案內容的一或多個技術,可以已經使用RDOQ程序,對變換係數進行了量化。視訊解碼器300可以經由組合預測塊和殘差塊,最終對當前塊進行解碼(380)。
圖10是示出根據本案內容的一或多個技術,對視訊資料進行編碼的實例方法的流程圖。儘管參照視訊轉碼器200(圖1和圖3)進行了描述,但是應當理解,其他設備亦可以被配置為執行與圖10類似的方法。
在圖10的實例中,量化單元208決定縮放的變換係數(1000)。為了決定縮放的變換係數,量化單元208可以根據給定的量化步驟,對視訊資料的塊的變換係數進行縮放。
另外,在圖10的實例中,量化單元208可以決定經標量量化係數(1002)。為了決定經標量量化係數,量化單元208可以向塊的經縮放的變換係數應用標量量化。例如,量化單元208可以使用公式
Figure 02_image003
來決定縮放的變換,其中x 是縮放的變換係數,s 是步長,ϵ 是量化偏移參數。換句話說,為了決定經標量量化係數,量化單元208可以針對縮放的變換係數之每一者縮放的變換係數,將與該縮放的變換係數相對應的經標量量化係數決定為等於第一值的下取整函數的輸出。第一值等於第二值加上量化偏移參數。第二值等於縮放的變換係數除以步長。
在其他實例中,不使用量化偏移參數。因此,在此類實例中,為了決定經標量量化係數,量化單元208可以針對縮放的變換係數之每一者縮放的變換係數,將與該縮放的變換係數相對應的經標量量化係數決定為等於第一值的下取整函數的輸出,其中第一值等於縮放的變換係數除以步長。
此外,在圖10的實例中,量化單元208應用神經網路211,針對塊的每個相應的變換係數,來決定相應的概率集合(1004)。針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值。在一些實例中,該複數個可能的調整值由{-1,0}組成。在其他實例中,該複數個可能的調整值由{-1、0、1}組成。在一些實例中,針對該複數個可能調整值之每一者可能調整值的相應的概率值是該可能調整值的未正規化對數概率。
針對神經網路的輸入包括縮放的變換係數和經標量量化係數。在一些實例中,神經網路211是全迴旋神經網路,例如,如本案內容中的其他地方所描述的。在其他實例中,神經網路211是自回歸網路,例如,如本案內容中的其他地方所描述的。
如本案內容中的其他地方所論述的,計算系統(其可以包括視訊轉碼器200)可以訓練神經網路211。作為訓練神經網路211的一部分,計算系統可以使用啟發式搜尋來收集訓練標籤。計算系統可以在針對神經網路的訓練程序中,將這些訓練標籤用作訓練目標。在一些實例中,對神經網路211進行訓練以模仿速率失真最佳化演算法,該演算法對塊的變換係數的所有可能的量化位準執行暴力搜尋。
在圖10的實例中,量化單元208基於用於該塊的特定變換係數的概率集合,決定用於該特定變換係數的量化位準(1006)。例如,量化單元208可以基於針對特定變換係數的概率集合,決定在複數個可能的調整值中針對該特定變換係數的最可能的調整值。另外,在該實例中,量化單元208可以經由將特定變換係數的最可能調整值與該特定變換係數的絕對值相加,來決定用於該特定變換係數的更新值(例如,如在圖5B的項目562中所示)。隨後,量化單元208可以經由將用於該特定變換係數的更新值乘以該特定變換係數的符號值,來決定用於該特定變換係數的量化位準(例如,如圖5B的項目566中所示)。
在一些實例中,作為決定經標量量化係數的一部分,量化單元208可以丟棄經標量量化係數的符號資訊,並且丟棄縮放的變換係數的符號資訊(例如,如圖5B的項目556中所示)。此外,在此類實例中,作為決定用於特定變換係數的量化位準的一部分,量化單元208可以基於用於該特定變換係數的概率集合,來決定用於該特定變換係數的調整值。例如,量化單元208可以將調整值決定為具有最大概率的調整值。在圖5B的上下文中,調整值可以是調整值554之一。在丟棄縮放的變換係數的符號資訊之後,量化單元208可以經由將與特定變換係數相對應的經標量量化係數與用於該特定變換係數的調整值相加(例如,如圖5B的項目562中所示),來決定該特定變換係數的更新的量化位準(例如,圖5B的更新的量化位準560之一)。隨後,量化單元208可以將針對特定變換係數的更新的量化位準乘以與該特定變換係數相對應的經標量量化係數的符號(例如,圖5B的進位元符號564),來決定用於該特定變換係數的量化位準(例如,如圖5B的項目566中所示)。
視訊轉碼器200可以在包括視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於特定變換係數的量化位準(1008)。視訊轉碼器200可以針對塊的每一變換係數,重複步驟1006和1008。
以下是可以根據本案內容的一或多個技術的非限制性實例集合。
實例1。一種對視訊資料進行編碼的方法,該方法包括:決定縮放的變換係數,其中決定該等縮放的變換係數包括:根據給定的量化步驟,對該視訊資料的塊的變換係數進行縮放;決定經標量量化係數,其中決定該經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數;應用用於決定針對該塊的每個相應的變換係數的相應的概率集合的神經網路,其中:針對相應的變換係數的相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的概率值,並且神經網路的輸入包括縮放的變換係數和經標量量化係數;基於針對該塊的特定變換係數的該概率集合,決定用於該特定變換係數的量化位準;並在包括該視訊資料的經編碼表示的位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
實例2。根據實例1之方法,其中該神經網路是全迴旋神經網路。
實例3。根據實例1之方法,其中該神經網路是自回歸網路。
實例4。根據實例2-3中的任何一項所述的方法,亦包括:使用啟發式搜尋來收集訓練標籤;並在針對該神經網路的訓練程序中,將該訓練標籤用作訓練目標。
實例5。根據實例1-4中的任何一項所述的方法,其中該複數個可能的調整值由{-1,0}組成。
實例6。根據實例1-5中的任何一項所述的方法,其中該神經網路被訓練以模仿在該塊的該等變換係數的所有可能的量化位準上執行暴力搜尋的速率失真最佳化演算法。
實例7。根據實例1-6中的任何一項所述的方法,其中決定用於該特定變換係數的該量化位準包括:基於用於該特定變換係數的該概率集合,決定該複數個可能的調整值中用於該特定變換係數的最可能的調整值;經由將用於該特定變換係數的該最可能的調整值與該特定變換係數的絕對值相加,來決定用於該特定變換係數的更新值;並經由將用於該特定變換係數的該更新值乘以該特定變換係數的符號值,來決定用於該特定變換係數的該量化位準。
實例8。根據實例1-7中的任何一項所述的方法,其中針對該複數個可能的調整值之每一者可能的調整值的該相應的概率值,是針對該可能的調整值的未正規化對數概率。
實例9。根據實例1-8中的任何一項所述的方法,其中決定該經標量量化係數,包括對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作:將與該等縮放的變換係數相對應的經標量量化係數決定為等於第一值的下取整函數的輸出,其中:該第一值等於第二值加上量化偏移參數,並且該第二值等於該縮放的變換係數除以步長。
實例10。根據實例1-8中的任何一項所述的方法,其中決定該等經標量量化係數,包括對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作:將與該等縮放的變換係數相對應的經標量量化係數決定為等於第一值的下取整函數的輸出,其中該第一值等於該等縮放的變換係數除以步長。
實例11。根據實例1-10中的任何一項所述的方法,其中:決定該等經標量量化係數包括:丟棄該等經標量量化係數的符號資訊,該方法亦包括丟棄該等縮放的變換係數的符號資訊,並且決定用於該特定變換係數的該量化位準包括:基於用於該特定變換係數的該概率集合,決定用於該特定變換係數的調整值;在丟棄該等縮放的變換係數的該符號資訊之後,經由將與該特定變換係數相對應的經標量量化係數與針對該特定變換係數的該調整值相加,決定用於該特定變換係數的更新量化位準;將針對該特定變換係數的該更新的量化位準乘以與該特定變換係數相對應的該經標量量化係數的符號,來決定用於該特定變換係數的該量化位準。
實例12。一種用於對視訊資料進行編碼的設備,該設備包括:用於執行實例1-11中的任何一項該的方法的一或多個單元。
實例13。根據實例12之設備,其中該一或多個單元包括在電路中實現的一或多個處理器。
實例14。根據實例12和13中的任何一項所述的設備,亦包括用於儲存該視訊資料的記憶體。
實例15。根據實例12-14中的任何一項所述的設備,亦包括被配置為顯示該經解碼的視訊資料的顯示器。
實例16。根據實例12-15中的任何一項所述的設備,其中該設備包括照相機、電腦、行動設備、廣播接收器設備或機上盒中的一或多個。
實例17。根據實例12-16中的任何一項所述的設備,其中該設備包括視訊解碼器。
實例18。根據實例12-17中的任何一項所述的設備,其中該設備包括視訊轉碼器。
實例19。一種具有其上儲存的指令的電腦可讀取儲存媒體,當該等指令被執行時,使一或多個處理器執行實例1-11中的任何一項所述的方法。
應當認識到,根據實例,本文所描述的任何技術的某些動作或事件可以以不同的循序執行、可以進行添加、合併或者完全省略(例如,並非所有描述的動作或事件都是實施該技術所必需的)。此外,在某些實例中,可以例如經由多執行緒處理、中斷處理或多個處理器併發地而不是順序地執行動作或事件。
在一或多個實例中,所描述的功能可以利用硬體、軟體、韌體或者其任意組合來實現。當利用軟體實現時,可以將這些功能儲存在電腦可讀取媒體上,或者作為電腦可讀取媒體上的一或多個指令或代碼進行傳輸,並由基於硬體的處理單元來執行。電腦可讀取媒體可以包括電腦可讀取儲存媒體,電腦可讀取儲存媒體對應於諸如資料儲存媒體或通訊媒體之類的有形媒體,其中通訊媒體包括有助於例如根據通訊協定,將電腦程式從一個地方傳送到另一個地方的任何媒體。用此方式,電腦可讀取媒體通常可以對應於:(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:輸入介面 150:視訊訊框(圖片) 152:塊 154:變換係數塊 156:掃瞄 158:量化器 160:熵編碼 162:熵編碼 164:解量化器 166:逆掃瞄 168:變換係數 169:逆DCT 170:重構塊 172:重構訊框 200:視訊轉碼器 202:模式選擇單元 204:殘差產生單元 206:變換處理單元 208:量化單元 210:逆量化單元 211:神經網路 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:方塊 500:縮放的變換係數 502:量化位準 510:調整值 512:加法器 514:量化位準 516:速率失真(RD)決定程序 518:速率失真估計 550:方塊 552:方塊 554:方塊 556:方塊 558:方塊 560:方塊 562:方塊 564:方塊 566:方塊 568:方塊 570:方塊 572:方塊 600:全迴旋網路 602:輸入資料 604:第一層集 606:第二層集 608:第三層集 610:迴旋層 612:輸出層 650:全迴旋網路 652:層集 654:層集 656:層集 658:輸入資料 660:正規化層 662:迴旋層 664:輸出層 700:自回歸模型(ARM)架構 702:調節層 704:自回歸層 706:全連接層 750:ARM架構 1000:方塊 1002:方塊 1004:方塊 1006:方塊 1008:方塊
圖1是示出可以執行本案內容的技術的實例視訊編碼和解碼系統的方塊圖。
圖2是示出具有視訊轉碼器流水線的量化器的實例通用示意圖的概念圖,其可以用於高效視訊解碼(HEVC)、通用視訊解碼(VVC)及/或其他視訊解碼標準。
圖3是示出可以執行本案內容的技術的實例視訊轉碼器的方塊圖。
圖4是示出可以執行本案內容的技術的實例視訊解碼器的方塊圖。
圖5A是示出基於神經網路的速率失真最佳化量化流水線的實例示意圖的概念圖。
圖5B是示出基於神經網路的速率失真最佳化量化流水線的實例示意圖的概念圖,其中在神經網路推斷期間忽略每個變換係數的符號。
圖6A是根據本案內容的一或多個技術,示出實例全迴旋神經網路的概念圖。
圖6B是根據本案內容的一或多個技術,示出實例全迴旋神經網路的概念圖。
圖7A是根據本案內容的一或多個技術,示出具有調節層的自回歸模型(ARM)架構的實例示意圖的概念圖。
圖7B是根據本案內容的一或多個技術,示出具有調節層的ARM架構的另一種實例示意圖的概念圖。
圖8是示出用於對當前塊進行編碼的實例方法的流程圖。
圖9是示出用於對當前塊進行解碼的實例方法的流程圖。
圖10是根據本案內容的一或多個技術,示出對視訊資料進行編碼的實例方法的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
1000:方塊
1002:方塊
1004:方塊
1006:方塊
1008:方塊

Claims (27)

  1. 一種對視訊資料進行編碼的方法,該方法包括以下步驟: 決定縮放的變換係數,其中決定該等縮放的變換係數包括以下步驟:根據一給定的量化步驟,對該視訊資料的一塊的變換係數進行縮放; 決定經標量量化係數,其中決定該等經標量量化係數包括以下步驟:將標量量化應用於該塊的該等縮放的變換係數; 應用用於決定針對該塊的每個相應的變換係數的一相應的概率集合的一神經網路,其中: 用於該相應的變換係數的該相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的一相應的概率值,以及 該神經網路的輸入包括該等縮放的變換係數和該等經標量量化係數; 基於針對該塊的一特定變換係數的該概率集合,決定用於該特定變換係數的一量化位準;及 在包括該視訊資料的一經編碼表示的一位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
  2. 根據請求項1之方法,其中該神經網路是一全迴旋神經網路。
  3. 根據請求項1之方法,其中該神經網路是一自回歸網路。
  4. 根據請求項1之方法,亦包括以下步驟: 使用一啟發式搜尋來收集訓練標籤;及 在針對該神經網路的一訓練程序中,將該等訓練標籤用作訓練目標。
  5. 根據請求項1之方法,其中該複數個可能的調整值由{-1,0}組成。
  6. 根據請求項1之方法,其中該神經網路被訓練以模仿在該塊的該等變換係數的所有可能的量化位準上執行一暴力搜尋的一速率失真最佳化演算法。
  7. 根據請求項1之方法,其中決定用於該特定變換係數的該量化位準包括以下步驟: 基於用於該特定變換係數的該概率集合,決定該複數個可能的調整值中用於該特定變換係數的一最可能的調整值; 經由將用於該特定變換係數的該最可能的調整值與該特定變換係數的一絕對值相加,來決定用於該特定變換係數的一更新值;及 經由將用於該特定變換係數的該更新值乘以該特定變換係數的一符號值,來決定用於該特定變換係數的該量化位準。
  8. 根據請求項1之方法,其中針對該複數個可能的調整值之每一者可能的調整值的該相應的概率值是針對該可能的調整值的一未正規化對數概率。
  9. 根據請求項1之方法,其中決定該等經標量量化係數包括對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作: 將與該縮放的變換係數相對應的一經標量量化係數決定為等於一第一值的一下取整函數的一輸出,其中: 該第一值等於一第二值加上一量化偏移參數,以及 該第二值等於該縮放的變換係數除以一步長。
  10. 根據請求項1之方法,其中決定該等經標量量化係數包括對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作: 將與該縮放的變換係數相對應的一經標量量化係數決定為等於一第一值的一下取整函數的一輸出,其中該第一值等於該縮放的變換係數除以一步長。
  11. 根據請求項1之方法,其中: 決定該經標量量化係數包括以下步驟:丟棄該等經標量量化係數的符號資訊, 該方法亦包括以下步驟:丟棄該等縮放的變換係數的符號資訊,以及 決定用於該特定變換係數的該量化位準包括以下步驟: 基於用於該特定變換係數的該概率集合,決定用於該特定變換係數的一調整值; 在丟棄該等縮放的變換係數的該符號資訊之後,經由將與該特定變換係數相對應的一經標量量化係數與針對該特定變換係數的該調整值相加,決定該特定變換係數的一更新的量化位準;及 將用於該特定變換係數的該更新的量化位準乘以與該特定變換係數相對應的該經標量量化係數的一符號,來決定用於該特定變換係數的該量化位準。
  12. 根據請求項1之方法,亦包括訓練該神經網路,其中訓練該神經網路包括以下步驟: 決定該神經網路的輸出的一交叉熵損失; 基於一速率失真敏感性圖,對該神經網路的該交叉熵損失進行縮放;及 基於該經縮放的交叉熵損失來訓練該神經網路。
  13. 一種用於對視訊資料進行編碼的設備,該設備包括: 一記憶體,其用於儲存該視訊資料;及 在電路中實現的一或多個處理器,該一或多個處理器被配置為: 決定縮放的變換係數,其中決定該等縮放的變換係數包括:根據一給定的量化步驟,對該視訊資料的一塊的一變換係數進行縮放; 決定經標量量化係數,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數; 應用用於決定針對該塊的每個相應的變換係數的一相應的概率集合的神經網路,其中: 用於該相應的變換係數的該相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的一相應的概率值,以及 該神經網路的輸入包括該等縮放的變換係數和該等經標量量化係數; 基於針對該塊的一特定變換係數的該概率集合,決定用於該特定變換係數的一量化位準;及 在包括該視訊資料的一經編碼表示的一位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
  14. 根據請求項13之設備,其中該神經網路是一全迴旋神經網路。
  15. 根據請求項13之設備,其中該神經網路是一自回歸網路。
  16. 根據請求項13之設備,其中該一或多個處理器進一步被配置為: 使用一啟發式搜尋來收集訓練標籤;及 在針對該神經網路的一訓練程序中,將該訓練標籤用作訓練目標。
  17. 根據請求項13之設備,其中該複數個可能的調整值由{-1,0}組成。
  18. 根據請求項13之設備,其中該神經網路被訓練以模仿在該塊的該變換係數的所有可能的量化位準上執行一暴力搜尋的一速率失真最佳化演算法。
  19. 根據請求項13之設備,其中該一或多個處理器被配置為使得該一或多個處理器作為決定用於該特定變換係數的該量化位準的一部分進行以下操作: 基於用於該特定變換係數的該概率集合,決定該複數個可能的調整值中用於該特定變換係數的一最可能的調整值; 經由將用於該特定變換係數的該最可能的調整值與該特定變換係數的一絕對值相加,來決定用於該特定變換係數的一更新值;及 經由將用於該特定變換係數的該更新值乘以該特定變換係數的一符號值,來決定用於該特定變換係數的該量化位準。
  20. 根據請求項13之設備,其中針對該複數個可能的調整值之每一者可能的調整值的該相應的概率值是針對該可能的調整值的一未正規化對數概率。
  21. 根據請求項13之設備,其中該一或多個處理器被配置為使得該一或多個處理器作為決定該等經標量量化係數的一部分對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作: 將與該縮放的變換係數相對應的一經標量量化係數決定為等於一第一值的一下取整函數的一輸出,其中: 該第一值等於一第二值加上一量化偏移參數,以及 該第二值等於該縮放的變換係數除以一步長。
  22. 根據請求項13之設備,其中該一或多個處理器被配置為使得該一或多個處理器作為決定該等經標量量化係數的一部分對於該等縮放的變換係數之每一者縮放的變換係數進行以下操作: 將與該縮放的變換係數相對應的一經標量量化係數決定為等於一第一值的一下取整函數的一輸出,其中該第一值等於該縮放的變換係數除以一步長。
  23. 根據請求項13之設備,其中: 該一或多個處理器被配置為使得該一或多個處理器作為決定該等經標量量化係數的一部分,丟棄該等經標量量化係數的符號資訊, 該一或多個處理器進一步被配置為丟棄該等縮放的變換係數的符號資訊,以及 該一或多個處理器被配置為使得該一或多個處理器作為決定用於該特定變換係數的該量化位準的一部分進行以下操作: 基於用於該特定變換係數的該概率集合,決定用於該特定變換係數的一調整值; 在丟棄該等縮放的變換係數的該符號資訊之後,經由將與該特定變換係數相對應的一經標量量化係數與針對該特定變換係數的該調整值相加,決定該特定變換係數的一更新的量化位準;及 將用於該特定變換係數的該更新的量化位準乘以與該特定變換係數相對應的該經標量量化係數的一符號,來決定用於該特定變換係數的該量化位準。
  24. 根據請求項13之設備,其中該設備包括一照相機、一電腦、一行動設備、一廣播接收器設備或一機上盒中的一或多個。
  25. 根據請求項13之設備,其中該一或多個處理器被配置為: 決定該神經網路的輸出的一交叉熵損失; 基於一速率失真敏感性圖,對該神經網路的該交叉熵損失進行縮放;及 基於該經縮放的交叉熵損失來訓練該神經網路。
  26. 一種用於對視訊資料進行編碼的設備,該設備包括: 用於決定縮放的變換係數的單元,其中決定該等縮放的變換係數包括:根據一給定的量化步驟,對該視訊資料的一塊的一變換係數進行縮放; 用於決定經標量量化係數的單元,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數; 用於應用一神經網路的單元,其中該神經網路針對該塊的每個相應的變換係數,決定一相應的概率集合,其中: 用於該相應的變換係數的該相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的相應的一概率值,以及 該神經網路的輸入包括該等縮放的變換係數和該等經標量量化係數; 用於基於針對該塊的一特定變換係數的該概率集合,決定用於該特定變換係數的一量化位準的單元;及 用於在包括該視訊資料的一經編碼表示的一位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準的單元。
  27. 一種具有在其上儲存的指令的電腦可讀取儲存媒體,當該等指令被執行時,使一或多個處理器進行以下操作: 決定縮放的變換係數,其中決定該等縮放的變換係數包括:根據一給定的量化步驟,對該視訊資料的一塊的一變換係數進行縮放; 決定經標量量化係數,其中決定該等經標量量化係數包括:將標量量化應用於該塊的該等縮放的變換係數; 應用用於決定針對該塊的每個相應的變換係數的一相應的概率集合的一神經網路,其中: 用於該相應的變換係數的該相應的概率集合包括針對複數個可能的調整值之每一者可能的調整值的一相應的概率值,以及 該神經網路的輸入包括該等縮放的變換係數和該等經標量量化係數; 基於針對該塊的一特定變換係數的該概率集合,決定用於該特定變換係數的一量化位準;及 在包括該視訊資料的一經編碼表示的一位元串流中,用訊號通知所決定的用於該特定變換係數的量化位準。
TW110113490A 2020-04-17 2021-04-15 使用深度學習的並行化的速率失真最佳化量化 TW202145792A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063011685P 2020-04-17 2020-04-17
US63/011,685 2020-04-17
US202063034618P 2020-06-04 2020-06-04
US63/034,618 2020-06-04
US17/070,589 US12058348B2 (en) 2020-04-17 2020-10-14 Parallelized rate-distortion optimized quantization using deep learning
US17/070,589 2020-10-14

Publications (1)

Publication Number Publication Date
TW202145792A true TW202145792A (zh) 2021-12-01

Family

ID=78082393

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110113490A TW202145792A (zh) 2020-04-17 2021-04-15 使用深度學習的並行化的速率失真最佳化量化

Country Status (8)

Country Link
US (1) US12058348B2 (zh)
EP (1) EP4136837A1 (zh)
JP (1) JP2023522575A (zh)
KR (1) KR20230007313A (zh)
CN (1) CN115336266A (zh)
BR (1) BR112022020125A2 (zh)
TW (1) TW202145792A (zh)
WO (1) WO2021211270A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11490083B2 (en) 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
US20220321879A1 (en) * 2021-03-30 2022-10-06 Isize Limited Processing image data
US11368349B1 (en) * 2021-11-15 2022-06-21 King Abdulaziz University Convolutional neural networks based computationally efficient method for equalization in FBMC-OQAM system
WO2023169501A1 (en) * 2022-03-09 2023-09-14 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for visual data processing
US20230306239A1 (en) * 2022-03-25 2023-09-28 Tencent America LLC Online training-based encoder tuning in neural image compression
US20230316588A1 (en) * 2022-03-29 2023-10-05 Tencent America LLC Online training-based encoder tuning with multi model selection in neural image compression
CN114708436B (zh) * 2022-06-02 2022-09-02 深圳比特微电子科技有限公司 语义分割模型的训练方法、语义分割方法、装置和介质
CN115209147B (zh) * 2022-09-15 2022-12-27 深圳沛喆微电子有限公司 摄像头视频传输带宽优化方法、装置、设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620103B2 (en) 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US7889790B2 (en) 2005-12-20 2011-02-15 Sharp Laboratories Of America, Inc. Method and apparatus for dynamically adjusting quantization offset values
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8767834B2 (en) 2007-03-09 2014-07-01 Sharp Laboratories Of America, Inc. Methods and systems for scalable-to-non-scalable bit-stream rewriting
DK2476255T3 (en) 2009-09-10 2018-08-06 Guangdong Oppo Mobile Telecommunications Corp Ltd ACCELERATION TECHNIQUES FOR DISTORTION GRADE OPTIMIZED QUANTIZATION
KR101492930B1 (ko) 2010-09-14 2015-02-23 블랙베리 리미티드 변환 도메인 내의 어댑티브 필터링을 이용한 데이터 압축 방법 및 장치
CN103125116A (zh) * 2010-09-28 2013-05-29 三星电子株式会社 视频编码方法和装置以及解码方法和装置
US8553769B2 (en) * 2011-01-19 2013-10-08 Blackberry Limited Method and device for improved multi-layer data compression
US9521410B2 (en) 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
US9213556B2 (en) * 2012-07-30 2015-12-15 Vmware, Inc. Application directed user interface remoting using video encoding techniques
US9560386B2 (en) 2013-02-21 2017-01-31 Mozilla Corporation Pyramid vector quantization for video coding
US9510002B2 (en) 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
US10721471B2 (en) * 2017-10-26 2020-07-21 Intel Corporation Deep learning based quantization parameter estimation for video encoding
EP3994888A1 (en) * 2019-07-02 2022-05-11 Telefonaktiebolaget LM Ericsson (publ) Inference processing of data
US11496769B2 (en) * 2019-09-27 2022-11-08 Apple Inc. Neural network based image set compression
CN112819699A (zh) * 2019-11-15 2021-05-18 北京金山云网络技术有限公司 视频处理方法、装置及电子设备

Also Published As

Publication number Publication date
KR20230007313A (ko) 2023-01-12
BR112022020125A2 (pt) 2022-11-29
EP4136837A1 (en) 2023-02-22
CN115336266A (zh) 2022-11-11
JP2023522575A (ja) 2023-05-31
WO2021211270A1 (en) 2021-10-21
US20210329267A1 (en) 2021-10-21
US12058348B2 (en) 2024-08-06

Similar Documents

Publication Publication Date Title
US12058348B2 (en) Parallelized rate-distortion optimized quantization using deep learning
US20180124422A1 (en) Motion compensation using temporal picture interpolation
EP4207766A1 (en) Entropy encoding/decoding method and device
US11683505B2 (en) Method and a device for picture encoding and decoding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
US11849113B2 (en) Quantization constrained neural image coding
US20230362378A1 (en) Video coding method and apparatus
WO2022063265A1 (zh) 帧间预测方法及装置
CN116349225B (zh) 视频解码方法和装置、电子设备和存储介质
WO2023039859A1 (zh) 视频编解码方法、设备、系统、及存储介质
KR20220159454A (ko) 신경 이미지 압축에서의 이미지 치환에 의한 컨텐츠-적응적 온라인 훈련
TW202133620A (zh) 用於視訊壓縮的學習低複雜度自我調整量化
JP2023544562A (ja) イントラ予測方法及び装置
CN115836525A (zh) 用于从多个交叉分量进行预测的方法和系统
US11893783B2 (en) Apparatus and method for transceiving feature map extracted using MPEG-VCM
KR20230003227A (ko) 신경 이미지 압축에서의 스케일링 인자 및/또는 오프셋에 의한 컨텐츠-적응적 온라인 훈련
WO2023092404A1 (zh) 视频编解码方法、设备、系统、及存储介质
US20240015318A1 (en) Video coding using optical flow and residual predictors
KR20240002428A (ko) 머신을 위한 스케일러블 비디오 코딩
KR20240002416A (ko) Npu를 이용한 머신 분석을 위한 비트스트림 포맷
JP2024530476A (ja) 符号化及び復号化方法並びに装置
CN118235412A (zh) 基于块的视频编解码的符号预测
KR20240030922A (ko) Mpeg-vcm에 기반하여 인공신경망을 분산 처리하는 npu 및 방법
CN117981319A (zh) 用于基于块的视频编解码的符号预测
KR20240081971A (ko) 뉴럴 코덱 및 뉴럴 코덱의 학습 방법