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