欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有大字母表的源樣本的熵編碼的方法與裝置與流程

文檔序號:11291338閱讀:285來源:國知局
優(yōu)先權聲明本申請主張在2015年1月30日提出申請的美國臨時專利申請第62/109,853號,以及在2015年10月5日提出申請的美國臨時專利申請第62/237,279號的權利,且上述美國專利申請以引用方式并入本文中。本發(fā)明是有關于熵編碼。具體來說,本發(fā)明是用于減少針對具有大字母表(alphabet)的源(source)的熵編碼的復雜度的編碼技術。
背景技術
::基于文本的適應性二進制算術編碼(context-basedadaptivebinaryarithmeticcoding,cabac)是一種高效率的熵編碼工具,其在先進視頻編碼(例如h.264與高效率視頻編碼(highefficiencyvideocoding,hevc))中具有廣泛地應用。舉例來說,hevc標準的多種語法元素是在cabac模式下編碼,其中熵編碼是基于與當前語法元素相關的文本適應性地應用于二進制的語法元素。圖1是該cabac處理的示例性區(qū)塊圖。由于在cabac引擎中的算術編碼器能夠僅僅編碼二進制符元值,該cabac處理需要使用一個二值化(binarizer)110將語法元素的值轉換為二進制字符串。該轉換過程通常稱為二進制化(binarization)。在編碼的過程中,從針對不同上下文的編碼的符元(symbol)中逐步建立起該多個可能性模型(probabilitymodel)。上下文模型化(contextmodeler)(120)用于模型化的目的。在正常的基于編碼的上下文中,使用該常規(guī)的編碼引擎(codingengine)(130),其對應二進制算術編碼器。針對編碼下一二進制符元的模型化上下文的選擇可通過該編碼的信息來決定。符元也可不經(jīng)過上下文模型化階段而編碼,并且假設一個相等的概率分布,通常稱為旁通模式(bypassmode),來減少復雜度。針對旁通符元,使用旁通編碼引擎(bypasscodingengine)(140)。如圖1所示,開關(s1、s2與s3)是用來在常規(guī)的cabac模式與旁通模式之間控制數(shù)據(jù)流的方向。當選擇常規(guī)的cabac模式時,該多個開關是較上連接。當選擇旁通模式時,該多個開關是較下連接,如圖1所示。如上所述,cabac是一種熵編碼形式。cabac能夠應用至源符元(sourcesymbol)以減少代表源符元所需的數(shù)據(jù)。當cabac應用至一視頻編碼系統(tǒng)時,源符元可對應于預測殘余(predictionresiduals)、運動信息(motioninformation)、編碼參數(shù)等等。舉例來說,cabac是在hevc中使用,其中該標準是基于傳統(tǒng)的混合編碼途徑。依據(jù)hevc,一個圖像被分割為多個非重疊的最大的編碼單元(largestcodingunit,lcu),也稱為編碼樹區(qū)塊(codingtreeblock,ctb)。一個編碼單元(codingunit,cu)的像素值是通過空間或者時間來預測。轉換獲得的殘余信號來進行進一步的冗余去除。接著轉換系數(shù)被量化以及熵編碼。重建的圖像是從該解碼的殘余信號與預測信號中回復。在重建之后,重建的圖像進一步地通過環(huán)內濾波來處理以減少編碼偽影(codingartifact)。圖2是針對基于hevc編碼器的示例性區(qū)塊圖。圖2是依據(jù)hevc結合環(huán)內處理的適應性幀間/幀內編碼系統(tǒng)的示意圖。對于幀間預測,運動估計(me)/運動補償(mc)212是用來提供來自其他圖像或者其他多個圖像的基于視頻數(shù)據(jù)的預測數(shù)據(jù)。開關214選擇幀內預測210或者幀間預測數(shù)據(jù),并且選擇的預測數(shù)據(jù)是提供至加法器216來形成預測錯誤,也稱為殘余(residues)。接著預測錯誤是通過轉換(t)218以及后續(xù)的量化(q)220處理。該轉換的以及量化的冗余接著被熵編碼器222編碼,以形成對應于壓縮的視頻數(shù)據(jù)的視頻比特流。該與殘余相關的比特流接著與旁側信息(sideinformation)一同封包,舉例來說,旁側信息是運動、模式以及其他與圖像區(qū)域相關的信息。該旁側信息也可以進行熵編碼來減少所需的頻寬。據(jù)此,與旁側信息相關的數(shù)據(jù)是提供給如圖2所示的熵編碼器222。在幀內模式中,可使用重建區(qū)塊來形成空間相鄰區(qū)塊的幀內預測。因此,來自rec228的重建區(qū)塊可提供給幀內預測210。當幀內預測模式被使用時,一個參考圖像或者多個參考圖像也需要在編碼器端重建。所以,該轉換的以及量化的殘余被逆量化(iq)224以及逆轉換(it)226處理,以恢復殘余。該殘余接著在重建(rec)228被加回至預測數(shù)據(jù)236,以重建視頻數(shù)據(jù)。該重建的視頻數(shù)據(jù)可存儲在參考圖像緩沖器234中,并用于其他幀的預測。如圖2所述,輸入的視頻數(shù)據(jù)在編碼系統(tǒng)中經(jīng)過了一系列的處理。由于一系列的處理,來自rec228的重建視頻數(shù)據(jù)可能具有多種損失。據(jù)此,在重建視頻數(shù)據(jù)存儲至參考圖像緩沖器234之前,引用多種環(huán)內處理至重建視頻數(shù)據(jù),以增強視頻質量。在hevc標準中,發(fā)展了去塊(deblocking,df)處理模塊230、樣本自適應偏移(sampleadaptiveoffset,sao)處理模塊231以增強圖像質量。該環(huán)內濾波信息將需要組合至比特流中,從而解碼器能夠正確地恢復所需的信息。因此,來自sao的環(huán)內濾波信息是提供給熵編碼器222以組合至比特流中。在圖2中,df230是首先應用至重建的視頻,接著應用至df處理的視頻(即已去塊的視頻)。目前,jct標準化主體在開發(fā)hevc屏幕內容編碼(scc)擴展的過程中。與傳統(tǒng)的具有連續(xù)的色調(colortone)的正常視頻相比較,屏幕內容視頻通常包含較少的試色(pilotcolor)以及尖銳邊緣與邊界。目前一些新型工具,例如幀內區(qū)塊復制(intrablockcopy,ibc)、調色板編碼(palettecoding)、幀內線復制(intralinecopy)與幀內串復制(intrastringcopy,isc),在開發(fā)中,潛在的在未來被采用至hevcscc擴展中。再次,cabac可應用至殘余或者與這些新型工具相關的編碼信息。ibc與調色板編碼的細節(jié)可在jctvc-s1005(joshi,etal.,highefficiencyvideocoding(hevc)screencontentcoding:draft2,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,19thmeeting:strasbourg,fr,17–24oct.2014,document:jctvc-s1005)中找到。幀內線復制與幀內串復制(isc)的細節(jié)可以在jctvc-s1103(chen,etal.,descriptionofcoreexperiment3(ce3):intralinecopyandintrastringcopy,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,19thmeeting:strasbourg,fr,17–24oct.2014,document:jctvc-s1103)中找到。技術實現(xiàn)要素:本發(fā)明揭露了一種通用的針對具有大字母表尺寸的源符元的熵編碼方法。該方法決定該當前符元的前綴部分與任意的后綴部分。為了減少復雜度,該方法通過比較與前綴部分相關的測試值與一個閾值,來將源符元的前綴部分分割為兩個部分。如果該測試值大于或者等于該閾值,該方法通過使用第一可變長度代碼二進制化與該前綴部分相關的第一前綴部分,獲得第一二進制字符串。如果該測試值小于該閾值,通過使用第二可變長度代碼或者第一固定長度代碼二進制化與該前綴部分相關的第二前綴部分,獲得第二二進制字符串。如果任何后綴存在,該方法進一步通過使用第二固定長度代碼或者第一截斷二進制代碼二進制化該后綴部分,獲得第三二進制字符串;使用基于文本的適應性二進制算術編碼模式編碼該第一二進制字符串與該第二二進制字符串中的至少一個。該前綴部分可通過應用rice或者k階指數(shù)哥倫布二進制處理來獲得。該前綴部分對應該當前符元的當前符元值的最大有效位索引。如果任何的后綴部分存在,該后綴部分對應該當前符元值的一個或者多個細化位,該當前符元值屬于多個符元值的一個集合。如上所述的第一方法可信號化一個語法旗標來指示該最大有效位索引加1是否大于該0。當該最大有效位索引加1是大于0時,信號化另一語法旗標來指示該最大有效位索引加1是否大于或者等于閾值。該第一前綴部分對應該最大有效位索引加1減該閾值,并且該第二前綴部分對應該最大有效位索引或者該閾值減1減一個代表該最大有效位索引加1的語法元素。對于具有符號值的源符元,該第一方法通過一個符號部分與一個絕對值部分來代表符號的值。該第一方法接著應用至絕對值部分。該第一方法可通過應用該第一方法至向量的每一分量來應用至對應多個向量的源符元。另提供解碼器端的對應方法。另一方法提供一種在幀間預測編碼中的運動向量差的水平分量與垂直分量的熵編碼方法。如果絕對當前符元值大于針對當前源符元的對應的運動向量的分辨率相關的閾值,通過使用可變長度代碼二進制化該絕對當前符元值的剩余絕對等級,獲得第一二進制字符串;如果絕對當前符元值不大于該閾值,通過使用固定長度代碼二進制化該絕對當前符元值的剩余絕對等級,獲得第二二進制字符串。依據(jù)該絕對當前符元值是否大于該閾值,編碼該第一二進制字符串或該第二二進制字符串。另提供解碼器端的對應方法。提供又一種方法,其利用了在幀間預測編碼的運動向量差的兩個分量、或者幀內區(qū)塊復制、幀內線復制或幀內串復制編碼的區(qū)塊向量差的兩個分量之間的關聯(lián)。決定第一旗標,該第一旗標指示第一分量的第一絕對值是否大于0,其中該第一分量對應該水平分量或者該垂直分量。決定第二旗標,該第二旗標指示第二分量的第二絕對值是否大于0,其中該第二分量對應該水平分量或者該垂直分量并且是一個與該第一分量不同的分量。在該第一旗標編碼之后,使用基于該第一旗標獲得上下文模型編碼該第二旗標,或者一同編碼一對該第一旗標與該第二旗標。另提供解碼器端的對應方法。提供再一種方法,其利用了幀內先復制或者幀內串復制編碼的偏移向量的兩個分量的編碼相關的冗余(redundancy)。信號化一個或者多個第一語法元素,來指示對應該水平分量的第一絕對值是否大于0,以及對應該垂直分量的第二絕對值是否大于0;以及僅僅當該一個或者多個第一語法元素指示該第一絕對值大于0并且該第二絕對值大于0時,信號化一個或者多個第二語法元素,其中該一個或者多個第二語法元素代表該水平分量的符號部分與該垂直分量的符號部分以及第二符號旗標代表該垂直分量的符號部分與該水平分量的符號部分。另提供解碼器端的對應方法。附圖說明圖1是cabac處理的示例性區(qū)塊示意圖,其包含常規(guī)cabac模式與旁通模式的路徑。圖2是依據(jù)hevc與環(huán)內處理結合的適應性幀間/幀內視頻編碼系統(tǒng)的舉例說明。圖3是依據(jù)本發(fā)明的實施例的針對具有大字母表尺寸的源符元的熵編碼的流程圖。具體實施方式如下說明為實現(xiàn)本發(fā)明的最佳實施例。如下所述的內容僅僅為了舉例說明本發(fā)明的精神,而并非是本發(fā)明的限制條件。本發(fā)明的范圍需參考權利要求書來決定。本發(fā)明提出了熵編碼的多種方面,來減少復雜性、增加壓縮效率或者兩者兼顧。在一方面,本發(fā)明揭露了一種針對具有大字母表尺寸的源符元(例如在視頻編碼系統(tǒng)中產(chǎn)生的語法元素)通用的熵編碼方法。在pct專利申請,編號為pct/cn2015/081751,申請日為2015年6月18日,提供了一種通用的高效熵編碼,其中一個無符號的(unsigned)源樣本值是通過將最高有效位(mostsignificantbit,msb)信號化(signaling)以一個二進制格式來表達,該最高有效位后續(xù)是細化位(refinementbit)。樣本值等于0的msb索引設定為-1。結果的碼字(codeword)的前綴部分代表msb索引加1,表達為msb_idx_p1。一個無符號語法x的前綴部分msb_idx_p1是通過如下的等式給出后綴部分,以refinement_bits表達,代表從細化位獲得的值并且如果msb_idx_p1>1則存在。解碼的語法值x通過如下的等式給出對于一個有符號的(signed)源樣本,上述方法是一同應用至該源樣本的絕對值與該編碼的符號比特。對于前綴部分的二進制化,通常使用一個一元樹結構(unarytreestructure),其通過重復n個“1”后續(xù)一個“0”來指示一個整數(shù)n的方式來產(chǎn)生二進制碼字符串。產(chǎn)生的二進制字符串(binarystring)是眾所周知的一元碼(unarycode)。后綴部分通常使用固定長度編碼來二進制化。當最大樣本值是已知時,該截斷的(truncated)一元碼與截斷的二進制代碼能夠分別用于前綴部分與后綴部分的二進制化。表1是使用上述方法用于信號化一個無符號的語法值的語法表的舉例說明。語法msb_idx_p1是首先信號化,通過備注(1-1)表示。如果msb_idx_p1大于1,語法refinement_bits信號化,如備注(1-2)所示。針對由輸入?yún)?shù)語法type說明的不同的語法類型可使用不同的內容模型體系。表1.結果的二進制字符串能夠通過基于文本的適應性二進制算術編碼(cabac)來編碼。前綴部分能夠以具有更復雜上下文模型體系的cabac模式來編碼。細化位與符號位可使用相對簡單的上下文模型體系或者旁通模式來編碼。舉例來說,cabac模式能夠用于編碼對應最高有效位索引的位并且旁通模式可用來編碼其他位。依據(jù)pct專利申請pct/cn2015/081751的通用的熵編碼可達到在壓縮效率與系統(tǒng)復雜度之間的平衡。然而,當源具有一個大的字符表尺寸與多個樣本值的一個非降低(non-decreasing)的可能性分布時,前綴部分可能導致長碼字。因此,本發(fā)明的第一方法利用一個不同的碼字結構來進一步分割字母空間為兩個或者更多個部分。該第一方法的一個實施例在表2中說明。該語法旗標msb_idx_p1_grt_flag是首先信號化,如備注(2-1)所示,以識別msb_idx_p1是否小于一個閾值msb_idx_thre。如果該旗標等于1(即msb索引加1大于或者等于閾值msb_idx_thre),接著該語法msb_idx_p1_minus_thre信號化,語法msb_idx_p1_minus_thre代表msb_idx_p1減去閾值msb_idx_thre,如備注(2-2)所示。在這種情況下,msb_idx_p1是通過將msb_idx_p1_minus_thre與msb_idx_thre相加來重建,如備注(2-4)所示。否則,語法值自身(即msb_idx_p1)信號化,如備注(2-3)所示。閾值msb_idx_thre可以是一個先前定義的值或者一個在序列參數(shù)集(sequenceparameterset,sps)、圖像參數(shù)集(pictureparameterset,pps)或者切片頭中的可變標記。上述碼字結構對于熵編碼具有高可能性接近msb_idx_thre的該源樣本的前綴值是有效率的。在上述例子中,msb_idx_p1,而并非是前綴部分自身,用來與閾值相比較進行測試,而決定如何編碼該前綴部分。據(jù)此,msb_idx_p1稱為一個“與前綴部分相關的測試值”。然而,其他的測試值也可以用來實現(xiàn)該發(fā)明。舉例來說,并非比較“msb_idx_p1”與閾值“msb_idx_thre”,可通過比較“msb_idx”與閾值“msb_idx_thre-1”來執(zhí)行一個相等的測試。表2.在第一發(fā)明的另一個實施例中,旗標msb_idx_p1_gr0_flag是首先被編碼以指示語法msb_idx_p1是否大于0。如果旗標等于1,接著語法值msb_idx_p1減去1使用如上所述的字母空間分割為兩個或者更多部分的碼字結構編碼。基于第一方法的舉例,其利用的旗標msb_idx_p1_gr0_flag如表3所示。在另一個例子中,當語法msb_idx_p1小于閾值msb_idx_thre時,語法msb_idx_p1通過編碼(msb_idx_thre-1-msb_idx_p1)來表達,而不使用msb_idx_p1自身,如表4所示。如表3所示,語法msb_idx_p1_gr0_flag首先信號化,如備注(3-1)所示。如果語法msb_idx_p1_gr0_flag等于0,其表示msb_idx_p1等于0,如備注(3-2)所示。如果語法msb_idx_p1_gr0_flag不等于0,語法msb_idx_p1_grt_flag信號化,如備注(3-3)所示。如果語法msb_idx_p1_grt_flag等于0,語法msb_idx信號化,如備注(3-4)所示,并且msb_idx_p1重建,如備注(3-5)所示。如果語法msb_idx_p1_grt_flag不等于0,接著代表msb_idx_p1減去閾值的語法(即msb_idx_p1_minus_thre)信號化,如備注(3-6)所示。在這種情況下,msb_idx_p1是通過將msb_idx_p1_minus_thre與msb_idx_thre相加重建,如備注(3-7)所示。表3.表4中的語法結構與表3中的語法結構相似。然而,如果語法msb_idx_p1_grt_flag等于0,代表閾值減去msb索引的語法(即thre_minus_msb_idx)信號化,如備注(4-1)所示,并且msb_idx_p1被重建,如備注(4-2)所示。如果語法msb_idx_p1_grt_flag不等于0,那么代表msb_idx_p1減去閾值的語法(即msb_idx_p1_minus_thre)信號化,如備注(4-3)所示。在這樣的情況下,msb_idx_p1重建,如備注(4-4)所示。表4.在上面的討論中,使用了一個特殊的例子來舉例說明本發(fā)明。然而,針對具有大字母表尺寸的通常熵編碼也應用至其他的二進制化情況中。舉例來說,源符元的二進制代表可通過應用rice二進制化程序或者k階指數(shù)哥倫布二進制化程序(k-thorderexp-golomb(egk)binarizationprocess)至當前符元來獲得。上述實施例可應用至編碼一個與向量表達(例如運動向量差mvd與區(qū)塊向量差bvd)相關的語法。上述的碼字結構接著應用至每一向量分量。依據(jù)第一方法的實施例的語法能夠支持將來自兩個分量的旁通比特組合在一起。以這樣的方式,組合的旁通比特能夠一同編碼,來增進比特流解析吞吐率。使用第一方法用于信號化與向量相關的語法的語法表的一個例子如表5所示。表5中所示的語法表被視作應用表4中的語法表分別至一個向量的兩個分量。從備注(5-1)至備注(5-2)的語法行以及從備注(5-5)至備注(5-6)的語法行是與第一向量分量相關(即x-方向)。從備注(5-3)至備注(5-4)的語法行以及從備注(5-7)至備注(5-8)的語法行是與第二向量分量相關(即y-方向).表5.用于代表與一個大于或者等于msb_idx_thre的值相關的前綴部分的語法元素,例如msb_idx_p1_minus_thre與abs_msb_idx_p1_minus_thre,能夠使用一個一元代碼或者截斷的一元代碼二進制化。與前綴部分相關的并且對應一個小于msb_idx_thre的值的語法元素,例如msb_idx_p1與thre_minus_msb_idx,能夠使用一個截斷的一元代碼或者固定長度編碼來二進制化。結果的二進制字符串的一個或者多個比特能夠在cabac模式下編碼。舉例來說,cabac模式能夠用于編碼該前綴二進制字符串的先導(leading)少許二進制碼,并且旁通模式能夠用于后續(xù)二進制碼。在表2至表5中,多種語法元素,例如msb_idx_p1、thre_minus_msb_idx、msb_idx_p1_grt_flag等等,可用來舉例說明示例性的語法設計,以結合本發(fā)明的實施例。然而,這些具體的示例性的語法元素并非本發(fā)明的限制。本領域的技術人員可使用相似或等同的語法元素來實現(xiàn)本發(fā)明但不偏離本發(fā)明的宗旨。上下文的選擇可以是可選的,其基于語法類型以及二進制索引。不同的上下文可分配給來自不同的二進制索引的編碼二進制碼(codingbin)。在另一個例子中,一些二進制碼與相鄰的二進制碼能夠共享一組相同的上下文。在另一個例子中,所有的具有大于一個閾值的索引的二進制碼是分配了一組相同的上下文。對于編碼一個向量源,上下文的選擇可進一步條件性地依據(jù)向量分量索引。舉例來說,針對來自水平分量與垂直分量的cabac二進制碼字符串,可分別使用兩個上下文集合。在另一個例子中,一些上下文能夠被水平分量與垂直分量共享。在另一個例子中,一些上下文對于編碼mvd與bvd是共享的。在編碼器端,表達一個語法值的比特成本(bitcost)是在決定該編碼參數(shù)值的過程中被估計。對于在旁通模式下編碼一個二進制字符碼,比特成本等于一個比特。用于編碼一個cabac二進制碼的估計的比特成本可以從被選擇的上下文的狀態(tài)來獲得。因此,用于代表一個語法值的估計的比特成本可通過累計個別的編碼的cabac二進制碼的估計的比特成本加上編碼的旁通的二進制碼的個數(shù)。以這樣的方式,以相同的cabac二進制碼字符串以及相同數(shù)量的旁通二進制碼編碼的所有的語法值將具有相同估計的比特成本。為了加速比特成本的估計,對于所有的cabac二進制字符串值的估計的比特成本可在每一編碼單元的開始基于cabac狀態(tài)來提前計算。建立通過cabac二進制字符串索引的一個查找表(look-uptable(lut))來存儲結果的估計的比特成本。對于一個語法值的估計的比特成本可通過lut簡單地將其cabca二進制碼字符串映射至估計的比特成本。舉例來說,一個系統(tǒng)可使用cabac模式來針對前綴部分編碼二進制碼字符串并且使用旁通模式來編碼所有的以固定長度碼表達的細化二進制碼(refinementbin)。在這種情況下,lut映射該前綴值至估計的比特成本。如上所述的本發(fā)明的第一方法是作為一個通用的編碼工具來開發(fā),其對于熵編碼對應不同的編碼統(tǒng)計的不同的語法類型是有效的。其對于具有大自己表尺寸的源,例如在具有混合的視頻內容類型與數(shù)種新語法類型的屏幕內容編碼中產(chǎn)生的符元,是有效的,其中該數(shù)種新語法類型是從新的編碼工具,包含幀內區(qū)塊復制、調色板編碼與串匹配編碼(stringmatchingcoding),導致的。以下將說明一些參數(shù)選擇的例子。舉例來說,當應用第一方法來編碼mvd時,對于水平分量該閾值可等于6,對于垂直分量該閾值可等于5。對于編碼bvd,用于水平分量的閾值可等于5并且對于垂直分量的閾值等于4。在另一個例子中,對于以四分之一像素(quarter-pixel)精度編碼mvd,針對水平分量該閾值可等于6,針對垂直分量該閾值可等于5。并且,對于以全像素(full-pixel)精度編碼mvd,針對水平分量該閾值可等于4或5,針對垂直分量該閾值可等于3或4。用于相關的語法元素的熵編碼的舉例說明將如下詳述。舉例來說,語法元素abs_msb_idx_p1_gr0_flag是在cabac模式下編碼并且語法元素abs_msb_idx_p1_grt_flag、thre_minus_abs_msb_idx、與abs_msb_idx_p1_minus_thre是在旁通模式下編碼來編碼bvd。在另一個例子中,語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag是在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx、abs_msb_idx_p1_minus_thre是在旁通模式下編碼來編碼bvd。在另一個例子中,語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag是在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx與abs_msb_idx_p1_minus_thre是在旁通模式下編碼來編碼mvd。對于編碼bvd或者mvd,語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag能夠在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx與abs_msb_idx_p1_minus_thre針對先導(leading)二進制字符串是在cabac模式下編碼,而針對剩余二進制字符串是在旁通模式下編碼。在另一個例子中,用于編碼bvd或者mvd時,針對2個先導二進制字符串,語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag是在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx與abs_msb_idx_p1_minus_thre是在cabac模式下編碼,并且剩余二進制字符串是在旁通模式下編碼。針對偏移向量(offsetvector),語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag能夠在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx與abs_msb_idx_p1_minus_thre能夠在旁通模式下編碼。在另一個例子中,針對對應二進制字符串索引值小于一個閾值的二進制字符串,語法元素abs_msb_idx_p1_gr0_flag與abs_msb_idx_p1_grt_flag是在cabac模式下編碼并且語法元素thre_minus_abs_msb_idx與abs_msb_idx_p1_minus_thre是在cabac模式下編碼,在其他情況下使用旁通模式編碼。在jctvc-s0085(li,etal.,adaptivemotionvectorresolutionforscreencontent,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,19thmeeting:strasbourg,fr,17–24oct.2014,document:jctvc-s0085)中揭露了一種方法,以支持在全像素精度或者四分之一像素精度下,適應性地選擇運動向量差(motionvectordifference)與運動補償。適應性地選擇是基于一個新的切片(slice)分割標頭(header)旗標,并且該方法適用于屏幕內容編碼測試模型3.0(screencontentcodingtestmodel3.0(scm-3.0))。用于熵編碼的第一方法的實施例能夠與scm-3.0結合,來在不同的分辨率下編碼mvd。舉例來說,msb_idx_thre的一個預先決定的值能夠分配給每一個支持的mvd分辨率等級。因此,該實施例能夠更有效地適用于不同的mvd分辨率等級。以下將詳細說明。在jctvc-s0142(rapaka,etal.,ce1:resultsoftest1.1,test2.1andtest3.1,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,19thmeeting:strasbourg,fr,17–24oct.2014,document:jctvc-s0142)中,提供了一種方法來編碼bvd與mvd,其中每一個mvd分量是編碼的。依據(jù)jctvc-s0142,一個上下文編碼的旗標是首先編碼的,以指示該當前mvd分量是否等于0。當mvd分量不等于0時,另一個旗標可以被編碼以指示該mvd分量的絕對值是否大于n。如果mvd大于n,剩余的絕對值是使用旁通指數(shù)哥倫布(exp-golomb)代碼來編碼。一個旗標被編碼以指示該向量的符號(sign)。該第二方法是通過修改該第一方法來開發(fā)的,以進一步增強在jctvc-s0142中揭露的mvd與bvd編碼。舉例來說,通過在sps、pps或者切片標頭中信號化n,在jctvc-s0142中相同的碼字結構可用來支持一個理想值n的適應性選擇。更進一步,能夠支持針對不同的mvd分辨率等級的不同的n。在另一個實施例中,可使用針對兩個mvd分量的不同值的n。可通過在cabac模式下編碼多個代表指數(shù)哥倫布(exp-golomb)前綴部分的二進制字符串來增加壓縮效率。發(fā)展第三種方法來利用在一個源向量的兩個分量之間的潛在聯(lián)系。該第三方法針對運動補償?shù)膸g預測的運動向量差編碼、如jctvc-s1005中所述的幀內區(qū)塊復制的區(qū)塊向量差編碼、以及與如jctvc-s1103中所述的幀內串復制中的參考串的位置相關的偏移向量編碼是有效的。依據(jù)第三方法,一個向量分量val[c]的絕對值是通過向量變量gr0flag[c]與absvalminus_1[c]表達,依據(jù):|val[c]|=gr0flag[c]+absvalminus_1[c].(3)二進制變量gr0flag[c]的值等于1,指示向量分量val[c]的絕對值大于0。參數(shù)absvalminus_1[c]代表val[c]的絕對值減去1。參數(shù)c代表向量分量,其中c等于0或者1,分別對應x或者y分量。在第三方法的一個實施例中,熵編碼是基于與其他分量相關的已編碼的信息來應用至與一個分量相關的信息。舉例來說,在一個實施例中,針對gr0flag[0]的語法是首先被編碼,并且針對gr0flag[1]的語法是使用由編碼的gr0flag[0]決定的選擇的上下文模型來編碼。表6是支持以上實施例的一個示例性的語法設計。兩個語法旗標,abs_msb_idx_p1_gr0_flag[0]與abs_msb_idx_p1_gr0_flag[1],其中abs_msb_idx_p1_gr0_flag[0]是首先編碼的。語法abs_msb_idx_p1_gr0_flag[1]是接下來依據(jù)abs_msb_idx_p1_gr0_flag[0]條件性編碼的。語法元素abs_msb_idx_p1_gr0_flag[1]與abs_msb_idx_p1_gr0_flag[0]是彼此緊鄰的,以使得條件性編碼更簡單。在另一個例子中,關于兩個向量分量的信息是一同編碼的。舉例來說,一個語法元素gr0_flag_xy可用來指示(gr0flag[0],gr0flag[1])的值。語法gr0_flag_xy可使用一個具有最大值等于3的截斷的一元代碼來二進制化,并且獲得的二進制字符串是在cabac模式下以由二進制字符串索引決定的上下文選擇來編碼。表6.熵編碼的第四方法是針對在幀內串復制中的當前串相關的參考串的開始位置相關的偏移向量開發(fā)的。依據(jù)在jctvc-s1103與jctvc-r0098(li,etal.,“scce4:resultoftest3.1”,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,18thmeeting:sapporo,jp,30june–9july2014,document:jctvc-r0098)中公開的幀內串復制,當前像素串的像素值是通過從已編碼的圖像區(qū)域復制參考像素串來重建的。匹配的串長度以及匹配的串的開始位置相對當前串的開始位置的偏移向量在比特流中信號化。由于參考串的開始位置應該來自已編碼圖像區(qū)域,偏移向量不能具有等于或者小于0的分量。使用在jctvc-r0098中的坐標系統(tǒng)(coordinatesystem),其中正負號指的是相對于當前串的開始位置在水平方向左側的位置以及在垂直方向上方的位置。在一個實施例中,用于代表向量(0,0)的未使用的碼字是移除的,來熵編碼參考串的偏移向量。在另一個實施例中,向量分量是各自編碼的。如果首先編碼的分量值等于0,接著第二分量的絕對值推導大于0。在另一個實施例中,向量(gr0flag[0],gr0flag[1])是通過編碼語法元素gr0_flag_xy來共同編碼,如在第三方法中定義的具有三個分別對應(gr0flag[0]=1,gr0flag[1]=0)、(gr0flag[0]=0,gr0flag[1]=1)與(gr0flag[0]=1,gr0flag[1]=1)的碼字值。在另一個實施例中,語法gr0_flag_xy是通過具有最大值等于2的截斷的一元代碼來二進制化,并且獲得的二進制字符串是在cabac模式下熵編碼。使用兩個上下文并且上下文的選擇是由二進制字符串索引決定的。針對gr0_flag_xy的語法值0、1與2分別對應(gr0flag[0]=1,gr0flag[1]=0)、(gr0flag[0]=0,gr0flag[1]=1)與(gr0flag[0]=1,gr0flag[1]=1)。在另一個實施例中,編碼偏移向量分量的符號旗標(sign[0],sign[1])。依據(jù)該實施例,關于向量(gr0flag[0],gr0flag[1])的信息是在符元編碼之前信號化。僅僅當(gr0flag[0]==1&&gr0flag[1]==1)時,編碼兩個偏移向量分量的符號。否則,該符號推導為正。第四方法進一步排除了用于代表(sign[0]=1,sign[1]=1)的未使用碼字,其中sign[c]等于1對應與負符號。在另一個實施例中,語法元素offset_sign_xy是用來編碼符號旗標(sign[0],sign[1])。語法offset_sign_xy是使用一個具有最大值等于2的截斷的一元代碼來二進制化,并且獲得的二進制字符串是在cabac模式下或者在旁通模式下編碼。在cabac模式下,使用兩個上下文并且上下文的選擇是基于二進制字符串索引來決定。舉例來說,針對offset_sign_xy的語法值0、1與2分別對應(sign[0]=0,sign[1]=1)、(sign[0]=1,sign[1]=0)與(sign[0]=0,sign[1]=0)。圖3是依據(jù)本發(fā)明的實施例的具有大字母表尺寸的源符元的熵編碼的示例性流程圖。在步驟310,接收一個具有當前符元值屬于一個符元值集合的源符元。在步驟320,決定針對當前符元值的一個msb索引與任何的細化位。在步驟330中,測試該msb索引加1,以決定是否大于或者等于一個閾值。如果結果為“是”,執(zhí)行步驟340,如果結果為“否”,則執(zhí)行步驟350。在步驟340,通過使用第一可變長度代碼二進制化與msb索引相關的第一前綴部分,獲得第一二進制串。在步驟350,通過使用第二可變長度代碼或者第一固定長度代碼二進制化與msb索引相關的第二前綴部分,獲得第二二進制串。在步驟360,如果任何的細化位是存在的,通過使用第二固定長度代碼或者第一截斷二進制代碼來二進制化與當前符元值的一個或者多個細化位對應的后綴部分,獲得第三二進制串。接著,在步驟370,使用cabac模式編碼該第一二進制串與該第二二進制串中的至少一個。上述流程圖嘗試說明了依據(jù)本發(fā)明的實施例的針對具有大字母表尺寸的源符元的熵編碼的舉例說明。本領域的技術人員可修改每一步驟,重新安排這些步驟,拆分一個步驟或者組合多個步驟來實現(xiàn)本發(fā)明都將不偏離本發(fā)明的精神。上述說明能夠使得本領域的技術人員實現(xiàn)本發(fā)明,如在一個具體應用的上下文中提供的以及其所需。所描述的實施例的多種變型對于本領域技術人員來說是可以預見的,并且上述內容中所描述的通用的準則也將應用至其他的實施例。因此,本發(fā)明并不僅僅局限于上述說明的實施例,而應該擴展至與所揭露的準則與創(chuàng)新性特點的最廣的范圍。在上述具體說明中,提供了多種具體的細節(jié),其僅僅為了給本領域技術人員提供對本發(fā)明的更深入理解。然而,本領域技術人員可了解本發(fā)明是可以實施的。本發(fā)明的上述實施例可使用多種硬件、軟件代碼或者其組合來實現(xiàn)。舉例來說,本發(fā)明的實施例可以是一個整合至視頻壓縮芯片的電路,或者是整合至視頻壓縮軟件的程序代碼以執(zhí)行上述處理。本發(fā)明的一個實施例也可以是在數(shù)據(jù)信號處理器(digitalsignalprocessor(dsp))上執(zhí)行的程序代碼,來執(zhí)行上述處理。本發(fā)明也可以設計多種功能,其通過計算機處理器、數(shù)字信號處理器、微處理器或者場可編程柵陣列(fieldprogrammablegatearray(fpga))執(zhí)行。通過執(zhí)行定義了本發(fā)明的實施例的具體方法的機器可讀軟件代碼或者固件代碼,這些處理器能夠設置為依據(jù)本發(fā)明執(zhí)行具體的任務。軟件代碼或者固件代碼是使用不同的程序語言以及不同的格式或者風格來開發(fā)。軟件代碼也可針對不同的目標平臺編制。然而,用于執(zhí)行本發(fā)明的實施例的任務的軟件代碼與其他方式設置代碼的不同的代碼格式、風格與語言都將不偏離本發(fā)明的精神與范圍。本發(fā)明能夠以其他具體形式的實施例實現(xiàn),而不偏離本發(fā)明的精神與主要特征。所描述的實施例僅僅用來舉例說明,而并非用來限制。因此,本發(fā)明的范圍是由權利要求書決定而并非是上述具體說明來決定。權利要求的所有均等變化也都包含在權利要求的范圍之中。當前第1頁12當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
库伦旗| 临夏市| 奎屯市| 大港区| 凤庆县| 巴青县| 昭平县| 曲靖市| 漳浦县| 屏东市| 娄烦县| 宁国市| 昭平县| 瑞昌市| 桦川县| 冀州市| 香河县| 揭东县| 资溪县| 栾城县| 咸宁市| 延安市| 克山县| 惠水县| 崇仁县| 高要市| 社会| 高唐县| 县级市| 建昌县| 龙江县| 贵港市| 普陀区| 许昌县| 三明市| 高州市| 六盘水市| 太保市| 乌恰县| 吉安市| 开化县|