TW201924339A - 藉由調適參數之漸進式修正之二位元算術寫碼 - Google Patents
藉由調適參數之漸進式修正之二位元算術寫碼 Download PDFInfo
- Publication number
- TW201924339A TW201924339A TW107135864A TW107135864A TW201924339A TW 201924339 A TW201924339 A TW 201924339A TW 107135864 A TW107135864 A TW 107135864A TW 107135864 A TW107135864 A TW 107135864A TW 201924339 A TW201924339 A TW 201924339A
- Authority
- TW
- Taiwan
- Prior art keywords
- binary
- syntax element
- stream
- decoded
- video data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一種視訊解碼器可經組態以:藉由針對一第一二進位串流之至少一個二進位基於一第一參數集合而判定該第一二進位串流之該至少一個二進位的一第一機率估計來生成一第一二進位串流;以及藉由針對一第二二進位串流之至少一個二進位基於一第二參數集合而判定該第二二進位串流之該至少一個二進位的一第二機率估計來生成一第二二進位串流,該第二參數集合為與該第一參數集合不同的參數。
Description
本發明係關於視訊寫碼。
數位視訊頻能力可併入至廣泛範圍之器件中,該等器件包括數位電視、數位直播系統、無線廣播系統、個人數位助理(PDA)、膝上型或桌上型電腦、平板電腦、電子書閱讀器、數位攝影機、數位記錄器件、數位媒體播放器、視訊遊戲器件、視訊遊戲主控台、蜂巢式或衛星無線電電話(所謂的「智慧型電話」)、視訊電傳會議器件、視訊串流器件及其類似者。數位視訊器件實施視訊壓縮技術,諸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分進階視訊寫碼(AVC)、ITU-T H.265定義之標準、高效率視訊寫碼(HEVC)標準及此等標準之擴展中所描述的彼等技術。視訊器件可藉由實施此等視訊壓縮技術而更高效地傳輸、接收、編碼、解碼及/或儲存數位視訊資訊。
視訊壓縮技術可執行空間(圖像內)預測及/或時間(圖像間)預測來減少或移除視訊序列中固有的冗餘。對於基於區塊之視訊編碼,可將視訊截塊(例如,視訊圖框或視訊圖框之一部分)分割成視訊區塊,諸如寫碼樹型區塊及寫碼區塊。空間或時間預測生成用於待寫碼之區塊的預測性區塊。殘餘資料表示待寫碼之原始區塊與預測性區塊之間的像素差。為了進一步壓縮,可將殘餘資料自像素域變換至變換域,從而生成可接著進行量化之殘餘變換係數。
大體而言,本發明描述關於藉由自適應參數之漸進式修正之二位元算術寫碼技術。
根據一個實例,一種方法包括:藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素之經編碼版本而判定第一經解碼語法元素,其中將二位元算術解碼應用於第一語法元素之經編碼版本包含:生成第一二進位串流,其中生成第一二進位串流包含:基於第一參數集合而判定第一二進位串流中之至少一個二進位之第一機率估計;將第一二進位串流去二位元化以以形成第一經解碼語法元素;藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第二語法元素之經編碼版本而判定第二經解碼語法元素,其中將二位元算術解碼應用於第二語法元素之經編碼版本包含:生成第二二進位串流,其中生成第二二進位串流包含基於第二參數集合而判定第二二進位串流中之至少一個二進位之第二機率估計,其中第二參數集合包含與第一參數集合不同的參數;將第二二進位串流去二位元化以形成第二經解碼語法元素;及部分地基於第一經解碼語法元素及第二經解碼語法元素來重構視訊資料之圖像。
根據另一實例,一種用於解碼視訊資料之器件包括:記憶體,其經組態以儲存視訊資料之位元串流;及一個或多個處理器,其與該記憶體連通並實施於處理電路中,其中該一或多個處理器經組態以:藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素之經編碼版本而判定第一經解碼語法元素,其中為將二位元算術解碼應用於第一語法元素之經編碼版本,該一或多個處理器進一步經組態以:藉由基於第一參數集合而判定第一二進位串流中之至少一個二進位的第一機率估計來生成第一二進位串流;將第一二進位串流去二位元化以以形成第一經解碼語法元素;藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第二語法元素之經編碼版本而判定第二經解碼語法元素,其中為將二位元算術解碼應用於第二語法元素之經編碼版本,該一或多個處理器進一步經組態以:藉由基於第二參數集合而判定第二二進位串流中之至少一個二進位的第二機率估計來生成第二二進位串流,其中第二參數集合包含與第一參數集合不同的參數;將第二二進位串流去二位元化以形成第二經解碼語法元素;及部分地基於第一經解碼語法元素及第二經解碼語法元素來重構視訊資料之圖像。
根據另一實例,一種電腦可讀媒體儲存指令,該等指令在由一個或多個處理器執行時促使該一或多個處理器藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素的編碼版本而判定第一經解碼語法元素,其中為將二位元算術解碼應用於第一語法元素之經編碼版本,指令促使該一或多個處理器生成第一二進位串流,其中為生成第一二進位串流,指令促使該一或多個處理器基於第一參數集合而判定第一二進位串流中之至少一個二進位的第一機率估計;將第一二進位串流去二位元化以形成第一經解碼語法元素;藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第二語法元素之經編碼版本而判定第二經解碼語法元素,其中為將二位元算術解碼應用於第二語法元素之經編碼版本,指令促使該一或多個處理器生成第二二進位串流,其中為生成第二二進位串流,指令促使該一或多個處理器基於第二參數集合而判定第二二進位串流中之至少一個二進位的第二機率估計,其中第二參數集合包含與第一參數集合不同的參數;將第二二進位串流去二位元化以形成第二經解碼語法元素;及部分地基於第一經解碼語法元素及第二經解碼語法元素來重構視訊資料之圖像。
根據另一實例一種用於解碼視訊資料之裝置包括用於藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素之經編碼版本而判定第一經解碼語法元素的構件,其中用於判定第一經解碼語法元素之構件之構件包含:用於生成第一二進位串流之構件,其中用於生成第一二進位串流之構件包含用於基於第一參數集合判定第一二進位串流中之至少一個二進位的第一機率估計之構件;用於將第一二進位串流去二位元化以形成第一經解碼語法元素之構件;用於藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第二語法元素之經編碼版本而判定第二經解碼語法元素之構件,其中用於判定第二經解碼語法元素之構件包含:用於生成第二二進位串流之構件,其中用於生成第二二進位串流之構件包含用於基於第二參數集合而判定第二二進位串流中之至少一個二進位的第二機率估計之構件,其中第二參數集合包含與第一參數集合不同的參數;用於將第二二進位串流去二位元化以形成第二經解碼語法元素之構件;及用於部分地基於第一經解碼語法元素及第二經解碼語法元素來重構視訊資料的圖像之構件。
在隨附圖式及以下描述中闡述本發明之一或多個態樣之細節。本發明中所描述之技術的其他特徵、目標及優點將自描述、圖式及申請專利範圍顯而易見。
本申請案主張2017年10月10日申請之美國臨時申請案第62/570,560號之權益,該臨時申請案之全部內容以引用之方式併入本文中。
本發明描述關於算術寫碼,且更特定言之關於藉由調適參數之漸進式修正之二位元算術寫碼的技術。本發明之技術可經實施至現有視訊編解碼器(諸如HEVC (高效率視訊寫碼))中,或為用於未來視訊寫碼標準(諸如當前在開發中之H.266標準)之高效寫碼工具。
可參考視訊寫碼器描述本發明中之各種技術,該視訊寫碼器意欲為可指代視訊編碼器或視訊解碼器之一般術語。除非另外明確地陳述,否則不應假定關於視訊編碼器或視訊解碼器描述之技術不可藉由視訊編碼器或視訊解碼器中之另一者執行。舉例而言,在許多情況下,視訊解碼器執行與視訊編碼器相同或有時互逆之寫碼技術以便解碼經編碼視訊資料。在許多情況下,視訊編碼器亦包括視訊解碼迴路,及因此視訊編碼器執行作為編碼視訊資料之部分的視訊解碼。因此,除非另有說明,否則本發明中關於視訊解碼器描述之技術亦可藉由視訊編碼器執行,且反之亦然。
本發明亦可使用諸如當前區塊、當前圖像、或其他「當前」元件之術語。在本發明之上下文中,相較於例如先前或已經寫碼區塊或圖像或尚待寫碼之區塊或圖像,術語「當前」意欲識別當前正經寫碼之區塊或圖像。
本發明為易於解釋而使用HEVC術語描述視訊寫碼技術。然而,不應假定本發明之技術限於與HEVC使用,且實際上明確地預期本發明之技術可藉由其他視訊技術及標準,諸如針對HEVC及HEVC擴展之標準來實施。
圖1為說明可利用本發明之技術之實例視訊編碼及解碼系統10的方塊圖。如圖1中所示,系統10包括源器件12,該源器件提供稍後將由目的地器件14解碼之經編碼視訊資料。源器件12經由電腦可讀媒體16將經編碼視訊資料提供至目的地器件14。源器件12及目的地器件14可為廣泛範圍之器件中之任一者,包括桌上型電腦、筆記型(例如,膝上型)電腦、平板電腦、機上盒、諸如所謂的「智慧型」電話之手持電話、平板電腦、電視、攝影機、顯示器件、數位媒體播放器、視訊遊戲主控台、視訊串流器件或其類似者。在一些情況下,源器件12及目的地器件14經裝備用於無線通信。因此,源器件12及目的地器件14可為無線通信器件。可將本發明中所描述之技術應用於無線及/或有線應用。源器件12為實例視訊編碼器件(亦即,用於編碼視訊資料之器件)。目的地器件14為實例視訊解碼器件(亦即,用於解碼視訊資料之器件)。
圖1之所說明系統10僅為一個實例。可藉由任何數位視訊編碼及/或解碼器件來執行用於處理視訊資料之技術。在一些實例中,可由視訊編碼器/解碼器(通常被稱為「編碼解碼器」)執行該等技術。源器件12及目的地器件14為源器件12生成經寫碼視訊資料用於傳輸至目的地器件14之此類寫碼器件的實例。在一些實例中,源器件12及目的地器件14可以實質上對稱方式操作,使得源器件12及目的地器件14中之每一者包括視訊編碼及解碼組件。因此,系統10可支援源器件12與目的地器件14之間的單向或雙向視訊傳輸,例如用於視訊串流、視訊播放、視訊廣播或視訊電話。
在圖1之實例中,源器件12包括視訊源18、經組態以儲存視訊資料之儲存媒體19、視訊編碼器20及輸出介面22。目的地器件14包括輸入介面26、經組態以儲存經編碼視訊資料之儲存媒體28、視訊解碼器30及顯示器件32。在其他實例中,源器件12及目的地器件14包括其他組件或配置。舉例而言,源器件12可自外部視訊源(諸如,外部攝影機)接收視訊資料。同樣地,目的地器件14可與外部顯示器件介接,而非包括整合顯示器件。
視訊源18為視訊資料源。視訊資料可包括一系列圖像。視訊源18可包括視訊俘獲器件,諸如視訊攝影機、含有先前俘獲之視訊的視訊存檔及/或用以自視訊內容提供者接收視訊資料之視訊饋入介面。在一些實例中,視訊源18生成基於電腦圖形之視訊資料或實況視訊、存檔視訊及電腦生成之視訊之組合。儲存媒體19可經組態以儲存視訊資料。在每一情況下,可由視訊編碼器20編碼所俘獲、預先俘獲或電腦生成之視訊。
輸出介面22可將經編碼視訊資訊輸出至電腦可讀媒體16。輸出介面22可包含各種類型之組件或器件。舉例而言,輸出介面22可包含無線傳輸器、數據機、有線網路連接組件(例如,乙太網路卡)或另一實體組件。在輸出介面22包含無線傳輸器之實例中,輸出介面22可經組態以傳輸其根據蜂巢式通信標準(諸如4G、4G-LTE、進階LTE、5G及類似者)調變之資料,諸如經編碼視訊資料。在輸出介面22包含無線傳輸器之一些實例中,輸出介面22可經組態以傳輸根據其他無線標準(諸如IEEE 802.11規格、IEEE 802.15規格(例如,ZigBee™)、Bluetooth™標準及類似者)調變之資料,諸如經編碼視訊資料。在一些實例中,輸出介面22之電路經整合至源器件12之視訊編碼器20及/或其他組件之電路中。舉例而言,視訊編碼器20及輸出介面22可為系統單晶片(SoC)之部分。SoC亦可包括其他組件,諸如,通用微處理器、圖形處理單元等。
目的地器件14可經由電腦可讀媒體16接收待解碼之經編碼視訊資料。電腦可讀媒體16可包含能夠將經編碼視訊資料自源器件12移動至目的地器件14之任何類型的媒體或器件。在一些實例中,電腦可讀媒體16包含使得源器件12能夠即時將經編碼視訊資料直接地傳輸至目的地器件14的通信媒體。通信媒體可包含任何無線或有線通信媒體,諸如射頻(RF)頻譜或一或多個實體傳輸線。通信媒體可形成基於封包之網路(諸如,區域網路、廣域網路或諸如網際網路之全域網路)之部分。通信媒體可包括路由器、交換器、基地台或可用於促進自源器件12至目的地器件14的通信之任何其他設備。目的地器件14可包含經組態以儲存經編碼視訊資料及經解碼視訊資料之一或多個資料儲存媒體。
在一些實例中,輸出介面22可將諸如經編碼視訊資料之資料輸出至中間器件,諸如儲存器件。類似地,目的地器件12之輸入介面28可自中間器件接收經編碼資料。中間器件可包括多種分佈式或本端存取之資料儲存媒體中之任一者,諸如硬碟機、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體或用於儲存經編碼視訊資料之任何其他適合之數位儲存媒體。在一些實例中,中間器件對應於檔案伺服器。實例檔案伺服器包括網頁伺服器、FTP伺服器、網路附接儲存(NAS)器件或本機磁碟機。
目的地器件14可經由任何標準資料連接(包括網際網路連接)來存取經編碼視訊資料。這可包括無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、電纜數據機等等)或適用於存取檔案伺服器上儲存之經編碼視訊資料的兩者之組合。自儲存器件的經編碼視訊資料之傳輸可為串流傳輸、下載傳輸或其組合。
電腦可讀媒體16可包括暫時性媒體(諸如,無線廣播或有線網路傳輸)或儲存媒體(亦即,非暫時性儲存媒體),諸如硬碟、快閃驅動器、緊密光碟、數位視訊光碟、藍光光碟或其他電腦可讀媒體。在一些實例中,網路伺服器(未展示)可自源器件12接收經編碼視訊資料並例如經由網路傳輸將經編碼視訊資料提供至目的地器件14。類似地,諸如光碟衝壓設施之媒體生產設施之計算器件可自源器件12接收經編碼視訊資料且生產含有經編碼視訊資料之光碟。因此,在各種實例中,電腦可讀媒體16可理解為包括各種形式之一或多個電腦可讀媒體。
目的地器件14之輸入介面26自電腦可讀媒體16接收資料。輸入介面26可包含各種類型之組件或器件。舉例而言,輸入介面26可包含無線接收器、數據機、有線網路連接組件(例如,乙太網路卡)或另一實體組件。在輸入介面26包含無線接收器之實例中,輸入介面26可經組態以接收根據蜂巢式通信標準(諸如,4G、4G-LTE、LTE進階、5G及類似者)調變之資料,諸如,位元串流。在輸入介面26包含無線接收器之一些實例中,輸入介面26可經組態以接收根據其他無線標準(諸如IEEE 802.11規格、IEEE 802.15規格(例如,ZigBee™)、Bluetooth™標準及其類似者)調變之資料,諸如位元串流。在一些實例中,可將輸入介面26之電路整合至目的地器件14之視訊解碼器30及/或其他組件之電路中。舉例而言,視訊解碼器30及輸入介面26可為SoC之部分。SoC亦可包括其他組件,諸如,通用微處理器、圖形處理單元等。
儲存媒體28可經組態以儲存經編碼視訊資料,諸如藉由輸入介面26接收之經編碼視訊資料(例如,位元串流)。顯示器件32將經解碼視訊資料顯示給使用者。顯示器件32可包含多種顯示器件中之任一者,諸如,陰極光線套管(CRT)、液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器或另一類型之顯示器件。
視訊編碼器20及視訊解碼器單元30各自可實施為多種適合電路中之任一者,諸如,一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或其任何組合。當該等技術部分以軟體實施時,器件可將用於軟體之指令儲存於適合的非暫時性電腦可讀媒體中,且可在硬體中使用一或多個處理器執行指令以執行本發明之技術。視訊編碼器20及視訊解碼器30中的每一者可包括在一或多個編碼器或解碼器中,編碼器或解碼器中的任一者可整合為各別器件中的組合式編碼器/解碼器(編解碼器)的部分。
在一些實例中,視訊編碼器20及視訊解碼器30根據視訊寫碼標準或規格來編碼及解碼視訊資料。舉例而言,視訊編碼器20及視訊解碼器30可根據ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual及ITU-T H.264 (亦被稱作ISO/IEC MPEG-4 AVC) (包括其可調式視訊寫碼(SVC)及多視圖視訊寫碼(MVC)擴展)或另一視訊寫碼標準或規格來編碼及解碼視訊資料。在一些實例中,視訊編碼器20及視訊解碼器30根據高效率視訊寫碼(HEVC) (其被稱為ITU-T H.265)、其範圍及螢幕內容寫碼擴展、其3D視訊寫碼擴展(3D-HEVC)、其多視圖擴展(MV-HEVC)或其可調式擴展(SHVC)來編碼及解碼視訊資料。
本發明通常可指「發信」某些資訊,諸如語法元素。術語「發信」可通常指用以解碼經編碼視訊資料的語法元素及/或其他資料之通信。此通信可即時地或近乎即時地發生。替代地,可歷時一時間跨度而發生此通信,諸如此通信可在以下時候發生:在編碼時,將位元串流中之語法元素儲存至電腦可讀儲存媒體,該等語法元素隨後可在儲存於此媒體之後由解碼器件在任何時間進行擷取。
在HEVC及其他視訊寫碼規格中,視訊資料包括一系列圖像。圖像亦可被稱為「圖框」。圖像可包括一或多個樣本陣列。圖像之每一各別樣本陣列可包含各別色彩分量之樣本陣列。圖像可包括三個樣本陣列,標示為SL
、SCb
及SCr
。SL
為明度樣本之二維陣列(亦即,區塊)。SCb
為Cb色度樣本之二維陣列。SCr
為Cr色度樣本之二維陣列。在其他情況下,圖像可為單色且可僅包括明度樣本陣列。
作為編碼視訊資料之部分,視訊編碼器20可編碼視訊資料之圖像。換言之,視訊編碼器20可生成視訊資料之圖像之經編碼表示。圖像之經編碼表示在本文中可被稱作「經寫碼圖像」或「經編碼圖像」。
為生成圖像之經編碼表示,視訊編碼器20可編碼圖像之區塊。視訊編碼器20可將視訊區塊之經編碼表示包括於位元串流中。在一些實例中,為編碼圖像之區塊,視訊編碼器20執行框內預測或框間預測以生成一或多個預測性區塊。此外,視訊編碼器20可生成用於區塊之殘餘資料。殘餘區塊包含殘餘樣本。每一殘餘樣本可指示所生成之預測性區塊中之一者之樣本與區塊之對應樣本之間的差異。視訊編碼器20可將變換應用於殘餘樣本之區塊以生成變換係數。此外,視訊編碼器20可量化變換係數。在一些實例中,視訊編碼器20可生成一或多個語法元素以表示變換係數。視訊編碼器20可熵編碼表示變換係數之語法元素中之一或多者。
更特定言之,當根據HEVC或其他視訊寫碼規格編碼視訊資料時,為生成圖像之經編碼表示,視訊編碼器20可將圖像之每一樣本陣列分割成寫碼樹型區塊(CTB)且編碼CTB。CTB可為圖像之樣本陣列中的樣本之N×N區塊。在HEVC主規範中,CTB之大小可介於16×16至64×64之範圍(儘管技術上可支援8×8 CTB大小)。
圖像之寫碼樹型單元(CTU)可包含一或多個CTB,且可包含用以編碼該一或多個CTB之樣本的語法結構。舉例而言,每一CTU可包含明度樣本之CTB、色度樣本之兩個對應CTB,及用以編碼CTB之樣本的語法結構。在單色圖像或具有三個單獨色彩平面之圖像中,CTU可包含單一CTB及用以編碼CTB之樣本的語法結構。CTU亦可被稱作「樹型區塊」或「最大寫碼單元」(LCU)。在本發明中,「語法結構」可經定義為按指定次序一起在位元串流中呈現的零或多個語法元素。在一些編解碼器中,經編碼圖像為含有圖像之所有CTU的經編碼表示。應注意,上文所描述之CTB及CTU僅表示將圖像分割成區塊的一種方式,且本發明之技術不限於任何特定類型之區塊結構。HEVC之後續標準提出上文介紹之CTU/CTB結構的替代物,且預期可藉由此類新區塊結構使用本發明之技術。
為編碼圖像之CTU,視訊編碼器20可將CTU之CTB分割成一或多個寫碼區塊。寫碼區塊為樣本之N×N區塊。在一些編解碼器中,為編碼圖像之CTU,視訊編碼器20可對CTU之寫碼樹型區塊遞迴地執行四分樹分割以將CTB分割成寫碼區塊,因此命名為「寫碼樹單元」。寫碼單元(CU)可包含一或多個寫碼區塊及用以編碼一或多個寫碼區塊之樣本的語法結構。舉例而言,CU可包含具有明度樣本陣列、Cb樣本陣列及Cr樣本陣列之圖像的明度樣本之寫碼區塊,及色度樣本之兩個對應寫碼區塊,以及用於編碼寫碼區塊之樣本的語法結構。在單色圖像或具有三個單獨色彩平面之圖像中,CU可包含單一寫碼區塊及用於寫碼該寫碼區塊之樣本的語法結構。
另外,視訊編碼器20可編碼視訊資料之圖像之CU。在一些編解碼器中,作為編碼CU之部分,視訊編碼器20可將CU之寫碼區塊分割成一或多個預測區塊。預測區塊為供應用相同預測的樣本之矩形(亦即,正方形或非正方形)區塊。CU之預測單元(PU)可包含CU之一或多個預測區塊,及用以預測該一或多個預測區塊之語法結構。舉例而言,PU可包含明度樣本之預測區塊、色度樣本之兩個對應預測區塊,及用以對預測區塊進行預測之語法結構。在單色圖像或具有單獨色彩平面之圖像中,PU可包含單個預測區塊及用於預測該預測區塊的語法結構。
視訊編碼器20可生成用於CU之PU的預測區塊(例如,明度、Cb及Cr預測區塊)之預測性區塊(例如,明度、Cb及Cr預測性區塊)。視訊編碼器20可使用框內預測或框間預測以生成預測性區塊。若視訊編碼器20使用框內預測以生成預測性區塊,則視訊編碼器20可基於包括CU的圖像之經解碼樣本生成預測性區塊。若視訊編碼器20使用框間預測以生成當前圖像之PU之預測性區塊,則視訊編碼器20可基於參考圖像(亦即,除當前圖像外之圖像)之經解碼樣本生成PU之預測性區塊。在HEVC中,視訊編碼器20在「coding_unit」語法結構內生成用於框間預測之PU之「prediction_unit」語法結構,但不在「coding_unit」語法結構內生成用於框內預測之PU之「prediction_unit」語法結構。相反,在HEVC中,關於框內預測之PU之語法元素直接包括於「coding_unit」語法結構中。
視訊編碼器20可生成CU之一或多個殘餘區塊。例如,視訊編碼器20可生成CU之明度殘餘區塊。CU之明度殘餘區塊中之每一樣本指示CU之預測性明度區塊中之一者中的明度樣本與CU之原始明度寫碼區塊中的對應樣本之間的差異。另外,視訊編碼器20可生成用於CU之Cb殘餘區塊。CU之Cb殘餘區塊中之每一樣本可指示CU之預測性Cb區塊中之一者中的Cb樣本與CU之原始Cb寫碼區塊中之對應樣本之間的差異。視訊編碼器20亦可生成CU之Cr剩餘區塊。CU之Cr殘餘區塊中之每一樣本可指示CU之預測性Cr區塊之中之一者中的Cr樣本與CU之原始Cr寫碼區塊中之對應樣本之間的差異。
此外,視訊編碼器20可將CU之殘餘區塊分解成一或多個變換區塊。例如,視訊編碼器20可使用四分樹分割以將CU之殘餘區塊分解成一或多個變換區塊。變換區塊為應用相同變換之樣本的矩形(例如正方形或非正方形)區塊。CU之變換單元(TU)可包含一或多個變換區塊。舉例而言,TU可包含明度樣本之變換區塊、色度樣本之兩個對應變換區塊,及用以對變換區塊樣本進行變換之語法結構。因此,CU之每一TU可具有明度變換區塊、Cb變換區塊以及Cr變換區塊。TU之明度變換區塊可為CU之明度殘餘區塊之子區塊。Cb變換區塊可為CU之Cb殘餘區塊之子區塊。Cr變換區塊可為CU之Cr殘餘區塊之子區塊。在單色圖像或具有三個單獨色彩平面之圖像中,TU可包含單一變換區塊及用以對變換區塊之樣本進行變換的語法結構。
視訊編碼器20可將一或多個變換應用於TU之變換區塊以生成TU之係數區塊。係數區塊可為變換係數之二維陣列。變換係數可為純量。在一些實例中,一或多個變換將變換區塊自像素域轉換至頻域。因此,在此等實例中,變換係數可為視為在頻域中的純量。變換係數層級為表示在按比例調整變換係數值之計算之前與解碼過程中之特定2維頻率索引相關聯之值的整數數量。
在一些實例中,視訊編碼器20將變換之應用跳至變換區塊。在此等實例中,視訊編碼器20可以與變換係數相同之方式處理殘餘樣本值。因此,在視訊編碼器20跳過變換之應用的實例中,變換係數及係數區塊之以下論述可適用於殘餘樣本之變換區塊。
生成係數區塊之後,視訊編碼器20可量化係數區塊以可能地減小用以表示係數區塊之資料的量,潛在地提供進一步壓縮。量化通常係指其中值之範圍壓縮為單個值的過程。舉例而言,可藉由以常數除以值且接著捨入至最接近的整數來進行量化。為量化係數區塊,視訊編碼器20可量化係數區塊之變換係數。量化可減小與變換係數中之一些或全部相關聯的位元深度。舉例而言,在量化期間,可將n
位元變換係數降值捨入至m
位元變換係數,其中n
大於m
。在一些實例中,視訊編碼器20跳過量化。
視訊編碼器20可生成指示一些或所有潛在地經量化的變換係數的語法元素。視訊編碼器20可熵編碼指示經量化變換係數之語法元素中之一或多者。舉例而言,視訊編碼器20可對指示經量化之變換係數之語法元素執行上下文適應性二位元算術寫碼(CABAC)。因此,經編碼區塊(例如,經編碼CU)可包括指示經量化變換係數之經熵編碼語法元素。
視訊編碼器20可輸出包括經編碼視訊資料之位元串流。換言之,視訊編碼器20可輸出包括視訊資料之經編碼表示的位元串流。視訊資料之經編碼表示可包括視訊資料之圖像之經編碼表示。舉例而言,位元串流可包含形成視訊資料及相關聯資料之經編碼圖像之表示的位元之序列。在一些實例中,經編碼圖像之表示可包括圖像之區塊之經編碼表示。
視訊解碼器30可接收由視訊編碼器20生成之位元串流。如上文所提及,位元串流可包含視訊資料之經編碼表示。視訊解碼器30可解碼位元串流以重構視訊資料之圖像。作為解碼位元串流之部分,視訊解碼器30可自位元串流獲得語法元素。視訊解碼器30可至少部分地基於獲自位元串流之語法元素來重構視訊資料之圖像。重構視訊資料之圖像的處理過程可大體上互逆於由視訊編碼器20執行以編碼圖像之處理過程。
例如,作為解碼視訊資料之圖像的部分,視訊解碼器30可使用框間預測或框內預測以生成預測性區塊。此外,視訊解碼器30可基於自位元串流獲得的語法元素判定變換係數。在一些實例中,視訊解碼器30逆量化經判定變換係數。逆量化將經量化值映射至經重構值。舉例而言,視訊解碼器30可藉由判定一值乘以量化步長而逆量化該值。此外,視訊解碼器30可將逆變換應用於經判定變換係數以判定殘餘樣本之值。視訊解碼器30可基於殘餘樣本及所生成之預測性區塊之對應樣本來重構圖像之區塊。舉例而言,視訊解碼器30可將殘餘樣本添加至所生成之預測性區塊之對應樣本以判定區塊之經重構樣本。
更特定言之,在HEVC及其他視訊寫碼規格中,視訊解碼器30可使用框間預測或框內預測以生成當前CU之每一PU的一或多個預測性區塊。另外,視訊解碼器30可逆量化當前CU之TU的係數區塊。視訊解碼器30可對係數區塊執行逆變換以重構當前CU之TU的變換區塊。基於當前CU之PU之預測性區塊的樣本及當前CU之TU之變換區塊的殘餘樣本,視訊解碼器30可重構當前CU之寫碼區塊。在一些實例中,視訊解碼器30可藉由將當前CU之PU的預測性區塊之樣本添加至當前CU之TU的變換區塊之對應經解碼樣本來重構當前CU之寫碼區塊。藉由重構圖像之每一CU的寫碼區塊,視訊解碼器30可重構圖像。
圖像之截塊可包括圖像之整數數目個區塊。舉例而言,在HEVC及其他視訊寫碼規格中,圖像之截塊可包括圖像之整數數目個CTU。截塊之CTU可按掃描次序(諸如光柵掃描次序)連續定序。在HEVC中,截塊經定義為含於同一存取單元內的一個獨立截塊片段及先於下一獨立截塊片段(若存在)之所有後續相關截塊片段(若存在)中的整數數目個CTU。此外,在HEVC中,截塊片段經定義為圖塊掃描中經連續定序且含於單一NAL單元中的整數數目個CTU。影像塊掃描為分割圖像之CTB的特定順序定序,其中CTB在影像塊中在CTB光柵掃描中經連續定序,而圖像中之影像塊係在圖像之影像塊的光柵掃描中經連續定序。影像塊為圖像中之特定影像塊行及特定影像塊列內的CTB之矩形區。
如上文所提及,視訊編碼器20及視訊解碼器30可將CABAC編碼及解碼應用於語法元素。為了將CABAC編碼應用於語法元素,視訊編碼器20可對語法元素進行二位元化以形成被稱作「二進位」的一系列一或多個位元。另外,視訊編碼器20可識別寫碼上下文。寫碼上下文可識別具有特定值之二進位的機率。例如,寫碼上下文可指示寫碼0值二進位之0.7機率及寫碼1值二進位之0.3機率。在識別寫碼上下文之後,視訊編碼器20可將間隔劃分成下部子間隔及上部子間隔。該等子間隔中之一者可與值0相關聯且另一子間隔可與值1相關聯。該等子間隔之寬度可與由經識別的寫碼上下文關於相關聯值所指示之機率成正比。若語法元素之二進位具有與下部子間隔相關聯之值,則經編碼值可等於下部子間隔之下邊界。若語法元素之相同二進位具有與上部子間隔相關聯的值,則經編碼值可等於上部子間隔之下邊界。為編碼語法元素之下一二進位,視訊編碼器20可重複此等步驟,其中間隔為與經編碼位元之值相關聯的子間隔。當視訊編碼器20針對下一個二進位重複此等步驟時,視訊編碼器20可使用基於由經識別寫碼上下文所指示之機率及經編碼之二進位之實際值的經修改機率。
當視訊解碼器30對語法元素執行CABAC解碼時,視訊解碼器30可識別寫碼上下文。視訊解碼器30可接著將間隔劃分成下部子間隔及上部子間隔。該等子間隔中之一者可與值0相關聯且另一子間隔可與值1相關聯。該等子間隔之寬度可與由經識別的寫碼上下文關於相關聯值所指示之機率成正比。若經編碼值在下部子間隔內,則視訊解碼器30可解碼具有與下部子間隔相關聯之值的二進位。若經編碼值在上部子間隔內,則視訊解碼器30可解碼具有與上部子間隔相關聯之值的二進位。為解碼語法元素之下一個二進位,視訊解碼器30可重複此等步驟,其中間隔為含有經編碼值之子間隔。當視訊解碼器30針對下一個二進位重複此等步驟時,視訊解碼器30可使用基於由經識別寫碼上下文所指示之機率及經解碼二進位的經修改機率。視訊解碼器30可接著將二進位去二位元化以恢復語法元素。
視訊編碼器20可使用旁路CABAC寫碼編碼一些二進位。相比於對二進位執行常規CABAC寫碼,對二進位執行旁路CABAC寫碼在計算上可花費較少。此外,執行旁路CABAC寫碼可允許較高的並行化度及輸送量。使用旁路CABAC寫碼編碼之二進位可被稱作「旁路二進位」。將旁路二進位分組在一起可使視訊編碼器20及視訊解碼器30之輸送量增加。旁路CABAC寫碼引擎可能夠在單一循環中寫碼若干二進位,而常規CABAC寫碼引擎在一循環中可僅能夠寫碼單個二進位。旁路CABAC寫碼引擎可較簡單,此係因為旁路CABAC寫碼引擎不選擇上下文且可針對兩個符號(0及1)假定½之機率。因此,在旁路CABAC寫碼中,間隔係直接***成兩半。
算術寫碼為用於資料壓縮的基礎工具。參見例如I. H. Witten, R. M. Neal及J. G. Cleary, 「Arithmetic coding for data compression,」Commun. ACM, 第30卷,第6期,第520-540頁,1987年6月(下文中,「參考1」); A. Said, Lossless Compression Handbook中之「Arithmetic Coding」,K.Sayood編, Academic Press,第5章,第101-152頁, 2003 (下文中,「參考2」); A. Said,」Introduction to arithmetic coding - theory and practice」,Hewlett Packard Laboratories, Palo Alto, CA, USA, Technical Report HPL-2004-76,2004年4月, (http://www.hpl.hp.com/techreports/2004/HPL-2004-76.pdf)(下文中,「參考3」)。
算術寫碼在AVC/H.264視訊壓縮標準中為視情況存在的。參看I. D. Marpe, H. Schwarz及T. Wiegand,「Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard」," IEEE Trans. Circuits Syst. Video Technol.,第13卷,第7期,第620-636頁,2003年7月(下文中,「參考4」); I. E. Richardson, The H.264 Advanced Video Compression Standard,第2版., John Wiley and Sons Ltd., 2010 (下文中,「參考5」)。
算術寫碼變為視訊寫碼標準HEVC/H.265及VP9中之唯一熵編碼技術。參看V. Sze及M. Budagavi,「High throughput CABAC entropy coding in HEVC,」 IEEE Trans. Circuits Syst. Video Technol.,第22卷,第12期,第1778-1791頁, 2012年12月(下文中,「參考6」); V. Sze及D. Marpe, 「Entropy coding in HEVC,」 in High Efficiency Video Coding (HEVC): Algorithms and Architectures, V. Sze, M. Budagavi,及G. J. Sulliva編,第8章,第209-274頁.Springer, 2014 (下文中,「參考7」);M. Wien, High Efficiency Video Coding: Coding Tools and Specification, Springer-Verlag, 2015 (下文中,「參考8」); D. Mukherjee, J. Bankoski, R. S. Bultje, A. Grange, J. Han, J. Koleszar, P. Wilkins及 Y. Xu,「The latest open-source video codec VP9 - an overview and preliminary results」,in Proc. 30th Picture Coding Symp., San Jose, CA,2013年12月(下文中,「參考9」)。
由於算術寫碼相對於其他熵編碼技術之優良壓縮效率,因此算術寫碼經預期保持為用於當前處於開發中之新出現視訊寫碼標準的唯一熵寫碼技術。然而,在實際應用中使用熵寫碼之主要問題中之一者為最有效技術經設計以理想用於固定資料源,但來自複雜信號(如視訊)之真實資料決非固定的。當前解決方案使用資料分類法及調試性寫碼技術來解決此問題,且本發明之技術可提高調適技術之效率。
本發明之技術可藉由利用即使在資料經細微分為多個類別(寫碼上下文)時,指定用於每一類別之資料之統計數據中仍然存在大量變化的事實來提高壓縮效率。因此,代替使用單一「通用」調適技術用於所有類別,本發明提議根據每一類別改變調適參數,且在每一類別內,根據預期或觀測機率值或估計中經量測變量來進一步改變調適參數。
考慮到在調適開始時存在更高不確定性,且在其達到穩態類型後不確定性較小,因此本發明亦描述可提高調適技術之效率的技術。本發明亦描述可藉由延展調適參數改變以不僅依靠外部資料,如上下文數量、質量選擇等等,並且還依靠調適進展中之一些量測,如經編碼二進位之計數,及在視訊圖框與一或多個上下文相關聯之區塊之位置來改良已介紹之技術的各種技術。此等因素可經組合以藉由減少需要改變調適參數時之情況來簡化算術寫碼引擎之實施。
如參考1、2及3中所述,現代視訊寫碼標準採用將熵編碼分解成模擬及實際寫碼之策略。因此,用於現代視訊壓縮標準之二位元算術寫碼過程(參見例如典型熵編碼器及解碼器,諸如圖10A及10B中之架構)經劃分為三個主要階段。第一階段為二位元化,其中待寫碼之每一資料元素(或語法元素)經首先分解成二位元資料符號之序列(二進位)。由於二位元符號概率依賴於資料元素及其分解中的二位元符號位置,二進位上下文(或僅上下文)經指定用於每一類型之二位元符號,唯一地識別待用於其熵寫碼的機率估計值。第二階段為調試性機率估計。由於其假定指配給給定上下文之所有二進位具有類似(但並非完全相等)概率,因此編碼器及解碼器基於已預先經編碼或解碼之二進位值來更新其機率估計。第三階段為算術寫碼,其中每一二位元符號之值(0或1)係使用其值之估計機率經熵寫碼,該值由二進位之對應上下文定義。
本發明之技術可藉由改良調試性機率估計而獲得相對於現有技術的更好的壓縮。圖11A及11B將所提出的技術說明為圖10A及10B中所描繪的典型編碼器/解碼器架構之延伸。
用於二位元機率估計實踐之實例技術呈現於下文參考中:
· F. T. Leighton及R. L. Rivest,「Estimating a probability using finite memory」, IEEE Trans. Inf. Theory,第32卷,第6期,第733-742頁,1986年11月(下文中,「參考10」)。
· W. B. Pennebaker及J. L. Mitchell,「Probability estimation for the Q-Coder」, IBM J. Res. Develop.,第32卷,第6期,第737-752頁,1988年11月(下文中,「參考11」)。
· P. G. Howard及J. S. Vitter,Image and Text Compression中之「Practical implementations of arithmetic coding」, J. A. Storer編,第4章,第85-112頁. Kluwer Academic Publishers, Norwell, MA, 1992 (下文中,「參考12」)。
· E. Meron及M. Feder,「Finite-memory universal prediction of individual sequences」, IEEE Trans. Inf. Theory,第50卷,第7期, 第1506-1523頁,2004年7月(下文中,「參考13」)。
· E. Belyaev, M. Gilmutdinov及A. Turlikov,「Binary arithmetic coding system with adaptive probability estimation by `virtual sliding window',」in Proc. IEEE Int. Symp. Consumer Electronics, St. Petersburg, Russia,2006年6月(下文中,「參考14」)。
為實現極低計算複雜度實踐要求,通常使用某一類型的有限狀態機(FSM)來完成機率估計。
· F. T. Leighton及R. L. Rivest,「Estimating a probability using finite memory」, IEEE Trans. Inf. Theory,第32卷,第6期,第733-742頁,1986年11月(下文中,「參考10」)。
· W. B. Pennebaker及J. L. Mitchell,「Probability estimation for the Q-Coder」, IBM J. Res. Develop.,第32卷,第6期,第737-752頁,1988年11月(下文中,「參考11」)。
· P. G. Howard及J. S. Vitter,Image and Text Compression中之「Practical implementations of arithmetic coding」, J. A. Storer編,第4章,第85-112頁. Kluwer Academic Publishers, Norwell, MA, 1992 (下文中,「參考12」)。
· E. Meron及M. Feder,「Finite-memory universal prediction of individual sequences」, IEEE Trans. Inf. Theory,第50卷,第7期, 第1506-1523頁,2004年7月(下文中,「參考13」)。
· E. Belyaev, M. Gilmutdinov及A. Turlikov,「Binary arithmetic coding system with adaptive probability estimation by `virtual sliding window',」in Proc. IEEE Int. Symp. Consumer Electronics, St. Petersburg, Russia,2006年6月(下文中,「參考14」)。
為實現極低計算複雜度實踐要求,通常使用某一類型的有限狀態機(FSM)來完成機率估計。
為易於解釋本發明之技術,本發明並未涵蓋關於參考10-14之FSM之實施的所有細節,但其適用於定義正確術語,且一些實例呈現在此部分的結尾處。
圖2為實例通用FSM之方塊圖。更特定言之,圖2為通用有限狀態機之狀態轉變、輸入及輸出之序列的圖形表示。在圖2中,序列、、分別地表示FSM之狀態、輸入及輸出
,其為具有整數元素之向量(向量尺寸及允許元素之其設置必須經很好定義,但對本論述不重要)。
遵循上文定義,圖2之圖式中之箭頭表示狀態更新等式
及輸出等式
,其為
,, (1)
其中T 為狀態更新函數 ,及P 為輸出函數 。
,, (1)
其中T 為狀態更新函數 ,及P 為輸出函數 。
對於本發明之機率估計FSM,該等輸入為二進位值,且輸出為二進位機率估計。圖3、圖4、圖5及圖6中展示其在熵編碼及解碼期間之用途,其中按照慣例,二位元機率估計FSM被稱作寫碼上下文。
如圖3及圖4之實例中所示出,在實際視訊寫碼中,藉由使用大量寫碼上下文實施熵寫碼階段,該等寫碼上下文在編碼及解碼期間視經編碼或解碼之二進位之類型(或類別)來選擇。
圖5為考慮單一選定上下文之基於上下文的二位元算術編碼之實例方塊圖。在圖5中,算術編碼單元700包括算術編碼器502、位元緩衝器504、狀態判定單元506及機率估計FSM單元508。在一些實例中,算術編碼單元500自二位元化單元512接收二進位串流。算術編碼單元500及二位元化單元512可形成熵編碼單元118之部分,更詳細地關於圖13描述。二位元化單元512將每一資料元素(例如,語法元素)編碼成二位元資料符號(二進位)序列。二位元資料符號序列可被稱為「二進位串流」。另外,算術編碼單元500可接收上下文重新初始化信號。例如,算術編碼單元500可在算術編碼單元500開始編碼不同類型之二位元符號時接收上下文重新初始化信號。
另外,在圖5中,回應於接收上下文重新初始化信號,狀態判定單元506可重新初始化機率估計FSM之狀態。大體而言,重新初始化係指將機率估計值清零為與寫碼上下文相關聯之初始機率估計值。舉例而言,基於待編碼之二位元符號之類型,狀態判定單元506可在預定義表中查詢初始機率估計值。預定義表可由視訊寫碼標準,諸如HEVC定義。狀態判定單元506可將經判定初始機率估計值提供至二進位機率估計FSM單元508。為了二進位串流之第一二進位,二進位機率估計FSM單元508將初始機率估計值提供至算術編碼器502。另外,二進位機率估計FSM單元508基於二進位串流之第一二進位之實際值而更新機率估計值。針對直至狀態判定單元506重置機率估計值之每一後續二進位,二進位機率估計FSM單元508根據狀態更新函數來更新機率估計值,例如如等式(1)中所展示。
對於二進位串流之每一二進位,算術編碼器502可使用由二進位機率估計FSM單元508提供之機率估計值來關於CABAC編碼如本發明中之其它地方所描述之二進位。位元緩衝器504可儲存由算術編碼器502編碼之二進位。在圖5中,延遲盒510表示由二進位機率估計FSM單元508生成之二進位概率係基於當前由算術編碼器502編碼之二進位之前的二進位。
圖6為考慮單一選定上下文之基於上下文的二位元算術解碼之實例方塊圖。在圖6中,算術解碼單元600包括算術解碼器602、位元緩衝器604、狀態判定單元606及機率估計FSM單元608。算術解碼單元600生成二進位串流,在一些實例中,可藉由逆二位元化單元612接收該二進位串流。算術解碼單元800及逆二位元化單元612可形成圖14之熵解碼單元150之部分。逆二位元化單元612將二進位串流轉化為一系列一或多個語法元素。
在圖6中,算術解碼單元600接收位元組串流,其可根據由視訊解碼器30接收之位元串流來剖析。另外,算術解碼單元600可接收上下文重新初始化信號。例如,算術解碼單元600可在算術解碼單元600開始編碼不同類型之二位元符號時接收上下文重新初始化信號。另外,在圖6中,回應於接收上下文重新初始化信號,狀態判定單元606可重新初始化機率估計FSM之狀態。舉例而言,基於待編碼之二位元符號之類型,狀態判定單元606可在預定義表中查詢初始機率估計值。預定義表可由視訊寫碼標準,諸如HEVC定義。預定義表可與狀態判定單元506 (圖5)使用之表相同。狀態判定單元606可將經判定初始機率估計值提供至二進位機率估計FSM單元808。針對二進位串流之第一二進位,二進位機率估計FSM單元608將初始機率估計值提供至算術解碼器602。另外,二進位機率估計FSM單元608基於二進位串流之第一二進位之實際值而更新機率估計值。針對直至狀態判定單元606重置機率估計值之每一後續二進位,二進位機率估計FSM單元608根據狀態更新函數來更新機率估計值,例如如等式(1)中所展示。
針對二進位串流之每一二進位,算術解碼器602可使用由二進位機率估計FSM單元608提供之機率估計值來關於CABAC解碼如本發明中之其它地方所描述之二進位。位元緩衝器604可儲存待由算術解碼器602解碼之二進位。在圖6中,延遲盒610表示由二進位機率估計FSM單元808生成之二進位概率係基於當前由算術解碼器802解碼之二進位之前的二進位。
考慮到已選定單一上下文之例示性情況,圖5及圖6展示簡化圖式。圖5及圖6亦展示實際應用中始終存在之一種特徵,需要該特徵以定期使編碼器及解碼器狀態再同步,使用具有轉化為編碼器狀態的資料的共用表。舉例而言,在HEVC標準中,上下文係藉由定義如何將壓縮質量參數(被稱為量化步長,或量化參數(QP)值) (參看參考7及8)轉化至FSM狀態之表而經定期再初始化以用於每一上下文。
在二位元機率估計之最新的途徑之間,HEVC標準採用參考7及8中所描述之基於表查找之技術,該技術可由本發明之技術補充及/或置換。在最新ITU-T/MPEG JVET中,已提議兩種形式之機率更新技術。第一技術基於以下遞歸公式,描述於參考13及14中:
, (1)
, (1)
其中表示按比例調整之機率估計值之整數序列,b為二進位值之二位元序列,及a 為
能夠實現藉由位元變化實施乘法及除法的正整數。 第二技術使用基於以下等式集合衍生之以下機率更新,該等等式由A. Alshin, E. Alshina及J.-H. Park,「High precision probability estimation for CABAC,」in Proc. IEEE Visual Commun. Image Process. Conf., Kuching, Malaysia,2013年11月(下文中,「參考15」):
, (2)
(3)
。 (4)
, (2)
(3)
。 (4)
應注意,在此情況下,藉由首先計算如(2)及(3)中之對且接著如(4)中將其取平均以完成對於每一之機率估計。因此,此類型之估計為二步驟估計,其中必須更新並儲存中間機率估計值,及。
較早版本之ITU-T/MPEG JVET建議書使用最初描述於參考15及19中之技術。上述兩種類型之機率估計技術經組合使得初始地(1)中之單步驟機率估計用於某一數目個二進位,且接著在預定臨限值達到二步驟估計方式後,在(2)-(4)中採用(2)。此技術特定需要用於計數二進位之數目之計數器以判定輸入二進位之數目是否已達到選定臨限值。
根據本發明之技術,上述等式(2)-(4)可經改變以使用正整數(a,b
)作為等式中之參數:
,
,
。
,
,
。
參數(a,b)
係藉由不同值定義用於JVET視訊編碼器之編碼/解碼上下文(二位元語法元素)中之每一者,其中值亦可能根據其他因素來改變該等參數,諸如截塊類型及截塊QP值及上述其他因素。
由於熵寫碼經設計以最優用於固定資料源,因此實際有效性視對資料元素進行分類而定,使得每一類別中之統計數據大致固定,使得有可能使用近似「通用」,亦即同樣良好調適用於所有資料上下文之估計FSM。因此,在圖4及圖5中,FSM可能未改變,但替代地僅具有定期再初始化之狀態。
本發明解決實際上不存在真實地「普遍最優」FSM之事實,由於概率改變不僅用於每一上下文,且變化之速度及量值亦在上下文之間不同。本發明描述此問題之解決方案,利用變化根據上下文或經估計機率出現之事實,但最佳策略為利用兩者以判定最優FSM。本發明之技術亦藉由評估FSM狀態之演進而涵蓋選擇FSM參數之選項。舉例而言,量測超過一種估計之間的差值。
根據本發明之一或多種技術,改變FSM之常規定義,且本發明之技術亦定義FSM參數向量 h ,
其可用於改變FSM回應。藉由此定義,等式(1)可經重寫,亦即再定義狀態更新及輸出等式,如:
,,
其中現T 為參數化狀態更新函數 ,且P 為參數化輸出函數。
,,
其中現T 為參數化狀態更新函數 ,且P 為參數化輸出函數。
藉由此定義,可識別定義FSM寫碼效能之兩個因素:
·FSM 狀態 ():含有直接地用於計算二位元符號概率數值或邏輯資訊,且為由先前標準中之再初始化改變之唯一資料;
·FSM 參數 ():定義狀態更新,且根據狀態計算如何機率估計;本發明之技術可藉由在寫碼期間或在再初始化期間修改此等參數來改良壓縮。
·FSM 狀態 ():含有直接地用於計算二位元符號概率數值或邏輯資訊,且為由先前標準中之再初始化改變之唯一資料;
·FSM 參數 ():定義狀態更新,且根據狀態計算如何機率估計;本發明之技術可藉由在寫碼期間或在再初始化期間修改此等參數來改良壓縮。
舉例而言,(2)中之FSM等式可經改變以使用正整數(a,b
)作為等式中之參數:
,
,
。
,
,
。
參數a及b可用於判定下一二進位(亦即p[k
+1])之經估計機率。因此,等式(4)中之參數a及b可經視為用於下一二進位。在等式(4)中,參數(a,b)可改變狀態變化,但並非輸出等式。使用此差異因為即使其數學上有可能定義FSM參數作為FSM狀態之部分,但此表示實際差值。
圖7及圖8展示可如何將本發明之技術整合於算術寫碼過程中。在圖7之實例中,算術編碼單元700包括算術編碼器702、位元緩衝器704、狀態判定單元706、機率估計FSM單元708及FSM參數判定單元712。在一些實例中,算術編碼單元700可自二位元化單元713接收二進位串流。算術編碼單元700及二位元化單元713可形成圖2之熵編碼單元218之部分。二位元化單元713、算術編碼器702、位元緩衝器704、狀態判定單元706及延遲盒710可以與圖7中之二位元化單元713、算術編碼器702、位元緩衝器704、狀態判定單元706及延遲盒710相同之方式操作。
在圖8之實例中,算術解碼單元800包括算術解碼器802、位元緩衝器804、狀態判定單元806、機率估計FSM單元808及FSM參數判定單元812。算術解碼單元800生成二進位串流,在一些實例中,可藉由逆二位元化單元813接收該二進位串流。算術解碼單元800及逆二位元化單元813可形成圖3之熵解碼單元300之部分。逆二位元化單元813將二進位串流轉化為一系列一或多個語法元素。二位元化單元813、算術解碼器802、位元緩衝器804、狀態判定單元806及延遲盒810可以與圖8中之逆二位元化單元812、算術解碼器802、位元緩衝器804、狀態判定單元806及延遲盒810相同之方式操作。
圖7與圖8之主要差異(圖7及圖8中虛線展示)為圖7及圖8中包括的FSM參數判定單元712、812。FSM參數判定單元712、812判定FSM參數(例如,等式(4)中之a
及b
)。回應於上下文重新初始化事件,或在其他情況中,FSM參數判定單元712、812可在寫碼期間判定FSM參數。因此,在圖7及圖8中,參數化之上下文FSM可在寫碼或再初始化期間,藉由FSM參數判定單元712、812,使用機率值、質量因素及其他資料修改。應注意,饋入FSM參數判定單元712、812之資料可包含或由以下組成:再初始化參數亦及當前狀態(例如,二進位概率)。
因此,根據本發明之一或多種技術,視訊編碼器20可接收視訊資料。視訊資料可包含一或多個圖像。另外,視訊編碼器20之預測處理單元200、量化單元206及潛在地其他組件可基於視訊資料而生成語法元素。在此實例中,熵編碼單元218可藉由將二位元算術編碼應用於所生成語法元素中之一者而判定偏差值。作為應用二位元算術編碼之部分,熵編碼單元218可藉由二位元化一或多個語法元素來生成二進位串流。另外,對於二進位串流之至少一個相應二進位(例如,二進位串流之特定二進位、二進位串流之每一二進位、除二進位串流之最後一個二進位以外之二進位串流之每一二進位等等),基於相應二進位之狀態,熵編碼單元218可判定用於相應二進位之間隔及相應二進位之值、用於二進位串流之下一二進位的間隔。另外,熵編碼單元218可判定用於二進位串流之下一二進位的一或多個FSM參數。基於相應二進位之狀態,熵編碼單元218亦可判定用於二進位串流之下一二進位之一或多個FSM參數及相應二進位之值、二進位串流之下一二進位之狀態。在此實例中,偏差值可等於用於二進位串流之最後一個二進位之間隔的值。視訊編碼器20可輸出包含偏差值之位元串流。
另外,根據本發明之一或多種技術,視訊解碼器30之熵解碼單元300可藉由將二位元算術解碼應用於位元串流中包括的偏差值而判定經解碼語法元素。作為應用二位元算術解碼之部分,熵解碼單元300可生成二進位串流。作為生成二進位串流之部分,對於二進位串流之至少一個相應二進位(例如,二進位串流之特定二進位、二進位串流之每一二進位、除二進位串流之最後一個二進位以外的二進位串流之每一二進位等等),基於相應二進位之狀態,熵解碼單元300可判定用於相應二進位之間隔及偏差值、相應二進位之值。另外,熵解碼單元300可判定用於二進位串流之下一二進位的一或多個FSM參數。二進位串流之下一二進位遵循二進位串流中之相應二進位。另外,基於相應二進位之狀態,熵解碼單元300亦可判定用於二進位串流之下一二進位之一或多個FSM參數及相應二進位之值、二進位串流之下一二進位之狀態。熵解碼單元300可將二進位串流去二位元化以形成經解碼語法元素。視訊解碼器30之其他組件可部分地基於經解碼語法元素來重構視訊資料之圖像。換言之,視訊解碼器30可在重構圖像過程中使用經解碼語法元素。
在一些實例中,FSM參數判定單元712、812針對不同上下文使用不同函數。例如,每一上下文可使用FSM參數判定單元712、812中之不同函數。FSM參數判定單元712、812使用函數用於上下文以判定由二進位機率估計FSM單元708、808使用之FSM參數。例如,FSM參數判定單元712、812中之每一者可存取將不同上下文映射至不同FSM參數的預定義表。在另一實例中,不同上下文可與不同預定義表相關聯。在此實例中,FSM參數判定單元712、812中之每一者可存取與當前上下文相關聯之預定義表並基於一或多條額外資訊來在與當前上下文相關聯之預定義表中查詢條目。在此實例中,額外資訊可包括關於相鄰區塊之寫碼模式的資訊、關於最後一個非零係數之位置的資訊等等。在一些實例中,用於上下文之函數為自上下文至FSM參數之預定值的映射。因此,在一些實例中,FSM參數判定單元712、812中之每一者經組態具有將上下文映射至FSM參數之預定值的表。
在一些實例中,即使針對相同上下文,FSM參數(例如,用於雙軌道算術編碼器之(a,b))亦可依賴於截塊類型及/或量化參數,及/或經寫碼模式資訊(例如,例如截塊標頭中之經寫碼為解碼器之旁側資訊的任何類型的資訊)。舉例而言,FSM參數判定單元712、812中之每一者可組態具有將因素(例如,上下文、截塊類型、量化參數、經寫碼模式資訊等等)之組合映射至FSM參數的表。
FSM參數判定單元712、812可以各種方式修改FSM參數。換言之,FSM參數判定單元712、812可回應於各種事件及基於各種類型之資訊改變由二進位機率估計FSM單元708使用之FSM參數。一些機率列於如下,其可適用於每一上下文。
在一個實例中,FSM參數在再初始化期間根據狀態再初始化參數,諸如量化步長或QP值而經修改。舉例而言,視訊寫碼器可經組態具有將狀態重新初始化參數之值映射至FSM參數之預定義表。在此實例中,視訊寫碼器可基於狀態重新初始化參數使用表來查詢FSM參數。
在一些實例中,FSM參數根據經估計機率值,在再初始化期間,或以短於再初始化之定期間隔而經修改(例如,用於每一CTU,在每一二進位後等等)。舉例而言,視訊寫碼器可經組態具有將經估計機率值映射至FSM參數的預定義表。在此實例中,視訊寫碼器可基於經估計機率值以使用表來查詢FSM參數。在此實例中,視訊寫碼器可在上下文再初始化期間使用表來查詢FSM參數。例如,視訊寫碼器可使用由寫碼上下文指定之機率估計值來在上下文再初始化期間查詢FSM參數。另外,在一些實例中,二進位機率估計FSM單元708或808可在上下文再初始化後判定機率估計值用於第一二進位後之二進位。在此等實例中,視訊寫碼器可使用藉由二進位機率估計FSM單元708或808判定之機率估計值來在預定義表中查詢FSM參數。
在一些實例中,FSM參數係基於過去機率變化之量測而經修改。視訊寫碼器可藉由將概率之間的絕對差加總來計算過去機率變化之量測。在不同實例中,視訊寫碼器可使用不同技術估計概率。在一個實例中,使用由等式(4)定義之FSM,視訊寫碼器可使用「估計變化量測」用於判定FSM參數。在此實例中,可根據以下等式定義「估計變化量測」:
, (5)
在上述等式中,σ [k +1]為二進位k+ 1之估計變化量測,σ [k ]為二進位k 之估計變化量測,q 1 [k ]及q 2 [k ]定義於等式(4)中,且c 為參數(例如,c 可為常數)。在此實例中,視訊寫碼器可存取將估計變化量測σ [k ]之不同值映射至不同FSM參數集合之預定義表。因此,在此實例中,視訊寫碼器可基於估計變化量測來查詢FSM參數。在一些實例中,視訊寫碼器可存取用於不同寫碼上下文之不同預定義表。在此等實例中,用於寫碼上下文預定義表中之不同條目可將σ [k ]之不同值映射至FSM參數之值。在一些實例中,其中視訊寫碼器存取用於不同寫碼上下文之不同預定義表,用於寫碼上下文之表中之不同條目可將σ [k ]之值之不同組合及額外資訊映射至FSM參數之值。在此等實例中,額外資訊可包括截塊類型、量化參數等等。
, (5)
在上述等式中,σ [k +1]為二進位k+ 1之估計變化量測,σ [k ]為二進位k 之估計變化量測,q 1 [k ]及q 2 [k ]定義於等式(4)中,且c 為參數(例如,c 可為常數)。在此實例中,視訊寫碼器可存取將估計變化量測σ [k ]之不同值映射至不同FSM參數集合之預定義表。因此,在此實例中,視訊寫碼器可基於估計變化量測來查詢FSM參數。在一些實例中,視訊寫碼器可存取用於不同寫碼上下文之不同預定義表。在此等實例中,用於寫碼上下文預定義表中之不同條目可將σ [k ]之不同值映射至FSM參數之值。在一些實例中,其中視訊寫碼器存取用於不同寫碼上下文之不同預定義表,用於寫碼上下文之表中之不同條目可將σ [k ]之值之不同組合及額外資訊映射至FSM參數之值。在此等實例中,額外資訊可包括截塊類型、量化參數等等。
在一些實例中,視訊寫碼器可使用如上文針對修改FSM參數所定義之技術中之任一者,而代替使用由於先前再初始化所生成之資料,視訊寫碼器可使用來自視訊序列之其他部分的資料。舉例而言,圖9A為展示FSM參數可來源於遵循掃描順序之相同圖像中的相鄰區塊(例如,CTU、CU)之方塊圖。例如,在圖9A之實例中,FSM參數判定單元712、812可至少部分地基於來自一或多個相鄰區塊之資訊而判定FSM參數。資訊可包括預測模式、量化參數等等。在一些實例中,資訊可包括來源於機率變化之某一量測的資料。舉例而言,可使用單一位元,其中1表示所觀測到的機率估計值中之明顯變化,且0指示其他方面。
圖9B為展示可基於與預先經寫碼圖像912中之區塊相關聯的資訊而判定當前圖像910之區塊中所用的FSM參數之方塊圖。預先經寫碼圖像912中之區塊可具有與當前圖像910中之區塊相同的空間位置。例如,在圖9B之實例中,FSM參數判定單元712、812可至少部分地基於來自預先經寫碼圖像中之一或多個區塊的資訊而判定FSM參數。資訊可包括預測模式、量化參數等等。在一些實例中,資訊可包括來源於機率變化之一些量測的資料。舉例而言,可使用單一位元,其中1表示所觀測到的機率估計值之明顯變化,且0指示其他方面。
上述介紹之技術利用用於改良估計概率之過程的兩個主要構想。第一,論述於參考15及A. Alshin及E. Alshina,「Method and apparatus for entropy encoding/decoding,」,美國專利申請案公開案2014/0177708 A1,2014年6月(「參考19」)(該申請案以全文引用之方式併入本文中)中之基於計數器之技術利用機率估計(使用先前部分中所定義之等式)傾向於隨著經編碼/經解碼二進位之數目增大而改良之事實。因此,可較佳以定義較快,但較低精確估計之參數起始,且接著切換至定義較慢但更精確估計之參數。第二,如上述介紹,不同參數集合/編碼/解碼上下文的使用利用不同語法元素生成具有獨特統計特徵之二進位串流之事實,且其較佳為使用最佳化用於每一情況之參數。
本發明亦藉由組合上述兩個構想來延伸上文介紹之技術,但延伸第一構想亦包括:(i)使用用於經編碼/經解碼二進位/上下文之計數器,(ii)允許量測「發展」或「成熟」之估計以提供調適,及(iii)根據彼量測引入改變調適參數之更通用方式。
本發明描述用於藉由漸進式調適之二位元算術寫碼中之機率估計的技術,相較於參考15及19之技術,其潛在地提供較佳調適用於機率估計值且提高寫碼效率。用於藉由漸進式調適之二位元算術寫碼中之機率估計的技術包括兩個主要組件,如圖11A及11B之實例中所展示。第一組件為機率估計。根據本發明之技術,機率更新係以如(2)-(4)中之二步驟估計執行。然而,本發明之技術可為更通用且使用個正向權重,標示為、…、,用於如下公式化之機率更新:
機率估計器(、…、):
其中 i=1 、 2 、 … 、 n 。 (5)
。 (6a)
。 (6b)
其中為預定義整數。
機率估計器(、…、):
其中 i=1 、 2 、 … 、 n 。 (5)
。 (6a)
。 (6b)
其中為預定義整數。
第二組件為漸進式調適。本發明之所提議漸進式調適規定以調試性方式貫穿編碼(或解碼)過程之機率估計器之參數(亦即權重、…、及、…、)。為此目的,標示為t之進展之量測
用於判定機率估計器中所用之權重。在通用設定中,權重經選定為t
之向量價值函數,即,(、、…、)=,其中t
量測進展程度。此類量測之實例包括(i)預先經編碼/經解碼二進位之數目,(ii)待編碼/解碼之下一視訊補丁(例如,CTU區塊、截塊或寫碼單元)之位置,及(iii)預先經編碼/經解碼之像素之數目。
本發明亦描述根據上述已介紹之技術構成的額外技術。因此,除非另外明確陳述,否則應假定指定用於改變機率估計參數,諸如上下文(經壓縮之資料語法元素)之二位元編碼或解碼之所有條件可與下文定義之機率估計之「發展」或「成熟」之量測結合。
本發明描述用於量測估計發展之以下技術。視訊編碼器20及視訊解碼器30可經組態以執行下文技術之任何組合。在一些實例中,視訊解碼器30可執行與視訊編碼器20之彼技術互逆的技術。
1. 使用經編碼/解碼二進位/上下文之一或多個計數器,藉由由一或多個臨限值,表示為、…定義之多個參數之變化(參考19僅定義一個參數及臨限值,且並不包括上文所描述之其他因素)。
a. 用於每一上下文之參數集合之總數目可等於臨限值之總數目加1。
b. 在一個實施例中,可預定義對應於小於或等於一個臨限值之計數器之用於每一上下文的每一參數集合。
c. 在另一實例中,對應於小於或等於一個臨限值(例如,T1 )之計數器的用於每一上下文的一個參數集合可衍生自對應於小於或等於一個臨限值(例如,T2 )之計數器的另一參數集合。在此情況下,可減小參數之儲存。
(a) 在一個實施例中,針對給定上下文,假定對應於小於或等於由(A1,B1)及(A2,B2)各自表示的T1 /T2 之計數器的參數(a,b )之值,其中A2可經設定為(A1<<1)及/或B2經設定為(B1<<1)。
2. 添加經編碼/解碼二進位/上下文之一或多個計數器,但替代使用計數器用於即刻改變調適參數,僅在出現外部情況時改變多個上下文之參數(使用經定義用於每一上下文之臨限值)。外部情況之實例包括:
a. 開始或結束寫碼單元(CTU)
b. 開始或結束預定義寫碼單元組,例如N 個連續經寫碼CTU,其中N 為預定義的
c. 開始或結束CTU列
d. 開始截塊/圖像塊,且視時間機率更新是否用於彼截塊上而定
e. 經定義用於編碼器及解碼器兩者之任何其他區塊位置。可根據二進位統計數據來固定或改變或傳信區塊位置。
f. 若使用波前處理(例如,波前平行處理),則外部情況可借用CABAC初始化用於下一CTU列之區塊位置。
g. 在一個實施例中,外部情況可對於所有上下文而言為相同的。在其他實例中,不同外部情況可應用於不同上下文。
3. 將每一上下文上之一個計數器藉由外部指示器,如以下的組合取代:
a. 經編碼/解碼像素之數目;
b. 經編碼/解碼二進位之平均數目/像素
c. 累積位元速率
d. 機率估計器之時間更新
e. 視訊截塊品質因數(例如,QP值)及截塊類型(I、B或P)及時間層(時間層0、1或2)
f. 在一個實施例中,外部情況可對於所有上下文而言為相同的。在其他實例中,不同外部情況可應用於不同上下文。
4. 當啟用波前處理時,所介紹計數器可自上部CTU列借用CABAC初始化。在其他實例中,計數器可經重置且可在波前平行處理期間借用CABAC初始化時自起點開始累計。在又一實例中,在波前處理期間,所使用權重經儲存於同步點處且沿機率初始化借用,在此情況下,可能不需要計數器資訊用於下一CTU列。
5. 上文提及之所提議的技術可應用於某些上下文。
1. 使用經編碼/解碼二進位/上下文之一或多個計數器,藉由由一或多個臨限值,表示為、…定義之多個參數之變化(參考19僅定義一個參數及臨限值,且並不包括上文所描述之其他因素)。
a. 用於每一上下文之參數集合之總數目可等於臨限值之總數目加1。
b. 在一個實施例中,可預定義對應於小於或等於一個臨限值之計數器之用於每一上下文的每一參數集合。
c. 在另一實例中,對應於小於或等於一個臨限值(例如,T1 )之計數器的用於每一上下文的一個參數集合可衍生自對應於小於或等於一個臨限值(例如,T2 )之計數器的另一參數集合。在此情況下,可減小參數之儲存。
(a) 在一個實施例中,針對給定上下文,假定對應於小於或等於由(A1,B1)及(A2,B2)各自表示的T1 /T2 之計數器的參數(a,b )之值,其中A2可經設定為(A1<<1)及/或B2經設定為(B1<<1)。
2. 添加經編碼/解碼二進位/上下文之一或多個計數器,但替代使用計數器用於即刻改變調適參數,僅在出現外部情況時改變多個上下文之參數(使用經定義用於每一上下文之臨限值)。外部情況之實例包括:
a. 開始或結束寫碼單元(CTU)
b. 開始或結束預定義寫碼單元組,例如N 個連續經寫碼CTU,其中N 為預定義的
c. 開始或結束CTU列
d. 開始截塊/圖像塊,且視時間機率更新是否用於彼截塊上而定
e. 經定義用於編碼器及解碼器兩者之任何其他區塊位置。可根據二進位統計數據來固定或改變或傳信區塊位置。
f. 若使用波前處理(例如,波前平行處理),則外部情況可借用CABAC初始化用於下一CTU列之區塊位置。
g. 在一個實施例中,外部情況可對於所有上下文而言為相同的。在其他實例中,不同外部情況可應用於不同上下文。
3. 將每一上下文上之一個計數器藉由外部指示器,如以下的組合取代:
a. 經編碼/解碼像素之數目;
b. 經編碼/解碼二進位之平均數目/像素
c. 累積位元速率
d. 機率估計器之時間更新
e. 視訊截塊品質因數(例如,QP值)及截塊類型(I、B或P)及時間層(時間層0、1或2)
f. 在一個實施例中,外部情況可對於所有上下文而言為相同的。在其他實例中,不同外部情況可應用於不同上下文。
4. 當啟用波前處理時,所介紹計數器可自上部CTU列借用CABAC初始化。在其他實例中,計數器可經重置且可在波前平行處理期間借用CABAC初始化時自起點開始累計。在又一實例中,在波前處理期間,所使用權重經儲存於同步點處且沿機率初始化借用,在此情況下,可能不需要計數器資訊用於下一CTU列。
5. 上文提及之所提議的技術可應用於某些上下文。
實際上,在(5)中計算n
更新且接著如(6)中求其平均值可能在計算上複雜且需要較大記憶體資源,尤其在n
為較大數目時。作為機率估計器之一特定實例,權重之選擇可受限於,其中且,且其中a 及 b
為兩個正整數。此限制允許藉由使用位元位移之及的乘法之有效實施,使得技術具有較低計算複雜度。在此情況下,(5)及(6)中之關係可明確寫成如下:
, (8)
, (9)
。 (10)
, (8)
, (9)
。 (10)
另外,函數(,)=之任意選擇可引起較高記憶及計算複雜度。為減輕此問題,(,) =可經選定為分段常數函數,其中固定數量對集合可經指配給間隔集合。此類函數之實例可為
(11)
(11)
其中及為判定分段函數之間隔的兩個臨限值。另外,為獲得較佳壓縮效能,可在每一上下文基礎上完成機率更新。為此目的,權重對之集合及臨限值及之集合可經優化用於每一上下文,標示為c
,且用於編碼器或解碼器中之調試性機率估計。基於此類別之調適可應用於二進位之任何預定類別,其中類別定義可基於可用於編碼器/解碼器之任何旁側資訊,諸如截塊類型及量化參數(例如,QP值)。
調適參數可基於以下改變,例如
1. 獨立地根據上下文
2. 針對所有上下文同步;
3. 預定義上下文組同步,且其餘固定。
1. 獨立地根據上下文
2. 針對所有上下文同步;
3. 預定義上下文組同步,且其餘固定。
用於改變上下文之情況亦可基於由編碼器及解碼器共用之任何資訊。舉例而言,圖12展示視訊截塊(其可為視訊圖框),其經組織至經獨立寫碼之CTU之截塊中。實施之一個實例為具有僅在彼等區塊之起點處而非內部更新之上下文估計參數。改變可基於由每一上下文保持之計數或彙總寫碼資料之資訊,如截塊中之經壓縮之資料位元組的當前數目。
圖13為說明可實施本發明之技術之實例視訊編碼器20的方塊圖。出於解釋之目的而提供圖13,且不應將圖13視為對如本發明中廣泛例示及描述之技術的限制。本發明之技術可應用於各種寫碼標準或技術。
處理電路包括視訊編碼器20,且視訊編碼器20經組態以執行本發明中所描述之實例技術中之一或多者。舉例而言,視訊編碼器20包括積體電路,且圖13中所說明之各種單元可形成為與電路匯流排互連之硬體電路區塊。此等硬體電路區塊可為單獨電路區塊或該等單元中之兩者或大於兩者可組合為共用硬體電路區塊。硬體電路區塊可形成為電力組件之組合,該等電力組件形成諸如算術邏輯單元(ALU)、基礎功能單元(EFU)之操作區塊,以及諸如AND、OR、NAND、NOR、XOR、XNOR及其他類似邏輯區塊的邏輯區塊。
在一些實例中,圖13中所說明之單元中之一或多者可為在處理電路上執行之軟體單元。在此等實例中,用於此等軟體單元之目的碼儲存於記憶體中。作業系統可使得視訊編碼器20擷取目的碼並執行目的碼,其使得視訊編碼器20執行實施實例技術之操作。在一些實例中,軟體單元可為視訊編碼器20在啟動處執行之韌體。因此,視訊編碼器20為具有執行實例技術之硬體或具有在硬體上執行以特化執行該等實例技術之硬體的軟體/韌體的結構性組件。
在圖13之實例中,視訊編碼器20包括預測處理單元100、視訊資料記憶體101、殘餘生成單元102、變換處理單元104、量化單元106、逆量化單元108、逆變換處理單元110、重構單元112、濾波器單元114、經解碼圖像緩衝器116及熵編碼單元118。預測處理單元100包括框間預測處理單元120及框內預測處理單元126。框間預測處理單元120可包括運動估計單元及運動補償單元(未展示)。
視訊資料記憶體101可經組態以儲存待由視訊編碼器20之組件編碼之視訊資料。可(例如)自視訊源18獲得儲存於視訊資料記憶體101中之視訊資料。經解碼圖像緩衝器116可為儲存參考視訊資料之參考圖像記憶體,該參考視訊資料用於藉由視訊編碼器20,例如以框內或框間寫碼模式編碼視訊資料。視訊資料記憶體101及經解碼圖像緩衝器116可由多種記憶體器件中之任一者形成,諸如,動態隨機存取記憶體(DRAM),包括同步DRAM (SDRAM))、磁阻式RAM (MRAM)、電阻式RAM (RRAM)或其他類型之記憶體器件。可藉由相同記憶體器件或獨立記憶體器件來提供視訊資料記憶體101及經解碼圖像緩衝器116。在各種實例中,視訊資料記憶體101可與視訊編碼器20之其他組件一起在晶片上,或相對於彼等組件而言在晶片外。視訊資料記憶體101可與圖1之儲存媒體20相同或為其部分。
視訊編碼器20接收視訊資料。視訊編碼器20可編碼視訊資料之圖像之截塊中的每一CTU。CTU中之每一者可與圖像之相等大小的明度寫碼樹型區塊(CTB)及對應CTB相關聯。作為編碼CTU之部分,預測處理單元100可執行分割以將CTU之CTB分割成逐漸較小的區塊。較小區塊可為CU之寫碼區塊。舉例而言,預測處理單元100可根據樹狀結構分割與CTU相關聯的CTB。
視訊編碼器20可編碼CTU之CU以生成該等CU之經編碼表示(亦即,經寫碼CU)。作為編碼CU之部分,預測處理單元100可在CU之一或多個PU當中分割與CU相關聯之寫碼區塊。因此,每一PU可與明度預測區塊及對應的色度預測區塊相關聯。視訊編碼器20及視訊解碼器30可支援具有各種大小之PU。如上文所指示,CU之大小可指CU之明度寫碼區塊的大小,且PU之大小可指PU之明度預測區塊的大小。假定特定CU之大小為2N×2N,則視訊編碼器20及視訊解碼器30可支援用於框內預測之2N×2N或N×N之PU大小,及用於框間預測的2N×2N、2N×N、N×2N、N×N或相似大小之對稱PU大小。視訊編碼器20及視訊解碼器30亦可支援用於框間預測的2N×nU、2N×nD、nL×2N及nR×2N之PU大小的非對稱分割。
框間預測處理單元120可生成用於PU之預測性資料。作為生成用於PU之預測性資料之部分,框間預測處理單元120對PU執行框間預測。用於PU之預測性資料可包括PU之預測性區塊及用於PU之運動資訊。取決於PU係在I截塊中、P截塊中抑或B截塊中,框間預測處理單元120可針對CU之PU執行不同操作。在I截塊中,所有PU經框內預測。因此,若PU係在I截塊中,則框間預測處理單元120並未對PU執行框間預測。因此,對於在I模式中編碼之區塊,經預測之區塊係使用空間預測自同一圖框內的先前經編碼之相鄰區塊而形成。若PU在P截塊中,則框間預測處理單元120可使用單向框間預測以生成PU之預測性區塊。若PU在B截塊中,則框間預測處理單元120可使用單向或雙向框間預測以生成PU之預測性區塊。
框內預測處理單元126可藉由對PU執行框內預測而生成用於PU之預測性資料。用於PU之預測性資料可包括PU之預測性區塊及各種語法元素。框內預測處理單元126可對I截塊、P截塊及B截塊中之PU執行框內預測。
為對PU執行框內預測,框內預測處理單元126可使用多個框內預測模式來生成用於PU之預測性資料的多個集合。框內預測處理單元126可使用來自相鄰PU之樣本區塊的樣本以生成用於PU之預測性區塊。對於PU、CU及CTU,假定自左至右、自上而下之編碼次序,則該等相鄰PU可在PU上方、右上方、左上方或左邊。框內預測處理單元126可使用各種數目之框內預測模式,例如,33個定向框內預測模式。在一些實例中,框內預測模式之數目可取決於與PU相關聯之區域的大小。
預測處理單元100可自藉由框間預測處理單元120針對PU生成之預測性資料或藉由框內預測處理單元126針對PU生成之預測性資料中選擇用於CU之PU的預測性資料。在一些實例中,預測處理單元100基於預測性資料之集合的速率/失真量度而選擇用於CU之PU的預測性資料。選定之預測性資料的預測性區塊在本文中可被稱作選定之預測性區塊。
殘餘生成單元102可基於CU之寫碼區塊(例如,明度、Cb及Cr寫碼區塊)及CU之PU的選定預測性區塊(例如,預測性明度、Cb及Cr區塊)而生成CU之殘餘區塊(例如,明度、Cb及Cr殘餘區塊)。舉例而言,殘餘生成單元102可生成CU之殘餘區塊,使得殘餘區塊中之各樣本的值等於CU之寫碼區塊中的樣本與CU之PU的對應選定預測性區塊中的對應樣本之間的差值。
變換處理單元104可執行將CU之殘餘區塊分割成CU之TU的變換區塊。例如,變換處理單元104可執行四分樹分割以將CU之殘餘區塊分割成CU之TU的變換區塊。因此,TU可與一明度變換區塊及兩個色度變換區塊相關聯。CU之TU的明度變換及色度變換區塊的大小及位置可或可不基於CU之PU的預測區塊之大小及位置。被稱為「殘餘四分樹」(RQT)之四分樹結構可包括與區域中之每一者相關聯的節點。CU之TU可對應於RQT之分葉節點。
變換處理單元104可藉由將一或多個變換應用於TU之變換區塊而生成CU之每一TU的變換係數區塊。變換處理單元104可將各種變換應用於與TU相關聯之變換區塊。舉例而言,變換處理單元104可將離散餘弦變換(DCT)、定向變換或概念上類似之變換應用於變換區塊。在一些實例中,變換處理單元104並不將變換應用於變換區塊。在此等實例中,變換區塊可經處理為變換係數區塊。
量化單元106可量化係數區塊中之變換係數。量化單元106可基於與CU相關聯之量化參數(QP)值來量化與CU之TU相關聯的係數區塊。視訊編碼器20可藉由調整與CU相關聯之QP值來調整應用於與CU相關聯之係數區塊的量化程度。量化可引入資訊的損失。因此,經量化變換係數可具有比最初變換係數低的精度。
逆量化單元108及逆變換處理單元110可分別將逆量化及逆變換應用於係數區塊以自係數區塊重構殘餘區塊。重構單元112可將經重構之殘餘區塊添加至來自由預測處理單元100生成之一或多個預測性區塊的對應樣本,以生成與TU相關聯的經重構之變換區塊。藉由以此方式重構CU之每一TU的變換區塊,視訊編碼器20可重構CU之寫碼區塊。
濾波器單元114可執行一或多個解塊操作以減小與CU相關聯之寫碼區塊中的區塊假影。經解碼圖像緩衝器116可在濾波器單元114對經重構寫碼區塊執行一或多個解區塊操作之後,儲存經重構寫碼區塊。框間預測處理單元120可使用含有經重構寫碼區塊之參考圖像以對其他圖像之PU執行框間預測。另外,框內預測處理單元126可使用經解碼圖像緩衝器116中之經重構寫碼區塊,以對處於與CU相同之圖像中的其他PU執行框內預測。
熵編碼單元118可自視訊編碼器20之其他功能組件接收資料。舉例而言,熵編碼單元118可自量化單元106接收係數區塊且可自預測處理單元100接收語法元素。熵編碼單元118可對資料執行一或多個熵編碼操作以生成經熵編碼資料。舉例而言,熵編碼單元118可對資料執行CABAC操作、上下文調試性可變長度寫碼(CAVLC)操作、可變至可變(V2V)長度寫碼操作、基於語法之上下文調試性二位元算術寫碼(SBAC)操作、概率區間分割熵(PIPE)寫碼操作、指數哥倫布編碼(Exponential-Golomb encoding)操作或另一類型之熵編碼操作。視訊編碼器20可輸出包括由熵編碼單元118所生成之經熵編碼資料的位元串流。舉例而言,位元串流可包括表示用於CU之變換係數之值的資料。
在一些實例中,可使用熵編碼單元118實施本發明之技術。舉例而言,視訊編碼器20可接收視訊資料。視訊資料可包含一或多個圖像。另外,視訊編碼器20之預測處理單元100、量化單元106及潛在地其他組件可基於視訊資料生成語法元素。在此實例中,熵編碼單元118可藉由將二位元算術編碼應用於所生成語法元素中之一者而判定偏差值。作為應用二位元算術編碼之部分,熵編碼單元118可藉由二位元化語法元素來生成二進位串流。另外,對於二進位串流之至少一個相應二進位(例如,二進位串流之特定二進位、二進位串流之每一二進位、除二進位串流之最後一個二進位以外之二進位串流之每一二進位等等),熵編碼單元118可基於相應二進位之狀態判定用於相應二進位之間隔及相應二進位之值、用於二進位串流之下一二進位的間隔。另外,熵編碼單元118可判定用於二進位串流之下一二進位的一或多個有限狀態機(FSM)參數。基於相應二進位之狀態,熵編碼單元118亦可判定用於二進位串流之下一二進位之一或多個FSM參數及相應二進位之值、二進位串流之下一二進位之狀態。在此實例中,偏差值可等於用於二進位串流之最後一個二進位之間隔的值。視訊解碼器30可輸出包含偏差值之位元串流。
圖14為說明經組態以實施本發明之技術之實例視訊解碼器30的方塊圖。出於解釋之目的而提供圖14,且其並不限制如本發明中所廣泛例示及描述之技術。出於解釋之目的,本發明描述在HEVC寫碼之上下文中的視訊解碼器30。然而,本發明之技術可適用於其他寫碼標準或結合其他寫碼工具使用。
處理電路包括視訊解碼器30,且視訊解碼器30經組態以執行本發明中所描述之實例技術中之一或多者。例如,視訊解碼器30包括積體電路,且14中所說明之各種單元可形成為與電路匯流排互連之硬體電路區塊。此等硬體電路區塊可為單獨電路區塊或該等單元中之兩者或大於兩者可組合為共用硬體電路區塊。硬體電路區塊可形成為電力組件之組合,該等電力組件形成諸如算術邏輯單元(ALU)、基礎功能單元(EFU)之操作區塊,以及諸如AND、OR、NAND、NOR、XOR、XNOR及其他類似邏輯區塊的邏輯區塊。
在一些實例中,圖14中所說明之單元中之一或多者可包括執行於處理電路上之軟體單元。在此等實例中,用於此等軟體單元之目的碼儲存於記憶體中。作業系統可使得視訊解碼器30擷取目的碼並執行目的碼,該目的碼使得視訊解碼器30執行實施實例技術之操作。在一些實例中,軟體單元可為視訊解碼器30在啟動處執行之韌體。因此,視訊解碼器30為具有執行實例技術之硬體或具有在硬體上執行以特化執行該等實例技術之硬體的軟體/韌體的結構性組件。
在圖14之實例中,視訊解碼器30包括熵解碼單元150、視訊資料記憶體151、預測處理單元152、逆量化單元154、逆變換處理單元156、重構單元158、濾波器單元160,及經解碼圖像緩衝器162。預測處理單元152包括運動補償單元164及框內預測處理單元166。在其他實例中,視訊解碼器30可包括更多、更少或不同的功能組件。
視訊資料記憶體151可儲存待由視訊解碼器30之組件解碼的視訊資料,諸如經編碼視訊位元串流。可經由視訊資料之有線或無線網路連通,或藉由存取實際資料儲存媒體來例如自電腦可讀媒體16,例如自局部視訊源,諸如攝像機獲得儲存於視訊資料記憶體151中之視訊資料。視訊資料記憶體151可形成儲存來自經編碼視訊位元串流之經編碼視訊資料的經寫碼圖像緩衝器(CPB)。經解碼圖像緩衝器162可為儲存用於藉由視訊解碼器30,例如以框內或框間寫碼模式解碼視訊資料,或用於輸出之參考視訊資料的參考圖像記憶體。視訊資料記憶體151及經解碼圖像緩衝器162可由多種記憶體器件中之任一者形成,諸如動態隨機存取記憶體(DRAM),包括同步DRAM (SDRAM);磁阻式RAM (MRAM);電阻式RAM (RRAM)或其他類型之記憶體器件。視訊資料記憶體151及經解碼圖像緩衝器162可藉由同一記憶體器件或單獨記憶體器件來提供。在各種實例中,視訊資料記憶體151可與視訊解碼器30之其他組件一起在晶片上,或相對於彼等組件在晶片外。視訊資料記憶體151可與圖1之儲存媒體28相同或為該儲存媒體之部分。
視訊資料記憶體151接收並儲存位元串流之經編碼視訊資料(例如,NAL單元)。熵解碼單元150可自視訊資料記憶體151接收經編碼視訊資料(例如,NAL單元),且可剖析NAL單元以獲得語法元素。熵解碼單元150可熵解碼NAL單元中之經熵編碼語法元素。預測處理單元152、逆量化單元154、逆變換處理單元156、重構單元158及濾波器單元160可基於自位元串流提取之語法元素而生成經解碼視訊資料。熵解碼單元150可執行大體上與熵編碼單元118之彼程序互逆的過程。
可使用熵解碼單元150實施本發明之技術。舉例而言,熵解碼單元150可藉由將二位元算術解碼應用於位元串流中包括的偏差值而判定經解碼語法元素。作為應用二位元算術解碼之部分,熵解碼單元150可生成二進位串流。作為生成二進位串流之部分,對於二進位串流之至少一個相應二進位(例如,二進位串流之特定二進位、二進位串流之每一二進位、除二進位串流之最後一個二進位以外的二進位串流之每一二進位等等),基於相應二進位之狀態,熵解碼單元150可判定用於相應二進位之間隔及偏差值、相應二進位之值。另外,熵解碼單元150可判定用於二進位串流之下一二進位,接著二進位串流中之相應二進位之二進位串流之下一二進位的一或多個FSM參數。另外,基於相應二進位之狀態,熵解碼單元150可判定用於二進位串流之下一二進位之一或多個FSM參數及相應二進位之值、二進位串流之下一二進位之狀態。熵解碼單元150可將二進位串流去二位元化以形成經解碼語法元素。視訊解碼器30之其他組件可部分地基於經解碼語法元素來重構視訊資料之圖像。換言之,視訊解碼器30可在重構圖像過程中使用經解碼語法元素。
除自位元串流獲得語法元素之外,視訊解碼器30可對未經分割之CU執行重構操作。為對CU執行重構操作,視訊解碼器30可對CU之每一TU執行重構操作。藉由對CU之每一TU執行重構操作,視訊解碼器30可重構CU之殘餘區塊。
作為對CU之TU執行重構操作之部分,逆量化單元154可逆量化(例如,解量化)與TU相關聯之係數區塊。在逆量化單元154逆量化係數區塊之後,逆變換處理單元156可將一或多個逆變換應用於係數區塊以便生成與TU相關聯之殘餘區塊。舉例而言,逆變換處理單元156可將逆DCT、逆整數變換、逆Karhunen-Loeve變換(KLT)、逆旋轉變換、逆定向變換或另一逆變換應用於係數區塊。
逆量化單元154可執行本發明之特定技術。舉例而言,對於視訊資料之圖像的CTU之CTB內的複數個量化群組之至少一個各別量化群組,逆量化單元154可至少部分地基於在位元串流中傳信之本地量化資訊導出用於各別量化群組之各別量化參數。另外,在此實例中,逆量化單元154可基於用於各別量化群組之各別量化參數而逆量化CTU之CU的TU之變換區塊的至少一個變換係數。在此實例中,各別量化群組經定義為連續(在寫碼次序中) CU或寫碼區塊之群組,以使得各別量化群組之邊界必須為CU或寫碼區塊之邊界且各別量化群組之大小大於或等於臨限值。視訊解碼器30 (例如,逆變換處理單元156、重構單元158及濾波器單元160)可基於變換區塊之經逆量化變換係數而重構CU之寫碼區塊。
若使用框內預測編碼PU,則框內預測處理單元166可執行框內預測以生成PU之預測性區塊。框內預測處理單元166可使用框內預測模式來基於樣本空間相鄰區塊生成PU之預測性區塊。框內預測處理單元166可基於自位元串流獲得的一或多個語法元素而判定用於PU之框內預測模式。
若使用框間預測編碼PU,則熵解碼單元150可判定PU之運動資訊。運動補償單元164可基於PU之運動資訊而判定一或多個參考區塊。運動補償單元164可基於一或多個參考區塊而生成PU之預測性區塊(例如,預測性明度、Cb及Cr區塊)。
重構單元158可使用CU之TU之變換區塊(例如,明度、Cb及Cr變換區塊)及CU之PU之預測性區塊(例如,明度、Cb及Cr區塊)(亦即,可適用之框內預測資料或框間預測資料)來重構CU之寫碼區塊(例如,明度、Cb及Cr寫碼區塊)。舉例而言,重構單元158可將變換區塊(例如,明度、Cb及Cr變換區塊)之樣本添加至預測性區塊(例如,明度、Cb及Cr預測性區塊)之對應樣本,以重構CU之寫碼區塊(例如,明度、Cb及Cr寫碼區塊)。
濾波器單元160可執行解塊操作以減少與CU之寫碼區塊相關聯的區塊假影。視訊解碼器30可將CU之寫碼區塊儲存於經解碼圖像緩衝器162中。經解碼圖像緩衝器162可提供參考圖像以用於隨後運動補償、框內預測及在顯示器件(諸如,圖1之顯示器件32)上之呈現。例如,視訊解碼器30可基於經解碼圖像緩衝器162中之區塊對其他CU之PU執行框內預測或框間預測操作。
圖15A及15B展示二進位n
下的CABAC過程之實例。在圖15A之實例400中,在二進位n,二進位2下的範圍包括在給定某一上下文狀態(σ)的情況下藉由最不可能符號(LPS)之機率(pσ
)給定的RangeMPS及RangeLPS。實例400展示在二進位n之值等於最可能符號(MPS)時的二進位n+1下的範圍之更新。在此實例中,低點保持相同,但在二進位n+1處之範圍的值縮小至二進位n處之RangeMPS的值。圖15B之實例402展示當二進位n之值不等於MPS (亦即,等於LPS)時,二進位n+1處之範圍的更新。在此實例中,低點移動至二進位n處之RangeLPS的較低範圍值。另外,二進位n+1處之範圍之值縮小至二進位n處的RangeLPS之值。
在HEVC視訊寫碼過程之一個實例中,範圍用9個位元表示,且低點用10個位元表示。存在以充足精度維持範圍及低點值之再歸一化過程。再歸一化出現在每當範圍小於256時。因此,在再歸一化之後範圍始終等於或大於256。取決於範圍及低點之值,二位元算術寫碼器(BAC)將『0,』或『1,』輸出至位元串流,或更新內部變數(被稱作BO:位元突出)以保持未來輸出。圖16展示取決於範圍之BAC輸出的實例。舉例而言,當範圍及低點高於特定臨限值(例如,512)時,將『1』輸出至位元串流。當範圍及低點低於特定臨限值(例如,512)時,將「0」輸出至位元串流。當範圍及低點在某些臨限值之間時,不輸出任何值至位元串流。替代地,遞增BO值且編碼下一二進位。
在H.264/AVC之CABAC上下文模型及HEVC之一些實例中,存在128個狀態。存在可自0至63之64個可能的LPS機率(由狀態σ
表示)。每一MPS可為零或一。因此,128個狀態為64個狀態機率乘以MPS之2個可能值(0或1)。因此,狀態可用7個位元編索引。
為減少導出LPS範圍(rangeLPSσ
)之計算,針對所有狀況之結果可經預先計算且儲存為查找表中的近似值。因此,可在無任何乘法運算之情況下藉由使用簡單表查找來獲得LPS範圍。對於一些器件或應用而言避免乘法運算可為至關重要的,此係由於此操作可引起多種硬體架構中之顯著潛時。
可使用4行預先計算之LPS範圍表而非乘法運算。範圍經劃分為四個片段。可由問題(range>>6
)&3
導出片段索引。實際上,片段索引係藉由自實際範圍移位及丟棄位元來導出。以下表1展示可能範圍及其對應索引。
表 1- 範圍索引
表 1- 範圍索引
LPS範圍表接著具有64個條目(每一機率狀態有一者)乘以4 (每一範圍索引有一者)。每一條目為LPS範圍,亦即,將範圍乘以LPS機率之值。以下表2中展示此表之部分的實例。表2描繪機率狀態9-12。在HEVC之一個提議中,機率狀態範圍可為0至63。
表 2-RangeLPS
表 2-RangeLPS
在每一片段(亦即,範圍值)中,每一機率狀態σ之LPS範圍為預定義的。換言之,機率狀態σ之LPS範圍經量化為四個值(亦即,每一範圍索引有一個值)。在給定點處使用之特定的LPS範圍取決於範圍屬於哪一片段。表中所使用之可能的LPS範圍之數目為表行數(亦即,可能的LPS範圍值之數目)與LPS範圍精確度之間的折衷。大體而言,更多行生成LPS範圍值之更少量化錯誤,且亦增加對用以儲存表之更多記憶體的需求。更少行增加量化錯誤,且亦減少需要用以儲存表之記憶體。
如上文所述,每一LPS機率狀態具有對應機率。每一狀態之機率p如下予以導出:
pσ = α pσ -1
其中狀態σ為0至63。常量a表示每一上下文狀態之間的機率改變的量。在一個實例中,a=0.9493,或更精確而言,a=(0.01875/0.5)1/63 。在狀態σ=0下,機率等於0.5 (亦即,p0 =1/2)。亦即,在上下文狀態0下,LPS及MPS具有等同的機率。每一相繼狀態下的機率藉由將先前狀態與a相乘來導出。就此而論,出現在上下文狀態的LPS之機率a = 1為p0 * 0.9493 (0.5 * 0.9493 = .47465)。因此,隨著狀態a之索引增大,LPS出現之機率下降。
pσ = α pσ -1
其中狀態σ為0至63。常量a表示每一上下文狀態之間的機率改變的量。在一個實例中,a=0.9493,或更精確而言,a=(0.01875/0.5)1/63 。在狀態σ=0下,機率等於0.5 (亦即,p0 =1/2)。亦即,在上下文狀態0下,LPS及MPS具有等同的機率。每一相繼狀態下的機率藉由將先前狀態與a相乘來導出。就此而論,出現在上下文狀態的LPS之機率a = 1為p0 * 0.9493 (0.5 * 0.9493 = .47465)。因此,隨著狀態a之索引增大,LPS出現之機率下降。
CABAC係調試性的,此係因為機率狀態經更新以便遵循信號統計(亦即,經先前寫碼二進位之值)。更新過程如下。對於給定機率狀態,更新取決於狀態索引及經識別為LPS或MPS之經編碼符號的值。作為更新過程之結果,新的機率狀態經導出,其由潛在經修改LPS機率估計及(必要時)經修改MPS值構成。
倘若二進位值等於MPS,則給定狀態索引可增加1。此用於除當MPS出現在狀態索引62處時之外的所有狀態,其中LPS機率已處於其最小值(或等效地,達至最大MPS機率)。在此狀況下,狀態索引62保持固定直至LPS可見,或最末二進位值經編碼(狀態63用於最末二進位值之特殊狀況)。當LPS出現時,藉由以特定量遞減狀態索引來改變狀態索引,如下文等式中所展示。此規則應用於具有以下例外之LPS每次出現時。假定已在具有索引σ=0之狀態處編碼LPS,該索引對應於等機率情況,則狀態索引保持固定,但將切換MPS值使得LPS及MPS之值將被互換。在所有其他情況下,不管哪一符號已經編碼,將不改變MPS值。用於LPS機率之變換規則之導出係基於以下的給定LPS機率pold
及其經更新對應物pnew
之間的關係:
pnew = max( α pold , p62 ) 若MPS出現
pnew = (1- α) + α pold 若LPS出現
pnew = max( α pold , p62 ) 若MPS出現
pnew = (1- α) + α pold 若LPS出現
關於CABAC中之機率估計過程之實際實施,值得注意的是,所有變換規則可藉由各自具有6位元無符號整數值之63個條目的至多兩個表實現。在一些實例中,可藉由單一表TransIdxLPS判定狀態轉換,該表在已觀測到LPS之狀況下針對給定狀態索引σ判定新的經更新狀態索引TransIdxLPS [σ]。可藉由使狀態索引僅(飽和)增加固定值1,得到經更新狀態索引min(σ+1,62),從而獲得MPS驅動轉換。下表3為部分TransIdxLPS表之實例。
表 3 - TransIdxLPS
表 3 - TransIdxLPS
上文關於圖15A、15B及16所描述之技術僅表示CABAC之一個實例實施。應理解,本發明之技術不僅限於CABAC之此所述實施。舉例而言,在先前BAC方法(例如,H.264/AVC中所用之BAC方法)中,表RangeLPS及TransIdxLPS經調諧用於低解析度視訊(亦即,通用中間格式(CIF)及四分之一CIF (QCIF))視訊)。藉由HEVC及諸如VVC之未來編解碼器,在一些情況下,大量視訊內容為高清晰度(HD)且大於HD。HD或高於HD解析度之視訊內容具有不同於用以開發H.264/AVC的10年前的QCIF序列的不同統計數據。因此,來自H.264/AVC的表RangeLPS及TransIdxLPS可以太快速的方式促使狀態之間的調適。亦即,機率狀態之間的尤其在LPS出現時的轉換可能會對於更光滑、更高解析度的HD視訊內容而言過好。因此,根據習知技術使用的概率模型對於HD及額外HD內容而言不那麼精確。另外,由於HD視訊內容包括更大範圍像素值,因此H.264/AVC表不包括足夠條目來考慮可存在於HD內容中之更多極值。
因此,對於HEVC及諸如VVC之未來寫碼標準,RangeLPS及TransIdxLPS表可經修改以解釋此新內容的特性。特定言之,用於HEVC及未來寫碼標準之BAC過程可使用允許較慢調適過程之表且可解釋更多極端情況(亦即偏斜概率)。因此,作為一個實例,RangeLPS及TransIdxLPS表可經修改以藉由包括除藉由H.264/AVC或HEVC之BAC中所用以外的更多機率狀態及範圍來實現此等目標。
圖17為根據本發明之技術的可經組態以執行CABAC之實例熵編碼單元1700的方塊圖。熵編碼單元1700可例如對應於或為圖13之熵編碼單元118之組件。將語法元素1718輸入至熵編碼單元1700中。若語法元素已為二位元值語法元素(亦即僅具有0及1值之語法元素),則可跳過二位元化步驟。若語法元素為非二位元值語法元素(例如,用多個位元表示之語法元素,諸如變換係數層級),則非二位元值語法元素藉由二位元化器1720進行二位元化。二位元化器1720執行非二位元值語法元素至二位元決策序列之映射。此等二位元決策通常被稱作「二進位」。舉例而言,對於變換係數層級,可將層級之值分解為連續二進位,每一二進位指示係數層級之絕對值是否大於某一值。舉例而言,二進位0 (有時被稱作有效旗標)指示變換係數層級之絕對值是否大於0。二進位1指示變換係數層級之絕對值是否大於1,等等。可針對每一非二位元值語法元素生成唯一映射。
由二位元化器1720生成之每一二進位經饋入至熵編碼單元1700之二位元算術寫碼側。亦即,對於預定非二位元值語法元素集合,每一二進位類型(例如,二進位0)在下一二進位類型(例如,二進位1)之前經寫碼。可以常規模式或旁路模式執行寫碼。在旁路模式中,旁路寫碼引擎1726使用固定機率模型(例如,使用哥倫布萊斯(Golomb-Rice)或指數哥倫布(exponential Golomb)寫碼)執行算術寫碼。旁路模式通常用於更可預測語法元素。
常規模式下的寫碼涉及執行CABAC。常規模式CABAC用於寫碼二進位值,其中二進位之值的機率為預先經寫碼二進位之可預測給定值。由上下文建模器1722判定為LPS之二進位的機率。上下文建模器1722輸出二進位值及上下文模型(例如,機率狀態σ)。上下文模型可為用於一系列二進位之初始上下文模型,或可基於先前經寫碼二進位之經寫碼值而判定。如上文所述,上下文建模器可基於先前經寫碼二進位為MPS抑或LPS而更新狀態。
在藉由上下文建模器1722判定上下文模型及機率狀態σ之後,常規寫碼引擎1724對二進位值執行BAC。根據本發明之技術,常規寫碼引擎1724使用包括超過64個機率狀態σ之TransIdxLPS表1730執行BAC。在一個實例中,機率狀態之數目為128。TransIdxLPS用以在先前二進位(二進位n)為LPS時判定哪一機率狀態用於下一二進位(二進位n+1)。常規寫碼引擎1724亦可在給定特定機率狀態σ的情況下使用RangeLPS表128來判定LPS之範圍值。然而,根據本發明之技術,將機率狀態索引σ映射至分群索引以供用於RangeLPS表中,而非使用TransIdxLPS表1730之所有可能的機率狀態σ。亦即,至RangeLPS表1728之每一索引可表示機率狀態之總數目中之兩者或大於兩者。機率狀態索引σ至分群索引之映射可為線性的(例如,藉由除以二),或可為非線性的(例如,對數函數或映射表)。
在本發明之其他實例中,相繼機率狀態之間的差異可藉由將參數a設定為大於0.9493而變得較小。在一個實例中,a = 0.9689。在本發明之另一實例中,可將LPS出現之最高機率(p0
)設定成低於0.5。在一個實例中,p0
可等於0.493。
根據本發明之一或多種技術,相較於使用用於更新二位元算術寫碼過程中之機率狀態的變量的相同值(例如,視窗大小、縮放因數(α)及機率更新速度),熵編碼單元1700可使用用於不同上下文模型及/或不同語法元素之變量的不同值。舉例而言,熵編碼單元1700可針對複數個上下文模型中之一上下文模型判定在二位元算術寫碼過程中用於更新機率狀態之變數的值,且基於所判定之值更新機率狀態。
圖18為根據本發明之技術的可經組態以執行CABAC之實例熵解碼單元1800的方塊圖。熵解碼單元1800可例如對應於或為圖14之熵解碼單元150之組件。圖18之熵解碼單元1800以與圖17中所描述之熵編碼單元1700之彼方式互逆的方式執行CABAC。將來自位元串流1848之經寫碼位元輸入至熵解碼單元1800中。基於經寫碼位元是使用旁路模式抑或常規模式經熵寫碼而將該等經寫碼位元饋入至上下文建模器1850或旁路寫碼引擎1852。若經寫碼位元以旁路模式寫碼,則旁路解碼引擎1852可(例如)使用哥倫布萊斯或指數哥倫布解碼以擷取非二位元語法元素之二位元值語法元素或二進位。
若經寫碼位元以常規模式寫碼,則上下文建模器1850可判定經寫碼位元之機率模型,且常規解碼引擎1854可解碼該等經寫碼位元以生成非二位元值語法元素之二進位(或語法元素自身(在語法元素為二位元值時)。在藉由上下文建模器1850判定上下文模型及機率狀態σ之後,常規解碼引擎1854對二進位值執行BAC。根據本發明之技術,常規解碼引擎1854使用包括超過64個機率狀態σ之TransIdxLPS表1858執行BAC。在一個實例中,機率狀態之數目為128,但可定義符合本發明之技術的其他數目個機率狀態。TransIdxLPS表1858用以在先前二進位(二進位n)為LPS時判定哪一機率狀態用於下一二進位(二進位n+1)。常規解碼引擎1854亦可在給定特定機率狀態σ的情況下使用RangeLPS表1856而判定LPS之範圍值。然而,根據本發明之技術,將機率狀態索引σ映射至分群索引以供用於RangeLPS表1856中,而非使用TransIdxLPS表1858之所有可能的機率狀態σ。亦即,至RangeLPS表1856之每一索引可表示機率狀態之總數目中之兩者或大於兩者。機率狀態索引σ至分群索引之映射可為線性的(例如,藉由除以二),或可為非線性的(例如,對數函數或映射表)。
在本發明之其他實例中,相繼機率狀態之間的差異可藉由將參數a設定為大於0.9493而變得較小。在一個實例中,α = 0.9689。在本發明之另一實例中,可將LPS出現之最高機率(p0
)設定成低於0.5。在一個實例中,p0
可等於0.493。
在常規解碼引擎1854解碼二進位之後,逆向二位元化器1860可執行將二進位反向轉換為非二位元值語法元素之值的逆向映射。
圖19為展示用於解碼視訊資料之實例過程的流程圖。圖19之技術可例如藉由視訊解碼器件執行。視訊解碼器件可為或包括視訊解碼器30、熵解碼單元150、熵解碼單元或上文所描述之各種其他組件中之任一者。
視訊解碼器件藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素的經編碼版本而判定第一經解碼語法元素(1900)。作為藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第一語法元素之經編碼版本而判定第一經解碼語法元素之部分,視訊解碼器件藉由基於第一參數集合而判定對於第一二進位串流中之至少一個二進位之第一機率估計以生成第一二進位串流(1902)且將該第一二進位串流去二位元化以形成第一經解碼語法元素(1904)。視訊解碼器件亦藉由將二位元算術解碼應用於視訊資料之位元串流中包括的第二語法元素之經編碼版本而判定第二經解碼語法元素(1906)。作為將二位元算術解碼應用於第二語法元素之經編碼版本之部分,視訊解碼器件藉由基於第二參數集合而判定對於第二二進位串流中之至少一個二進位的第二機率估計來生成第二二進位串流(1908)且將第二二進位串流去二位元化以形成第二經解碼語法元素(1910)。第二參數集合包含與第一參數集合不同的參數。視訊解碼器件亦部分地基於第一經解碼語法元素及第二經解碼語法元素來重構視訊資料之圖像。
為了說明之目的,本發明之某些態樣已經關於HEVC標準之擴展而經描述。然而,本發明中所描述之技術可用於其他視訊寫碼過程,包括尚未開發之其他標準或專有視訊寫碼過程。
如本發明中所描述之視訊寫碼器可指視訊編碼器或視訊解碼器。類似地,視訊寫碼單元可指視訊編碼器或視訊解碼器。同樣地,視訊寫碼可指視訊編碼或視訊解碼(在適用時)。在本發明中,片語「基於」可指示僅僅基於、至少部分地基於,或以某一方式基於。本發明可使用術語「視訊單元」或「視訊區塊」或「區塊」以指代一或多個樣本區塊及用以寫碼樣本之一或多個區塊之樣本的語法結構。視訊單元之實例類型可包括CTU、CU、PU、變換單元(TU)、巨集區塊、巨集區塊分區,等等。在一些情形中,PU之論述可與巨集區塊或巨集區塊分區之論述互換。視訊區塊之實例類型可包括寫碼樹型區塊、寫碼區塊及視訊資料之其他類型之區塊。
本發明之技術可應用於支援多種多媒體應用中之任一者的視訊寫碼,諸如,空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路串流視訊傳輸(諸如,經由HTTP之動態自適應串流(DASH))、經編碼至資料儲存媒體上之數位視訊、儲存於資料儲存媒體上的數位視訊之解碼或其他應用。
應認識到,取決於實例,本文中所描述之技術中之任一者的某些動作或事件可以不同序列經執行、可經添加、合併或完全省去(例如,並非所有所描述動作或事件為實踐該等技術所必要)。此外,在某些實例中,可例如經由多線程處理、中斷處理或多個處理器同時而非依序執行動作或事件。
在一或多個實例中,所描述功能可以硬體、軟體、韌體或其任何組合來實施。若以軟體實施,則該等功能可作為一或多個指令或碼而在電腦可讀媒體上儲存或傳輸,且由基於硬體之處理單元執行。電腦可讀媒體可包括電腦可讀儲存媒體(其對應於諸如資料儲存媒體之有形媒體)或通信媒體,該通信媒體包括(例如)根據通信協定促進電腦程式自一處傳送至另一處的任何媒體。以此方式,電腦可讀媒體通常可對應於(1)非暫時性之有形電腦可讀儲存媒體,或(2)諸如信號或載波之通信媒體。資料儲存媒體可為可藉由一或多個電腦或一或多個處理電路存取以擷取指令、程式碼及/或資料結構以用於實施本發明中描述之技術的任何可用媒體。電腦程式產品可包括電腦可讀媒體。
作為實例而非限制,此類電腦可讀儲存媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存器件、快閃記憶體或可用以儲存呈指令或資料結構形式之所要程式碼且可由電腦存取的任何其他媒體。又,任何連接被適當地稱為電腦可讀媒體。舉例而言,若使用同軸纜線、光纜、雙絞線、數位用戶線(digital subscriber line;DSL)或無線技術(諸如紅外線、無線電及微波)自網站、伺服器或其他遠端源傳輸指令,則同軸纜線、光纜、雙絞線、DSL或無線技術(諸如紅外線、無線電及微波)包括於媒體之定義中。然而,應理解,電腦可讀儲存媒體及資料儲存媒體不包括連接、載波、信號或其他暫時性媒體,而實際上有關於非暫時性有形儲存媒體。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位影音光碟(DVD)、軟碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。以上各者的組合亦應包括於電腦可讀媒體之範疇內。
本發明中所描述之功能可藉由固定功能及/或可編程處理電路執行。例如,指令可藉由固定功能及/或可程式化處理電路執行。此等處理電路可包括一或多個處理器,諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式化邏輯陣列(FPGA)或其他等效整合或離散邏輯電路。因此,如本文中所使用之術語「處理器」可指前述結構或適於實施本文中所描述之技術的任何其他結構中之任一者。另外,在一些態樣中,本文所描述之功能可經提供於經組態以供編碼及解碼或併入於經組合編碼解碼器中之專用硬體及/或軟體模組內。此外,該等技術可完全實施於一或多個電路或邏輯元件中。處理電路可以各種方式耦接至其他組件。舉例而言,處理電路可經由內部器件互連件、有線或無線網路連接件或另一通信媒體耦接至其他組件。
本發明之技術可實施於多種器件或裝置中,包括無線手持機、積體電路(IC)或IC集合(例如,晶片集合)。在本發明中描述各種組件、模組或單元以強調經組態以執行所揭示技術之器件的功能態樣,但未必要求由不同硬體單元來實現。相反,如上文所描述,可將各種單元組合於編解碼器硬體單元中,或藉由互操作性硬體單元(包括如上文所描述之一或多個處理器)之集合與合適軟體及/或韌體一起組合來提供該等單元。
已描述各種實例。此等及其他實例在隨附申請專利範圍之範疇內。
10‧‧‧視訊編碼及解碼系統
12‧‧‧源器件
14‧‧‧目的地器件
16‧‧‧電腦可讀媒體
18‧‧‧視訊源
19‧‧‧儲存媒體
20‧‧‧視訊編碼器
22‧‧‧輸出介面
26‧‧‧輸入介面
28‧‧‧儲存媒體
30‧‧‧視訊解碼器
32‧‧‧顯示器件
100‧‧‧處理單元
101‧‧‧視訊資料記憶體
102‧‧‧殘餘生成單元
104‧‧‧變換處理單元
106‧‧‧量化單元
108‧‧‧逆量化單元
110‧‧‧逆變換處理單元
112‧‧‧重構單元
114‧‧‧濾波器單元
116‧‧‧經解碼圖像緩衝器
118‧‧‧熵編碼單元
120‧‧‧框間預處理單元
126‧‧‧框內預處理單元
150‧‧‧熵解碼單元
151‧‧‧視訊資料記憶體
152‧‧‧預測處理單元
154‧‧‧逆量化單元
156‧‧‧逆變換處理單元
158‧‧‧重構單元
160‧‧‧濾波器單元
162‧‧‧經解碼圖像緩衝器
164‧‧‧運動補償單元
166‧‧‧框內預測處理單元
200‧‧‧預測處理單元
206‧‧‧量化單元
218‧‧‧熵編碼單元
300‧‧‧熵解碼單元
400‧‧‧實例
402‧‧‧實例
500‧‧‧算術編碼單元
502‧‧‧算術編碼器
504‧‧‧位元緩衝器
506‧‧‧狀態判定單元
508‧‧‧機率估計FSM單元
510‧‧‧延遲盒
512‧‧‧二位元化單元
600‧‧‧算術解碼單元
602‧‧‧算術解碼器
604‧‧‧位元緩衝器
606‧‧‧狀態判定單元
608‧‧‧機率估計FSM單元
612‧‧‧逆二位元化單元
700‧‧‧算術編碼單元
702‧‧‧算術編碼器
704‧‧‧位元緩衝器
706‧‧‧狀態判定單元
708‧‧‧機率估計FSM單元
710‧‧‧延遲盒
712‧‧‧FSM參數判定單元
713‧‧‧二位元化單元
800‧‧‧算術解碼單元
802‧‧‧算術解碼器
804‧‧‧位元緩衝器
806‧‧‧狀態判定單元
808‧‧‧機率估計FSM單元
812‧‧‧FSM參數判定單元
813‧‧‧逆二位元化單元
910‧‧‧當前圖像
912‧‧‧經寫碼圖像
1700‧‧‧熵編碼單元
1718‧‧‧語法元素
1720‧‧‧二位元化器
1722‧‧‧上下文建模器
1724‧‧‧常規寫碼引擎
1726‧‧‧旁路寫碼引擎
1728‧‧‧RangeLPS表
1730‧‧‧TransIdxLPS表
1800‧‧‧熵解碼單元
1848‧‧‧位元串流
1850‧‧‧上下文建模器
1852‧‧‧旁路寫碼引擎/旁路解碼引擎
1854‧‧‧規律解碼引擎
1856‧‧‧RangeLPS表
1858‧‧‧TransIdxLPS表
1860‧‧‧逆向二位元化器
1900‧‧‧步驟
1902‧‧‧步驟
1904‧‧‧步驟
1906‧‧‧步驟
1908‧‧‧步驟
1910‧‧‧步驟
1912‧‧‧步驟
圖1為說明可使用本發明中所描述之一或多種技術之實例視訊編碼及解碼系統的方塊圖。
圖2為實例通用有限狀態機之方塊圖。
圖3為使用多個有限狀態機(FSM)用於二進位機率估計之基於上下文之二位元算術編碼之實例方塊圖。
圖4為使用多個FSM用於二進位機率估計之基於上下文的二位元算術解碼之實例方塊圖。
圖5為考慮單一選定上下文之基於上下文的二位元算術編碼之實例方塊圖。
圖6為考慮單一選定上下文之基於上下文的二位元算術解碼之實例方塊圖。
圖7為根據本發明之一或多個態樣的基於上下文之算術編碼的實例方塊圖。
圖8為根據本發明之一或多個態樣的基於上下文的算術解碼之實例方塊圖。
圖9A及9B為說明基於上下文之編碼及解碼的方塊圖。
圖10A展示用於熵編碼之編碼器架構之實例。
圖10B展示用於熵解碼之解碼器架構之實例。
圖11A展示利用漸進式調適之熵編碼的編碼器架構之實例。
圖11B展示用於利用漸進式調適之熵解碼之解碼器架構的實例。
圖12展示當所有機率估計參數可同時更新時的視訊截塊中之「檢查點」(點)之實例定義。
圖13說明可實施本發明中所描述之一或多種技術的實例視訊編碼器之方塊圖。
圖14為說明可實施本發明中所描述之一或多種技術的實例視訊解碼器的方塊圖。
圖15A及15B為說明二位元算術寫碼中之範圍更新過程的概念圖。
圖16為說明二位元算術寫碼中之輸出過程的概念圖。
圖17為說明視訊編碼器中之上下文調試二位元算術寫碼器的方塊圖。
圖18為說明視訊編碼器中之上下文調試二位元算術寫碼器的方塊圖。
圖19為展示實例視訊解碼過程之流程圖。
Claims (24)
- 一種解碼視訊資料之方法,該方法包含: 藉由將二位元算術解碼應用於該視訊資料之一位元串流中包括的第一語法元素之一經編碼版本來判定一第一經解碼語法元素,其中將該二位元算術解碼應用於該第一語法元素之該經編碼版本包含: 生成一第一二進位串流,其中生成該第一二進位串流包含基於一第一參數集合而判定用於該第一二進位串流中之至少一個二進位的一第一機率估計; 將該第一二進位串流去二位元化以形成該第一經解碼語法元素; 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的第二語法元素之一經編碼版本來判定一第二經解碼語法元素,其中將該二位元算術解碼應用於該第二語法元素之該經編碼版本包含: 生成一第二二進位串流,其中生成該第二二進位串流包含基於一第二參數集合而判定用於該第二二進位串流中之至少一個二進位的一第二機率估計,其中該第二參數集合包含與該第一參數集合不同的參數; 將該第二二進位串流去二位元化以形成該第二經解碼語法元素;及 部分地基於該第一經解碼語法元素及該第二經解碼語法元素來重構該視訊資料之一圖像。
- 如請求項1之方法,其中基於該第二參數集合而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計包含回應於超出一臨限值的進展之一量測而判定該第二參數集合。
- 如請求項2之方法,其中該進展之量測包含多個預先經解碼二進位,該方法進一步包含: 使用該第二參數集合以回應於超出一臨限值之該進展之量測及回應於對應一新視訊資料區塊的該第二經解碼語法元素而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計。
- 如請求項2之方法,其中該進展之量測包含一區塊之一位置。
- 如請求項2之方法,其中該進展之量測包含多個預先經解碼像素。
- 如請求項1之方法,其中基於該第二參數集合而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計包含根據以下等式判定該第二機率估計:,, 其中用於i= 1、 2、 …n 之wi 包含該第二參數集合,且p[k + 1])包含該第二機率估計。
- 如請求項1之方法,其進一步包含: 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的第三語法元素之一經編碼版本來判定一第三經解碼語法元素,其中將該二位元算術解碼應用於該第三語法元素之該經編碼版本包含: 生成一第三二進位串流,其中生成該第三二進位串流包含對於該第三二進位串流中之至少一個二進位,基於一第三參數集合而判定用於該第三二進位串流中之該至少一個二進位的一第三機率估計,其中該第三參數集合包含與該第一參數集合及該第二參數集合不同的參數; 將該第三二進位串流去二位元化以形成該第三經解碼語法元素;及 部分地基於該第一經解碼語法元素、該第二經解碼語法元素及該第三經解碼語法元素來重構該視訊資料之該圖像。
- 一種用於解碼視訊資料之器件,該器件包含: 一記憶體,其經組態以儲存視訊資料之一位元串流; 一或多個處理器,其與該記憶體連通且實施於處理電路中,其中該一或多個處理器經組態以: 藉由將二位元算術解碼應用於該視訊資料之一位元串流中包括的該第一語法元素之一經編碼版本而判定一第一經解碼語法元素,其中為將該二位元算術解碼應用於該第一語法元素之該經編碼版本,該一或多個處理器進一步經組態以: 藉由基於一第一參數集合而判定對於該第一二進位串流中之至少一個二進位的一第一機率估計來生成一第一二進位串流; 將該第一二進位串流去二位元化以形成該第一經解碼語法元素; 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的該第二語法元素之一經編碼版本來判定一第二經解碼語法元素,其中為將該二位元算術解碼應用於該第二語法元素之該經編碼版本,該一或多個處理器進一步經組態以: 藉由基於一第二參數集合而判定用於該第二二進位串流中之至少一個二進位的一第二機率估計來生成一第二二進位串流,其中該第二參數集合包含與該第一參數集合不同的參數; 將該第二二進位串流去二位元化以形成該第二經解碼語法元素;及 部分地基於該第一經解碼語法元素及該第二經解碼語法元素來重構該視訊資料之一圖像。
- 如請求項8之器件,其中為基於該第二參數集合判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計,該一或多個處理器進一步經組態以回應於超出一臨限值的一進展之量測而判定該第二參數集合。
- 如請求項9之器件,其中該進展之量測包含多個預先經解碼二進位,且其中該一或多個處理器進一步經組態以: 使用該第二參數集合以回應於超出一臨限值之該進展之量測及回應於對應一新視訊資料區塊的該第二經解碼語法元素而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計。
- 如請求項9之器件,其中該進展之量測包含一區塊之一位置。
- 如請求項9之器件,其中該進展之量測包含多個預先經解碼像素。
- 如請求項8之器件,其中基於該第二參數集合而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計包含根據以下等式判定該第二機率估計:,, 其中用於i=1、2、…n 之wi 包含該第二參數集合,且p[k + 1])包含該第二機率估計。
- 如請求項8之器件,其中該一或多個處理器經進一步組態以: 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的第三語法元素之一經編碼版本來判定一第三經解碼語法元素,其中為將該二位元算術解碼應用於該第三語法元素之該經編碼版本,該一或多個處理器進一步經組態以: 生成一第三二進位串流,其中生成該第三二進位串流包含對於該第三二進位串流中之至少一個二進位,基於一第三參數集合而判定用於該第三二進位串流中之該至少一個二進位的一第三機率估計,其中該第三參數集合包含與該第一參數集合及該第二參數集合不同的參數; 將該第三二進位串流去二位元化以形成該第三經解碼語法元素;及 部分地基於該第一經解碼語法元素、該第二經解碼語法元素及該第三經解碼語法元素來重構該視訊資料之該圖像。
- 如請求項8之器件,其中該器件包含一無線通信器件,其進一步包含經組態以接收該視訊資料之位元串流的一接收器。
- 如請求項15之器件,其中該無線通信器件包含一電話手機,且其中該接收器經組態以根據一無線通信標準解調變包含該經編碼視訊資料之一信號。
- 一種儲存指令之電腦可讀媒體,該等指令在由一或多個處理器執行時使該一或多個處理器: 藉由將二位元算術解碼應用於該視訊資料之一位元串流中包括的該第一語法元素之一經編碼版本來判定一第一經解碼語法元素,其中為將該二位元算術解碼應用於該第一語法元素之該經編碼版本,該等指令促使該一或多個處理器: 生成一第一二進位串流,其中為生成該第一二進位串流,該等指令促使該一或多個處理器基於一第一參數集合判定用於該第一二進位串流中之至少一個二進位的一第一機率估計; 將該第一二進位串流去二位元化以形成該第一經解碼語法元素; 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的該第二語法元素之一經編碼版本來判定一第二經解碼語法元素,其中為將該二位元算術解碼應用於該第二語法元素之該經編碼版本,該等指令促使該一或多個處理器: 生成一第二二進位串流,其中為生成該第二二進位串流,該等指令促使該一或多個處理器基於一第二參數集合判定用於該第二二進位串流中之該至少一個二進位的一第二機率估計,其中該第二參數集合包含與該第一參數集合不同的參數; 將該第二二進位串流去二位元化以形成該第二經解碼語法元素;及 部分地基於該第一經解碼語法元素及該第二經解碼語法元素來重構該視訊資料之一圖像。
- 如請求項17之電腦可讀儲存媒體,其中為基於該第二參數集合判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計,該等指令促使該一或多個處理器回應於超出一臨限值的一進展之量測而判定該第二參數集合。
- 如請求項18之電腦可讀儲存媒體,其中該進展之量測包含多個預先經解碼二進位,其中該等指令促使該一或多個處理器: 使用該第二參數集合以回應於超出一臨限值之該進展之量測及回應於對應一新視訊資料區塊的該第二經解碼語法元素而判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計。
- 如請求項18之電腦可讀儲存媒體,其中該進展之量測包含一區塊之一位置。
- 如請求項18之電腦可讀儲存媒體,其中該進展之量測包含多個預先經解碼像素。
- 如請求項17之電腦可讀儲存媒體,其中為基於該第二參數集合判定用於該第二二進位串流中之該至少一個二進位的該第二機率估計,該等指令促使該一或多個處理器根據以下等式判定該第二機率估計:,, 其中用於i=1、2、…n 之wi 包含該第二參數集合,且p[k + 1])包含該第二機率估計。
- 如請求項17之電腦可讀儲存媒體,其中該等指令使該一或多個處理器: 藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的該第三語法元素之一經編碼版本來判定一第三經解碼語法元素,其中為將該二位元算術解碼應用於該第三語法元素之該經編碼版本,該等指令促使該一或多個處理器: 生成一第三二進位串流,其中生成該第三二進位串流包含對於該第三二進位串流中之至少一個二進位,基於一第三參數集合而判定用於該第三二進位串流中之該至少一個二進位的一第三機率估計,其中該第三參數集合包含與該第一參數集合及該第二參數集合不同的參數; 將該第三二進位串流去二位元化以形成該第三經解碼語法元素;及 部分地基於該第一經解碼語法元素、該第二經解碼語法元素及該第三經解碼語法元素來重構該視訊資料之該圖像。
- 一種用於解碼視訊資料之裝置,該裝置包含: 用於藉由將二位元算術解碼應用於該視訊資料之一位元串流中包括的該第一語法元素之一經編碼版本來判定一第一經解碼語法元素之構件,其中用於判定該第一經解碼語法元素之構件之該構件包含: 生成一第一二進位串流之構件,其中用於生成該第一二進位串流之該構件包含用於基於一第一參數集合判定用於該第一二進位串流中之該至少一個二進位的一第一機率估計之構件; 用於將該第一二進位串流去二位元化以形成該第一經解碼語法元素之構件; 用於藉由將該二位元算術解碼應用於該視訊資料之該位元串流中包括的該第二語法元素之一經編碼版本來判定一第二經解碼語法元素之構件,其中用於判定該第二經解碼語法元素之該構件包含: 用於生成一第二二進位串流之構件,其中用於生成該第二二進位串流之該構件包含用於基於一第二參數集合判定用於該第二二進位串流中之至少一個二進位的一第二機率估計之構件,其中該第二參數集合包含與該第一參數集合不同的參數; 用於將該第二二進位串流去二位元化以形成該第二經解碼語法元素之構件;及 用於部分地基於該第一經解碼語法元素及該第二經解碼語法元素來重構該視訊資料之一圖像之構件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762570560P | 2017-10-10 | 2017-10-10 | |
US62/570,560 | 2017-10-10 | ||
US16/155,708 US10791341B2 (en) | 2017-10-10 | 2018-10-09 | Binary arithmetic coding with progressive modification of adaptation parameters |
US16/155,708 | 2018-10-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201924339A true TW201924339A (zh) | 2019-06-16 |
Family
ID=65992760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107135864A TW201924339A (zh) | 2017-10-10 | 2018-10-11 | 藉由調適參數之漸進式修正之二位元算術寫碼 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10791341B2 (zh) |
EP (1) | EP3695609A1 (zh) |
CN (1) | CN111183647B (zh) |
AU (1) | AU2018347343A1 (zh) |
BR (1) | BR112020006572A2 (zh) |
CA (1) | CA3075491A1 (zh) |
TW (1) | TW201924339A (zh) |
WO (1) | WO2019075063A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017065525A2 (ko) * | 2015-10-13 | 2017-04-20 | 삼성전자 주식회사 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
US10554988B2 (en) | 2017-03-22 | 2020-02-04 | Qualcomm Incorporated | Binary arithmetic coding with parameterized probability estimation finite state machines |
US11457217B2 (en) * | 2018-06-12 | 2022-09-27 | Electronics And Telecommunications Research Institute | Context adaptive binary arithmetic coding method and device |
US10411727B1 (en) * | 2018-10-10 | 2019-09-10 | Ambarella, Inc. | High throughput hardware unit providing efficient lossless data compression in convolution neural networks |
CN117560489A (zh) | 2019-05-14 | 2024-02-13 | 北京字节跳动网络技术有限公司 | 用于残差编解码的上下文建模 |
WO2020253874A1 (en) * | 2019-06-21 | 2020-12-24 | Beijing Bytedance Network Technology Co., Ltd. | Restriction on number of context coded bins |
CN111757119B (zh) * | 2020-05-21 | 2022-05-13 | 瑞芯微电子股份有限公司 | 一种软硬件协同工作实现vp9 prob更新的方法和存储设备 |
GB2595651A (en) | 2020-05-29 | 2021-12-08 | Univ Southampton | Sterlisation of endoscopes |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
US8422803B2 (en) * | 2007-06-28 | 2013-04-16 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method and image decoding method |
BR112012019388A2 (pt) * | 2010-02-03 | 2016-05-03 | Thomson Licensing | dados de substituição válidos em vídeo codificado |
EP2559166B1 (en) * | 2010-04-13 | 2017-11-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Probability interval partioning encoder and decoder |
US20120014433A1 (en) * | 2010-07-15 | 2012-01-19 | Qualcomm Incorporated | Entropy coding of bins across bin groups using variable length codewords |
CN102650969B (zh) * | 2011-02-27 | 2014-12-24 | 浙江大学 | 一种获取、更新bin的上下文概率模型值的方法及装置 |
ES2906869T3 (es) * | 2011-06-16 | 2022-04-20 | Ge Video Compression Llc | Inicialización de contexto en codificación entrópica |
KR102106534B1 (ko) | 2011-06-28 | 2020-05-04 | 삼성전자주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
US9363510B2 (en) | 2012-03-02 | 2016-06-07 | Qualcomm Incorporated | Scan-based sliding window in context derivation for transform coefficient coding |
CN107113445A (zh) * | 2014-11-04 | 2017-08-29 | 三星电子株式会社 | 用于二进制算术编/解码的概率更新方法及使用该方法的熵编/解码器 |
US10148961B2 (en) | 2015-05-29 | 2018-12-04 | Qualcomm Incorporated | Arithmetic coder with multiple window sizes |
US10554988B2 (en) | 2017-03-22 | 2020-02-04 | Qualcomm Incorporated | Binary arithmetic coding with parameterized probability estimation finite state machines |
-
2018
- 2018-10-09 US US16/155,708 patent/US10791341B2/en active Active
- 2018-10-10 BR BR112020006572-2A patent/BR112020006572A2/pt not_active Application Discontinuation
- 2018-10-10 AU AU2018347343A patent/AU2018347343A1/en not_active Abandoned
- 2018-10-10 CA CA3075491A patent/CA3075491A1/en not_active Abandoned
- 2018-10-10 CN CN201880064752.0A patent/CN111183647B/zh active Active
- 2018-10-10 WO PCT/US2018/055214 patent/WO2019075063A1/en unknown
- 2018-10-10 EP EP18797272.4A patent/EP3695609A1/en active Pending
- 2018-10-11 TW TW107135864A patent/TW201924339A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2019075063A1 (en) | 2019-04-18 |
CN111183647A (zh) | 2020-05-19 |
US10791341B2 (en) | 2020-09-29 |
CA3075491A1 (en) | 2019-04-18 |
BR112020006572A2 (pt) | 2020-10-06 |
CN111183647B (zh) | 2022-03-29 |
US20190110080A1 (en) | 2019-04-11 |
EP3695609A1 (en) | 2020-08-19 |
AU2018347343A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7368414B2 (ja) | 画像予測方法および装置 | |
TWI759389B (zh) | 用於視訊寫碼之低複雜度符號預測 | |
CN111183647B (zh) | 用于解码视频数据的方法、装置和计算机可读媒体 | |
RU2576590C2 (ru) | Вывод позиции в порядке сканирования последнего значимого коэффициента преобразования при кодировании видеосигнала | |
TW201740728A (zh) | 幀內預測模式之基於鄰近的發信號 | |
TWI520584B (zh) | 用信號發送用於一葉層級編碼單元之子集的轉換係數的語法元素 | |
TWI827606B (zh) | 網格寫碼之量化係數寫碼 | |
TW201711467A (zh) | 使用一全文自適應二進位算術寫碼設計來寫碼資料 | |
CN110419216B (zh) | 通过参数化概率估计有限状态机进行二进制算术译码 | |
CN112352429A (zh) | 利用分组的旁路剩余级别进行系数编码以用于依赖量化 | |
JP2017513329A (ja) | 非自然ビデオデータの動き推定のための方法 | |
US10992937B2 (en) | Coefficient coding with grouped bypass bins | |
TW202041009A (zh) | 用於轉換跳過模式之係數寫碼 |