上下文自適應數據編碼的制作方法
【專利摘要】一種用于編碼連續(xù)輸入數據值的數據編碼方法,包括下列步驟:根據當前輸入數據值的值選擇代碼值集合中的多個互補子范圍的一個;子范圍相對于代碼值的集合的比例由與該輸入數據值相關聯(lián)的上下文變量定義;將當前輸入數據值分配給選擇子范圍內的代碼值;根據分配的代碼值和選擇的子范圍的大小修改代碼值的集合;檢測代碼值的集合是否小于預定的最小大小,如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定的最小大??;并且響應每個該大小增加操作輸出編碼數據位;修改有關下一輸入數據位或者值中使用的上下文變量,從而增加代碼值的集合在為當前數據值選擇的子范圍內的比例;并且在編碼輸入數據值組之后,通過下列操作終止輸出數據:將定義代碼值的集合的結束的值設置為具有等于0的多個最低有效位的值;增加代碼值的集合的大小;并且將定義代碼值的集合的結束的值寫入到輸出數據中。
【專利說明】上下文自適應數據編碼
[0001]相關申請的交叉引用
[0002]本申請要求于在先提交日期2011年11月7日提交給英國知識產權局的GB1119199.6的權益,通過引用將其全部內容結合在此。
【技術領域】
[0003]本發(fā)明涉及上下文自適應數據編碼。
【背景技術】
[0004]本文中所提供的“【背景技術】”描述是為了總體呈現(xiàn)本公開內容的背景之目的。某種程度描述在【背景技術】部分的、目前署名的發(fā)明人的工作以及申請時未另限定為現(xiàn)有技術的說明方面,既沒有明示也沒有默示承認作為本發(fā)明的現(xiàn)有技術。
[0005]存在若干種視頻數據壓縮和解壓縮系統(tǒng),其涉及將視頻數據變換成頻域表示,量化頻域系數,并且將熵編碼的一些形式應用到量化系數。
[0006]在本上下文中,熵可被視為表示數據符號或者符號序列的信息內容。熵編碼的目的是使用(理想情況下)表示數據符號序列的信息內容所必需的最小數目的編碼數據位以無損方式編碼數據符號序列。實際上,熵編碼用于編碼量化系數,使得編碼數據(在其位的數目方面)小于原始量化系數的數據大小。更有效的熵編碼過程對于相同的輸入數據大小給出較小輸出數據大小。
[0007]用于熵編碼視頻數據的一種技術是所謂的CABAC(上下文自適應二進制算數編碼)技術。在示例實施方式中,量化系數相對系數陣列被劃分為指示某個量值及其符號的系數值的位置的數據,因此,例如,所謂“有效映射(significance map) ”可指示系數陣列中的在其的系數具有非零值的位置。其他映射可指示數據具有一以上的值(及其符號)的位置;或者數據具有二以上的值的位置。
[0008]在上下文自適應編碼中,關于表示數據位將有多大可能為I或O的預期或預測的概率模型或者上下文來編碼數據位。為此,利用由上下文所定義的子范圍的相應大小,分配輸入數據位給代碼值范圍的兩個互補子范圍之一內的代碼值。下一步驟是響應于所分配的代碼值和選擇的子范圍的當前大小修改(關于下一個輸入數據位或者值使用的)整個范圍。如果修改后范圍小于閥值(例如,原始范圍大小的一半),則增加大小,例如,通過使修改范圍加倍(左移)。在這點上,生成輸出編碼數據位以指示加倍操作發(fā)生。進一步步驟是修改與下一個輸入數據位或者值一起使用的上下文。在當前提出系統(tǒng)中,這通過使用當前上下文和當前“最可能符號”(I或者0,無論哪個被上下文當前指示為具有大于0.5的概率)的特性(identity)作為到新上下文值的查找表中的索引來執(zhí)行。
[0009]CABAC過程能夠提供(具體地)量化殘差視頻數據的有效的編碼。然而,在編碼過程結束時,可能是低效率的。此處,“結束”表示流或者編碼數據的連續(xù)的終止,例如,在特定圖像區(qū)域的編碼結束時(諸如,“片段”或者宏塊組被布置使得表示圖像大致水平的條帶)。在流終止時,每個圖像可發(fā)生多次,編碼器將保留表示上述所分配的內部CABAC代碼值的當前值的多個位。先前提出的編碼器可簡單地將該變量寫入輸出數據流中,因此,在每個流終止時存在8個位(或者無論變量大小為多少)的開銷。
【發(fā)明內容】
[0010]本發(fā)明提供一種用于編碼連續(xù)輸入數據值的數據編碼方法,所述方法包括下列步驟:
[0011]根據當前輸入數據值的值選擇代碼值的集合中多個互補子范圍的一個,子范圍相對于代碼值的集合的比例由與輸入數據值相關聯(lián)的上下文變量來定義;
[0012]將當前輸入數據值分配給選擇的子范圍內的代碼值;
[0013]根據分配代碼值和選擇的子范圍的大小修改代碼值的集合;
[0014]檢測代碼值的集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定最小大??;并且響應于每個這樣的大小增加操作輸出編碼數據位;
[0015]修改關于下一個輸入數據值中使用的上下文變量,以增加為當前數據值選擇的子范圍中的代碼值的集合的比例;以及
[0016]在編碼輸入數據值的組之后,通過下列操作終止輸出數據:
[0017]將定義代碼值的集合結束的值設置為具有等于O的多個最低有效位的值;
[0018]增加代碼值的集合的大??;以及
[0019]將定義代碼值的集合的結束的值寫入輸出數據。
[0020]本發(fā)明還提供一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括:
[0021]用于根據當前輸入數據值的值選擇代碼值的集合中多個互補子范圍的一個的器件,子范圍相對于代碼值的集合的比例由與輸入數據值相關聯(lián)的上下文變量來定義;
[0022]用于將當前輸入數據值分配給選擇的子范圍內的代碼值的器件;
[0023]用于根據分配代碼值和選擇的子范圍的大小修改代碼值的集合的設備;
[0024]用于檢測代碼值的集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定最小大小;并且響應于每個這樣的大小增加操作輸出編碼數據位的器件;
[0025]用于修改關于下一個輸入數據位或值中使用的上下文變量的器件,以增加為當前數據值選擇的子范圍中的代碼值的集合的比例;以及
[0026]用于在對輸入數據值的組編碼之后,通過下列操作終止輸出數據的器件:
[0027]將定義代碼值的集合結束的值設定為具有等于O的多個最低有效位的值;
[0028]增加代碼值的集合的大小;以及
[0029]將定義代碼值的集合的結束的值寫入輸出數據。
[0030]本發(fā)明還提供一種用于解碼連續(xù)算數編碼數據值的數據解碼裝置,所述裝置包括:
[0031]用于在輸入數據流中以預定數目的比特位置移回讀指針的器件;
[0032]用于將代碼值的集合的范圍定義為O的器件;
[0033]用于根據當前輸入數據值的值設置由與輸入數據值相關聯(lián)的上下文變量來定義的子范圍相對于代碼值的集合的比例的器件;[0034]用于將當前輸入數據值分配給選擇的子范圍內的代碼值的器件;以及
[0035]用于根據分配的代碼值和選擇的子范圍的大小來修改代碼值的集合的器件。
[0036]所附權利要求中定義了本發(fā)明的進一步的相應的方面和特征。
[0037]應當理解的是,本發(fā)明的上述一般描述和下列細節(jié)描述均為示例性的,而且并不限制本發(fā)明。
【專利附圖】
【附圖說明】
[0038]當結合附圖考慮時,通過參照以下【具體實施方式】,本發(fā)明更全面的理解及本發(fā)明容易獲得的其伴隨優(yōu)點將會變得更好理解,在附圖中:
[0039]圖1示意性地示出了使用視頻數據壓縮和解壓縮的音頻/視頻(A/V)數據傳輸和接收系統(tǒng);
[0040]圖2示意性地示出了利用視頻數據解壓縮的視頻顯示系統(tǒng);
[0041]圖3示意性地示出了利用視頻數據壓縮和解壓縮的音頻/視頻存儲系統(tǒng);
[0042]圖4示意性地示出了利用視頻數據壓縮的攝影機;
[0043]圖5提供視頻數據壓縮和解壓縮裝置的示意性概觀;
[0044]圖6示意性地示出了預測圖像的生成;
[0045]圖7示意性地示出了最大編碼單元(IXU);
[0046]圖8示意性地示出了四個編碼單元(CU)的集合;
[0047]圖9和圖10示意性地示出了被細劃分成更小編碼單元的圖8的編碼單元;
[0048]圖11示意性地示出了預測單元(PU)的陣列;
[0049]圖12示意性地示出了變換單元(TU)的陣列;
[0050]圖13示意性地示出了局部編碼圖像;
[0051]圖14示意性地示出了可能的預測方向的集合;
[0052]圖15示意性地示出了預測模式的集合;
[0053]圖16示意性地示出了之字形(zigzag)掃描;
[0054]圖17示意性地示出了 CABAC熵編碼器;
[0055]圖18示意性地示出了 CAVLC熵編碼過程;
[0056]圖19A至圖19D示意性地示出了 CABAC編碼和解碼操作的方面;
[0057]圖20示意性地示出了 CABAC編碼器;以及
[0058]圖21示意性地示出了 CABAC解碼器。
【具體實施方式】
[0059]現(xiàn)參考附圖,提供圖1-4給出了利用下面結合本發(fā)明實施方式描述的壓縮和/或解壓縮裝置的裝置或者系統(tǒng)的示意圖。
[0060]下面將要描述的所有數據壓縮和/或解壓縮裝置可以以硬件、運行在諸如通用計算機、如專用集成電路(ASIC)或者現(xiàn)場可編程門陣列(FPGA)或者其組合的可編程硬件的通用數據處理裝置上的軟件實施。在由軟件和/或固件實施實施方式的情況下,應當理解,這樣的軟件和/或固件以及通過其存儲這樣的軟件和/或固件的非易失性機器可讀數據存儲介質或者設置的其他被視為本發(fā)明的實施方式。[0061]圖1示意性地示出了利用視頻數據壓縮和/或解壓縮的音頻/視頻數據傳輸和接收系統(tǒng)。
[0062]輸入音頻/視頻信號10被提供給視頻數據壓縮裝置20,視頻數據壓縮裝置20壓縮音頻/視頻信號10的至少視頻分量以用于沿著諸如電纜、光纖、無線鏈路等傳輸路徑30的傳輸。壓縮信號被解壓縮裝置40處理以提供給輸出音頻/視頻信號50。對于返回路徑,壓縮裝置60壓縮音頻/視頻信號以沿著傳輸路徑30傳輸到解壓縮裝置70。
[0063]壓縮裝置20和解壓縮裝置70由此能夠形成傳輸鏈路的一個節(jié)點。解壓縮裝置40和解壓縮裝置60能夠形成傳輸鏈路的另一節(jié)點。當然,在傳輸鏈路為單向的情況下,僅一個節(jié)點需要壓縮裝置并且另一節(jié)點僅需要解壓縮裝置。
[0064]圖2示意性地示出了使用視頻數據解壓縮的視頻顯示系統(tǒng)。具體地,壓縮的音頻/視頻信號100被解壓縮裝置110處理以提供能夠在顯示器120上顯示的解壓縮信號。解壓縮裝置110可以實施為顯示器120的組成部分,例如,與顯示設備設置在同一殼體內??商娲?,解壓縮裝置110可以設置為(例如)所謂的機頂盒(STB),注意,表述“機頂(set-up)”并不意味著要求該盒放置在相對于顯示器120任何特定方位或者位置;它僅是本領域中使用的術語以指示作為外圍設備可連接到顯示器的設備。
[0065]圖3示意性地示出了使用視頻數據壓縮和解壓縮的音頻/視頻存儲系統(tǒng)。輸入音頻/視頻信號130被提供給壓縮裝置140,壓縮裝置140生成用于被諸如磁盤設備、光盤設備、磁帶設備、例如半導體存儲器的固態(tài)存儲設備或者其他存儲設備等存儲設備150存儲的壓縮信號。在重放時,從存儲設備150讀取壓縮數據并且將其傳送到用于解壓縮的解壓縮裝置160以提供輸出音頻/視頻信號170。
[0066]應當理解,壓縮或者編碼信號以及存儲介質或者存儲該信號的數據載體被視為本發(fā)明的實施方式。
[0067]圖4示意性地示出了使用視頻數據壓縮的攝影機。圖4中,諸如電荷耦合設備(CCD)圖像傳感器及相關的控制和讀出電子設備等圖像捕獲設備180生成傳送給壓縮裝置190的視頻信號。麥克風(或者多個麥克風)200生成被傳送給壓縮裝置190的音頻信號。壓縮裝置190生成將被存儲和/或傳輸(通常示出為示意性階段220)的壓縮的音頻/視頻信號210。
[0068]下面描述的技術主要涉及視頻數據壓縮。應當理解,許多現(xiàn)有技術可結合將要描述的視頻數據壓縮技術用于音頻數據壓縮以生成壓縮音頻/視頻信號。因此,將不提供對音頻數據壓縮的單獨討論。還應理解,與視頻數據相關聯(lián)的數據速率,尤其是廣播質量視頻數據,通常比與(無論是壓縮或者未壓縮)音頻數據相關聯(lián)的數據速率高很多。因此,應當理解,未壓縮的音頻數據可伴隨壓縮的視頻數據形成壓縮的音頻/視頻信號。進一步應當理解,盡管本實例(圖1-4中示出)涉及音頻/視頻數據,然而,下面將要描述的技術中可以發(fā)現(xiàn)在只處理(即,壓縮、解壓縮、存儲、顯示和/或傳輸)視頻數據的系統(tǒng)中使用。即,實施方式能夠應用于視頻數據壓縮,而不必具有任何相關的音頻數據處理。
[0069]圖5提供視頻數據壓縮和解壓縮裝置的示意性概觀。
[0070]輸入視頻信號300的連續(xù)圖像被提供給加法器310和圖像預測器320。下面將參考圖6更為詳細地描述圖像預測器320。事實上,加法器310執(zhí)行減法(負加法)操作,SP,在“ + ”輸入端接收輸入視頻信號300并且在輸入端接收圖像預測器320的輸出,這樣使得從輸入圖像中減去預測圖像。結果是生成表示實際圖像與預測圖像(projected image)之間差的所謂殘差圖像信號330。
[0071]生成殘差圖像信號的原因之一如下。將要描述的數據編碼技術,即將要應用于殘差圖像信號的技術在待編碼的圖像中存在較少“能量”時趨向于更有效地工作。此處,術語“有效地”指少量的編碼數據的生成;對于特定的圖像質量水平,期望(并且視為“有效地”)實際上生成盡可能少的數據。提及的殘差圖像中的“能量”指包含在殘差圖像中的信息量。如果預測圖像與實際圖像一致,兩者之間差(即,殘差圖像)將包含零信息(零能量)并且非常容易編碼成少量的編碼數據。通常,如果預測過程工作的相當好,則預期的是殘差圖像數據將包含比輸入圖像少的信息(更少能量)并且因此更容易編碼成少量的編碼數據。
[0072]殘差圖像數據330被提供給生成殘差圖像數據的離散余弦變換(DCT)表示的變換單元340。DCT技術本身是公知的并且此處將不作詳細描述。然而,下面將更為詳細描述在裝置中使用的技術的方面,具體地,涉及應用DCT操作的不同數據塊的選擇。下面將參考圖7-圖12就此進行討論。
[0073]變換單元340的輸出,即,用于每個變換的圖像數據塊的DCT系數的集合,被提供給量化器350。各種量化技術在從簡單乘以量化比例因子至在量化參數控制下的復雜查找表的應用范圍的視頻數據壓縮的領域中是公知的。總的目標是雙重的。首先,量化過程減少了變換數據的可能值的數目。其次,量化過程能夠增加變換數據的值為零的可能性。這些都能夠使下面描述的熵編碼過程更加有效地生成少量壓縮的視頻數據。
[0074]通過掃描單元360應用數據掃描過程。掃描過程的目的是對量化變換數據重新排序,從而使盡可能多的非O量化變換系數收集在一起,當然,由此使盡可能多的O值系數收集在一起。這些特征能夠允許所謂的游程長度編碼或類似的技術被有效地應用。因此,掃描過程涉及從量化變換數據選擇系數,具體地,根據“掃描順序”從對應于經變換和量化的圖像數據的塊的系數塊中選擇系數,使得(a) —次選擇所有系數作為掃描的一部分;以及(b)掃描趨向于提供期望的重新排序。下面將描述用于選擇掃描順序的技術。能夠給出有用結果的一個示例掃描順序是所謂的之字形掃描順序。
[0075]然后,掃描系數被傳送給熵編碼器(EE) 370。再次,可使用各種類型的熵編碼。下面所描述的兩種實例是所謂CABAC(上下文自適應二進制算數編碼)系統(tǒng)的變形和所謂CAVLC(上下文自適應可變長度編碼)系統(tǒng)的變形??傮w而言,CABAC被視為提供更佳的效率,在一些研究中已經示出,與CAVLC相比較,對于可比較的(comparable)圖像質量提供的編碼輸出數據的量減少10-20%。然而,CAVLC被視為代表(在其實施方面)比CABAC更低的復雜度。下面將參考圖17討論CABAC技術,并且下面將參考圖18和圖19討論CAVLC技術。
[0076]應注意,掃描過程和熵編碼過程示出為單獨的過程,但事實上,可以進行組合或者一起處理。即,讀入到熵編碼器的數據可以以掃描順序來進行。相應的考慮也適用于下面將要描述的相應逆過程中。
[0077]熵編碼器370的輸出與例如,定義預測器320生成預測圖像的方式的(以上提及和/或下面所討論的)附加數據一起提供壓縮的輸出視頻信號380。
[0078]然而,因為預測器320自身的操作取決于壓縮的輸出數據的解壓縮版本,所以還提供返回路徑。[0079]該特征的原因如下。在(下面將要描述的)解壓縮過程的適當階段生成殘差數據的解壓縮版本。此解壓縮的殘差數據被添加到預測圖像中以生成輸出圖像(因為原始殘差數據為輸入圖像與預測圖像之間差)。為了使作為壓縮側與解壓縮側之間的該過程具有可比較性,在壓縮過程期間和在解壓縮過程期間由預測器320生成的預測圖像應相同。當然,在解壓縮時,該裝置并不訪問原始輸入圖像,而僅訪問解壓縮圖像。因此,在壓縮時,預測器320基于對壓縮圖像的解壓縮版本(至少,對圖像間編碼)的預測。
[0080]由熵編碼器370執(zhí)行的熵編碼過程被視為“無損耗”,即,熵編碼過程可以逆轉以精確達到與最早提供給熵編碼器370的數據相同。因此,在熵編碼階段之前可以實施返回路徑。事實上,由掃描單元360執(zhí)行的掃描過程也被視為無損耗,而在本實施方式中,返回路徑390為從量化器350的輸出至互補逆量化器420的輸入。
[0081]總體而言,熵解碼器410、反向掃描單元400、逆量化器420和逆變換單元430提供熵編碼器370、掃描單元360、量化器350和變換單元340的相應逆功能?,F(xiàn)在,將繼續(xù)討論壓縮過程;下面將單獨討論解壓縮輸入壓縮視頻信號的過程。
[0082]在壓縮過程中,通過執(zhí)行掃描單元360的逆操作的返回路徑390將掃描系數從量化器350傳送至逆量化器420。由單元420和430執(zhí)行逆量化和逆變換過程以生成壓縮-解壓縮殘差圖像信號440。
[0083]在加法器450中,圖像信號440與預測器320的輸出相加以生成重構的輸出圖像460。如下所述,這形成了到圖像預測器320的一個輸入。
[0084]現(xiàn)轉向應用于接收的壓縮視頻信號470的過程,在由加法器450將其加到圖像預測器320的輸出之前,信號被提供給熵編碼器410并且從此處到反向掃描單元400、逆量化器420以及逆變換單元430的鏈。在簡單方面,加法器450的輸出460形成輸出解壓縮視頻信號480。實際上,在輸出信號之前可進一步應用濾波。
[0085]圖6示意性地示出了預測圖像的生成,具體地,示出了圖像預測器320的操作。
[0086]存在兩種基本預測模式:所謂的圖像內(intra-1mage)預測和所謂的圖像間(inter-1mage)或者運動補償(MC)預測。
[0087]圖像內預測基于來自同一圖像內數據預測圖像的塊的內容。這對應于其他視頻壓縮技術中的所謂I幀編碼。與I幀編碼相反,其中,整個圖像被內編碼,盡管在本發(fā)明的其他實施方式中,仍然基于圖像對圖像做選擇,但在本實施方式中,可基于塊對塊在內編碼(intra-encoding)和間編碼(inter-encoding)之間進行選擇。
[0088]運動補償預測利用試圖定義將要在當前圖像中編碼的圖像細節(jié)的另一相鄰或者附近圖像中的源的運動信息,因此,在理想的實例中,預測圖像中的圖像數據的塊的內容可以被非常簡單的編碼為指向相鄰圖像中的同一位置或稍有不同位置處的相應塊的參考(運動矢量)。
[0089]返回圖6,示出了兩種圖像預測布置(對應于圖像內和圖像間預測),其結果在模式信號510的控制下由多路轉換器500選擇,以提供用于供給加法器310和450的預測圖像的塊。選擇根據哪個選項給出最低“能量”(如上所述,可被視為要求編碼的信息內容)做出,并且將該選擇作為編碼輸出數據流中的信號發(fā)送給編碼器。例如,通過從輸入圖像中對兩個版本的預測圖像的區(qū)域(area)執(zhí)行試驗減法,平方差分圖像的每個像素值,對平方值求和,以及識別兩個版本中的哪一個產生了有關該圖像區(qū)域的差分圖像的較低均方值,來檢測這樣上下文中的圖像能量。
[0090]內編碼系統(tǒng)中的實際預測基于作為信號460的一部分接收的圖像塊進行,即,預測基于編碼-解碼圖像塊,從而使得在解壓縮裝置中能夠做出精確地相同預測。然而,通過內模式選擇器520能夠從輸入視頻信號300中得出數據以控制圖像內預測器530的操作。
[0091]對于圖像間預測,運動補償(MC)預測器540使用諸如由運動估測器550從輸入視頻信號300得出的運動矢量等運動信息。運動矢量被運動補償預測器540應用于重構圖像460的處理版本以生成圖像間預測的塊。
[0092]現(xiàn)將描述應用于信號460的處理。首先,由濾波器單元560濾波信號。這涉及應用“解塊”濾波器以去除或者至少趨向于減少由變換單元340及后續(xù)操作執(zhí)行的基于塊處理的效果。此外,使用通過處理重構信號460和輸入視頻信號300得到的系數應用自適應環(huán)路濾波器。自適應環(huán)路濾波器是使用已知技術將自適應濾波器系數應用到要被過濾數據的濾波器類型。即,濾波器系數可根據各種因素而變化。定義哪個濾波器系數將要使用的數據被包括作為編碼輸出數據流的一部分。
[0093]事實上,來自濾波器單元560的濾波輸出形成輸出視頻信號480。其還緩存在一個或者多個圖像存儲器570中;連續(xù)圖像的存儲是運動補償預測處理的要求,并具體為運動矢量的生成。為了節(jié)省存儲要求,圖像存儲器570中的存儲圖像可保持成壓縮形式并且然后在用于生成運動矢量時解壓縮。對于這個特定的目的,可使用任何已知的壓縮/解壓縮系統(tǒng)。存儲圖像被傳送給生成存儲圖像的分辨率更高版本的內插濾波器580 ;在本實例中,產生中間樣本(samples)(子樣本),從而使得由內插濾波器580輸出的內插圖像的分辨率(在每個維度)是存儲在圖像存儲器570中的圖像的分辨率的8倍。內插圖像作為運動估測器550的輸入被傳送以及作為運動補償預測器540的輸入被傳送。
[0094]在本發(fā)明的實施方式中,提供進一步可選階段,即,使用乘法器600將輸入視頻信號的數據值乘以因子四(實際上僅將數據值向左移動兩位),并且使用除法器或者右移位器610在裝置的輸出處應用相應的除法操作(右移兩位)。因此,左移和右移僅改變用于裝置的內部操作的數據。因為降低了任何數據舍入誤差的效果,所以該措施能夠提供裝置內更高的計算精度。
[0095]現(xiàn)將描述將圖像分割以用于壓縮處理的方式。在基本水平,將要壓縮的圖像被視為樣本的快的陣列。出于本討論之目的,考慮的最大的此類塊為所謂的最大編碼單元(LCU) 700 (圖7),表示64x64樣本的正方形陣列。此處,本討論涉及亮度樣本。根據色度模式,諸如,4:4:4、4:2:2、4:2:0或者4:4:4:4(GBR加密鑰數據),存在對應于亮度塊的相應的色度樣本的不同數目。
[0096]將描述三種基本類型的塊:編碼單元、預測單元以及變換單元。總體而言,LCU遞歸細分允許以這樣一種方式分割輸入圖片,即,根據將要編碼的圖像的具體特征能夠設置塊大小和塊編碼參數(諸如,預測或者殘差編碼模式)。
[0097]IXU可以被細分為所謂的編碼單元(⑶)。編碼單元始終是正方形并且具有8x8樣本與IXU700的整個大小之間的大小。編碼單元能夠布置為一種樹結構,因此,如圖8所示,可產生第一細分,給出32x32樣本的編碼單元710 ;在選擇的基礎上可接著產生后續(xù)細分,以給出16x16樣本(圖9)的某些編碼單元720以及8x8樣本(圖10)的潛在某些編碼單元730??傊?,該過程能夠提供⑶塊的內容自適應編碼樹結構,其每個結構可以是與IXU —樣大或者與8x8樣本一樣小。基于編碼單元結構對輸出視頻數據進行編碼。
[0098]圖11示意性地示出了預測單元(PU)的陣列。預測單元是用于承載有關圖像預測過程的信息的基本單元,或者換言之,將附加數據添加到熵編碼殘差圖像數據以從圖5中的裝置形成輸出視頻信號??傊A測單元并不局限于正方形形狀。只要編碼單元大于最小(8x8)大小,預測單元可以是其他形狀,具體地,形成正方形編碼單元中一個的一半的矩形形狀。目的是允許相鄰預測單元的邊界與圖片中真實對象的邊界(盡可能密切地)匹配,因此,不同的預測參數能夠應用于不同真實對象。每個編碼單元可包含一個或者多個預測單元。
[0099]圖12示意性地示出了變換單元(TU)的陣列。變換單元是變換和量化過程的基本單元。變換單元始終是正方形并且可以采取從4x4到32x32樣本的大小。每個編碼單元可包含一個或者多個變換單元。圖12中的縮寫SDIP-P表示所謂的短距離內-預測分區(qū)。在該布置中,僅使用一維變換,因此,利用輸入至基于當前SDIP-P內的先前編碼的相鄰塊和先前解碼的相鄰線的變換的數據,通過N個變換傳送4xN塊。
[0100]現(xiàn)將討論內預測過程??傮w而言,內預測涉及根據同一圖像中的先前編碼和解碼樣本產生當前塊(預測單元)的樣本的預測。圖13示意性地示出了部分編碼圖像800。此處,基于IXU從左上端至右下端編碼圖像。通過整個圖像的處理的示例IXU編碼部分示出為塊810。以上和至塊810的左側的陰影區(qū)域820已被編碼。塊810的內容的圖像內預測能夠利用任一陰影區(qū)域820,但是不能利用該陰影區(qū)域下方的非陰影區(qū)域。
[0101]塊810表示IXU ;如上所述,出于圖像內預測處理之目的,塊810可被細分為更小的預測單元的集合。IXU810內示出了預測單元830的實例。
[0102]圖像內預測考慮當前IXU810以上和/或至其左側的樣本。從其中預測所需樣本的源樣本相對于LCU810內的當前預測單元可定位在不同的位置或者方向上。為了確定哪一方向適用于當前預測單元,將基于每個候選方向的試驗預測結果進行比較,以查看哪一候選方向給出最接近輸入圖像相應塊的結果。給出最接近結果的候選方向被選為用于該預測單元的預測方向。
[0103]還可基于“片段”編碼圖片。在一種實例中,片段是IXU的水平相鄰組。但是,更一般地而言,整個殘差圖像可形成片段,或者片段可以是單個LCU,或者片段可以是LCU的行等。因為片段被編碼為獨立的單元,所以片段給予誤差一定的恢復力(resilience)。編碼器和解碼器狀態(tài)在片段邊界處完全重置。例如,不跨片段邊界執(zhí)行內預測;片段邊界被視為用于此目的的圖像邊界。
[0104]圖14示意性地示出了可能(候選)預測方向的集合。34個候選方向的全集合可用于8x8、16x16或者32x32樣本的預測單元。4x4和64x64樣本的預測單元大小的特殊情況具有對它們可用的減少的候選方向的集合(分別為17個候選方向和5個候選方向)。通過相對于當前塊位置的水平和垂直位移來確定方向,但方向被編碼為預測“模式”,其集合示出為圖15。應注意,所謂的DC模式表示周圍上部和左側樣本的簡單算術平均。
[0105]圖16示意性地示出了之字形掃描,可被掃描單元360應用的掃描圖案。在圖16中,圖案示出為SxSDCT系數的示例塊,且DC系數定位在該塊的左上端位置840,并且在向下和向左上端位置840的右側的位置日益增加時,由系數表示的水平和垂直空間頻率日益增加。[0106]應注意,在一些實施方式中,可以反向順序(使用圖16中的排序記號自右下端至左上端)掃描系數。還應注意,在一種實施方式中,在執(zhí)行剩余系數的之字形之前,掃描可從左至右橫跨幾個(例如,I到3之間)最上端的水平行。
[0107]圖17示意性地示出了 CABAC熵編碼器的操作。
[0108]在這種本質的上下文自適應編碼中,并且根據本發(fā)明的實施方式,可關于表示數據位多大可能為I或O的預期或預測的概率模型或上下文來編碼數據位。為此,利用由上下文(這又通過與輸入值相關或另外有關的上下文變量來定義)所定義的子范圍的相應大小(在本發(fā)明的實施方式中,子范圍相對代碼值的集合的相應比例),分配輸入數據位給選擇的代碼值范圍的兩個(更一般地,多個)互補子范圍中的一個。下一步驟是響應于所分配的代碼值和選擇子范圍的當前大小修改整個范圍,即代碼值的集合(對下一個輸入數據位或值所使用的)。如果修改后范圍小于表示預定最小大小的閥值(二分之一的原始范圍大小),則增加大小,例如,通過使修改范圍增加一倍(左移),如果需要的話可連續(xù)執(zhí)行加倍過程(一次以上),直至范圍具有至少預定最小大小。在這點上,生成輸出編碼數據位以指示(或者如果一次以上的話,每個)加倍或大小增加操作發(fā)生。進一步步驟是修改與或者關于下一個輸入數據位或者值(或者在一些實施方式中,關于下一個將要編碼的數據位或值的組)一起使用的上下文(即,在本發(fā)明的實施方式中,修改上下文變量)。這可通過使用當前上下文和當前“最可能符號”(1或者0,無論哪個被上下文指示,當前具有大于0.5的概率)的特性(identity)作為到新上下文值的查找表中的索引或作為從其可得出新上下文變量的適當的數學公式的輸入來執(zhí)行。在本發(fā)明的實施方式中,上下文變量的修改可增加代碼值的集合在選擇用于當前數據值的子范圍內的比例。
[0109]CABAC編碼器相對于二進制數據操作,即,僅由O和I兩個符號表示的數據。編碼器使用基于先前編碼數據選擇用于后續(xù)數據的“上下文”或者概率模型的所謂上下文建模過程。以確定性方式執(zhí)行上下文的選擇,這樣使得在不需要將進一步數據(具體指上下文)添加到傳送至解碼器的編碼數據流情況下,可基于先前解碼數據在解碼器處執(zhí)行相同的確定。
[0110]參考圖17,如果不是二進制形式,將要被編碼的輸入數據可被傳送至二進制轉換器900,如果數據已經是二進制形式,繞開變換器900 (通過示意開關910)。在本實施方式中,通過將量化的DCT系數數據表示為一系列二進制“映射”來實際執(zhí)行對二進制形式的轉換,下面將進一步描述。
[0111]二進制數據可接著被兩個處理路徑之一處理,即,“常規(guī)”和“旁路”路徑(示意性地示出為單獨的路徑,但是,在下面所討論的本發(fā)明的實施方式中,事實上,可以通過僅利用稍微不同參數的同一處理階段來實施)。旁路路徑采用并不一定使用與常規(guī)路徑相同形式的上下文建模的所謂旁路編碼器920。在CABAC編碼的一些實例中,如果需要特別地迅速處理一批數據,可以選擇旁路路徑,但是,在本實施方式中,注意所謂“旁路”數據的兩個特征:首先,由CABAC編碼器(950,960)處理旁路數據,僅使用表示50%概率的固定上下文模型;其次,旁路數據涉及某些類別的數據,一個特定實例為系數符號數據。此外,由示意性開關930、940選擇常規(guī)路徑。這涉及緊跟著編碼引擎960的上下文建模器950所處理的數據。
[0112]如果該塊由O值數據整個形成,圖17所示的熵編碼器編碼數據塊(S卩,例如,對應于與殘差圖像的塊有關的系數的塊的數據)為單個值。對于不屬于這類的每個塊,即,包含至少一些非O數據的塊,制定“有效映射”。有效映射指示對于將要被編碼的數據塊中的每個位置,該塊中的相應系數是否為非O。二進制形式的有效映射數據本身就是CABAC編碼。對于有效映射指示為O的量值的系數,因為沒有任何數據需要被編碼,所以使用有效映射可助于壓縮。此外,有效映射可包括特殊代碼來指示塊中的最終非O系數,因此,所有的最終高頻/拖尾(trailing)O系數可以從編碼中省略。在編碼位流中,定義由有效映射指定的非O系數的值的數據緊跟有效映射之后。
[0113]還制定映射數據的進一步標準(level)并且以CABAC編碼。實例是作為二進制值(1 =是,O =否)的定義位于有效映射指示為“非O”的映射位置的系數數據是否實際上具有“1”值的映射。另一映射指定位于有效映射指示為“非O”的映射位置的系數數據是否實際上具有“2”值。進一步映射指示,對于有效映射指示系數數據為“非O”的這些映射位置,數據是否具有“大于2”的值。另一映射再次對于識別為“非O”的數據指示數據值的符號(使用預定的二進制表示法,諸如,+為1,-為0,當然或其他所有(around)方式)數據值的符號。
[0114]在本發(fā)明的實施方式中,例如,由掃描單元360從量化DCT系數生成有效映射和其他映射,并且在經受CABAC編碼之前經受之字形掃描過程(或者根據內預測模式從之字形、水平光柵以及垂直光柵掃描中選擇的掃描過程)。
[0115]總體而言,CABAC編碼涉及基于其他先前編碼數據預測用于編碼將要編碼的下一個位的上下文或者概率模型。如果下一個位與由概率模型識別為“最可能”的位相同,則“下一個位與概率模型一致”的信息編碼被以極高的效率編碼。較低效率的編碼“下一個位與概率模型不一致”,因此,上下文數據的推導對于編碼器的良好操作比較重要。術語“自適應”指在編碼期間適應上下文或概率模型或者改變,以試圖提供對(尚未編碼的)下一數據的良好匹配。
[0116]用一個簡單的比喻,在書面英語中,字母“U”,是比較少見的。但在緊接字母“Q”后的字母位置,實際上字母“U”是很常見的。所以,概率模型可將“U”的概率設置為非常低的值,但是,如果當前字母是“Q”,概率模型可為作為下一個字母“U”設置非常高概率值。
[0117]在本布置中,對于至少有效映射和指示非O值是否為I或者2的映射,使用CABAC編碼。在實施方式中其與CABAC編碼相同但事實在于概率模型被固定在I和O的相等(0.5:
0.5)概率分布的旁路處理針對至少符號數據和指示值是否> 2的映射使用。對于識別為> 2的這些數據位置,可以使用單獨的所謂逃逸編碼數據編碼以編碼數據的實際值。這可包括哥倫布-萊斯(Golomb-Rice)編碼技術。
[0118]WD4中更為詳細地描述了 CABAC上下文建模和編碼過程:WorkingDraf t4ofHigh-Efficiency Video Coding,JCTVC-F803_d5, Draft IS0/IEC23008-HEVC ;201x(E)2011-10-28。
[0119]圖18不意性地不出了 CAVLC摘編碼過程。
[0120]與以上討論的CABAC —樣,圖18中示出的熵編碼過程緊隨掃描單元360的操作之后。應當注意,變換和掃描的殘差數據中的非O系數通常為±1序列。CAVLC編碼器通過稱之為“拖尾1”(Τ1)的變量指示高頻± I系數的數目。對于這些非O系數,通過使用不同的(上下文自適應)可變長度編碼表提高編碼效率。[0121]參考圖18,第一步驟1000生成值“系數_令牌”以對非O系數的總數目和拖尾I的數目進行編碼。在步驟1010,按照反向掃描順序編碼每個拖尾I的符號位。在步驟1020,每個剩余的非O系數被編碼為“標準(level)”變量,由此定義這些系數的符號和量值。在步驟1030,變量總_0被用于編碼最后非O系數之前O的總數目。最后,在步驟1040,變量運行_之前被用于按照反向掃描順序編碼每個非O系數之前連續(xù)O的數目。上述定義的變量的收集輸出形成編碼數據。
[0122]如上所述,圖16中示意性地示出了用于由掃描單元360執(zhí)行掃描操作的默認掃描順序為之字形。在其他布置中,使用圖像內編碼的四個塊,可根據圖像預測方向(圖15)和變換單兀(TU)大小在之字形掃描、水平光柵掃描以及垂直光柵掃描之間做出選擇。
[0123]現(xiàn)將稍微詳細地說明以上討論的CABAC過程。
[0124]至少只要其在提出的的HEVC系統(tǒng)中使用,CABAC則涉及推導出有關將被編碼的下一個位的“上下文”或者概率模型。由上下文變量或者CV定義的上下文則影響如何對位進行編碼??傮w而言,如果下一個位與CV定義為預期的更可能值的值相同,則在減少定義數據位所需的輸出位數目方面存在優(yōu)點。
[0125]編碼過程涉及將待被編碼的位映射到代碼值范圍內的位置。圖19A中示意性示出了作為從下限m_下延伸至上限m_上的相鄰整數數字的序列的代碼值范圍。兩個極限之間的差為111_范圍,其中,m_范圍=!11_上-!11_下。通過下面將要描述的各種技術,在基本CABAC系統(tǒng)中,m_范圍被約束為位于128與254之間;在使用較大的位的數目表示m_范圍的另一實施方式中,m_范圍可位于256與510之間。m_下可以是任意值??梢詮?比如說)0開始,但可以作為即將描述的編碼過程的一部分改變。
[0126]代碼值的范圍m_范圍被關于上下文變量定義的邊界1100劃分為兩個子范圍,如:
[0127]邊界=m_下+(CV*m_ 范圍)
[0128]因此,上下文變量將總范圍劃分成兩個互補的子范圍或者代碼值的集合的子部分,分配給每個子范圍的該集合的比例由變量CV來確定,一個子范圍與(下一數據位的)0的值相關聯(lián),并且另一個子范圍與(下一個數據位的)I的值相關聯(lián)。范圍劃分表示通過用于將要被編碼的下一個位而產生的兩個位值的CV所假定的概率。因此,如果與值O相關聯(lián)的子范圍小于總范圍的一半,則表示視為O與I相比作為下一符號的概率更小。
[0129]用于定義哪個方式限定子范圍的各種不同概率存在適用于可能數據位值。在一個實例中,范圍的下部區(qū)域(即,從111_下至邊界)通過約定被定義為與O的數據位值相關聯(lián)。
[0130]如果在單一操作中編碼一個以上的位,可以提供兩個以上的子范圍,從而給出對應于將要被編碼的輸入數據的每個可能值的子范圍。
[0131]編碼器和解碼器保存數據位值為較低可能性(通常稱為為“最低可能符號”或者LPS)的記錄。CV是指LPS,因此,CV始終表示O與0.5之間的值。
[0132]現(xiàn)將下一個位映射到由邊界劃分的范圍m_范圍。使用下面更為詳細描述的一種技術在編碼器和解碼器中確定性地執(zhí)行此操作。如果下一個位為0,代表自m_下至邊界的子范圍內的位置的特定代碼值被分配給該位。如果下一個位為1,自邊界1100至!11_上的子范圍內的特定代碼值被分配給該位。這代表了一種通過其本發(fā)明的實施方式可以根據當前輸入數據位選擇代碼值的集合的多個子范圍之一的技術的實例,并且也代表通過其本發(fā)明的實施方式可將當前輸入數據值分配給選擇的子范圍內的代碼值的技術的實例。
[0133]然后,重新定義下限m_下和范圍m_范圍,以根據分配的代碼值(例如,分配代碼值落入哪個子范圍)和選擇子范圍的大小修改代碼值的集合。如果剛被編碼的位為0,則m_下不變,但是,m_范圍被重新定義為等于!11_范圍*CV。如果剛被編碼的位為1,則111_下移至邊界位置(m_T+(CV*m_范圍))并且m_范圍被重新定義為邊界與!11_上(即,(1-CV) *m_范圍)之間的差。
[0134]在這種修改之后,做出關于代碼值的集合是否小于預定的最小大小(例如,為至少128的111_范圍)的檢測。
[0135]圖19B和圖19C示意性地示出了這些可替代實施方式。[0136]在圖19B中,數據位為I并且因此!11_下上移至先前的邊界位置。這提供了下一個位編碼序列中使用的代碼值的修訂或者修改集合。應注意,在一些實施方式中,為下一個位編碼改變CV的值,至少部分在剛被編碼位的值上。這就是本技術稱之為“自適應”上下文的原因。CV修訂值用于生成新的邊界1100’。
[0137]在圖19C中,O值被編碼,因此m_下保持不變,但是,111_上移至先前邊界位置。范圍m_范圍被重新定義或者修改為m_上-m_下的新值。
[0138]在本實例中,這導致!11_范圍降為低于其最小允許值(諸如,128)。當檢測到這樣的結果時,在本實施方式中,值m_范圍被重整化(remormalized)或者大小增加將111_范圍恢復到所必要范圍128至256所必須的許多倍,在本實施方式中是由使m_范圍加倍來表示,即,左移一位。圖19D中示出了代表圖19C中的范圍加倍這樣的實例,從而符合必要約束。根據CV下一個值和修訂的m_范圍中得出新邊界1100’’。應注意,無論何時重整化m_范圍,m_下以類似方式重整化或者大小增加。完成此操作是為了保持m_下與m_范圍之間的相同比率。
[0139]無論何時以這種方式將該范圍乘以2,產生輸出編碼數據位,其將用于每個重整化階段。
[0140]在這種方式中,根據CV值的自適應(能夠在解碼器中再生)和編碼位流連續(xù)修改并且重整化間隔m_范圍和下限m_下。在位的序列被編碼之后,所得到的間隔和重整化階段數目唯一定義編碼位流。知道這樣的最終間隔的解碼器將原理上能夠重構編碼數據。然而,基礎數學證明實際上不需要對解碼器定義間隔,而只需在該間隔內定義一個位置。這就是分配代碼值保存在編碼器中并且在編碼數據終止處被傳送至解碼器的目的。
[0141]為了給出簡化實例,考慮被劃分成100個間隔的概率空間。在這種情況下,111_下將表示可能性空間的底部,并且O和!11_范圍將表示其大小(100)。出于本實例之目的,假定將上下文變量設置為0.5 (正如相對旁路路徑一般),因此,概率空間用于編碼具有固定概率50%的二進制位。然而,如果使用上下文變量的自適應值,則適用相同的原理,因此,在編碼器和解碼器中發(fā)生相同的自適應過程。
[0142]對于第一個位,每個符號(O或者I)將具有50的符號范圍,且輸入符號O被分配給(即)0至49的值并包括兩端并且輸入符號I被分配給(即)50至99的值并包括兩端。如果I是將被編碼的第一個位,則流的最終值必須位于50至99的范圍內,因此,m_下變成50并且111_范圍變成50。
[0143]為了編碼第二個位,該范圍進一步被細分為25的符號范圍,且輸入符號O取50至74的值并且輸入符號I取75至99的值。可以看出,無論哪一個符號被編碼為第二個位,最終值仍介于保持第一位的50至99之間,但是,現(xiàn)在第二個位被編碼成同一數字。同樣,如果第二個位使用不同于第一個位的概率模型,其仍不能影響第一個位的編碼,因為該范圍仍被細分為50至99。
[0144]在編碼器側針對每個輸入位繼續(xù)該過程,例如,響應于降至低50的!11_范圍,在必要時重整化(例如,加倍)m_范圍和m_下。在編碼過程結束時(當流終止時),最終值被寫入流中。
[0145]在解碼器側,從流中讀取最終值(因此,命名111_值),即,例如,該值為68。解碼器將相同符號范圍劃分應用于初始概率空間并且比較它們的值,以看出其位于哪一符號范圍內。查看到68位于50至99的范圍內,其將I解碼為用于其第一個位的符號。以與編碼器相同的方式應用第二范圍,可以看出68位于50至74的范圍內并且將O解碼為第二位等。
[0146]在實際實施中,通過從!11_值減去每個解碼符號范圍內的底部值(在這種情況下,從111_減去50得到18),解碼器可避免像編碼器一樣保存m_下。然后,符號范圍始終是O到(m_范圍-1)范圍的細分(因此,50至74范圍變成O至24)。
[0147]應注意,重要的是,如果僅有兩個位以這種方式將被編碼,編碼器可選擇50至74范圍內的任何最終值并且它們將均解碼為相同的兩個位“10” (I后跟著O)。如果進一步的位將要被編碼,則僅需要更高的精確度,并且實際上,HEVC編碼器將始終選擇50,該范圍的底部。本申請中所討論的實施方式試圖通過在適當設置時尋找特定的位來利用未使用的范圍,確保最終值將正確解碼,而無論剩余位的值是多少,釋放剩余位來承載其他信息。例如,在上述給出的樣本編碼中,如果第一數字被設置為6 (或者5),則最終值將始終位于50至74的范圍內,而無論第二數字的值如何,因此,第二數字可用于承載其他信息。
[0148]可以看出,通過重復將其細分使用相同概率范圍(給出無限精度分數)能夠編碼位的無盡的流(endless stream)。然而,實際上,無限精度是不可能的并且避免非整數數值。為此,使用重整化。如果使用50至74的范圍編碼第三個位,則符號范圍將通常各必須為12.5的間隔,但相反,m_范圍和m_下能夠分別被加倍(或者另行乘以共同因子)至50和100,并且符號范圍現(xiàn)將是100至149的范圍的細分,即,各為25間隔。此操作相當追溯倍增從100至200的初始概率空間的大小。因為解碼器保持相同m_范圍,所以它能夠在與解碼器相同倍數應用重整化。
[0149]上下文變量CV被定義為具有(在示例實施方式中)連續(xù)指示從CV = 63的下限(諸如,1% )至CV = O的50%概率的不同概率的64個可能狀態(tài)。
[0150]在自適應系統(tǒng)中,根據各種已知因子從一個位至下一個位改變或修改CV,該各種已知因子根據將要被編碼的數據的塊的大小可以不同。在某些情況下,可以將相鄰和先前圖像塊的狀態(tài)考慮在內。因此,本文所描述的技術均是修改有關下一輸入數據值中使用的上下文變量的實例,從而增加代碼值的集合在選擇用于當前數據值的子范圍內的比例。
[0151] 選擇子范圍、將當前位分配給代碼值、修改代碼值的集合、檢測該集合是否小于最小大小以及修改上下文變量的功能均可由上下文建模器950和編碼引擎960共同作用完成。因此,盡管為說明清楚起見,它們被繪制成圖17中的單獨項目,然而,它們共同作用以提供上下文建模和編碼功能。然而,為進一步清楚起見,參考更為詳細示出了這些操作和功能的圖20。[0152]根據表生成分配的代碼值,該表針對CV的每個可能值和m_范圍的位6和7的每個可能值(注意,因為m_范圍大小的約束,m_范圍的位8始終是I),定義在其新編碼位應分配給相關子范圍中的代碼值的位置或位置組。
[0153]圖20示意性地示出了使用上述技術的CABAC編碼器。
[0154]由CV推導單元1120初始化(在第一 CV情況下)或者修改(在隨后CV情況下)CV0代碼生成器1130根據CV劃分當前!11_范圍、選擇子范圍并且例如使用上述提及的表格,生成適當子范圍內的分配數據代碼。范圍重置單元1140將!11_范圍重置為選擇的子范圍的m_范圍,以修改如上所述的代碼值的集合。規(guī)范器(normaliser) 1150檢測m_范圍的所得值是否低于最小允許值,如果需要,重整化m_范圍一次或者多次,從而輸出針對每個該重整化操作的輸出編碼數據位。如上所提及的,在過程結束時,也輸出分配代碼值。
[0155]在圖21示意性示出的解碼器中,由與編碼器中單元1120相同的方式操作的CV推導單元1220初始化(在第一 CV情況下)或者修改(在隨后CV情況下)CV。代碼應用程序單元1230根據CV劃分當前!11_范圍并且檢測數據代碼位于哪一子范圍。范圍重置單元1240將m_范圍重置為選擇子范圍的m_范圍,從而根據分配的代碼值和選擇子范圍的大小修改代碼值的集合。如果需要,規(guī)范器1250響應接收的數據位重整化m_范圍。
[0156]本發(fā)明的實施方式提供一種終止CABAC流的技術。將在示例性系統(tǒng)的上下文中描述實施方式,其中,代碼值具有512 (而非上述128)的最大值并且因此被約束為位于該范圍的上半部分,即,從256至510。
[0157]該技術能夠產生平均1.5個位的損失(即,引起比先前流終止技術更小的損失)。還展示了能夠產生I個位平均損失的第二可替代方法。建議這些技術的應用包括發(fā)送IPCM (非頻率分割)數據之前的CABAC流終止以及針對行每片段(row-per-slice)的流終止。本技術基于在終止時可將CABAC變量設置為正確范圍內的任何值的認識。因此,CABAC變量被設置為具有多個拖尾(最低有效位)零的值,因此,當該值被刷新(flushed)到數據流時,可有效忽略零。
[0158]在當前技術中,終止CABAC流致使8個位被刷新到數據流(即,丟失或者浪費)。利用在允許將系數旁路數據(符號位/逸出代碼)放置到源格式的位流中的每個LCU或者圖像片段(即,在編碼表示有關特定相應圖像子區(qū)域的數據值的數據值的組之后)之后終止內幀的實例來示出本技術。
[0159]在每個片段結束時并且在IPCM數據之前應用終止CABAC流的過程。在本發(fā)明的實施方式中,該過程假定(出于本討論之目的)將被終止流的概率平均固定在0.54%。(當數據值(I或者O)被編碼時,當前m_范圍細分為兩個符號范圍,分別表示I或者O的概率。對于特殊的“端流(end-of-stream)標志”值,I的符號范圍始終為2。因此,數據值為I的概率取決于當前111_范圍的值。如上所述,在一些實施方式中,m_范圍可在256與510之間變化,因此,終止概率由此在2/510 = 0.3922%與2/256 = 0.7813%之間變化)。
[0160]對于編碼器,過程如下:
[0161]?如果流不被終止,CABAC范圍m_范圍以2減小,并且如果需要CABAC引擎被重整化I個位置(即,重整化m_下和m_范圍);繼續(xù)處理當前CABAC流。
[0162]?如果流被終止,CABAC ‘m_下’以‘小于的范圍2’增加,范圍設置為2,并且CABAC引擎被重整化7個位置,緊跟著輸出另一二進制‘I’。該過程等效于8個位置的重整化,其中,被重整化的值已被強制為奇數。
[0163]可能存其中上述過程不理想的情況,即,流的概率可變、或者規(guī)定在
[0164]較高百分比或者甚至為必然的事(概率I)。
[0165]本發(fā)明的實施方式能夠提供以下一種方法,據此,僅利用具有(平均)1.5個位的損失和對解碼器和編碼器復雜度可忽略的影響的2重整化可以立即終止CABAC流??商娲椒ㄟ€指示能夠減少開銷為僅I個位,但有CABAC解碼器復雜度增加的代價。如果存在終止的可變概率,可結合標準自適應上下文變量使用兩者方法,或者結合固定的百分比機制(類似于非自適應上下文變量)使用兩種方法。
[0166]應注意,如上所述,一起重整化m_下和m_范圍。
[0167]1 算法
[0168]1.1 方法
[0169]編碼器的步驟如下:
[0170]111_下=(m_ 下+128) & ~127
[0171]{或者 111_下=(m_ 下+127)& ~127}
[0172]實施m_Low的重整化的2個階段和調用測試_寫入_輸出O
[0173][將值寫入流中]
[0174]在編碼下一個CABAC流之前,設置m_范圍=510, m_Low = 0.[0175]符號(notation):&是AND (與)操作,并且~表示二進制逆(因此,~127是對應于十進制127的二進制值的二進制逆,這樣使得與諸如十進制127 (其具有多個最低有效位或者LSB等于I)的數字的二進制逆的AND操作相當于設置所得值的LSB的數目為O)。函數測試_寫入_輸出O檢查位于111_下的頂部(MSB端)的任何位是否有資格被發(fā)送至輸出流,若果是,將其寫入。在上述所示的偽代碼的上下文中,將通過此操作寫入由“實施的重整化”所創(chuàng)建的新位。
[0176]解碼器的步驟如下:
[0177]倒回(rewind)輸入流7個位(即,將讀位置移回7個位)。
[0178]在解碼下一 CABAC流之前,設置m_范圍=O,并且從位-流讀取m_值。
[0179]該方法對解碼器和編碼器具有較低的處理影響。
[0180]對于m_下,應注意,編碼器通過重復添加到m_下生成流。解碼器通過以編碼器最終結果開始并且重復性地從中減去來讀取該流。解碼器調用從流“m_ui值”中讀取的位(或者該描述中符號的111_值)而非m_下并且它應從位流中讀取。這與本發(fā)明實施方式要求解碼器保存m_下以及m_ui值以便知道編碼器正在做什么的情況有關。在這種情況下,以與編碼器m_下極其相同的方式在解碼器中生成m_下。
[0181]可替代方法
[0182]本方法增加了當前解碼器的復雜度,因為其要求解碼器保存111_下。如果其他提議要求保存m_下,則該額外的復雜度仍是最低的。
[0183]解碼器的步驟如下:
[0184]使測試256 = (m_ 下 +255) & ~255
[0185]如果(測試256+256〈m_下+m_范圍)
[0186]m_ 下=m_ 測試 256[0187]實施m_下的重整化的I個階段并調用測試_寫入_輸出O。
[0188]否則(如上)
[0189]111_下=(m_ 下+128)&~127 {或 m_ 下=(m_ 下+127)& ~127}
[0190]實施m_Low的重整化的2個階段和調用測試_寫入_輸出O。
[0191]在編碼下一 CABAC流之前,設置m_范圍=510, m_下=O。
[0192]解碼器的步驟如下:
[0193]使測試256 = (m_ 下 +255) & ~255[0194]如果(測試256+256〈m_下+m_范圍)
[0195]倒回流8個位
[0196]否則(如上)
[0197]倒回流7個位
[0198]在解碼下一 CABAC流之前,設置m_范圍=O,設置m_下=O并且從位-流讀取m_值。
[0199]理論
[0200]對于CABAC編碼器,寫入到與m_下級聯(lián)的流(或者緩存)的數據是指示可能是最終輸出的最低值的η位值low。最高值high是low和m_范圍的和,由編碼器保存位于256 (包含)至511 (不包含)的范圍內的變量。在流結束時,low (包括)與high (不包括)之間的任一值可選擇為最終輸出值,而不影響解碼。如果在不根據該值的η個LSB的情況下執(zhí)行解碼,則可替換η個LSB為來自位-流的下一部分的數據。
[0201]使V是low與high之間的一個值,其中,η個LSB為O,并且如果最后的η個LSB為I,所得值V將仍小于high。因為“high-low”為至少256,所以low與high之間始終存在具有至少7個LSB為O的值V,即,值V是low與high之間被128整除而沒有余數的第一值。
[0202]實現(xiàn)此目的的最簡單方式是標準2的冪校準程序,即:
[0203]V = (low+127)& ~127
[0204]然而,因為范圍至少為256,所以:
[0205]V = (low+128)& ~127
[0206]也是足夠的(并且產生略微較小的編碼器)。
[0207]對于位-流的當前部分,編碼器處底部7個位之外將輸出值‘V’,這通過重整化m_下2個位置來實現(xiàn)。在位-流結束時,解碼器將從位流的下一部分中讀取7個位,并且由此必須‘倒回’位流7個位。
[0208]存在不需要底部8個位完全解碼該流的情況,利用其中“!11_下=O”來最簡單說明,并且由可替代算法推測出這些情況。在可替代算法中,計算low與high之間具有8個LSB為O的值V,然后,應用測試以檢查是否存在相應的值V。決策過程需要對low與high進行測試,并且因為解碼器還必須做出相同決策,所以解碼器需要跟蹤m_下。
[0209]在編碼器算法的兩個版本中,存在對導致不同位流、但由同一解碼器可解碼的7位路徑的選擇。
[0210]參考上述所述圖20,單元1120和1130代表了選擇代碼值集合中的多個互補子范圍的一個的選擇器以及將當前輸入值分配給代碼值的數據分配單元的實施方式。單元1140代表數據修改單元的實施方式。單元1150代表用于檢測代碼值的集合是否小于最小大小并且相應執(zhí)行該檢測器的其他功能的檢測器的實施方式。單元1150還代表通過執(zhí)行以上所述以及下面所述數據終止功能的數據終止器的實施方式,具體地,通過做出關于何時終止該流的決策的數據終止器的實施方式。
[0211]參考上述所述圖21,單元1220、1230、1240以及1250共同代表指針控制器和設置單元的實施方式,即它們被操作為執(zhí)行相對于這些單元上述功能。
[0212]應思
[0213]對于本發(fā)明的可能應用包括:
[0214]1.用于片段(slice)的最后編碼IXU的終止,尤其是在“行每片段”型配置中,其中概率可能顯著高于0.54 % ;在該布置中,本發(fā)明的實施方式能夠提供一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,該方法包括下列步驟:根據當前輸入數據值的值選擇代碼值集合中的多個互補子范圍的一個;子范圍相對于代碼值的集合的比例由與該輸入數據值相關聯(lián)的上下文變量定義;將當前輸入數據值分配給選擇子范圍內的代碼值;根據分配的代碼值和選擇的子范圍的大小修改代碼值的集合;檢測代碼值的集合是否小于預定的最小大小,如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定的最小大小;并且響應每個該大小增加操作輸出編碼數據位;修改有關下一輸入數據位或者值中使用的上下文變量,從而增加代碼值的集合在為用于當前數據值所選擇的子范圍內的比例;并且在編碼對應于未參考其他視頻數據而編碼的視頻數據片段內的視頻數據的塊的集合的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的集合的大小;并且將定義代碼值的集合的結束的值寫入到輸出數據中。
[0215]2.用于片段的最后可能IXU的終止,如在片段的最后可能IXU是必然的事之后終止;在該布置中,本發(fā)明的實施方式能夠提供一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,該方法包括下列步驟:根據當前輸入數據值的值選擇代碼值集合中的多個互補子范圍的一個;子范圍相對于代碼值的集合的比例由與該輸入數據值相關聯(lián)的上下文變量定義;將當前輸入數據值分配給選擇子范圍內的代碼值;根據分配的代碼值和選擇的子范圍的大小修改代碼值的集合;檢測代碼值的集合是否小于預定的最小大小,如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定的最小大??;并且響應每個該大小增加操作輸出編碼數據位;修改有關下一輸入數據位或者值中使用的上下文變量,從而增加代碼值的集合在為當前數據值所選擇的子范圍內的比例;并且在編碼表示未參考其他視頻數據而編碼的視頻數據的整個片段的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的集合的大小;并且將定義代碼值的集合的結束的值寫入到輸出數據中。
[0216]3.1PCM數據之前的終止,可能結合上下文變量使用;在該布置中,本發(fā)明的實施方式能夠提供一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,該方法包括下列步驟:根據當前輸入數據值的值選擇代碼值集合中的多個互補子范圍的一個;子范圍相對于代碼值的集合的比例由與該輸入數據值相關聯(lián)的上下文變量定義;將當前輸入數據值分配給選擇子范圍內的代碼值;根據分配的代碼值和選擇的子范圍的大小修改代碼值的集合;檢測代碼值的集合是否小于預定的最小大小,如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定的最小大??;并且響應每個該大小增加操作輸出編碼數據位;修改有關下一輸入數據位或者值中使用的上下文變量,從而增加代碼值的集合在選擇用于當前數據值的子范圍內的比例;并且在編碼數據數據值組使得將被編碼的下一個數據值組表示非頻率分離視頻數據之后,通過下列操作終止輸出數據:將定義代碼值的集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的集合的大??;并且將定義代碼值的集合的結束的值寫入到輸出數據中。
[0217]4.用于防止“位未決(bits outstanding) ”機制太長的流終止;在該布置中,本發(fā)明的實施方式能夠提供一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,該方法包括下列步驟:根據當前輸入數據值的值選擇代碼值集合中的多個互補子范圍的一個;子范圍相對于代碼值的集合的比例由與該輸入數據值相關聯(lián)的上下文變量定義;將當前輸入數據值分配給選擇子范圍內的代碼值;根據分配的代碼值和選擇的子范圍的大小修改代碼值的集合;檢測代碼值的集合是否小于預定的最小大小,如果是,連續(xù)增加代碼值的集合的大小,直至代碼值的集合具有至少預定的最小大小;并且響應每個該大小增加操作輸出編碼數據位;修改有關下一輸入數據位或者值中使用的上下文變量,從而增加代碼值的集合在選擇用于當前數據值的子范圍內的比例;檢測將要由不同的編碼技術編碼的數據值的集合是否超過預定的大小,如果是,通過下列操作終止輸出數據:將定義代碼值的集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的集合的大小;并且將定義代碼值的集合的結束的值寫入到輸出數據中。
[0218]因此,上述討論只公開并且描述了本發(fā)明的示例性實施方式。本領域技術人員應當理解的是,在不背離本發(fā)明的實質或者必要特征的情況下,本發(fā)明可體現(xiàn)為其他具體形式。因此,本發(fā)明的公開旨在是說明性的,而不是限制本發(fā)明的范圍以及其他權利要求。包括本文教導的任何易于辨別的變體的本公開內容部分定義了上述要求保護術語的范圍,這樣使得沒有專用于公眾的本發(fā)明主題。
【權利要求】
1.一種用于編碼連續(xù)輸入數據值的數據編碼方法,所述方法包括下列步驟: 根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大??;并且響應每個這種大小增加的操作輸出編碼數據位; 修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 在編碼輸入數據值的組之后,通過下列操作終止輸出數據: 將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值; 增加代碼值的所述集合的所述大??;以及 將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
2.根據權利要求1所述的方法,其中,所述多個最低有效位包括七個最低有效位。
3.根據權利要求1所 述的方法,其中,所述數據值表示頻率分離的視頻數據。
4.根據權利要求3所述的方法,其中: 每個數據值組包括關于特定相應圖像子區(qū)域的數據值;以及 在結束編碼每個圖像子區(qū)域時終止所述輸出數據。
5.根據權利要求4所述的方法,其中,所述子區(qū)域是圖像片段或者圖像最大編碼單元(LCU)。
6.根據前述權利要求中任一項所述的方法,其中,定義代碼值的所述集合的所述結束的所述值表示代碼值的所述集合的下限。
7.根據前述權利要求中任一項所述的方法,其中,在以下情況執(zhí)行所述終止的步驟:在編碼對應于未參考其他視頻數據而編碼的視頻數據的片段內的所述視頻數據的塊的集合的輸入數據值的組之后;在編碼表示未參考其他視頻數據而編碼的視頻數據的整個片段的輸入數據值的組之后;在編碼輸入數據值的組使得將要被編碼的下一數據值的組表示非頻率分離的視頻數據之后和/或當將要被不同的編碼技術編碼的數據值的集合被檢測為超過預定大小時。
8.根據前述權利要求中任一項所述的方法,其中,所述終止的步驟包括: 檢測取決于代碼值的所述集合的下限的測試值加上所述預定最小大小是否小于代碼值的所述集合的上限;并且, 如果是: 將代碼值的所述集合的所述下限設置為所述測試值; 分別加倍代碼值的所述集合的所述大小和所述下限;并且 將定義所述下限的所述值寫入所述輸出數據; 并且如果不是: 將代碼值的所述集合的所述下限設置為具有等于O的多個最低有效位的值; 將代碼值的所述集合的所述大小和所述下限分別乘以4 ;并且將定義所述下限的所述值寫入所述輸出數據。
9.根據權利要求8所述的方法,其中,所述測試值取決于加上常量、具有設置為O的多個最低有效位的所述下限。
10.一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,所述方法包括下列步驟: 根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合;檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大??;并且響應每個這種大小增加的操作輸出編碼數據位; 修改關于下一個輸入數據位或值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 在編碼對應于未參考其他視頻數據而編碼的視頻數據的片段內的所述視頻數據的塊的集合的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大??;以及將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
11.一種用于編碼表示視頻數據的連續(xù)輸入數據值的數據編碼方法,所述方法包括下列步驟: 根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大小;并且響應每個這種大小增加的操作輸出編碼數據位; 修改關于下一個輸入數據位或值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 在編碼表示未參考其他視頻數據而編碼的視頻數據的整個片段的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大??;以及將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
12.一種用于編碼表示頻率分離的視頻數據的連續(xù)輸入數據值的數據編碼方法,所述方法包括下列步驟: 根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合;檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大?。徊⑶? 響應每個這種大小增加的操作輸出編碼數據位;修改關于下一個輸入數據位或值使用的所述上下文變量;以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 在編碼輸入數據值的組使得將要被編碼的下一數據值的組表示非頻率分離的視頻數據之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大小;以及將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
13.一種用于編碼連續(xù)輸入數據的數據編碼方法,所述方法包括下列步驟: 根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合;檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大??;并且 響應每個這種大小增加的操作輸出編碼數據位;修改關于下一個輸入數據位或值使用的所述上下文變量;以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 檢測將要被不同的編碼技術編碼的數據值的集合是否超過預定大小,并且如果是,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大?。灰约皩⒍x代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
14.一種視頻編碼方法,包括下列步驟: 根據輸入視頻信號的相應部分生成頻域系數并且根據編碼順序排序用于編碼的所述系數;以及 通過應用前述權利要求中任一項所述的方法來熵編碼所排序的所述系數。
15.一種通過權利要求14的所述編碼方法編碼的視頻數據。
16.—種存儲根據權利要求15的視頻數據的數據載體。
17.一種用于解碼連續(xù)算數編碼數據值的數據解碼方法,所述方法包括下列步驟: 在輸入數據流中將讀指針移回預定數目的比特位置; 將代碼值的集合的范圍定義為O ; 從所述輸入數據流中讀取指示代碼值的集合的參數的流值; 根據上下文變量設置相應子范圍相對于代碼值的所述集合的比例;以及 根據所述流值位于哪一個子范圍檢測當前解碼輸出數據值。
18.根據權利要求17所述的方法,包括下列步驟: 從所述輸入數據流讀取指示代碼值的所述集合的結束的值。
19.根據權利要求17所述的方法,包括下列步驟: 在解碼期間保存指示代碼值的所述集合的結束的值。
20.一種包括通過應用根據權利要求17至19中任一項所述的方法熵解碼編碼視頻數據的步驟的視頻解碼方法。
21.一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括: 選擇器,根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 數據分配單元,將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值;數據修改單元,根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測器,檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大??;響應每個這種大小增加的操作輸出編碼數據位;以及修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及數據終止器,在編碼輸入數據值的組之后,通過下列操作終止輸出數據: 將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值; 增加代碼值的所述集合的所述大??;以及 將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
22.一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括: 選擇器,根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 數據分配單元,將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值;數據修改單元,根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測器,檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大?。豁憫總€這種大小增加的操作輸出編碼數據位;以及修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 數據終止器,在編碼對應于未參考其他視頻數據而編碼的視頻數據的片段內的所述視頻數據的塊的集合的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大?。灰约皩⒍x代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
23.一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括: 選擇器,根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 數據分配單元,將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值;數據修改單元,根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合;檢測器,檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大?。豁憫總€這種大小增加的操作輸出編碼數據位;以及修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 數據終止器,在編碼表示未參考其他視頻數據而編碼的視頻數據的整個片段的輸入數據值的組之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大小;以及將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
24.一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括: 選擇器,根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 數據分配單元,將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 數據修改單元,根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測器,檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大??;響應每個這種大小增加的操作輸出編碼數據位;以及修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 數據終止器,在編碼輸入數據值的組使得將要被編碼的下一數據值的組表示非頻率分離視頻數據之后,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大?。灰约皩⒍x代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
25.一種用于編碼連續(xù)輸入數據值的數據編碼裝置,所述裝置包括: 選擇器,根據當前輸入數據值的值選擇代碼值的集合的多個互補子范圍中的一個,所述子范圍相對于代碼值的所述集合的比例由與所述輸入數據值相關聯(lián)的上下文變量定義; 數據分配單元,將所述當前輸入數據值分配給所選擇的所述子范圍內的代碼值; 數據修改單元,根據所分配的所述代碼值和所選擇的所述子范圍的大小修改代碼值的所述集合; 檢測器,檢測代碼值的所述集合是否小于預定最小大小,并且如果是,連續(xù)增加代碼值的所述集合的大小,直至代碼值的所述集合具有至少所述預定最小大小;響應每個這種大小增加的操作輸出編碼數據位;以及修改關于下一個輸入數據值使用的所述上下文變量,以增加代碼值的所述集合在為所述當前數據值所選擇的所述子范圍中的比例;以及 數據終止器,檢測將要被不同的編碼技術編碼的數據值的集合是否超過預定大小,并且如果是,通過下列操作終止輸出數據:將定義代碼值的所述集合的結束的值設置為具有等于O的多個最低有效位的值;增加代碼值的所述集合的所述大??;以及將定義代碼值的所述集合的所述結束的所述值寫入所述輸出數據。
26.一種用于解碼連續(xù)算數編碼數據值的數據解碼裝置,所述裝置包括:指針控制器,在輸入數據流中將讀指針移回預定數目的比特位置; 設置單元,將代碼值的集合的范圍定義為O ;從所述輸入數據流中讀取指示代碼值的集合的參數的流值;根據上下文變量設置相應子范圍相對于代碼值的所述集合的比例;以及根據所述流值位于哪一個子范圍檢測當前解碼輸出數據值。
27.一種視頻編碼裝置,包括: 頻域變換器,用于根據輸入視頻信號的相應部分生成頻域系數并且根據編碼順序排序用于編碼的所述系數;以及 熵編碼器,用于編碼所排序的所述系數,所述熵編碼器包括根據權利要求21至25的任一項的裝置。
28.一種具有熵編碼器的視頻解碼裝置,包括:根據權利要求26的裝置。
29.一種計算機軟件,所述計算機軟件在被計算機執(zhí)行時致使所述計算機執(zhí)行根據權利要求I至14或者17至20中任一項所述的方法。
30.一種非易失性機器可讀存儲介質,在所述非易失性機器可讀存儲介質上存儲根據權利要求29的計算機軟件。
31.一種視頻數據捕獲、傳輸和/或存儲裝置,包括:根據權利要求21至28中任一項的裝置。
【文檔編號】H03M7/40GK103918186SQ201280054507
【公開日】2014年7月9日 申請日期:2012年11月6日 優(yōu)先權日:2011年11月7日
【發(fā)明者】詹姆斯·亞歷山大·戈梅, 卡爾·詹姆斯·沙曼, 保羅·詹姆斯·西爾考克 申請人:索尼公司