[go: up one dir, main page]

TW201342919A - 資料編碼及解碼 - Google Patents

資料編碼及解碼 Download PDF

Info

Publication number
TW201342919A
TW201342919A TW101139518A TW101139518A TW201342919A TW 201342919 A TW201342919 A TW 201342919A TW 101139518 A TW101139518 A TW 101139518A TW 101139518 A TW101139518 A TW 101139518A TW 201342919 A TW201342919 A TW 201342919A
Authority
TW
Taiwan
Prior art keywords
data
cabac
encoded
encoding
bypass
Prior art date
Application number
TW101139518A
Other languages
English (en)
Inventor
James Alexander Gamei
Karl James Sharman
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of TW201342919A publication Critical patent/TW201342919A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [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/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/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/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/184Methods 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
    • 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/1887Methods 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 variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

資料加碼設備,其中一組順序資料係被編碼,該設備包含:熵編碼器,用以編碼該順序資料,其中各個資料項係被分割為個別次組資料及個別資料係為第一及第二編碼系統所編碼,使得對於第一編碼系統之一群資料項產生之預定量編碼資料,對於第二編碼系統之該群資料產生之可變數量的零或更多資料;及輸出資料串流組合器,用以由第一及第二編碼系統所編碼的資料,產生輸出資料串流,該輸出資料串流包含由第一編碼系統所產生之連續封包的預定數量資料,在資料串流順序中,其後被跟隨有相關於為第一編碼系統所編碼的相同資料項的為第二編碼系統所產生的零或更多資料。

Description

資料編碼及解碼 [相關申請案]
本發明主張在分別在2011年11月15日及2011年11月7日於英國專利局所申請之GB1119687.0及GB1119180.6的早先申請日,該等申請案之整個內容係被併入作參考。
本發明關係於資料編碼及解碼。
於此所提供之“先前技術”係大致呈現所揭示之本文的目的。現行本案發明人之工作,即在本案先前技術所述之範圍及發明說明之態樣可能在申請時不被視為先前技藝,因此並不表示或暗示承認為本發明之先前技藝。
作為資料編碼及解碼技術例,其中有幾項視訊資料壓縮及解壓縮系統,其涉及將視訊資料轉換為頻域表示法、量化頻域係數及然後應用一些形式之熵編碼至被量化的係數。
在本文中,熵可以被認為是表示資料符號或系列符號的資訊內容。熵編碼的目標為以無損方式編碼一系列資料符號,(理想上)使用最少數量的編碼資料位元,其係代表該系列資料符號所需者。在實際上,熵編碼係用以編碼量化係數,使得編碼資料(以位元數量表示)更小於原始 量化係數的資料大小。更有效熵編碼處理對於相同輸入資料大小給出較小輸出資料大小。
用於熵編碼視訊資料的一種技術係被稱為所謂CABAC(上下文適應二進制算術加碼)技術。這是更一般化算術加碼(AC)技術例。在例示實施法中,量化係數係被分割成相對於係數陣列之表示某些大小及其符號的係數值的位置的資料。因此,例如,所謂“效值圖(significance map)”可以表示在一陣列係數中的位置,在該位置的係數具有非零值。其他圖也可以表示該資料具有值1或更大;或者,該資料具有值2或更大。
在CABAC編碼器及解碼器的基本例子中,效值圖被編碼為CABAC資料,但部份的其他圖係被編碼為所謂旁路資料(被資料編碼為CABAC,但具有固定50%的或然率上下文模型)。效值圖及其他圖為不同個別屬性或相同初始資料項的值範圍的所有代表。因此,各個資料項目被分成為個別次組資料及個別子組被以第一(例如CABAC)及第二(例如旁路)編碼系統加以編碼。
大致說來,旁路資料不能以原始形式被引入與CABAC編碼資料的相同資料串流中,但對於任何給定輸出CABAC解碼資料位元,CABAC解碼器已經較當編碼器正編碼該特定資料位元時編碼器已經寫入由該資料串流讀取更多之位元。換句話說,以由該資料串流進一步讀取CABAC編碼資料看來,CABAC解碼器先讀取,因此,其通常被認為不可能引入旁路資料進入與CABAC資料相同 的連續編碼資料串流。
本發明提供資料加碼設備,其中一組排序資料被編碼,包含:熵編碼器,用以編碼該排序資料,其中各個資料項被分割成為個別次組之資料及個別次組係為第一及第二編碼系統所編碼,使得對於有關於為第一編碼系統之一群資料項所產生之預定數量的編碼資料,零或更多資料的可變數量係有關於該資料群為該第二編碼系統所產生;及輸出資料串流組合器,用以由該第一及第二編碼系統所編碼的資料產生輸出資料串流,該輸出資料串流包含為第一編碼系統所產生之預定數量的資料的連續封包,其在一資料串流順序中,跟隨著有關於為第一編碼系統所編碼相同的資料項的第二編碼系統所產生之零或更多資料。
本發明之實施例允許(例如)旁路資料在該串流中之預定位置為可用,藉由將該CABAC資料分割成預定長度的封包及隨後跟著每一封包的旁路資料(如果有的話),其對應於該係數被編碼為CABAC資料。使用此一技術,旁路資料可以與CABAC資料同時解譯。因此,本發明之實施例提供一種分割CABAC串流的方法,使得旁路資料可以以原始形式被放置於該串流中,以形成複合CABAC/旁路資料串流及可能可以與CABAC資料(在解碼時)平行解譯。
在一例子中,在一些系統中,所謂旁路資料係被編碼為CABAC串流,藉由將每一位元編碼為如同它為CABAC位元,但具有50%的固定或然率(上下文)。這效果上涉及於編碼時,現行範圍與該旁路位元的乘法,並需要遞迴邏輯(或除法器)以解碼多位元。因為解碼器並沒有方法知道哪些位元為旁路資料及哪些為CABAC資料,所以,旁路資料不能直接引入該位元串流。
然而,藉由將該旁路資料放置在該串流中為該編碼器及解碼器所知的特定位置,不但可能將以原始二元形式寫入旁路資料,也允許多位元被簡單地讀取,同時也允許旁路位元被平行解碼。這將允許旁路資料(例如符號)平行該CABAC資料(例如效值圖)被解碼。
下述的技術可以協助藉由排列資料成為預定大小的封包而加以完成,支援平行解碼。
注意CABAC只是一例子,本發明可以應用至其他類型加碼包含(但並不限於)一般算術加碼技術。
本發明之實施例也可以提供一資料編碼器,其中,一緩衝器,用以累積由暫存器再正規化的資料,其表示CABAC範圍的下限,及用以將所儲存之資料相關成為一群,如果其具有至少一預定資料數量者;檢測器,用以檢測是否在一群中之所有資料具有資料值1沒有進位,如果是,則用以指定該群為第一類型的一群;如果否,則該群被指定為第二類型的一群;一緩衝器讀取器,如果後續儲存群為第二類型,用以 由該緩衝器讀取第一類型的一群,及將該讀取群插入輸出資料串流;檢測器,用以檢測在該緩衝器是否出現有多於一預定數量的第一類型的群,如果是,則用以終止及重新開始該資料的編碼。
本發明之進一步個別態樣及特性係在隨附之申請專利範圍加以定義。
可以了解的是,本發明之前述一般說明及以下詳細說明係為例示,但並不是用以限制本發明。
現參考附圖,圖1至4係被提供以給定示意顯示利用以下所述之有關本發明之實施例的壓縮及/或解壓縮設備的設備或系統。
所有資料壓縮及/或解壓縮設備係被以硬體、執行於一般目的資料處理設備,例如一般目的電腦的軟體實施加以描述,其係被實施為可程式硬體,例如特定應用積體電路(ASIC)或場可程式閘陣列(FPGA)或其組合。當實施例被以軟體及/或韌體實施時,將了解的是,此軟體及/或韌體,及非暫態機器可讀取資料儲存媒體,其中儲存或提供有此等軟體及/或韌體,並被認為是本發明之實施例。
圖1示意例示使用視訊資料壓縮及解壓縮的音訊/視訊資料傳輸及接收系統。
輸入音訊/視訊信號10係被供給至視訊資料壓縮設備20,其壓縮該視訊/音訊信號10的至少視訊分量,用以沿著例如纜線、光纖、無線鏈路或類似物之傳輸路由30傳輸。壓縮信號係為解壓縮設備40所處理,以提供輸出音訊/視訊信號50。對於返回路徑,壓縮設備60壓縮音訊/視訊信號,用以沿著傳輸路由30傳輸至解壓縮設備70。
壓縮設備20及解壓縮設備70因此可以形成傳輸鏈路的一節點。解壓縮設備40及解壓縮設備60可以形成傳輸鏈路的另一節點。當然,例如,當傳輸鏈路為單向,則這些節點只有一節點需要一壓縮設備,及另一節點將只需要解壓縮設備。
圖2示意顯示使用視訊資料解壓縮的視訊顯示系統。更明確地說,一壓縮音訊/視訊信號100係為解壓縮設備110所處理,以提供可以被顯示在顯示器120上之解壓縮信號。解壓縮設備110可以被實施為顯示器120的整合部件,例如被設在與顯示裝置的相同外殼內。或者,解壓縮設備110可以被提供(例如)所謂機頂盒(STB),注意用語"機頂"並不必然表示該盒需要被定位在相關於顯示器120的任何特定方向或位置;其簡單地為該技藝所用之用語,表示一裝置,其係可連接至顯示器作為週邊裝置。
圖3示意顯示使用視訊資料壓縮及解壓縮的音訊/視訊儲存系統。輸入音訊/視訊信號130係被供給至壓縮設備140,其產生用以為儲存裝置150所儲存之壓縮信號,儲存裝置150例如磁碟裝置、光碟裝置、磁帶裝置、固態 儲存裝置,例如半導體記憶體或其他儲存裝置。為了播放,壓縮資料係被由儲存裝置150所讀取並被傳送至解壓縮設備160,用以解壓縮,以提供輸出音訊/視訊信號170。
可以了解的是,壓縮或編碼信號,及儲存該信號的儲存媒體係被認為本發明之實施例。
圖4示意顯示使用視訊資料壓縮的攝影機。在圖4中,例如電荷耦合裝置(CCD)影像感應器及相關控制及讀出電子電路的影像捕捉裝置180產生視訊信號,其係被傳送至壓縮設備190。麥克風(或多數麥克風)200產生予以被傳送至壓縮設備190的音訊信號。壓縮設備190產生予以儲存及/或傳輸(大致以例示級220表示)的壓縮音訊/視訊信號210。
以下所述之技術係主要關係於視訊資料壓縮。將了解的是,很多現存技術可以被用於配合下述之視訊資料壓縮技術用於音訊資料壓縮,以產生壓縮音訊/視訊信號。因此,音訊資料壓縮的分開討論將不被提供。將了解的是,有關於視訊資料特別是廣播品質視訊資料的資料率通常係遠高於音訊資料的資料率(不論是壓縮或未壓縮)。因此,可以了解的是,未壓縮音訊資料將附有壓縮視訊資料以形成壓縮音訊/視訊信號。更進一步了解,雖然本例子(示於圖1至4)有關於音訊/視訊資料,但予以說明如下之技術可以在系統中很有用,其簡單地處理(即壓縮、解壓縮、儲存、顯示及/或傳送)視訊資料。也就是說,該 等實施例可以應用至視訊資料壓縮,而不必然有任何相關的音訊資料處理。
圖5提供視訊資料壓縮及解壓縮設備的示意概圖。
連續影像的輸入視訊信號300係被供給至加法器310及至影像預估器320。影像預估器320將參考圖6更詳細描述如下。事實上,加法器310執行減法(負加法)運算,其接收輸入視訊信號300於“+”輸入及影像預估器320的輸出於“-”輸入,使得輸入影像係被減去預估影像。該結果被產生所謂殘留影像信號330,代表在實際及投影影像間之差。
為何一殘留影像信號產生之理由係如下。資料加碼技術係被描述,即當在予以編碼的影像有較少“能量”時,將被應用至殘留影像信號的技術將傾向於更有效工作。於此,用語“有效”表示對於特定影像品質位準產生更小量的編碼資料的產生,吾人想要(及認為“有效”)產生比實際上可能儘可能小的資料。在殘留影中提及之“能量”相關於包含在殘留影像中之資訊量。如果預估影像係與實質影像相同,則在兩者間之差(即,殘留影像)將可以包含零資訊(零能量)並將很容易將之編碼為小量的編碼資料。通常,如果預估處理可以合理地良好動作,則預期為殘留影像料將包含較該輸入影像為少的資訊(較少能量),同時,將更容易地編碼為小量編碼資料。
殘留影像資料330係被供給至轉換單元340,其產生該殘留影像資料的分立餘弦轉換(DCT)代表。DCT技術 本身為已知並將不會於此詳述。然而,用於本案設備中之技術態樣將更詳細說明如下,更有關於被施加有DCT運算的不同方塊資料的選擇。這些將參考圖7-12加以討論如下。
轉換單元340的輸出,也就是用於影像資料的每一轉換方塊的一組DCT係數係被供給至量化器350。各種量化技術係為視訊資料壓縮領域中所知,範圍由簡單乘法一量化縮放因數至在量化參數的控制下,應用複雜查看表。一般目標有二。第一,量化處理降低轉換資料的可能值數量。第二,量化處理可以增加轉換資料的值為零的似然。這兩者均可以使如下所述之熵編碼處理更有效以產生小量的壓縮視訊資料。
資料掃描處理係為一掃描單元360所應用。掃描處理的目的為重新排序量化之轉換資料,以取得儘可能多之非零量化轉換係數,並因此當然取得儘可能多之零值係數。這些特性可以允許所謂掃描長度加碼或類似技術可以被更有效應用。因此,該掃描處理涉及由量化轉換資料選擇係數,更明確地說,由對應於已經被轉換及量化的影像資料方塊的係數方塊,依據“掃描順序”選擇係數,使得(a)所有係數被選擇一次作為掃描的一部份,及(b)該掃描傾向於提供想要重新排序。用以選擇之掃描順序的技術將說明如下。傾向於給定有用結果的一種例示掃描順序係所謂曲折掃描順序。
掃描係數然後被傳送至熵編碼器(EE)370。再次, 可以使用各種類型之熵編碼。以下將描述之兩例子為所謂CABAC(上下文適應二進制算術加碼)系統的變形及所謂CAVLC(上下文適應可變長度加碼)系統的變形。在常用語中,CABAC被認為提供較佳效率,及在一些研究中,已經顯示對相較於CAVLC可比較影像品質的編碼輸出資料數量提供10%-20%的降低。然而,CAVLC被認為呈現遠較CABAC為低的複雜度(以實施法表示)。CABAC技術將參考以下圖17加以討論,及CAVLC技術將參考以下圖18及19加以討論。
注意掃描處理及熵編碼處理係被顯示為分開處理,但事實上可以被組合或一起處理。也就是說,資料的讀入熵編碼器可以以掃描順序發生。對應的考量應用至下述之各個逆處理。
熵編碼器370的輸出與額外資料(上述及/或下述),例如,用以定義預估器320產生預估影像的方式,提供壓縮輸出視訊信號380。
然而,因為預估器320本身的操作取決於壓縮輸出資料的解壓縮版本,所以也設有返回路徑。
此特性的理由係如下。在解壓縮處理的適當級(如下述)中,產生殘留資料解壓縮版。此解壓縮殘留資料必須被加入至預估影像,以產生輸出影像(因為原始殘留資料為輸入影像與預估影像間之差)。為了該處理在壓縮側與解壓縮側為可相比,為預估器320所產生之預估影像在壓縮處理與解壓縮處理期間應相同。當然,在解壓縮時,該 設備並不必取用原始輸入影像,而只取用解壓縮影像。因此,在壓縮時,預估器320根據其預估(至少,用於影像間編碼)該壓縮影像的解壓縮版。
為該熵編碼器370所執行之該熵編碼處理係被認為“無損”,也就是說,其可逆轉以取得第一次被供給至熵編碼器370完全相同的資料。因此,在熵編碼級之前,可以實施返回路徑。確實,為掃描單元360所執行之掃描處理也被認為是無損,但在本實施例中,返回路徑390係由量化器350的輸出至互補逆轉量化器420的輸入。
在常用語中,熵解碼器410、逆轉掃描單元400、逆轉量化器420及逆轉轉換單元430提供熵編碼器370、掃描單元360、量化器350及轉換單元340的個別逆轉函數。現在,討論將持續透過壓縮處理;解壓縮輸入壓縮視訊信號的處理將分開討論如下。
在壓縮處理中,掃描係數係為返回路徑390所由量化器350傳送至逆轉量化器420,其執行掃描單元360的逆轉運算。逆轉量化及逆轉轉換處理係為單元420、430所執行,以產生壓縮-解壓縮殘留影像信號440。
影像信號440在加法器450加入至預估器320的輸出,以產生重建輸出影像460。此形成至該影像預估器320之一輸入,並將如下所討論。
現在,將討論施加至接收壓縮視訊信號470的處理,該信號被供給至熵解碼器410並在為加法器450加至影像預估器320的輸出之前,由該處供給至逆轉掃描單元 400、逆轉量化器420及逆轉轉換單元430的鏈中。在直接用語中,加法器450的輸出460形成輸出解壓縮視訊信號480。事實上,進一步過濾也可以在信號輸出前被應用。
圖6示意顯示預估影像的產生,特別有關於影像預估器320的操作。
其中有兩基本模式之預估:所謂影像內(intra-image)預估及所謂影像間(inter-inage),或動作補償(MC)預估。
影像內預估基礎於方塊影像內容的預估於相同影像內的資料。此對應於所謂在其他視訊壓縮技術內的I-框編碼。不同於I-框編碼,其中整個影像被內編碼,在本實施例中,在內編碼(intra-encoding)與間編碼(inter-encoding)間之選擇可以一方塊一方塊為準地完成,但在本發明之其他實施例,則該選擇仍可以一影像一影像為準地完成。
動作補償預估利用動作資訊,其嘗試以定義予以編碼在現行影像中之影像細節的來源,該來源係在另一鄰接或附近影像中。因此,在理想例子中,在預估影像中之方塊影像資料的內容可以被很簡單地編碼為一參考(動作向量),指向在鄰接影像中之相同或略微不同位置之對應方塊。
回到圖6,如所示兩影像預估配置(對應於影像內及影像間預估),其結果係為在模式信號510的控制下,為 多工器500所選擇,以提供預估影像方塊供給至加法器310及450。該選擇係基於哪一選擇給出最低“能量”(如上所討論,其可以被認為是需要編碼之資訊內容),及該選擇係被發信給在編碼輸出資料串流內的編碼器。在本文中,影像能量可以藉由執行以下加以檢測:將輸入影像嘗試減去兩版本的預估影像的區域;平方該差影像的各個像素值;總和該平方值;及指出兩版本之哪一造成有關於該影像區域的差影像的最低均方值。
在內編碼系統中,實際預估係根據被接收為信號460的一部份的影像方塊加以完成,也就是說,預估係根據編碼-解碼影像方塊加以完成,以在解壓縮設備中完成完全相同的預估。然而,資料可以藉由內模式選擇520由輸入視訊信號300導出,以控制內影像預估器530的操作。
對於影像間預估,動作補償(MC)預估器540使用例如為動作評估器550所由輸入視訊信號300導出之動作向量的動作資訊。這些動作向量係被動作補償預估器540所應用至重建影像460的處理版本,以產生影像間預估的方塊。
應用至信號460的處理現將描述。首先,信號係為一過濾單元560所過濾。此涉及施加“去方塊”過濾以移除或至少傾向於降低為轉換單元340所執行之方塊為主處理及後續操作的影響。同時,一適應環過濾器係使用藉由處理重建信號460及輸入視訊信號300所推導的係數加以施加。適應環過濾器係為一類型之過濾器,其使用已知技 術,施加適應過濾器係數至予以過濾的資料。也就是說,過濾器係數可以取決於各種因數加以改變。定義使用哪些過濾器係數的資料係被包含成為編碼輸出資料串流的一部份。
來自過濾器單元560的過濾輸出事實上形成輸出視訊信號480。其也被緩衝於一或更多影像儲存570中;連續影像的儲存係為動作補償預估處理的要求,特別是產生動作向量。為了節省儲存要求,在影像儲存570中所儲存之影像可以被保持於壓縮形式,然後,被解壓縮,用以產生動作向量。為了此特定目的,任何已知壓縮/解壓縮系統可以被使用。所儲存之影像被傳送至內插過濾器580,其產生儲存影像的較高解析度版;在此例子中,中間取樣(次取樣)係被產生,使得為內插過濾器580輸出的該內插影像的解析度為儲存於影像儲存570中之影像解析度(在各個維度中)的8倍。內插影像係被傳送作為至動作評估器550的輸入並同時也至動作補償預估器540。
在本發明之實施例中,提供另一選用級,其係將輸入視訊信號的資料值使用乘法器600乘以四的因數(作用上只移位該資料值向左兩位元),並使用除法器或右移器610在設備的輸出施加對應除法運算(右移兩位元)。因此,左移及右移改變資料只單純作為該設備的內部運算。此手法可以在該設備內提供更高計算準確度,因為任何資料拾入誤差的影響被降低。
影像被分割作壓縮處理的方式現將被描述。在基本層 次中,予以壓縮之影像係被認為是一陣列的取樣方塊。為了本討論的目的,考量中之最大此方塊係所謂最大加碼單元(LCU)700(圖7),其代表64×64取樣的正方陣列。於此,討論係有關於亮度取樣。取決於例如4:4:4,4:2:2,4:2:0或4:4:4:4(GBR加鍵資料)的色度模式,其中將有對應於色度方塊的對應色度取樣的不同數字。
三種基本類型方塊將描述:加碼單元、預估單元及轉換單元。通常地,LCU的遞迴細分允許輸入圖片被分割,使得方塊大小及方塊加碼參數(例如預估或殘留加碼模式)可以依據予以編碼的影像的特定特徵加以設定。
LCU可以被細分為所謂加碼單元(CU)。加碼單元為一直正方並具有於8×8取樣至LCU700的全尺寸間之大小。加碼單元可以被排列為一類型之樹狀結構,使得第一細分可以如於圖8所示地發生,給出32×32取樣的加碼單元710;後續細分可以以選擇為基礎地發生,以給出部份16×16取樣的部份加碼單元720(圖9)與8×8取樣的可能一些加碼單元730(圖10)。整體說來,此處理可以提供CU方塊的內容適應加碼樹狀結構,其各個可以大至LCU或小至8×8取樣。輸出視訊資料的編碼根據加碼單元結構加以發生。
圖11示意顯示一陣列之預估單元(PU)。預估單元係為用以承載有關於影像預估處理的資訊的基本單元,或換句話說,被加入熵編碼殘留影像資料的額外資料,以由 圖5的設備形成輸出視訊信號。通常,預估單元並不限於形狀為正方者。它們可以採任何其他形狀,尤其是形成正方加碼單元之一的一半的矩形,只要該加碼單元係大於最小(8×8)尺寸即可。該目標為允許鄰近預估單元的邊界(儘可能接近)匹配在該圖片中之真物件的邊界,使得不同預估參數可以被應用至不同真物件。各個加碼單元可以包含一或更多預估單元。
圖12示意顯示轉換單元(TU)的一陣列。轉換單元係為轉換及量化處理的基本單位。轉換單元永遠是正方形並可以採由4×4至32×32取樣之大小。各個加碼單元可以包含一或更多轉換單元。在圖12中之縮寫字SDIP-P簡化所謂短距內預估分割。在此配置中,只有一維轉換被使用,因此一4×N方塊係被透過N轉換傳送至轉換器,輸入資料係根據現行SDIP-P內的先前解碼相鄰方塊及前一解碼相鄰線。
該內預估處理現將討論如下。一般來說,內預估涉及由相同影像內的先前已編碼及解碼取樣,產生一現行方塊(預估單元)的預估。圖13示意顯示部份編碼影像800。於此,影像係以LCU為基礎由左上向右下編碼。一透過整個影像的處理的例示LCU編碼半路係被顯示為方塊810。在方塊810之上及左方之陰影區820係為己經編碼。方塊810的內容的影像內預估可以使用任一陰影區820,但並不能使用其下的沒有陰影區。
如上所討論,方塊810代表LCU;為了影像內預估處 理的目的,這可以更細分為一組更小預估單元。例示預估單元830係被顯示在LCU810內。
影像內預估考量現行LCU810的上方及/或左方的取樣。所需取樣被預估的來源取樣可以位在相對於LCU810內的現行預估單元的不同位置或方向。為了決定哪一方向適用於現行預估單元,根據每一候選方向的嘗試預估結果係被比較,以得知哪一候選方向的結果最接近輸入影像的對應方塊。給出最接近結果的候選方向係被選定為用於該預估單元的預估方向。
該圖片也可以以“切片”為基礎地編碼。在一例子中,切片係為水平相鄰群的LCU。但通常來說,整個殘留影像可以形成一切片,或者一切片可以為單一LCU,或一切片可以為一列之LCU等等。切片可以提供對錯誤給出一些彈性,因為它們被編碼為獨立單元。編碼器及解碼器狀態係在切片邊界被完全地重設。例如,內預估並未執行越過切片邊界,切片邊界係被處理為用於此目的影像邊界。
圖14例示顯示一組可能(候選)預估方向。整組34候選方向係可以用於8×8、16×16或32×32取樣的預估單元。4×4及64×64取樣的預估單元大小的特殊例子具有減少組之候選方向為其所用(分別17候選方向及5候選方向)。該等方向係由相對於現行方塊位置的水平及垂直位移所決定,但編碼為預估“模式”,其中之一組係如圖15所示。注意所謂DC模式代表周圍上及左手取樣的簡單算術平均。
圖16示意顯示曲折掃描,其係為可為掃描單元360所應用之一掃描圖案。在圖16中,圖案係被顯示為8×8DCT係數的例示方塊,DC係數係被定位在該方塊的左上位置840,且增加水平及垂直空間頻率係為向下增加至左上位置840右方的距離之係數所表示。
注意在一些實施例中,該等係數可以以逆向順序(右下至左上,使用圖16的排序標示)掃描。同時,應注意在一些實施例中,該掃描可以在執行殘留係數的曲折前,由左至右經由幾個(例如於一至三個間)最上水平列。
圖17示意例示CABAC熵編碼器的運算。
CABAC編碼器以二進制資料運算,即,資料只以0與1的兩符號表示。編碼器使用所謂上下文模型化處理,其根據先前編碼資料,選擇“上下文”或或然率模型給下一資料。上下文的選擇係以確定性的方式執行,使得根據先前解碼資料的相同決定可以在該解碼器執行,而不必進一步資料(指明上下文)被加入至傳送給該解碼器的編碼資料流。
參考圖17,如果予以編碼之輸入資料並不是二進制形式,則其可以被傳送至二進制轉換器900;若已經為二進制形式,則轉換器900被略過(示意開關910)。在本實施例中,對二進制形式之轉換係實際藉由表示量化DCT係數資料為一連串的二進制“映圖”加以執行或表示,這將如以下所進一步描述。
二進制資料可以然後為兩處理路徑“正常”及“旁路” (其係被示意為分開路徑,但在本發明以下所討論之實施例中可以事實上為相同處理級所實施,只是略微不同的參數)之一所處理。該旁路路徑使用一所謂旁路加碼器920,其並不必然使用與正常路徑相同的形式之上下文模型化。在CABAC加碼的部份例子中,如果有需要特別一批次資料的快速處理,則此旁路路徑可以被選擇,但在本實施例中,所謂“旁路”資料的兩特性係被注意到:第一,旁路資料係為CABAC編碼器(950、960)所處置,只使用代表50%或然率的固定上下文模型;及第二,旁路資料相關於某些類別的資料,一特定例為係數符號資料。或者,正常路徑係為示意開關930、940所選擇。這涉及為上下文模型器950所處理的資料跟著有一加碼引擎960。
示於圖17的熵編碼器編碼一方塊的資料(即,例如,對應於有關於殘留影像方塊的係數方塊的資料)成為單一值,如果該方塊係整個零值資料所形成。對於未落入此類別的各個方塊,也就是說,至少部份非零資料的方塊,準備有“效值圖”。效值圖表示對於在一予以編碼之資料方塊中之每一位置,如果在該方塊中之對應係數為非零。為二進制形式之效值資料為本身CABAC編碼。效值圖的使用協助壓縮,因為對於具有一數量其效值圖表示為零的係數,並沒有資料需要被編碼為具有一大小的係數。同時,該效值圖可以包含特殊碼,以表示在方塊中之最終非零係數,使得所有最終高頻/尾隨零係數可以省略編碼。在編碼位元流中,效值圖係為定義為效值圖所指明之 非零係數的值之資料所跟隨。
映圖資料的其他階段係被準備及編碼。一例子係為映圖,其定義二進制值(1=是,0=否)是否在效值圖之映圖位置中之係數資料已經被指定為“非零”,實際具有“一”的值。另一映圖指明是否在映圖位置效值圖被指明為“非零”的係數資料實際具有“2”的值。另一圖表示,效值圖已經顯示該係數資料為“非零”的這些圖位置,是否該資料具有“大於二”的值。對於再次被指明為“非零”的資料,另一圖表示該資料值(使用預定二進制表示法,例如1代表+、0代表-,當然其他方式也可以)的符號。
在本發明之實施例中,效值圖及其他圖係被以預定方式配置至CABAC編碼器或至旁路編碼器,並為相同初始資料項的不同個別屬性或值範圍的所有代表。在一例子中,至少該效圖為CABAC編碼及至少部份殘留映圖(例如符號資料)被旁路編碼。因此,各個資料項係被分割成個別次組資料及個別次組係被第一(例如CABAC)及第二(例如旁路)編碼系統所編碼。資料的本質及CABAC與旁路編碼的本質係使得對於預定量的CABAC編碼資料,可變數量之零或更多旁路資料係相對於相同初始資料項所產生。因此,例如,如果量化重新排序DCT資料包含大致全部為零的值,則可能沒有旁路資料或者產生很少量的旁路資料,因為旁路資料只有關心效值圖表示該值為非零的圖位置。在另一例子中,在具有很高值係數的量化重新排序DCT資料中,則可能產生顯著數量的旁路資 料。
在本發明之實施例中,效值圖及其他圖係例如為掃描單元360所由量化DCT係數所產生並在受到CABAC編碼前先受到曲折掃描處理(或依據內預估模式,由曲折、水平掃描及垂直掃描所選出之掃描處理)。
通常而言,CABAC編碼涉及預估上下文,或者根據其他先前編碼資料的予以編碼的下一位元的或然率模型。如果下一位元與被或然率模型所指明“幾乎相同”的位元相同,則“下一位元相符於或然率模型”的資訊的編碼可以更有效率地編碼。“下一位元並不相符於或然率模型”則較低效編碼,因此,對於上下文資料的推導對於編碼器的良好操作係重要的。用語“適應”表示上下文或或然率模型係於編碼時被適應或改變,以想要提供對(如未加碼)下一資料提供良好匹配。
使用簡單類比,在書寫的英語中,字母“U”為相當不常用。但在字母“Q”後的字母位置中,則確實很常用。因此,或然率可能設定“U”的或然率為很低值,但當現行字母為“Q”時,則“U”作為下一字母的或然率模型可以設定為很高或然率值。
在本配置中,使用CABAC編碼,對於至少效值圖及圖表示是否非零值為一或二。旁路處理-在這些實施例中係相同於CABAC編碼,但事實上,對於或然率模型係固定於1與0之相等(0.5:0.5)或然率分佈,並被使用於至少符號資料及圖表示是否值>2。對於被指明為>2的這 些資料位置,一分開所謂脫離資料編碼可以用以編碼資料的實際值。這可以包含Golomb-Rice編碼技術。
CABAC上下文模型化及編碼處理係更詳細描述於WD4:2011-10-28之201×(E)的“高效視訊加碼的工作草案4”,JCTVC-F803_d5,Draft ISO/IEC23008-HEVC。
圖18例示顯示CAVLC熵編碼處理。
有關於以上討論的CABAC,示於圖18之熵編碼處理遵循掃描單元360的操作。已注意到,在轉換及掃描殘留資料中之非零係數經常為±1的順序。該CAVLC加碼器以稱為“尾隨1”(T1s)的變數來表示高頻±1係數的數量。對於這些非零係數,該加碼係數係藉由使用不同(上下文適應)可變長度加碼表加以改良。
參考圖18,第一步驟1000產生值“coeff_token”,以編碼非零係數的總數及尾隨一的數量。在步驟1010,各個尾隨一的符號位元係以逆向掃描順序加以編碼。在步驟1020,各個殘留非零係數係被編碼為“階層”變數,因此,定義這些係數的符號與大小。在步驟1030,變數total_zeros係被用以加碼在最後非零係數前的零的總數。最後,在步驟1040,變數run_before係被用以以逆向掃描順序加碼在各個非零係數前的連續零的數目。上述定義之變數的一起輸出形成編碼資料。
如上所述,為掃描單元360所執行之掃描操作的預設掃描順序係為曲折掃描並例示於圖16中。在使用影像內編碼的四方塊的其他配置中,則可以取決於影像預估方向 (圖15)及轉換單元(TU)大小,而在曲折掃描、水平掃描及垂直掃描間作出選擇。
如上討論的CABAC處理將更詳細加以描述。
至少如同於在提議之HEVC系統所用之CABAC涉及相關於予以編碼之下一位元導出“上下文”或或然率模型。為上下文變數或CV所定義之上下文然後影響該位元係如何編碼。通常而言,如果下一位元係與CV定義為預期更多或然值的值相同,則以降低定義該資料位元所需之輸出位元的數量看來係有利的。
編碼處理涉及映圖一位元至予以編碼在一範圍碼值內的位置。碼值的範圍係被示意例示於圖19A成為一連串之相鄰整數,由下限m_low延伸至上限m_high。此兩限間之差為m_range,其中m_range=m_high-m_low。藉由以下所討論之各種技術,在基本CABAC系統中,m_range係被侷限於256與512之間。m_low可以是任何值。其可以由(例如)零開始,但也可以改變作為所述之編碼處理的一部份。
碼值的範圍m_range係為相關上下文變數為邊界1100所定義細分為兩次範圍:邊界=m_low+(CV*m_range)
因此,上下文變數將總範圍細分為兩次範圍或次部份,一次範圍為有關於零(或下一資料位元)的值,及另一次範圍係為有關於一(或下一資料位元)的值。範圍的細分代表對於下一予以編碼的位元之為該兩位元值的CV 產生所假設的或然率。因此,如果有關於值零的次範圍係小於總範圍的一半時,則此簡化了零被認為在下一符號時比1為低的可能性。
用以定義哪一方式該次範圍應用至可能資料位元值有各種不同或然率存在。在一例中,較低區範圍(即,由m_low至邊界)係被傳統所定義為相關於零的資料位元值。
編碼器與解碼器維持哪一資料位元值係低或然(經常稱為“最少或然符號”或LPS)的記錄。CV表示LPS,使得CV一直代表0與0.5間之一值。
下一位元(現行輸入位元)現被映射或指定至為該邊界所分割之範圍m_range內的適當次範圍內的碼值。此係被在編碼器及解碼器所使用以下所詳述之技術所確定執行。如果下一位元為0,則代表在由m_low至該邊界的次範圍內的位置的特定碼值係被指定給該位元。如果下一位元為1,在由邊界1100至m_high的次範圍中之特定碼值係被指定給該位元。
下限m_low及範圍m_range然後被重新定義,以相關於指定碼及該選定次範圍的大小,而修改該組碼值。如果剛編碼位元為零,則m_low未改變但m_range被重新定義為等於m_range*CV。如果剛編碼位元為1,則m_low被移動至邊界位置(m_low+(CV*m_range))及m_range係被重新定義為該邊界與m_high間之差(即,(1-CV)*m_range))。
這些替代法係被例示於圖19B及19C。
在圖19B中,資料位元為1因此m_low係被向上移動至先前邊界位置。這提供改版組之碼值,用於下一位元編碼順序中。注意在一些實施例中,CV的值係被改變用於下一位元編碼,至少部份於該剛編碼位元的值上。這就是為何該技術稱為“適應”上下文。CV的改版值係被用以產生新邊界1100’。
在圖19C中,零值被編碼,因此,m_low保持不變,但m_high係被移動至前一邊界位置。值m_range係被重新定義為m_high-m_low的新值。在此例子中,這已經造成m_range落於其最小允許值(例如256)之下。當此結果被檢出時,值m_range被乘2,即,左移1位元,儘可能如所需地多次以回復m_range至所需範圍的256至512。換句話說,該組碼值於大小上被連續增加,直到其具有至少預定最小大小為止。此例子係被示於圖19D中,這代表圖19C的範圍兩倍,以符合所需之侷限。新邊界1100”係由CV的下一值及改版m_range所導出。
只要該範圍必須以此方式乘以二,此處理常稱為“再正規化”,一輸出位元被產生(成為輸出編碼資料位元),一此一位元用於各個再正規化級。
以此方式,間距m_range係取決於CV值(其可以在解碼器被再生)及編碼位元串的適應連續地修改及再正規化。在編碼一連串位元後,所得之間距及再正規化級的數目獨特地定義該編碼位元串流。得知此一最終間距的解碼 器將主要能重建該編碼資料。然而,內藏數學展現其並不實際需要定義該解碼器的間距,而只是定義在該間距內的一位置。這是指定碼值的目的,其係被維持在該編碼器並於編碼該資料結束時,傳送至該解碼器(作為該資料串流的最終部份)。
上下文變數CV係被定義為具有64可能狀態,其係連續地指示由在CV=63之下限(例如1%)至在CV=0至50%或然率的不同或然率。
CV係依據各種已知因數由一位元改變至下一位元,各因數可能取決於予以編碼的資料的方塊大小而不同。在一些例子中,相鄰及前一影像方塊的狀態可以被列入考量。
指定碼值係由一表產生,其定義新編碼位元應被指定的位置或位置群在相關次範圍內的碼值給每一可能CV值及m_range位元6及7的每一可能值(注意m_range的位元9永遠為1,因為m_range大小上的侷限)。
圖20示意例示使用上述技術的CABAC編碼器。
該CV係為CV推導單元1120所被初始化(在第一CV時)或修改(在後續CV時)。碼產生器1130依據CV細分現行m_range並使用上述表產生在適當sub_range內的指定資料碼。範圍重設單元1140重設m_range至選定次範圍的範圍。如有必要,正規化器1150重新正規化m_range,輸出一輸出位元,給各個此重新正規化操作。如前所述,在處理結束時,指定碼值也被輸出。
在示於圖21的解碼器中,CV係為CV推導單元1220所初始化(當第一CV時)或修改(在後續CV時),其以在編碼器中之單元1120的相同方式加以操作。碼應用單元1230依據CV細分現行m_range並檢測該資料碼置於哪次範圍內。範圍重設單元1240重設m_range至該選定次範圍的範圍。如果必要,正規化器1250回應於接收資料位元重新正規化m_range。
總結,本案技術允許CABAC資料(即,使用上下文變數的資料)被以16位元(在此例子中)的固定大小封包被寫入至位元串流,該封包稱為’CABAC封包’。在各個’CABAC封包’後,對應’旁路封包’係被寫入該位元串流。
’旁路封包’(其在大小為可變的)包含任何旁路位元,其附著至CABAC資料,該資料可以只使用包含在先前’CABAC封包’內的位元加以解碼;此旁路資料被直接插入至該串流中。
為了產生CABAC封包為主串流,編碼器可以被安排以追蹤解碼器已經在各個重新正規化處理後讀取多少位元。該編碼器可以在等於解碼器被初始讀取的位元數目(在本實施例中為9)開始計數。
一些其他背景資訊將被提供。
現參考圖22及23,如上所述,形成視訊編碼設備的一部份的熵編碼器包含第一編碼系統(例如,如CABAC編碼器2400的算術加碼編碼系統)及第二編碼系統(例 如旁路編碼器2410),安排以使得一特定資料字元或值藉由CABAC編碼器或旁路編碼器但非兩者所編碼至最終輸出資料串流。在本發明之實施例,傳送至CABAC編碼器及旁路編碼器的資料值係為個別次組的順序資料值,其係由初始輸入資料(在此例子中為重新排序量化的DCT資料)分割或導出,代表由輸入資料產生之該組“圖”的不同圖。
在圖22之示意代表圖處理CABAC編碼器與旁路編碼器為分開配置。這在實際上可能是如此,但在另一可能中,則如圖23所例示的單一CABAC編碼器2420係被使用作為圖22的CABAC編碼器2400及旁路編碼器2410。編碼器2420在模式選擇信號2430的控制下操作,以當CABAC編碼器2400的模式中,以操作有適應上下文模型(如上所述),及當於旁路編碼器2410的模式中,以固定50%或然上下文模型操作。
第三可能組合這兩者,在於兩實質相同CABAC編碼器可以平行操作(類似於圖22的平行配置),其差異在於操作為旁路編碼器2410的CABAC編碼器具有其上下文模型固定在50%或然率上下文模型。
CABAC編碼處理與旁路編碼處理的輸出可以儲存(至少暫時地)在個別緩衝器2440、2450。在圖23中,一開關或解多工器2460在模式信號2430的控制下,以配送CABAC編碼資料至緩衝器2450及旁路編碼資料至緩衝器2440。
使用單一緩衝器的替代配置將如下參考圖26加以描述。
圖24及25示意例示視訊解碼設備的熵解碼器形成部的例子。參考圖24,個別緩衝器2510、2500傳送資料至CABAC解碼器2530及旁路解碼器2520,其係被配置使得一特定編碼資料字元或值係為CABAC解碼器或旁路解碼器所解碼,但非兩者所解碼。該解碼資料係為邏輯2540所重新排序為適當順序,以用於後續解碼階段。
在圖24中之示意代表圖處理CABAC解碼器及旁路解碼器為分開配置。實際上也可能是如此,但在另一可能中,則如圖25所示,單一CABAC解碼器2550係被使用為圖24的CABAC解碼器2530及旁路解碼器2520的兩者。解碼器2550在模式選擇信號2560的控制下操作,以當CABAC解碼器2530的模式時,操作有適應上下文模型(如上所述),及在旁路編碼器2520的模式時,操作有固定50%或然率上下文模型。
如前,第三可能組合這兩種,在於兩實質相同CABAC解碼器可以平行操作(類似於圖24的平行配置),其差異為操作為旁路解碼器2520的CABAC解碼器令其上下文模型固定在50%或然上下文模型。
在圖25的例子中,一開關或多工器2570在模式信號2560的控制下作動,以適當地由緩衝器2500或緩衝器2510配送CABAC編碼資料至解碼器2550。
本發明之實施例將進一步詳述如下,CABAC編碼資 料及旁路編碼資料可以多工為單一資料串流。資料串流的更多細節將在以下說明,但在此階段中,注意在此配置中,輸入緩衝器2500、2510及/或輸出緩衝器2440、2450(如此例子中)可以為單一個別緩衝器2580所替換。因此,在一解碼器配置中,兩輸入緩衝器可以為單一緩衝器所替換,及在編碼器配置中,該兩輸出緩衝器可以為單一緩衝器所替換。在圖26中,緩衝器係被示意例示以包含分界資料位元或字元的垂直線,其係想要以協助代表,其中延伸於橫向中之緩衝器的資料內容(如所示)。
緩衝器2580及其相關讀取及寫入控制配置因此也可以被視為用以藉由第一(例如CABAC)及第二(例如旁路)編碼系統所編碼之資料,產生輸出資料串流的輸出資料組合器的例子。
顯示出兩緩衝器指標器2590、2600。當編碼器輸出緩衝器時,這些代表資料寫入指標,表示在緩衝器中下一資料位元被寫入之位置。在解碼器輸入緩衝器的例子中,這些表示指示緩衝器中之下一資料位元被讀取的位置之資料讀取指標。在本發明之實施例中,指標2590相關於讀取或寫入CABAC編碼資料及指標2600相關於讀取或寫入旁路編碼資料。這些指標及其相關位置的效值將討論如下。
在CABAC編碼器及解碼器的基本例子中,編碼旁路資料(被編碼為CABAC但具有固有50%或然率上下文模型)不能以原始形式引入與CABAC解碼資料相同的資料串流,對於任何給定輸出CABAC解碼資料位元,該 CABAC解碼器已經較當該編碼器正編碼該特定資料位元時,該編碼器已經寫入由該資料串流讀取更多位元。換句話說,CABAC解碼器讀取前方,以由資料串流讀取進一步CABAC編碼資料,及因此並不認為可能引入旁路資料至與CABAC資料相同的連續編碼資料串流。此差異(解碼器向前讀取的數量)可以被稱為“解碼器偏差”。
換句話說,當解碼器正處理二進制值時,其已經具有一些位元,用於暫存器中之下幾個二進制值,這係被稱為“值”。
然而,如果一種方式可以找出使得旁路資料可以以原始形式使用,旁路資料的多數位元可以使用相對少邏輯或處理負擔立即讀取。本發明之實施例確實允許使得該旁路資料可在串流中之預定位置取用。使用所述之技術,旁路資料可以與CABAC資料同時被讀取。因此,本發明之實施例提供一方法,以將CABAC串流分割,使得旁路資料可以以原始形式放置於該串流中,以形成複合CABAC/旁路資料串流並可能可以平行於CABAC資料讀取(在解碼時)。
該技術的基礎係將CABAC資料串流(沒有旁路資料)排列為封包。於此,封包表示為一組具有預定長度(位元數)的相鄰編碼CABAC資料位元,其中用語“預定”暗示CABAC資料封包的長度為例如(a)事先決定,(b)為編碼器決定並相關於剩餘的編碼資料串流地傳送至該解碼器,或(c)以解碼器及編碼器已知的方式由先 前編碼/解碼資料導出。
在各個CABAC封包被寫入至該輸出資料串流後,對應於包含於該封包內的該編碼係數的旁路資料係(以原始形式)寫至複合輸出資料串流旁。
因此,此配置提供輸出資料串流產生的例子,該輸出資料串流包含由第一編碼系統(例如CABAC)所產生之預定數量的資料之連續封包,並在資料串流順序中,跟隨有相關於第一編碼系統所編碼之相同資料項的為第二編碼系統(例如旁路)所產生之零或更多資料。
編碼器追蹤解碼器將在每一解碼後讀取多少位元,以決定在下一封包後的旁路資料的數量。
解碼器可以將該CABAC封包載入緩衝器(例如緩衝器2510)並由該串流的直接讀取旁路資料。或者CABAC及旁路資料可以使用分開指標(參考圖26描述)由共同緩衝器或串流讀取。以此方式,可能,多數旁路位元可以一次讀取,及CABAC及旁路資料可以平行讀取,使得(可能)相對於系統中CABAC資料及旁路資料使用共同算術加碼處理被編碼為單一資料串流的系統增加系統的資料流量。
因此,藉由以直接方式,將CABAC資料分割成封包,有可能組合原始旁路資料與CABAC資料,允許多數位元一次讀取,及/或同時讀取旁路及CABAC資料,允許平行與改良通量。
在本發明之實施例中,固定大小的16位元係被用於 CABAC封包。注意,此一固定長度,以所產生之輸出資料的數量;當然,CABAC編碼處理的本質表示在CABAC封包中之16位元當然可以代表輸入資料的可變數量。16位元的長度係大於用於本發明之實施例的CABAC範圍(預設9位元)。同時注意,也可以選擇其他封包長度。
初始化暫存器“值”的CABAC資料係被放置於第一封包,其後跟隨CABAC資料,以在第一解碼、第二解碼以此類推後重新正規化。各個CABAC封包含係為原始旁路資料所跟隨,給用於重新正規化CABAC資料係整個被包含在CABAC封包內的所有係數。
用於具有重新正規化資料執行通過特定CABAC封包的末端的係數的旁路資料係被置於下一CABAC封包後。
此處理係被示意顥示於圖27,其顯示封包化資料串流的一部份。CABAC封包2610係被顯示為未加陰影方塊及旁路封包2620係被顯示為加陰影方塊,資料順序由左至右。填塞零2630(如下)係被顯示相關於最後CABAC封包。因此,圖27的封包化資料串流提供視訊資料的例子,其包含預定數量的為第一編碼系統所產生的排序資料的連續封包,在資料串流順序中,跟隨有相關於為第一編碼系統所編碼之相同資料項的第二編碼系統所產生之零或更多資料,該第一及第二編碼系統係被安排以熵編碼個別次組的輸入視訊資料,使得對於為第一編碼系統之一群資料項產生的預定數量編碼資料,相關於該群為第二編碼系統所產生之資料,產生可變數量之零或更多資料。
當視訊資料係以一切片一切片為基礎地編碼(其中一切片係為一圖片的次組,使得解碼為自包含,或相較於圖片為其他部份,獨立編碼為獨立部份),相關於特定切片的最後封包可以小於預期的16位元,如果用於該切片的CABAC資料並未結束於封包邊界(也就是說,如果整個切片的CABAC資料總數並不是16位元的倍數)。在此等環境中,最後封包將於長度小於16位元。在此時,最後CABAC封包係為資料串流組合器所填塞,例如,為資料串流組合器所填塞以零至其預期大小,寫入填充資料至緩衝器及將其讀取出作為最後封包的部份。填充資料並未被讀取,因為該解碼器將在取得其之前解碼切片末端的旗標。在此例子中,最大的耗損量為等於小於封包大小一位元。
然而,為了降低耗損量,如果最後CABAC封包沒有相關旁路資料(零旁路資料),則最終封包可以允許短於預期大小-或換句話說,未使用填充資料。此封包含可以稱為“短封包”。
在本發明實施例中,為了編碼封包形式之資料,該編碼器保持一緩衝器(例如緩衝器2580),其中可以寫入CABAC及旁路資料。於初始化時,CABAC寫入指標2590係被設定為零及旁路寫入指標2600被設定等於第一CABAC封包的大小(例如16位元)。因此,CABAC資料的第一位元將被寫入至緩衝器的開始處,相關於該CABAC封包的旁路資料(如果有的話)的第一位元將被 寫入至由第一CABAC寫入位置偏移開16位元的位置。該指標配置係更詳細例示於圖28。
每當編碼器檢測該解碼器已讀取16位元時,旁路指標前進通過下一CABAC封包(即,對於現行封包由旁路資料的末端前進16位元)。每當編碼器填入CABAC封包時,CABAC寫入指標係前進通過下一旁路封包及CABAC及旁路資料被送至該串流。
為了編碼CABAC封包為主串流,可以使用輸出緩衝器,其可以被寫入多個位置。
兩寫入指標係被使用以索引此緩衝器,第一個表示將CABAC資料寫於何處(於零處開始),第二個表示旁路資料寫於何處(開始於16)。
每當編碼器檢測解碼器已經讀取16位元,旁路指標的位置被注意並增量16。當編碼器完成現行’CABAC封包’寫入,CABAC指標被設定等於旁路指標的注意先前位置。
以此方式,每一指標’跳過’其他資料。在任何給定再正規化後,在解碼器已讀取位元總數及編碼器已寫入之位元總數間之差異已經大於一封包的大小。
因此,有必要儲存多數先前旁路指標位置。指標的所需數量可以為最大差異所約束,並為限制末決位元的理由。
可以藉由快取圍繞於目標區的位元組,而在一單一寫入循環內,對緩衝器執行非字元對準寫入。
以下步驟為描述現行編碼處理的虛擬碼。當有必要時,一些注釋的解釋係在括號內進行。
初始化:set ptr_CABAC=0(CABAC寫入指標)ptr_bypass=16(旁路寫入指標)ptr_bypass_old=未定義decodet_bits_read=9(CABAC_RANGE_BITS)
步驟1:編碼N CABAC位元:如果N位元配合入現行封包:在ptr_CABAC寫入位元ptr_CABAC+=N(以ptr_CABAC+N替換ptr_CABAC)否則在ptr_CABAC寫入位元,直到封包結束ptr_CABAC=ptr_bypass_old在ptr_CABAC寫入剩餘位元(N’)ptr_CABAC+=N’decoder_bits_read+=N如果decoder_bits_read>=16 decoder_bits_read-=16 ptr_bypass_old=ptr_bypass ptr_bypass+=16
步驟2:編碼N旁路位元:在ptr_bypass寫入位元ptr_bypass+=N
步驟3:如所需地重覆步驟1及步驟2。
在編碼設計中,在一組資料末端需要一終止符號,將了解的是,處理在最後封包中之可變數量的CABAC位元應仍然允許此一終止符號。該終止符號可以例如為一具有0或1的預定值之位元,表示一網路抽象層(NAL)資料 串流的末端。
使用’[...]’表示先前於此所述之CABAC封包,’C’表示CABAC位元及’R’表示終止符號,最終(短)封包可以然後例如包含類型[CCCCCCCCCCCCCCCR]的位元順序,在此例子中,具有15CABAC位元及一終止位元。
注意,在HEVC或AVC系統中,在本發明之實施例中,CABAC串流本身的最後位元可以為此終止符號所替換,因此,節省一位元。在此例子中,CABAC串流的最終位元係為以與編碼設計的終止符號的相同值加以替換(例如值1)。明顯地,如果此位元的最終值已經為1,則作用上沒有改變。如果位元的最終值為0,則其有將1加至整個值的作用。然而,對於2的符號範圍及對於在編碼的結束係為符號範圍的底部之值,則加1將不會移動整個值於加碼間距之外,及資料串流保持有效。因此,對於HEVC或AVC編碼,通常,CABAC串流的最後位元可以設定等於終止符號,同時保留在相同加碼間距內。將了解的是,任何加碼設計可以利用此技術類似地容許在串流中之最後位元的位元變化。
因此,在本實施例中,如果CABAC串流結束於封包的中間並沒有旁路資料可跟隨,則該串流如前所述係被終止以短封包,及該短封包的最後位元將被讀取為適當終止符號並可以被正確解碼(例如,在HM4.0解碼設計中)。使用上述例子,所得短封包將讀取[CCCCCCCCCCCCCCR],包含14CABAC位元及一終止位元以替換最後第15個 CABAC位元。
然而,如果CABAC串流終止於封包的中間及有旁路資料可跟隨,則最終封包並未截斷,以重合CABAC位元的末端,並相反地提供有填充位元。然而,仍想要終止符號。
在此例子中,在本發明之一實施例中,為了維持在編碼器與解碼器的一致性,一或更多填充位元(典型在此實施例中之所有填充位元)也使用與終止符號相同的值。使用’B’表示旁路位元,所得順序將為類型[CCCCCCCCCCRRRRRR]BBBBR。於此,10個CABAC位元,其後跟著具有與資料終止位元相同的值或符號的6個填充位元。在CABAC封包後,旁路位元然後再次為終止符號所跟隨。
再次,在HEVC、AVC或類似公差設計中,或者,CABAC位元的最終位元也可以再次為終止符號所替換,具有額外填充位元同時也使用與終止符號相同的值。在此時,所得順序將為類型[CCCCCCCCCRRRRRRR]BBBBR。於此,9個CABAC位元係為一終止位元所跟隨,以替換最終第10CABAC位元,其後隨後為6個具有與終止位元R相同的值之填充位元所跟隨。因此,有一總數7位元的一列,在此例子中,具有終止符號R的值。在CABAC封包後,旁路位元係再次為終止符號所跟隨。
在任一例子中,以此方式,終止符號仍設在CABAC資料的末端也在整個位元串流的末端。
最後,當最後需求CABAC位元(即,依據於上所述之編碼設計,包含或不包含最後實際CABAC位元)準確地配合最終CABAC封包的第16位元,則解碼器將自動持續查看下一預期封包將在何處及因此終止符號可以放置在該位置。因此,例如在此例子中之順序包含[CCCCCCCCCCCCCCCC]R,及[CCCCCCCCCCCCCCCC]BBBBR。
分開或另外,也有可能較早終止CABAC串流,以插入不同資料(例如,IPCM無損碼)。結果,CABAC串流可以再次終止為短封包,但再次有旁路資料時,則最終封包可以再次包含填充位元。在此例子中,再次為節省填充位元的位元一或更多可以為在(後續串流)插入資料的開始的對應第一位元(取的值)所替換。使用’D’表示差異資料,所得封包將然後包含一順序類型[CCCCCCCDDDDDDDDD]BBBBR或(參考如上HEVC或AVC例)[CCCCCCCRDDDDDDDD]BBBBR。
未決位元將參考圖29加以考量。作為此考量的一部份,在本發明之實施例中,編碼器保持一名單的指標,其中完成旁路封包。該名單的長度取決於上述解碼器偏移。通常而言:Decoder offset=CABAC_RANGE_BITS(預設9)+末決位元數
通常,解碼器偏移理論上為末約束,然而,其提議一機制係被設有用以限制未決位元,允許編碼器維持較小數量的指標。
所需數量的指標為下式所給定:捨入(最大解碼器偏移/CABAC封包大小)的值
未決位元係為對算術解碼器的一可能問題,當編碼器得知編碼資料在該0.49至0.51的範圍內(例如,在十進制中,而不是在一般二進制)-解碼器不知是否輸出0.4(第一效值圖)或0.5。編碼器必須延遲輸出資訊,直到其知道作什麼。對於各個延遲決定,該編碼器必須寫較所需少一位元至該串流,因此,解碼器偏移增加。最後,該問題被解決,及編碼器可以寫出遺失值,降低解碼器偏移回到9。然而,其必須寫入所有遺失值至緩衝器中之正確位置,因此,必須記得其可以寫入至串流緩衝器的何處。
因此,其必須保持追蹤位置的數目成為解碼器偏移及封包尺寸的函數。如果偏移為<=16,則其可以被了解到只保持追蹤正常寫入指標及較舊寫入指標,但如果偏移>16,則額外較舊寫入位置需要被追蹤;如果偏移>32,則兩額外較舊入位置需要被記錄,並以此類推。
將討論未決位元的另一態樣。為了以正確順序輸出該串流,“旁路封包”必須為編碼器所儲存,直到其對應“CABAC封包”被產生為止。
因為編碼器可以長時間延遲寫入位元,甚至整個串流,由於這些位元為未決,所以,必須被緩衝的“旁路封包”的數量可以無限。
為了限制必須被緩衝的’旁路封包’的數量,其例如使用串流終止,有用的限制未決位元的數量。
此方法允許予以限制的未決位元至固定數量,而不必在每次再正規化後它們必須被檢查。為了完成此方法,當m_low出現在編碼器中,解碼器追蹤m_low。
由m_low再正規化的位元被累積在一緩衝器中。如果在再正規化後,至少部份數量的位元已累積在此緩衝器中,則它們被認為形成一’群’。在本發明之實施例中,此最小群大小可以為15位元。因此,最大群大小將會等於22(14+8(8位元為最大可能再正規化))。
在該編碼器中,第一群被儲存於緩衝器中。如果隨後群並不是未決,則現行在緩衝器中之群與任何未決位元一起被沖入該串流。新的一群然後儲存在該緩衝器中。
如果在一群中之所有位元為1並且沒有進位,該群被認為是未決。編碼器與解碼器各自保有未決群數量的計數。編碼器也保持該未決群大小總和的計數,使得當遭遇到沒有未決群時,其得知有多少未決位元需要被沖入。
如果遭遇到未決群的數量大於或等於一界定限制,則該串流係被終止。此確定下一群將不是未決,允許累積未決定群被沖洗。
使用此方法,未決位元的最大可能計數係等於為未決群的限制數量乘以最大群組大小。
因此,本發明之實施例可以提供一緩衝器,用以累積由m_low再正規化的資料(一暫存器表示CABAC範圍的下限),及如果該群具有至少一預定資料數量,則用以相關儲存資料成為一群; 一檢測器,用以檢測是否在一群中之所有資料具有資料值1而沒有進位,如果是,用以指定該群為第一類型的一群;如果否,則該群被指定為第二類型的一群;一緩衝器讀取器,用以自該緩衝器讀取第一類型之群,如果隨後儲存群為第二類型,及將讀取群插入輸出資料串流;一檢測器,用以檢測該緩衝器中之出現多於第一類型的群的預定數量,及如果是,用以終止及重新開始編碼該資料。
該解碼器的操作現將加以描述。
以通常用語表示,CABAC封包為主串流可以使用移位暫存器作為該緩衝器加以解碼。各個時間資料係由該緩衝器為設在解碼器中作為緩衝器讀取器的解碼器或控制邏輯所讀出,剩餘位元係被移位以填入為讀取位元所佔用的空間,及來自該串流的新資料係被加入至暫存器的末端。
CABAC資料由移位暫存器的前端讀入m_value(作為輸入緩衝器),兩者在解碼的開始及在每一再正規化後。
旁路資料係由旁路指數所指示的位置讀出。此指數係初始被設定至16(第一’旁路封包’的開始)及每一讀取CABAC資料減量讀取位元的數量。
在平行系統中,CABAC及旁路讀-與-移同時發生。例如,解碼器2520及2530之解碼器可以作動為熵解碼器,以解碼由緩衝器讀取之個別次組資料。
在’CABAC封包’的末端(即,當CABAC讀取傳送旁 路指數),該旁路指數增量16,跳過它通過下一’CABAC封包’。藉由由等於旁路指數+16及旁路指數本身的位置推論讀取,這在平行系統可以完成而沒有失速(stall)。
在’旁路封包’中之資料只附著至前一’CABAC封包’內的CABAC資料。藉由CABAC讀取將通過現行’CABAC封包’末端時,此確保在相關’旁路封包’中之所有資料將被讀取及因此,現行’CABAC封包’的末端係直接鄰接至下一個的開始。
這允許CABAC資料一直被安全地讀取通過現行’CABAC封包’的末端,好像其係為一連續串流。
移位暫存器的大小係藉由需要自最遠可能位置讀取旁路位元的最大可能數量所決定並假設係數具有32768(16位元符號)的最大大小時被計算為67位元((8-1+16){最遠旁路讀取指數}+44{最大可能旁路讀取})。
解碼器可以維持一緩衝器或移位暫存器(例如圖26所示之類型的緩衝器2580),以允許兩類型之資料(CABAC及旁路)被同時運算。
該緩衝器的最小大小=(CABAC_RANGE_BITS-2)+PACKET_SIZE+MAX_BYPASS_LENGTH;例如,使用一組先前提出之參數,最小大小=(9-2)+16+44=67。
旁路資料係由為旁路讀取指標2600所指示之位置讀出。使用中之緩衝器的例子係被示意顯示在圖30。
解碼器推論評估在旁路讀取指標後的位元,決定多少位元待被讀取,如果:
A)不需要旁路位元(係數大小=0)
B)只需要一符號位元(係數大小=1或2)
C)需要符號位元及脫離碼(所有其他大小)。
另外,該解碼器也推論解碼(旁路指標+16)(如果有效)(見如下)。
參考圖30,在每一CABAC再正規化後,CABAC資料係由緩衝器的前面讀入暫存器“值”(前端係被顯示於圖30的左方),向左移位所有其他位元與旁路讀取指標2600。換句話說,在此例子中,由緩衝器讀取之資料具有由緩衝器移除該資料的作用。(取決於由CABAC解碼處理所決定的大小)旁路資料係由旁路指標2600所指示的位置讀出,再次移位所有位元至旁路讀取指標的右方,以進一步向下數緩衝器(的左方)。
等於兩移位的總和的新資料數量係被由編碼資料串流加入緩衝器的末端(即,如圖30所示之右手端)。換句話說,緩衝器係在這些讀取操作後再填充。
(當CABAC讀取指標通過旁路指標)在CABAC封包的末端,旁路指數係被跳至通過下一CABAC封包的下一個位置。
旁路封包必須在該點為空的(因為該旁路位元係在對應於整個包含在CABAC封包內的係數的該封包中),使得CABAC指標可以一直安全讀取通過封包的末端,好像其係為一連續串流。
一旦推論評估位元在(旁路讀取指標+16),在此情 況中有可能確保立即跳躍至下一旁路封包,而完全不需要額外處理延遲。
此處理係被示意例示於圖31。注意,所示至左方之CABAC封包係為現行封包的現行未讀取內容的示意例示,也就是說,其只顯示現行封包的剩餘部份。
一般來說,推論指標永遠高於主指標16位元:該想法為如果有需要存取在該主指標的資料(因為其在新封包的開始),解碼器將已經解碼在下一旁路封包的開始之第一旁路資料。換句話說,此協助確保旁路資料已經被解譯。
以下虛擬碼,使用與先前虛擬碼相同的標註,描述解碼處理並可以配合圖32讀取,其例示四個處理階段,如所示為在圖32內的連續行,注意,本發明之實施例中,到四個此階段可以在各個解碼時脈循環中完成:初始化:Fill the register“Value”with(CABAC_RANGE_BITS)from stream Fill shift register from stream index_bypass=(16-CABAC_RANGE_BITS)(set bypass read pointer)
步驟1a(與步驟1b平行):Decode CABAC data:Determine symbol ranges Compare the register“value”with symbol ranges to determine symbol(magnitude)Determine number of renormalisation bits for CABAC data(Nc)value<<=Nc
步驟1b(與步驟1a平行):Decode bypass data:Decode sign bit Sn from position index_bypass;Decode escape data En from position(index_bypass+1);Nbn=(escape length+1)Decode sign bit Ss from position(index_bypass+16);Decode escape data Es from position(index_bypass+17);Nbs=(escape length+1)
步驟1c(在步驟1a及1b之後):if(Nc>index_bypass)- New packet encountered-use speculative path escape=Es;sign=Ss;Nb_escape=Nbs;Index_bypass+=16 Else escape=En;sign-Sn;Nb_escape=Nbn If(magnitude>2)output=(magnitude+escape)* sign;Nb=Nb_escape Else if(magnitude>0)output=(magnitude * sign);Nb=1 Else output=0;Nb=0
步驟2:shift and refill:Shift register<<=Nc index_bypass-=Nc Shift register[index_bypass to end]<<=Nb Read(Nc+Nb)bits from stream into last bits of shift register
將CABAC資料分割為封包,可以特別有利於影像內模式。在影像間模式中,轉換係數資料經常稀疏矩陣,及一些CU/LCU可以完全不包含係數。因為模式間動作向量可能經常提供較在影像內模式中可取得之為佳之預估造成,所以,因此,量化殘留資料可以經常很小/不存在。
在內模式中之較高密度資料對編碼器/解碼器流量提出較高需求,因此,一較想要的平行度。
這些方法可以對於實施法有較大優點。
CABAC及旁路資料可以同時讀取,允許平行解碼。
多位元的旁路資料可以在同時讀取。這允許所有用於係數之旁路資料在一級中被解碼。
只需要一小解碼器緩衝器。16位元之封包大小及9的CABAC_RANGE_BITS時,只需要67位元緩衝器。
這些技術可以適用以工作於每循環多係數系統中。
該等技術可以增加流量。
因此,前述討論只揭露及描述本發明之例示實施例。可以為熟習於本技藝者所了解,本發明可以以其他特定形式實施,而不脫離本案之精神與基本特徵。因此,本發明之揭露係作例示,並不限制本發明之範圍,及其他申請專利範圍。包含於此之教示的可立即得知之變化的揭露界定部份前述申請專利範圍,使得無發明標的係為屬於公眾。
10‧‧‧音訊/視訊信號
20‧‧‧視訊壓縮設備
30‧‧‧傳輸路由
40‧‧‧解壓縮設備
50‧‧‧音訊/視訊信號
60‧‧‧壓縮設備
70‧‧‧解壓縮設備
100‧‧‧壓縮音訊/視訊信號
110‧‧‧解壓縮設備
120‧‧‧顯示器
130‧‧‧音訊/視訊信號
140‧‧‧壓縮設備
150‧‧‧儲存裝置
160‧‧‧解壓縮設備
170‧‧‧音訊/視訊信號
180‧‧‧影像捕捉裝置
190‧‧‧壓縮設備
200‧‧‧麥克風
210‧‧‧壓縮音訊/視訊信號
220‧‧‧儲存及/或傳送
300‧‧‧輸入視訊信號
310‧‧‧加法器
320‧‧‧影像預估器
330‧‧‧殘留影像信號
340‧‧‧轉換單元
350‧‧‧量化器
360‧‧‧掃描單元
370‧‧‧熵編碼器
380‧‧‧壓縮輸出視訊信號
390‧‧‧返回路徑
400‧‧‧逆向掃描單元
410‧‧‧熵解碼器
420‧‧‧逆向量化器
430‧‧‧逆向轉換單元
440‧‧‧殘留影像信號
450‧‧‧加法器
460‧‧‧輸出影像
470‧‧‧壓縮視訊信號
480‧‧‧解壓縮視訊信號
500‧‧‧多工器
510‧‧‧模式信號
520‧‧‧模式內選擇器
530‧‧‧影像內預估器
540‧‧‧動作補償預估器
550‧‧‧動作預估器
560‧‧‧過濾單元
570‧‧‧影像儲存
580‧‧‧內插過濾器
600‧‧‧乘法器
610‧‧‧除法器
700‧‧‧最大加碼單元
710‧‧‧加碼單元
720‧‧‧加碼單元
730‧‧‧加碼單元
800‧‧‧部份編碼影像
810‧‧‧方塊
820‧‧‧陰影區域
830‧‧‧預估單元
840‧‧‧左上位置
900‧‧‧轉換器
910‧‧‧開關
920‧‧‧旁路加碼器
930‧‧‧開關
940‧‧‧開關
950‧‧‧上下文模型器
960‧‧‧加碼引擎
1120‧‧‧CV推導單元
1130‧‧‧碼產生器
1140‧‧‧範圍重設單元
1150‧‧‧正規化器
1220‧‧‧CV推導單元
1230‧‧‧碼施加單元
1240‧‧‧範圍重設單元
1250‧‧‧正規化器
2400‧‧‧CABAC編碼器
2410‧‧‧旁路編碼器
2420‧‧‧CABAC編碼器
2430‧‧‧模式選擇信號
2440‧‧‧緩衝器
2450‧‧‧緩衝器
2460‧‧‧解多工器
2500‧‧‧緩衝器
2510‧‧‧緩衝器
2520‧‧‧旁路解碼器
2530‧‧‧CABAC解碼器
2540‧‧‧邏輯
2550‧‧‧CABAC解碼器
2560‧‧‧模式選擇信號
2570‧‧‧開關
2580‧‧‧緩衝器
2590‧‧‧緩衝器指標
2600‧‧‧緩衝器指標
本揭示之更完成了解與其很多隨附優點將藉由參考本發明實施例之以下詳細說明配合附圖考量而更佳了解,其中:圖1示意顯示使用視訊資料壓縮及解壓縮的音訊/視訊(A/V)資料傳輸及接收系統;圖2示意顯示使用視訊資料解壓縮的視訊顯示系統;圖3示意顯示使用視訊資料壓縮及解壓縮的音訊/視訊儲存系統; 圖4示意顯示使用視訊資料壓縮的攝影機;圖5提供視訊資料壓縮及解壓縮設備示意圖;圖6示意顯示預估影像的產生;圖7示意顯示最大加碼單元(LCU);圖8示意顯示一組四個加碼單元(CU);圖9及10示意顯示圖8的加碼單元細分為更小加碼單元;圖11示意顯示一陣列之預估單元(PU);圖12示意顯示一陣列之轉換單元(TU);圖13示意顯示部份編碼影像;圖14示意顯示一組可能預估方向;圖15示意顯示一組預估模式;圖16示意顯示曲折掃描;圖17示意顯示CABAC熵編碼器;圖18示意顯示CAVLC熵編碼處理;圖19A至19D示意顯示CABAC編碼及解碼操作態樣;圖20示意顯示CABAC編碼器;圖21示意顯示CABAC解碼器;圖22示意顯示具有分開旁路編碼器的CABAC編碼器;圖23示意顯示編碼器,作動為CABAC編碼器及旁路編碼器;圖24示意顯示具有分開旁路解碼器的CABAC解碼 器;圖25示意顯示一解碼器,作動為CABAC解碼器及旁路解碼器;圖26示意顯示共同緩衝器;圖27示意顯示封包化資料串流;圖28及29示意顯示資料寫入指標的使用;圖30及31示意顯示資料讀取指標的使用;及圖32示意顯示在CABAC及旁路解碼處理操作中之階段。
2590‧‧‧緩衝器指標
2600‧‧‧緩衝器指標

Claims (18)

  1. 一種資料加碼設備,其中編碼有一組順序資料,該設備包含:熵編碼器,用以編碼該順序資料,其中各個資料項係被分割成個別次組資料,及個別次組係為第一及第二編碼系統所編碼,使得對於相關於為該第一編碼系統的一群資料項所產生之預定數量的編碼資料,一可變數量的零或更多資料係相關於該群資料為該第二編碼系統所產生;及輸出資料串流組合器,用以由為該第一與第二編碼系統所編碼的該資料產生輸出資料串流,該輸出資料串流包含為該第一編碼系統所產生之預定數量的資料的連續封包,其以資料串流順序係相關於為該第一編碼系統所編碼的相同資料項為該第二編碼系統所產生的該零或更多資料所跟隨。
  2. 如申請專利範圍第1項所述之設備,其中該第一編碼系統為一算術加碼編碼系統,及該第二編碼系統為旁路編碼系統。
  3. 如申請專利範圍第2項所述之設備,其中該第一編碼系統為上下文適應二進制算術加碼(CABAC)編碼系統。
  4. 如申請專利範圍第1至3項中任一項所述之設備,其中該組順序資料代表一或更多影像。
  5. 如申請專利範圍第1至4項中任一項所述之設備,其中該組順序資料係被編碼為獨立編碼部份,該資料串流 組合器被組態以相關於一部份產生一資料串流,並當如果最終封包小於預定數量的資料時,相關於該順序資料,將填充資料加至為第一編碼系統所編碼之最終封包。
  6. 如申請專利範圍第5項所述之設備,其中該填充資料的一或更多位元具有與資料終止符號相同的值。
  7. 如申請專利範圍第5項所述之設備,其中該填充資料的一或更多各別位元取在後續資料串流的開始處的對應各別位元的值。
  8. 如申請專利範圍第5項所述之設備,其中該資料串流組合器被組態以如果為該第二編碼系統所編碼之對應係數產生零資料,則不將填充資料加至最終封裝。
  9. 如前述申請專利範圍任一項所述之設備,更包含頻域轉換器,用以取決於輸入資料信號的各別部份,產生頻域係數並依據編碼順序排序用以碼編的該等係數。
  10. 一種資料加碼方法,其中編碼有一組順序資料,該加碼方法包含步驟:將各個資料項分割成各別次組資料;以第一及第二編碼系統熵編碼該等各別次組,使得對於為該第一編碼系統所相關於一群資料項所產生的預定數量的編碼資料,可變數量的零或更多資料係相關於為該第二編碼系統之該群資料產生;及由為該第一及第二編碼系統所編碼之該資料產生輸出資料串流,該輸出資料串流包含為該第一編碼系統所產生之預定數量的資料的連續封包,於資料串流順序中,其後 跟隨有為該第二編碼系統相關於為該第一編碼系統所編碼之相同資料項所產生之零或更多資料。
  11. 一種為申請專利範圍第10項所述之編碼方法所編碼之視訊資料。
  12. 一種視訊資料,包含為第一編碼系統所產生的預定數量的資料之連續封包,於資料串流順序中,其後跟隨有為第二編碼系統相關於為該第一編碼系統所編碼之相同資料項所產生的零或更多資料,該第一及第二編碼系統被安排以熵編碼輸入視訊資料的各別次組,使得對於為該第一編碼系統所相關於一群資料項產生的預定數量的編碼資料,可變數量的零或更多資料係相關於該群資料為該第二編碼系統所產生。
  13. 一種儲存有如申請專利範圍第11或12項所述之視訊資料的資料載體。
  14. 一種視訊解碼設備,用以解碼如申請專利範圍第11或12項所述之資料,該設備包含:輸入緩衝器,用以儲存該編碼資料;緩衝器讀取器,用以由各個封包讀取該第一及第二次組的各別資料;及熵解碼器,用以解碼該第一及第二次組,以產生排序之解碼資料。
  15. 一種用以解碼如申請專利範圍第11或12項所述之視訊資料的資料解碼方法,該方法包含步驟:儲存該編碼資料於輸入緩衝器; 由在該輸入緩衝器的各個封包中,讀取該第一及第二次組的各別資料;及熵解碼該第一及第二次組,以產生排序解碼資料。
  16. 一種電腦軟體,其當為電腦執行時,使得該電腦執行如申請專利範圍第10或15項所述之方法。
  17. 一種非暫時機器可讀取儲存媒體,其上儲存有如申請專利範圍第16項所述之電腦軟體。
  18. 一種視訊資料捕捉傳輸及/或儲存設備,包含如申請專利範圍第1至9及13項中任一項所述之設備。
TW101139518A 2011-11-07 2012-10-25 資料編碼及解碼 TW201342919A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1119180.6A GB201119180D0 (en) 2011-11-07 2011-11-07 Data encoding and decoding
GB1119687.0A GB2496209A (en) 2011-11-07 2011-11-15 Entropy encoder with first and second, bypass encoding systems

Publications (1)

Publication Number Publication Date
TW201342919A true TW201342919A (zh) 2013-10-16

Family

ID=45421373

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101139518A TW201342919A (zh) 2011-11-07 2012-10-25 資料編碼及解碼

Country Status (5)

Country Link
US (1) US20140286417A1 (zh)
CN (1) CN103918272A (zh)
GB (2) GB201119180D0 (zh)
TW (1) TW201342919A (zh)
WO (1) WO2013068731A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2805491B1 (en) 2012-01-20 2021-05-12 GE Video Compression, LLC Coding concept allowing parallel processing, transport demultiplexer and video bitstream
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
GB2513110A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
GB2532420A (en) 2014-11-18 2016-05-25 Sony Corp Data encoding and decoding
US9484954B1 (en) 2015-09-10 2016-11-01 Intel Corporation Methods and apparatus to parallelize data decompression
US10602192B2 (en) * 2016-02-04 2020-03-24 Mediatek Inc. Methods and apparatuses for performing entropy encoding and entropy decoding with size determination of at least one bitstream portion
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps
US10547869B2 (en) 2017-12-08 2020-01-28 Google Llc Template-based entropy coding of quantized transform coefficients
US10609421B2 (en) 2018-07-12 2020-03-31 Google Llc Context derivation for coefficient coding
JP2022523287A (ja) * 2019-03-11 2022-04-22 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 通常コード化ビンの数の削減
EP3709657A1 (en) * 2019-03-11 2020-09-16 InterDigital VC Holdings, Inc. Reducing the number of regular coded bins
GB2585040A (en) 2019-06-25 2020-12-30 Sony Corp Image data encoding and decoding
GB2585042A (en) * 2019-06-25 2020-12-30 Sony Corp Image data encoding and decoding
GB2587359A (en) * 2019-09-24 2021-03-31 Sony Corp Image data encoding and decoding
GB2596100A (en) * 2020-06-17 2021-12-22 Sony Group Corp Data encoding and decoding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002247137A (ja) * 2000-04-25 2002-08-30 Canon Inc 通信装置及び通信方法
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7626522B2 (en) * 2007-03-12 2009-12-01 Qualcomm Incorporated Data compression using variable-to-fixed length codes
US8630364B2 (en) * 2008-07-25 2014-01-14 Nokia Siemens Networks Oy Termination techniques for multi-index continuous phase encoders for wireless networks
US9325999B2 (en) * 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices

Also Published As

Publication number Publication date
GB201119687D0 (en) 2011-12-28
GB2496209A (en) 2013-05-08
US20140286417A1 (en) 2014-09-25
WO2013068731A1 (en) 2013-05-16
CN103918272A (zh) 2014-07-09
GB201119180D0 (en) 2011-12-21

Similar Documents

Publication Publication Date Title
TW201342919A (zh) 資料編碼及解碼
KR101356733B1 (ko) 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
JP2870515B2 (ja) 可変長符号化装置
TWI658702B (zh) 資料編碼及解碼
JP4313771B2 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
JP5258664B2 (ja) 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
KR102240333B1 (ko) 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들
KR100930263B1 (ko) 반복적 인코딩 알고리즘을 이용한 비디오 압축 방법 및 그시스템
US8018996B2 (en) Arithmetic decoding apparatus and method
KR0180169B1 (ko) 가변길이 부호기
KR102123620B1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
KR20160101925A (ko) 데이터 인코딩 및 디코딩
US9544599B2 (en) Context adaptive data encoding
CN102740068A (zh) 图像存储器压缩方法与装置
CN114009029B (zh) 图像数据编码和解码
JP5231243B2 (ja) 符号化装置及び符号化方法
JP5116704B2 (ja) 画像符号化装置及び画像符号化方法
JP2009021775A (ja) 符号化装置及び符号化方法
JP2010004284A (ja) 画像復号装置及び画像復号方法
KR20070075267A (ko) 영상 신호를 인코딩 및 디코딩 하는 방법
JP2000165873A (ja) 動画像情報の圧縮方法およびそのシステム
US20120147972A1 (en) Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program
KR20120038355A (ko) 계층 구조의 영상 처리를 위한 엔트로피 인코딩/디코딩 방법 및 장치와 이를 위한 심볼 인코딩/디코딩 방법 및 장치
JP2012023715A (ja) 符号量予測装置及びプログラム
TW201334427A (zh) 上下文適應資料編碼