国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對末位有效系數(shù)的位置進(jìn)行編碼和解碼的方法和設(shè)備的制作方法

      文檔序號:7978065閱讀:127來源:國知局
      對末位有效系數(shù)的位置進(jìn)行編碼和解碼的方法和設(shè)備的制作方法
      【專利摘要】本發(fā)明公開了使用熵編碼器編碼量化后的變換域系數(shù)數(shù)據(jù)來對數(shù)據(jù)進(jìn)行熵編碼的方法和設(shè)備。使用末位有效系數(shù)的二維坐標(biāo),在比特流中發(fā)信號通知末位有效系數(shù)信息。坐標(biāo)之一的二進(jìn)制數(shù)的上下文部分基于另一坐標(biāo)的值。在一種情形下,對非零系數(shù)的數(shù)目進(jìn)行二進(jìn)制化和熵編碼,以替代發(fā)信號通知末位有效系數(shù)信息。
      【專利說明】對末位有效系數(shù)的位置進(jìn)行編碼和解碼的方法和設(shè)備
      【技術(shù)領(lǐng)域】
      [0001]本申請總體涉及數(shù)據(jù)壓縮,具體地涉及對末位有效變換系數(shù)進(jìn)行編碼和解碼的編碼器、解碼器和方法。
      【背景技術(shù)】
      [0002]無論是有損的還是無損的數(shù)據(jù)壓縮都常常使用熵編碼來將去相關(guān)的信號編碼為比特序列,即比特流。有效的數(shù)據(jù)壓縮具有廣泛的應(yīng)用,諸如圖像、音頻以及視頻編碼。視頻編碼的當(dāng)前最新技術(shù)是ITU-TH.264 / MPEG AVC視頻編碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了針對不同應(yīng)用的多個(gè)不同簡檔,包括主簡檔、基線簡檔等等。通過MPEG-1TU的聯(lián)合發(fā)起,當(dāng)前正在開發(fā)的下一代視頻編碼標(biāo)準(zhǔn)是高效視頻編碼(HEVC)。
      [0003]存在用于編碼/解碼圖像和視頻的多個(gè)標(biāo)準(zhǔn),包括H.264,其使用有損壓縮過程來產(chǎn)生二進(jìn)制數(shù)據(jù)。例如,H.264包括用于獲取殘差數(shù)據(jù)的預(yù)測操作,其后跟著DCT變換和對DCT系數(shù)的量化。然后,對包括量化后的系數(shù)、運(yùn)動矢量、編碼模式和其他相關(guān)數(shù)據(jù)在內(nèi)的產(chǎn)生的數(shù)據(jù)進(jìn)行熵編碼以生成數(shù)據(jù)比特流,以供傳輸或存儲在計(jì)算機(jī)可讀介質(zhì)上??梢灶A(yù)期HEVC也將具有這些特征。
      [0004]已經(jīng)開發(fā)了多種編碼方案來編碼二進(jìn)制數(shù)據(jù)。例如,使用Huffman編碼來編碼JPEG圖像。H.264標(biāo)準(zhǔn)允許兩種可能的熵編碼過程:上下文自適應(yīng)可變長度編碼(CAVLC)或者上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)。CABAC得到比CAVLC更大的壓縮,但是CABAC具有更高的計(jì)算需求。在這些情形中的任一情形中,編碼方案對二進(jìn)制數(shù)據(jù)進(jìn)行操作,以產(chǎn)生編碼數(shù)據(jù)的順序比特流。在解碼器處,解碼方案接收該比特流,并且對該順序比特流進(jìn)行熵解碼以重構(gòu)該二進(jìn)制數(shù)據(jù)。
      [0005]提供改進(jìn)的編碼器、解碼器以及熵編碼方法和熵解碼方法將是有利的。
      【專利附圖】

      【附圖說明】
      [0006]現(xiàn)在參照附圖作為示例,附圖示出了本申請的示例實(shí)施例,在附圖中:
      [0007]圖1以框圖形式示出了用于對視頻進(jìn)行編碼的編碼器;
      [0008]圖2以框圖形式示出了用于對視頻進(jìn)行解碼的解碼器;
      [0009]圖3示出了編碼過程的框圖;
      [0010]圖4示出了編碼器的示例實(shí)施例的簡化框圖;
      [0011]圖5示出了解碼器的示例實(shí)施例的簡化框圖;
      [0012]圖6說明了針對4X4的系數(shù)塊的zig-zag編碼順序;
      [0013]圖7圖解示出了比特流的一部分;
      [0014]圖8以流程圖的形式示出了對末位有效系數(shù)信息進(jìn)行熵編碼的示例方法;
      [0015]圖9以流程圖的形式示出了對編碼數(shù)據(jù)的比特流進(jìn)行熵解碼以重構(gòu)量化后的變換域系數(shù)數(shù)據(jù)的示例方法;
      [0016]圖10以流程圖的形式示出了對有效圖進(jìn)行編碼的示例方法;以及[0017]圖11示出了對4X4的塊中的系數(shù)的反對角線分組。
      [0018]已經(jīng)在不同的圖中使用相同的參考標(biāo)號以表示類似的組件。
      【具體實(shí)施方式】
      [0019]本發(fā)明描述了用于對二進(jìn)制數(shù)據(jù)進(jìn)行編碼和解碼的設(shè)備、方法和過程。具體地,本申請描述了按照基于塊的編碼方案對末位有效系數(shù)位置進(jìn)行編碼和解碼的方法以及設(shè)備。
      [0020]在一個(gè)方面,本申請描述了一種用于對包括末位有效系數(shù)信息的量化后的變換域系數(shù)數(shù)據(jù)進(jìn)行編碼的方法。所述方法包括:對所述末位有效系數(shù)的二維坐標(biāo)的兩個(gè)位置中的每個(gè)位置進(jìn)行二進(jìn)制化;確定所述兩個(gè)位置中的一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文;確定所述兩個(gè)位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文,其中所述兩個(gè)位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文部分地基于所述兩個(gè)位置中的所述一個(gè)位置;以及基于針對二進(jìn)制化的位置的每個(gè)二進(jìn)制數(shù)確定的上下文,對所述二進(jìn)制化的位置進(jìn)行熵編碼,以產(chǎn)生編碼數(shù)據(jù)。
      [0021]在另一方面,本申請描述了一種用于對編碼數(shù)據(jù)的比特流進(jìn)行解碼以重構(gòu)量化后的變換域系數(shù)數(shù)據(jù)的方法。所述方法包括:對編碼數(shù)據(jù)的一部分進(jìn)行熵解碼,以產(chǎn)生定義末位有效系數(shù)的二維坐標(biāo)的兩個(gè)二進(jìn)制化的位置,其中對所述數(shù)據(jù)的所述部分進(jìn)行熵解碼包括確定所述兩個(gè)二進(jìn)制化的位置中的一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文以及確定所述兩個(gè)二進(jìn)制化的位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文,其中所述兩個(gè)二進(jìn)制化的位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文部分地基于所述兩個(gè)二進(jìn)制化的位置中的所述一個(gè)位置;基于所述末位有效系數(shù)的二維坐標(biāo)對有效系數(shù)序列進(jìn)行熵解碼;基于所述有效系數(shù)序列對級別信息進(jìn)行熵解碼;以及使用所述級別信息和所述有效系數(shù)序列來重構(gòu)所述量化后的變換域系數(shù)數(shù)據(jù)。
      [0022]在又一方面,本申請描述了存儲計(jì)算機(jī)可執(zhí)行程序指令的計(jì)算機(jī)可讀介質(zhì),所述程序在被執(zhí)行時(shí),配置處理器以執(zhí)行所描述的編碼方法和/或解碼方法。
      [0023]通過結(jié)合附圖仔細(xì)閱讀下面對示例的描述,本領(lǐng)域技術(shù)人員將理解本申請的其他方面和特征。
      [0024]下面的描述總體涉及數(shù)據(jù)壓縮,具體地涉及對有限字母表源(諸如二進(jìn)制源)的有效的編碼和解碼。在下面給出的多個(gè)示例中,給出了這種編碼和解碼機(jī)制的具體應(yīng)用。例如,下面的示例說明中的多個(gè)參考了視頻編碼。應(yīng)該理解,本申請不一定限于視頻編碼或圖像編碼。其可以適用于服從基于上下文的數(shù)據(jù)編碼方案的任何類型的數(shù)據(jù),該數(shù)據(jù)編碼方案是基于塊的并且涉及發(fā)信號通知塊中的末位有效比特或符號的位置。
      [0025]本文描述的示例實(shí)施例涉及對有限字母表源的數(shù)據(jù)壓縮。相應(yīng)地,描述經(jīng)常提及“符號(symbol)”,該符號是字母表的元素。在某些情形中,本文的描述提到二進(jìn)制源,并且將符號稱為比特。有時(shí),針對給定示例,術(shù)語“符號”和“比特”可以互換地使用。應(yīng)該理解,二進(jìn)制源僅是有限字母表源的一個(gè)示例。本申請不限于二進(jìn)制源。
      [0026]在以下描述中,參考H.264標(biāo)準(zhǔn)描述了示例實(shí)施例。本領(lǐng)域技術(shù)人員應(yīng)該理解,本申請不限于H.264,而是可適用于其他視頻編碼/解碼標(biāo)準(zhǔn),包括可能的將來的標(biāo)準(zhǔn),如HEVC0還應(yīng)該理解,本申請不必然局限于視頻編碼/解碼,并且可以適用于編碼/解碼任何有限字母表源。[0027]現(xiàn)在參照圖1,圖1以框圖形式示出了用于對視頻進(jìn)行編碼的編碼器10。還參照圖2,圖2示出了用于對視頻進(jìn)行解碼的解碼器50的框圖。可以認(rèn)識到,這里描述的編碼器10和解碼器50均可以在專用或通用計(jì)算設(shè)備(包含一個(gè)或多個(gè)處理單元和存儲器)上實(shí)現(xiàn)。編碼器10或解碼器50執(zhí)行的操作可以通過例如專用集成電路或通過通用處理器可執(zhí)行的存儲的程序指令來實(shí)現(xiàn),這視情況而定。設(shè)備可以包括附加軟件,包括例如用于控制基本設(shè)備功能的操作系統(tǒng)。關(guān)于以下描述,本領(lǐng)域技術(shù)人員可以認(rèn)識到在其中可以實(shí)現(xiàn)編碼器10或解碼器50的設(shè)備和平臺的范圍。
      [0028]編碼器10接收視頻源12并產(chǎn)生編碼比特流14。解碼器50接收編碼比特流14并輸出解碼視頻幀16。編碼器10和解碼器50可以被配置為符合多個(gè)視頻壓縮標(biāo)準(zhǔn)來操作。例如,編碼器10和解碼器50可以符合H.264 / AVC0在其他實(shí)施例中,編碼器10和解碼器50可以符合其他視頻壓縮標(biāo)準(zhǔn),包括諸如HEVC之類的H.264 / AVC標(biāo)準(zhǔn)的演進(jìn)。
      [0029]編碼器10包括空間預(yù)測器21、編碼模式選擇器20、變換處理器22、量化器24和熵編碼器26。本領(lǐng)域技術(shù)人員可以認(rèn)識到,編碼模式選擇器20確定視頻源的適合編碼模式,例如對象幀/片是1、P還是B類型,幀/片內(nèi)的特定宏塊(或者編碼單元)是幀間還是幀內(nèi)編碼。變換處理器22對空間域數(shù)據(jù)執(zhí)行變換。具體地,變換處理器22采用基于塊的變換來將空間域數(shù)據(jù)轉(zhuǎn)換為頻譜分量。例如,在許多實(shí)施例中,使用離散余弦變換(DCT)。在一些實(shí)例中,可以使用其他變換,如離散正弦變換等等。將基于塊的變換應(yīng)用于像素?cái)?shù)據(jù)塊得到變換域系數(shù)的集合。量化器24對變換域系數(shù)的集合進(jìn)行量化。然后,熵編碼器26對量化后的系數(shù)和關(guān)聯(lián)信息(諸如運(yùn)動矢量、量化參數(shù)等等)進(jìn)行編碼。
      [0030]幀內(nèi)編碼的幀/片(即,類型I)不參照其他幀/片進(jìn)行編碼。換言之,它們不采用時(shí)間預(yù)測。然而,幀內(nèi)編碼的幀依賴于幀/片內(nèi)的空間預(yù)測,如圖1中通過空間預(yù)測器21進(jìn)行說明。即,在對特定塊進(jìn)行編碼時(shí),可以將塊中的數(shù)據(jù)與針對該幀/片已經(jīng)編碼的塊內(nèi)的鄰近像素的數(shù)據(jù)進(jìn)行比較。使用預(yù)測算法,可以將塊的源數(shù)據(jù)轉(zhuǎn)換為殘差數(shù)據(jù)。然后,變換處理器22對殘差數(shù)據(jù)進(jìn)行編碼。例如,H.264規(guī)定了 4X4變換塊的9種空間預(yù)測模式。在一些實(shí)施例中,這9種模式中的每一種可以用于獨(dú)立處理塊,然后使用速率失真優(yōu)化來選擇最佳模式。
      [0031]H.264標(biāo)準(zhǔn)還規(guī)定了使用運(yùn)動預(yù)測/補(bǔ)償來利用時(shí)間預(yù)測。相應(yīng)地,編碼器10具有反饋環(huán)路,反饋環(huán)路包括:解量化器28、反變換處理器30和解塊處理器32。這些單元反映了解碼器50實(shí)現(xiàn)以再現(xiàn)幀/片的解碼過程。幀存儲器34用于存儲再現(xiàn)幀。按照這種方式,運(yùn)動預(yù)測基于在解碼器50處重構(gòu)幀是什么,而不基于原始幀,由于編碼/解碼中涉及的有損壓縮,原始幀可能不同于重構(gòu)幀。運(yùn)動預(yù)測器36使用幀存儲器34中存儲的幀/片作為源幀/片,來與當(dāng)前幀進(jìn)行比較,以識別相似塊。相應(yīng)地,對于應(yīng)用運(yùn)動預(yù)測的宏塊,變換處理器22編碼的“源數(shù)據(jù)”是出自運(yùn)動預(yù)測過程的殘差數(shù)據(jù)。殘差數(shù)據(jù)是表示參考塊與當(dāng)前塊之間的差異(如果存在)的像素?cái)?shù)據(jù)。關(guān)于參考幀和/或運(yùn)動矢量的信息可以不由變換處理器22和/或量化器24處理,而是可以提供給熵編碼器26,以作為比特流的一部分與量化后的系數(shù)一起編碼。
      [0032]本領(lǐng)域技術(shù)人員將認(rèn)識到用于實(shí)現(xiàn)H.264編碼器的細(xì)節(jié)和可能變型。
      [0033]解碼器50包括:熵解碼器52、解量化器54、反變換處理器56、空間補(bǔ)償器57和解塊處理器60。幀緩沖器58提供重構(gòu)幀以便運(yùn)動補(bǔ)償器62在應(yīng)用運(yùn)動補(bǔ)償中使用??臻g補(bǔ)償器57表示根據(jù)先前解碼塊來恢復(fù)特定幀內(nèi)編碼塊的視頻數(shù)據(jù)的操作。
      [0034]熵解碼器52接收并解碼比特流14,以恢復(fù)量化后的系數(shù)。在熵解碼過程中,還可以恢復(fù)輔助信息,如果適用,一些輔助信息可以提供給運(yùn)動補(bǔ)償環(huán)路,以用于運(yùn)動補(bǔ)償。例如,熵解碼器52可以恢復(fù)運(yùn)動矢量和/或針對幀間編碼宏塊的參考幀信息。
      [0035]然后,解量化器54對量化后的系數(shù)進(jìn)行解量化,以產(chǎn)生變換域系數(shù),然后,反變換處理器56對變換域系數(shù)進(jìn)行反變換,以重建“視頻數(shù)據(jù)”??梢哉J(rèn)識到,在一些情況下,如對于幀內(nèi)編碼宏塊,重建的“視頻數(shù)據(jù)”是相對于幀內(nèi)的先前解碼塊的、用于空間補(bǔ)償?shù)臍埐顢?shù)據(jù)。空間補(bǔ)償器57根據(jù)殘差數(shù)據(jù)和來自先前解碼塊的像素?cái)?shù)據(jù)來產(chǎn)生視頻數(shù)據(jù)。在其他情況下,如對于幀間編碼宏塊,來自反變換處理器56的重建“視頻數(shù)據(jù)”是相對于來自不同幀的參考塊的、用于運(yùn)動補(bǔ)償?shù)臍埐顢?shù)據(jù)。這里,空間和運(yùn)動補(bǔ)償均可以稱為“預(yù)測操作”。
      [0036]運(yùn)動補(bǔ)償器62在幀緩沖器58內(nèi)定位專用于特定幀間編碼宏塊的參考塊。運(yùn)動補(bǔ)償器62基于專用于幀間編碼宏塊的參考幀信息和運(yùn)動矢量來進(jìn)行該操作。然后,運(yùn)動補(bǔ)償器62提供參考塊像素?cái)?shù)據(jù),以與殘差數(shù)據(jù)組合,得到針對該宏塊的重建視頻數(shù)據(jù)。
      [0037]然后,可以對重構(gòu)幀/片應(yīng)用解塊過程,如解塊處理器60所示。在解塊之后,輸出幀/片作為解碼視頻幀16,例如以在顯示設(shè)備上顯示??梢岳斫?,視頻回放機(jī)(如計(jì)算機(jī)、機(jī)頂盒、DVD或藍(lán)光播放器和/或移動手持設(shè)備)可以在輸出設(shè)備上顯示之前將解碼幀緩沖在存儲器中。
      [0038]熵編碼是包括上文描述的視頻壓縮在內(nèi)的所有無損和有損壓縮方案的基礎(chǔ)部分。熵編碼的目的是將推測的去相關(guān)的信號表示為比特序列,其常常通過獨(dú)立的但非恒等分布的過程來建模。用于實(shí)現(xiàn)此的技術(shù)必須不依賴于去相關(guān)的信號的生成方式,而可以依賴于針對每個(gè)即將到來的符號的有關(guān)概率估計(jì)。
      [0039]實(shí)踐中存在兩種常用的熵編碼方案:第一種是可變長度編碼,其按碼字來識別輸入符號或者輸入序列;第二種是范圍(或算術(shù))編碼,其封裝[0,1)間隔的子間隔的序列以達(dá)到單個(gè)間隔,根據(jù)其可以使用定義那些間隔的概率分布來重構(gòu)原始序列。典型地,范圍編碼方法傾向于提供較好的壓縮,而VLC方法有可能更快速。在任一情形下,輸入序列的符號都來自有限字母表。
      [0040]熵編碼的一種特殊情形是當(dāng)輸入字母表被限制為二進(jìn)制符號時(shí)。此處,HLC方案必須將輸入符號歸在一起以具有任何壓縮可能,但是因?yàn)楦怕史植伎赡茉诿總€(gè)比特之后發(fā)生改變,所以有效的碼構(gòu)造是困難的。因此,范圍編碼由于其較大的靈活性而被認(rèn)為具有較大的壓縮,但是其實(shí)際應(yīng)用因算術(shù)編碼的較高的計(jì)算要求而受到妨礙。
      [0041]這兩種編碼方案的共同挑戰(zhàn)在于:它們天性上是順序的。在一些重要的實(shí)踐應(yīng)用中,如在高質(zhì)量視頻解碼中,熵解碼必須達(dá)到非常高的輸出速度,這會對具有有限處理功率或速度的設(shè)備造成問題。
      [0042]與一些熵編碼方案(如CAVLC和CABAC,兩者都是H.264 / AVC中使用)一起使用的技術(shù)之一是上下文建模。利用上下文建模,輸入序列的每個(gè)比特具有上下文,其中該上下文可以由其他比特(諸如在它之前的比特,或邊信息,或二者)的某個(gè)子集來給出。在一階上下文模型中,上下文可以完全取決于先前的比特(符號)。在許多情形下,上下文模型可以是自適應(yīng)的,使得針對給定上下文的與符號關(guān)聯(lián)的概率在該序列的其他比特被處理時(shí)可以發(fā)生改變。在又一些情形中,給定比特的上下文可以取決于其在序列中的位置,例如,系數(shù)在系數(shù)矩陣或塊中的位置或序號。
      [0043]現(xiàn)在參考圖3,其示出了示例編碼過程100的框圖。編碼過程100包括上下文建模組件104和熵編碼器106。上下文建模組件104接收輸入序列xl02,在該示例中其是比特序列Ovb1,...,bn)。在該示例說明中,上下文建模組件104:確定每個(gè)比特匕的上下文,該確定有可能基于序列中的先前的一個(gè)或多個(gè)比特或者基于邊信息;以及基于該上下文確定與比特\關(guān)聯(lián)的概率Pi,其中,該概率是該比特將是最小可能符號(LPS)的概率。在二進(jìn)制實(shí)施例中,取決于公約或應(yīng)用,LPS可以是“O”或“I”。該概率的確定本身可以取決于針對該相同上下文的先前的比特/符號。
      [0044]上下文建模組件輸出輸入序列,即比特Ov b1; , bn)及其對應(yīng)的概率(P。,Pl,...,pn)。該概率是通過該上下文模型確定的估計(jì)概率。然后,將該數(shù)據(jù)輸入到熵編碼器106,其使用該概率信息對該輸入序列進(jìn)行編碼。例如,熵編碼器106可以是二進(jìn)制算術(shù)編碼器。熵編碼器106輸出編碼數(shù)據(jù)的比特流108。
      [0045]應(yīng)該理解,該輸入序列的每個(gè)比特被順序處理以更新上下文模型,以及該連續(xù)的比特和概率信息被提供給熵編碼器106,熵編碼器106于是順序地對這些比特進(jìn)行熵編碼以創(chuàng)建比特流108。本領(lǐng)域技術(shù)人員將明白,在一些實(shí)施例中,可能不從上下文建模組件104向熵編碼器106傳遞顯式的概率信息;相反,在一些示例中,對于每個(gè)比特,上下文建模組件104可以向熵編碼器106發(fā)送反映由上下文建模組件104基于上下文模型和輸入序列102的當(dāng)前上下文做出的概率估計(jì)的索引或其他指示符。該索引或其他指示符指示與其對應(yīng)比特關(guān)聯(lián)的概率估計(jì)。
      [0046]在一些實(shí)施例中,熵編碼器106可以具有用于對輸入序列102進(jìn)行編碼的并行處理架構(gòu)。在這種實(shí)施例中,熵編碼器106可以包括多個(gè)熵編碼器,每個(gè)熵編碼器處理輸入序列102的一部分。在一些情形下,輸入序列可被解復(fù)用,并且基于與相應(yīng)比特關(guān)聯(lián)的估計(jì)概率在這些并行熵編碼器之間進(jìn)行分配。換言之,來自輸入序列102的比特可以基于其估計(jì)概率而被分配給并行編碼器之一。
      [0047]在解碼器處,使用逆過程對編碼比特流進(jìn)行解碼。具體地,解碼器執(zhí)行相同的上下文建模和概率估計(jì)過程,以確定重構(gòu)序列的下一個(gè)重構(gòu)符號的上下文?;卺槍ο乱粋€(gè)重構(gòu)符號確定的上下文,確定估計(jì)概率。對編碼比特流(其可以由熵編碼器輸出的碼字組成)進(jìn)行解碼,以獲得解碼符號。上下文/概率的確定與對碼字的解碼交織在一起,以獲得與那些估計(jì)概率對應(yīng)的解碼符號。
      [0048]在并行編碼的實(shí)施例中,解碼器可以配置為將編碼比特流解復(fù)用成多個(gè)解碼子序列,每個(gè)解碼子序列與一個(gè)估計(jì)概率相關(guān)聯(lián)。上下文建模和概率估計(jì)于是得到對來自關(guān)聯(lián)的解碼子序列的重構(gòu)符號的選擇。應(yīng)該理解,在這種實(shí)現(xiàn)中,對編碼比特流的解碼可被認(rèn)為是根據(jù)上下文建模和概率估計(jì)進(jìn)行解交織。
      [0049]根據(jù)下面的詳細(xì)描述,應(yīng)該理解本申請適用于串行或并行的熵編碼和解碼。
      [0050]本申請?zhí)岢鲆环N編碼和解碼過程,其中末位有效系數(shù)位置被編碼,并且其中位置的軸之一的上下文取決于另一軸。
      [0051]下面的示例可能特別參考了視頻編碼,并且具體地參考了對如在ITU-T H.264 /AVC標(biāo)準(zhǔn)中規(guī)定的CABAC中定義的序列sig [i,j]和last [i,j]的編碼。應(yīng)該明白,本申請不限于對CABAC中的這兩個(gè)特定序列的編碼和解碼;也不限于視頻編碼和解碼或者H.264 /AVC標(biāo)準(zhǔn)。本申請描述了可被應(yīng)用到其他數(shù)據(jù)序列(包括視頻、圖像,以及在一些實(shí)例中,包括音頻)的編碼和解碼方法和過程。本文的方法和過程可以適用于涉及上下文模型的編碼和解碼過程,所述上下文模型對末位有效系數(shù)位置進(jìn)行編碼,以及在所述過程中位置被建模為二維的或者可被建模為二維的。下面的示例可以參考作為示例的二進(jìn)制源,盡管更一般性地講,本申請可適用于任何有限字母表源。
      [0052]如上文描述的,示例視頻和圖像編碼和解碼過程利用基于塊的變換將殘差數(shù)據(jù)從像素域轉(zhuǎn)換到變換域。示例的基于塊的變換是4x4DCT或8x8DCT。在一些應(yīng)用中,可以使用其他大小或類型的變換(DST或DFT等)。然后,由量化器對變換數(shù)據(jù)的矩陣或集合進(jìn)行量化,以產(chǎn)生量化后的變換域系數(shù)的矩陣或集合。本申請可以將量化后的變換域系數(shù)的矩陣稱為矩陣、集合或塊,其表示數(shù)據(jù)的有序集合,其中任何一個(gè)系數(shù)的位置可以由二維坐標(biāo)[X,y]來指定。
      [0053]對量化后的變換域系數(shù)的塊的熵編碼基于上下文模型。例如,在H.264 / AVC中,通過對有效圖的第一編碼來對塊進(jìn)行熵編碼。有效圖包括兩個(gè)序列:last[i,j]和sig[i,j]。序列sig[i,j]是指示DCT塊中的每個(gè)位置上是否存在非零系數(shù)的二進(jìn)制序列。另一序列l(wèi)ast[i,j]是被映射到DCT塊的非零系數(shù)的并且指示該非零系數(shù)是否是DCT塊的末位非零系數(shù)的二進(jìn)制序列(在H.264和其他變換域圖像或視頻編碼方案中的zig-zag掃描順序中)。應(yīng)該注意,索引[i,j]不是塊中的二維坐標(biāo)位置;索引i是對塊的索引,索引j是對下面描述的zig-zag掃描順序中的一維系數(shù)位置的索引。
      [0054]H.264標(biāo)準(zhǔn)規(guī)定了 zig-zag掃描順序,用于對DCT塊的系數(shù)進(jìn)行編碼。例如參考4X4DCT塊,H.264標(biāo)準(zhǔn)以圖6所示的zig-zag順序?qū)?6個(gè)系數(shù)進(jìn)行編碼。如圖6中所示,該掃描順序開始于塊的左上角,服從zig-zag圖案直到右下角。一旦以該編碼順序安排,針對第i個(gè)塊所得的系數(shù)序列是X(i,O),...,X(i,15)。
      [0055]H.264 / AVC標(biāo)準(zhǔn)使用其中順序地對塊進(jìn)行編碼的方案。換言之,依次對每個(gè)序列X(i,0), , X (i,15)進(jìn)行編碼。H.264 / AVC中使用的上下文模型包括:針對每個(gè)矢量X[i,j],確定兩個(gè)二進(jìn)制序列sig[i,j]和last[i,j]。然后還對系數(shù)的實(shí)際值(稱為級別)進(jìn)行編碼。
      [0056]為了通過示例進(jìn)行說明,考慮下面的示例系數(shù)序列X:
      [0057]3,5,2,0,1,1,0,1,0,0,0,0,0,0,0,0 ?0
      [0058]6,4,0,3,3,0,1,0,0,0,0,0,0,0,0,0 il
      [0059]4,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0 i=2
      [0060]針對這些系數(shù)序列的序列sig[i, j]和last[i, j]如下:
      [0061]sig[0,j]=l,l,l,0,l,l,0,l
      [0062]last [O,j] =0,O,O, 0,0, I
      [0063]sig[l,j]=l,l,0,l,l,0,l
      [0064]last [I, j]=0,0, 0,0, I
      [0065]sig[2, j]=l, 1,0,0,1
      [0066]last [2,j] =0,0,I
      [0067]應(yīng)該理解,last[i, j] 序列僅包括sig[i,j]為非零時(shí)的值,并且兩個(gè)序列都在末位非零系數(shù)之后終止。相應(yīng)地,last[i,j]將不一定包括針對sig[i,j]中的每個(gè)比特j的比特。應(yīng)該理解,這些序列的長度可以根據(jù)系數(shù)值而變化。最后,應(yīng)該理解,如果知道sig[i,j]序列是否包含非零比特,則將知道在last[i,j]序列中是否存在對應(yīng)的比特,這意味著對這些序列的編碼和解碼是通過比特位置來交織的。
      [0068]在H.264 / AVC示例中,基于比特的上下文來確定比特的概率(有時(shí)稱為“狀態(tài)”)。特別地,相同上下文的比特歷史確定被選擇或分配給該比特的概率。例如,對于給定序列i中的第j個(gè)位置上的比特,其概率是基于先前的序列(1-1,等等)中的第j個(gè)位置上的比特歷史,從64個(gè)可能概率中選擇的。
      [0069]如上文所述,基于比特的概率對比特進(jìn)行編碼。在一些示例實(shí)施例中可以使用并行編碼,以及在一些實(shí)例中,并行編碼可以包括特定于每個(gè)概率的熵編碼器。在其他示例實(shí)施例中,可以使用串行熵編碼。在任一情形下,熵編碼器基于符號關(guān)聯(lián)的概率對符號進(jìn)行編碼。
      [0070]在解碼器處,在重構(gòu)序列時(shí),發(fā)生相同的上下文建模和概率估計(jì)。概率估計(jì)被用于對編碼比特流進(jìn)行解碼,以獲得重構(gòu)的符號。符號是從編碼比特流的解碼出的部分中選擇的,并且基于其關(guān)聯(lián)的概率和上下文模型進(jìn)行交織以形成重構(gòu)的符號序列。
      [0071]在下表中闡述了使用CABAC的H.264 / AVC中的殘差塊的語法:
      [0072]表1
      [0073]
      【權(quán)利要求】
      1.一種用于對包括末位有效系數(shù)信息的量化后的變換域系數(shù)數(shù)據(jù)進(jìn)行編碼的方法,所述方法包括: 對所述末位有效系數(shù)的二維坐標(biāo)的兩個(gè)位置中的每個(gè)位置進(jìn)行二進(jìn)制化; 確定所述兩個(gè)位置中的一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文; 確定所述兩個(gè)位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文,其中所述兩個(gè)位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文部分地基于所述兩個(gè)位置中的所述一個(gè)位置;以及 基于針對二進(jìn)制化的位置的每個(gè)二進(jìn)制數(shù)確定的上下文,對所述二進(jìn)制化的位置進(jìn)行熵編碼,以產(chǎn)生編碼數(shù)據(jù)。
      2.根據(jù)權(quán)利要求1所述的方法, 其中二進(jìn)制化包括將所述兩個(gè)位置中的每一個(gè)編碼為固定長度的二進(jìn)制碼。
      3.根據(jù)權(quán)利要求1或2所述的方法,其中確定所述兩個(gè)位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文包括:計(jì)算指定所確定的上下文的上下文索引,其中所述上下文索引是基于所述兩個(gè)位置中的所述一個(gè)位置、變換塊大小以及如果存在的所述位置中的所述另一個(gè)位置上的先前二進(jìn)制數(shù)而計(jì)算的。
      4.根據(jù)權(quán)利要求1到3中任一項(xiàng)所述的方法,其中所述兩個(gè)位置包括在塊內(nèi)的X位置和I位置。
      5.根據(jù)權(quán)利要求1所述的方法,其中確定所述兩個(gè)位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文包括:計(jì)算指定所確定的上下文的上下文索引,其中所述上下文索引基于所述兩個(gè)位置中的所述一個(gè)位置的二進(jìn)制對數(shù)。
      6.根據(jù)權(quán)利要求1到5中任一項(xiàng)所述的方法,還包括: 在執(zhí)行所述二進(jìn)制化、確定每個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文、以及熵編碼之前,確定所述二維坐標(biāo)不是[O,O]。
      7.根據(jù)權(quán)利要求1到6中任一項(xiàng)所述的方法,還包括:在所述二進(jìn)制化、所述確定所述兩個(gè)位置中的一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文、以及所述確定所述兩個(gè)位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文之前,對所述量化后的變換域系數(shù)數(shù)據(jù)中的非零系數(shù)的數(shù)目進(jìn)行計(jì)數(shù),以及確定所述數(shù)目滿足或超過閾值。
      8.一種用于對量化后的變換域系數(shù)數(shù)據(jù)進(jìn)行編碼的編碼器,所述編碼器包括: 處理器; 存儲器;以及 編碼應(yīng)用,存儲在存儲器中,并且包含用于配置所述處理器以通過執(zhí)行根據(jù)權(quán)利要求1到7中任一項(xiàng)所述的方法來對所述量化后的變換域系數(shù)數(shù)據(jù)進(jìn)行編碼的指令。
      9.一種用于對編碼數(shù)據(jù)的比特流進(jìn)行解碼以重構(gòu)量化后的變換域系數(shù)數(shù)據(jù)的方法,所述方法包括: 對編碼數(shù)據(jù)的一部分進(jìn)行熵解碼,以產(chǎn)生定義末位有效系數(shù)的二維坐標(biāo)的兩個(gè)二進(jìn)制化的位置,其中對所述數(shù)據(jù)的所述部分進(jìn)行熵解碼包括: 確定所述兩個(gè)二進(jìn)制化的位置中的一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文,以及 確定所述兩個(gè)二進(jìn)制化的位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文,其中所述兩個(gè)二進(jìn)制化的位置中的所述另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文部分地基于所述兩個(gè)二進(jìn)制化的位置中的所述一個(gè)位置; 基于所述末位有效系數(shù)的二維坐標(biāo)對有效系數(shù)序列進(jìn)行熵解碼; 基于所述有效系數(shù)序列對級別信息進(jìn)行熵解碼;以及 使用所述級別信息和所述有效系數(shù)序列來重構(gòu)所述量化后的變換域系數(shù)數(shù)據(jù)。
      10.根據(jù)權(quán)利要求9所述的方法,其中所述兩個(gè)二進(jìn)制化的位置均包括固定長度的二進(jìn)制碼。
      11.根據(jù)權(quán)利要求9或10所述的方法,其中對所述有效系數(shù)序列進(jìn)行熵解碼包括:將所述末位有效系數(shù)的二維坐標(biāo)轉(zhuǎn)換為指示所述有效系數(shù)序列的結(jié)尾的一維索引。
      12.根據(jù)權(quán)利要求9到11中任一項(xiàng)所述的方法,其中確定所述兩個(gè)二進(jìn)制化的位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文包括:計(jì)算指定所確定的上下文的上下文索引,其中所述上下文索引是基于所述兩個(gè)二進(jìn)制化的位置中的所述一個(gè)位置、變換塊大小以及如果存在的所述兩個(gè)二進(jìn)制化的位置中的所述另一個(gè)位置上的先前二進(jìn)制數(shù)而計(jì)算的。
      13.根據(jù)權(quán)利要求9到12中任一項(xiàng)所述的方法,其中所述兩個(gè)二進(jìn)制化的位置包括塊內(nèi)的X位置和Y位置。
      14.根據(jù)權(quán)利要求9所述的方法,其中確定所述兩個(gè)二進(jìn)制化的位置中的另一個(gè)位置的每個(gè)二進(jìn)制數(shù)的上下文包括:計(jì)算指定所確定的上下文的上下文索引,其中所述上下文索引基于所述兩個(gè)二進(jìn)制化的位置中的所述一個(gè)位置的二進(jìn)制對數(shù)。
      15.根據(jù)權(quán)利要求9到14中任一項(xiàng)所述的方法,還包括: 在對所述部分進(jìn)行解碼之前,對零標(biāo)記進(jìn)行熵解碼,以及根據(jù)所述零標(biāo)記確定所述二維坐標(biāo)位置不是[0,0]。
      16.根據(jù)權(quán)利要求9到15中任一項(xiàng)所述的方法,還包括:對非零系數(shù)標(biāo)記進(jìn)行熵解碼,以及基于所述非零系數(shù)標(biāo)記的值執(zhí)行來對編碼數(shù)據(jù)的一部分進(jìn)行熵解碼。
      17.一種用于對編碼數(shù)據(jù)的比特流進(jìn)行解碼以重構(gòu)符號序列的解碼器,所述符號屬于有限字母表,所述解碼器包括: 處理器;存儲器;以及解碼應(yīng)用,存儲在存儲器中,并且包含用于配置所述處理器以通過執(zhí)行根據(jù)權(quán)利要求9到16中任一項(xiàng)所述的方法來對所述比特流進(jìn)行解碼的指令。
      18.一種計(jì)算機(jī)可讀介質(zhì),在其上存儲有計(jì)算機(jī)可執(zhí)行指令,所述指令在由處理器執(zhí)行時(shí),配置所述處理器以執(zhí)行根據(jù)權(quán)利要求1到7或者權(quán)利要求9到16中任一項(xiàng)所述的方法。
      【文檔編號】H04N19/61GK103597838SQ201180071591
      【公開日】2014年2月19日 申請日期:2011年4月15日 優(yōu)先權(quán)日:2011年4月15日
      【發(fā)明者】何大可, 王競 申請人:黑莓有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1