輸入符號二值化的方法以及從碼字中產(chǎn)生索引值的方法
【專利摘要】本發(fā)明提供一種輸入符號二值化的方法,使用帶賴斯參數(shù)的混合截斷賴斯/k階次指數(shù)哥倫布二值化方案,包含:決定閾值;將該輸入符號與該閾值做比較;當(dāng)比較結(jié)果屬于第一類型比較結(jié)果時,對于該輸入符號,使用截斷賴斯二值化過程來構(gòu)建碼字;以及當(dāng)該比較結(jié)果屬于第二類型比較結(jié)果時,對于該輸入符號,以初始前綴和后綴來構(gòu)建碼字;其中該后綴是使用指數(shù)哥倫布二值化過程而被構(gòu)建的。本發(fā)明還提供一種用于數(shù)字視頻或數(shù)字圖像編/解碼的從碼字中產(chǎn)生索引值的方法。本發(fā)明的編/解碼速度比現(xiàn)有技術(shù)更快、效率更高。
【專利說明】輸入符號二值化的方法以及從碼字中產(chǎn)生索引值的方法
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明關(guān)于數(shù)字視頻或圖像的輸入符號二值化以及去二值化的方法,尤其關(guān)于一種使用帶賴斯參數(shù)的混合截斷賴斯/k階次指數(shù)哥倫布二值化方案來二值化輸入符號的方法以及相關(guān)的用于數(shù)字視頻或圖像編/解碼的從碼字中產(chǎn)生索引值的方法。
【【背景技術(shù)】】
[0002]無論生活在哪里,數(shù)字電視(Digital televis1n)和視頻流媒體技術(shù)已經(jīng)使人們能夠有機會獲得大量信息。雖然視頻通常占用了大量的空間,但是數(shù)字壓縮技術(shù)意味著許多百萬字節(jié)(megabyte)的數(shù)據(jù)能夠以存儲文件的形式以及實時數(shù)據(jù)(媒體流直播,livestreaming)的形式來傳輸。這項技術(shù)的應(yīng)用是深遠(yuǎn)的:高品質(zhì)的媒體流直播已經(jīng)呈現(xiàn)了其在中東最新的應(yīng)用,那里發(fā)生的世界性變化的事件,已即刻被記錄并在世界各地傳輸。
[0003]數(shù)字壓縮(Digital compress1n)分為兩種類型:無損壓縮和有損壓縮。有損壓縮涉及到對視頻數(shù)據(jù)進(jìn)行壓縮使壓縮后文件的數(shù)據(jù)比原始數(shù)據(jù)更少。因此當(dāng)接收及觀看文件時,相比原始素材將有品質(zhì)損失。無損壓縮,如名稱所指示,能夠壓縮文件使其包含的數(shù)據(jù)量與原始數(shù)據(jù)相同,從而保持了品質(zhì)。目前采用無損壓縮工具(tool)的編碼標(biāo)準(zhǔn)的例子是MPEG-4和H.264,其在高清晰度視頻中處于領(lǐng)先水平。
[0004]由于在無損壓縮中必須保留所有的信息,因此,能夠減少欲發(fā)送的文件的大小的壓縮技術(shù)是非常重要的。H.264能夠利用可變長編碼(Variable Length Coding, VLC)和基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(Context Adaptive Binary Arithmetic Coding,CABAC)來執(zhí)行幾乎無損的壓縮,可以以低比特率數(shù)字地補償(render)信息。CABAC將數(shù)據(jù)轉(zhuǎn)換為比特,將它們編碼為二進(jìn)制符號,并對自適應(yīng)選擇的二進(jìn)制符號應(yīng)用多個概率模型。有許多二值化技術(shù)可使用。在完整的編碼過程中,二值化為其中的一個步驟。在解碼過程中,去二值化也為其中一個環(huán)節(jié)。一元二值化是將碼字(codeword)轉(zhuǎn)換成字串(string) 1(其后跟隨一個終止0)的技術(shù)。這具有的優(yōu)點是使每一個碼字可唯一地區(qū)別,但較大的碼字會很長,這是由于二進(jìn)制(bin)的數(shù)目依賴于最大值的大小。另一種二值化方法是指數(shù)哥倫布(Exponential-Golomb, exp-Golomb) 二值化,其中碼字被分成一元前綴(unary prefix)和二進(jìn)制后綴(suffix)。這種形式的二值化處理減少了需要通過二進(jìn)制算術(shù)編碼器(binary arithmetic coder, BAC)來發(fā)送的二進(jìn)制的數(shù)量,但具有的缺點是無法快速區(qū)分較小和較大的碼字。
[0005]為了利用這兩種二值化系統(tǒng)的積極因素,經(jīng)常使用混合二值化方案。對于HEVC編碼(其為H.264和MPEG-4之后的下一代編碼標(biāo)準(zhǔn)),使用混合賴斯(hybrid Rice) 二值化方案。該二值化由前綴部分和(如果存在)后綴部分組成。通過調(diào)用截斷賴斯(TruncatedRice, TR) 二值化過程獲得二值化的前綴部分。當(dāng)前綴位串(bit string)不符合預(yù)定標(biāo)準(zhǔn)時,將使用EGk(k_th order Exponential-Golomb) 二值化來創(chuàng)建后綴二進(jìn)制串(binstring)。例如,當(dāng)前綴二進(jìn)制串等于長度為4的位串(所有位等于1)時,二進(jìn)制串由前綴二進(jìn)制串和后綴二進(jìn)制串組成。通過使用EGk 二值化獲得后綴二進(jìn)制串。
[0006]在EGk 二值化方案中,賴斯參數(shù)(Rice Parameter)用來將后綴劃分為商數(shù)和余數(shù),且k由賴斯參數(shù)來定義。將使用一元二值化來編碼商數(shù)部分,以及將以二進(jìn)制來編碼余數(shù)。因此,代表超過閾值的碼字可以說是由第一部分(初始前綴)、第二部分(商數(shù))和第三部分(余數(shù))組成。圖2A和圖2B分別為對于EGk和EG0,對于不同的賴斯參數(shù)值,使用混合(hybrid)截斷賴斯二值化、指數(shù)哥倫布二值化方案來編碼輸入符號的示范性表格。
[0007]請注意,圖2A表中所示的所有碼字(除了對于賴斯參數(shù)等于0的輸入符號超過4的碼字以及對于賴斯參數(shù)等于1的輸入符號超過8的碼字)僅使用TR 二值化方案來被二值化;換言之,碼字只包含初始前綴。類似地,圖2B表中所示的所有碼字(除了對于賴斯參數(shù)等于0和1,輸入符號分別超過7和14的碼字)只使用TR 二值化方案來被二值化。TR二值化將輸入符號編碼為具有一個前綴和一個后綴的碼字,其中后綴可從二進(jìn)制形式的輸入符號的最低有效位(least significant bit)中直接選出。最低有效位的數(shù)量將由賴斯參數(shù)定義。前綴的二進(jìn)制數(shù)量接著由最高有效位(most significant bit)的十進(jìn)制值來定義。例如,對于輸入符號12,假設(shè)賴斯參數(shù)為2(即cRP = 2)。首先輸入符號被轉(zhuǎn)換成二進(jìn)制,給出值‘1100’。這個二進(jìn)制值的cRP最低有效位為‘00’;這兩位將形成碼字的后綴。接著值‘1100’被右移兩位(后綴位的數(shù)量),得到值‘11’。這個值被轉(zhuǎn)換回十進(jìn)制,即‘3’。因此,碼字的前綴部分由三個1和一個截斷0組成(即‘1110’)。使用截斷賴斯cRP = 2編碼輸入符號12,因此得到‘1110 00’。當(dāng)數(shù)值13-15被右移cRP位時,也產(chǎn)生十進(jìn)制‘3’,即它們的最高有效位都相同。它們對應(yīng)的TR碼字為‘1110 01’,‘1110 10’和‘1110 11’。對于相同的輸入符號12將給出另一個例子,但假設(shè)賴斯參數(shù)為1 (例如cRP = 1)。輸入符號首先被轉(zhuǎn)換成二進(jìn)制,得到值‘1100’。該二進(jìn)制值的cRP最低有效位為‘0’;這個單一位將形成碼字的后綴。值‘1100’接著被右移一位(后綴位的數(shù)量),得到值‘110’。該值被轉(zhuǎn)換回十進(jìn)制,即‘6’。因此,該碼字的前綴部分由六個1和一個截斷0組成,S卩‘1111110’。使用截斷賴斯cRP= 1編碼輸入符號12,因而得到‘1111110 0’。在這種情況下,然而,最后的碼字可能太長,因此可能要應(yīng)用帶前綴的EGk。如圖2D所示,賴斯參數(shù)為1的輸入符號12由‘1111 100 00’編碼,在圖2D中,通過選擇正確的賴斯參數(shù)可達(dá)到最佳的編碼效率,碼字長度相較于TR碼字更短。優(yōu)選實施方案將檢查TR碼字的長度,以決定是否要使用TR碼或切換到帶初始前綴的EGk基礎(chǔ)碼字。另一優(yōu)選實施方案將檢查TR碼字的前綴部分中1的數(shù)量。如果這個數(shù)量大于預(yù)定標(biāo)準(zhǔn),則以帶有初始碼字的EGk來編碼輸入符號。圖2D和圖2E中1的數(shù)量分別為4和3。請注意,當(dāng)賴斯參數(shù)為零時,相應(yīng)的碼字等于使用截斷一元二值化編碼的輸入符號。
[0008]根據(jù)上述混合二值化方案編碼輸入符號的傳統(tǒng)方法包含:首先使用截斷賴斯二值化創(chuàng)建碼字,判定前綴位串是否不符合預(yù)定標(biāo)準(zhǔn),如果是這樣,則通過使用上述EGk 二值化來創(chuàng)建后綴二進(jìn)制串。另一種傳統(tǒng)方法首先通過TR 二值化過程來創(chuàng)建前綴碼字。當(dāng)前綴二進(jìn)制串多于預(yù)定長度(分別例如:圖2D中的4和圖2E中的3)的位串(其所有位等于1)時,后綴二進(jìn)制串存在。在這種情況下,只有固定數(shù)量的1輸出作為前綴。然后通過使用輸入符號減去預(yù)定值的EGk 二值化過程來產(chǎn)生后綴二進(jìn)制串,其中預(yù)定值根據(jù)賴斯參數(shù)來選擇。指數(shù)-哥倫布階次(order) k可根據(jù)賴斯參數(shù)來設(shè)定。上述傳統(tǒng)方法在圖1中示出。圖1的步驟詳述如下。
[0009]步驟100:開始編碼過程;
[0010]步驟102:創(chuàng)建截斷賴斯碼字的前綴位串;
[0011]步驟104:前綴位串符合預(yù)定標(biāo)準(zhǔn)碼?如果是,轉(zhuǎn)到步驟110 ;如果不是,轉(zhuǎn)到步驟106 ;換句話說,TR碼字的前綴位串超過閾值了嗎?如果是,轉(zhuǎn)到步驟106 ;如果不是,轉(zhuǎn)到步驟110 ;
[0012]步驟106:創(chuàng)建碼字的后綴二進(jìn)制串以及使用EGk 二值化方案來編碼該后綴;
[0013]步驟108:將該后綴二進(jìn)制串添加到TR碼字的前綴位串;
[0014]步驟110:結(jié)束。
[0015]根據(jù)正被編碼的輸入符號,賴斯參數(shù)和預(yù)定標(biāo)準(zhǔn)可不斷更新。因此,本發(fā)明的目的在于提供一種更直接的編碼方法。
【
【發(fā)明內(nèi)容】
】
[0016]有鑒于此,本發(fā)明提供一種輸入符號二值化的方法,以及用于數(shù)字視頻或數(shù)字圖像編/解碼的從碼字中產(chǎn)生索引值的方法。
[0017]一種輸入符號二值化的方法,使用帶賴斯參數(shù)的混合截斷賴斯/k階次指數(shù)哥倫布二值化方案,包含:決定閾值;將該輸入符號與該閾值做比較;當(dāng)比較結(jié)果屬于第一類型比較結(jié)果時,對該輸入符號,使用截斷賴斯二值化過程來構(gòu)建碼字;以及當(dāng)該比較結(jié)果屬于第二類型比較結(jié)果時,對該輸入符號,以初始前綴和后綴來構(gòu)建碼字;其中該后綴是使用指數(shù)哥倫布二值化過程而被構(gòu)建的。
[0018]另一種用于數(shù)字視頻或數(shù)字圖像編碼的從碼字中產(chǎn)生索引值的方法,包含:決定賴斯參數(shù);判定該碼字是否包含第一樣式;當(dāng)該碼字包含該第一樣式時,通過使用指數(shù)哥倫布去二值化過程來解碼該碼字的余數(shù)部分;以及當(dāng)該碼字不包含該第一樣式時,通過使用截斷賴斯去二值化過程來解碼該整個碼字。除數(shù)字視頻外,也能用在數(shù)字圖像編碼/解碼。
[0019]再一種用于數(shù)字視頻或數(shù)字圖像解碼的從碼字中產(chǎn)生索引值的方法,包含:因應(yīng)具有第一樣式的該碼字的第一部分決定選定閾值,其中該選定閾值是基于賴斯參數(shù);基于該第一部分后的該碼字的第二部分中的第二樣式,產(chǎn)生位移以因應(yīng)具有該第一樣式的該第一部分;基于該第二部分后的該碼字的第三部分中的第三樣式,產(chǎn)生一數(shù)值以因應(yīng)具有該第一樣式的該第一部分;將該選定閾值、該位移、以及該數(shù)值組合,以產(chǎn)生該索引值;以及基于該產(chǎn)生的索引值,更新該賴斯參數(shù)。
[0020]上述輸入符號二值化以及從碼字中產(chǎn)生索引值的方法比現(xiàn)有技術(shù)的編/解碼方法更快、效率更高。
【【專利附圖】
【附圖說明】】
[0021]圖1為依據(jù)傳統(tǒng)技術(shù)將輸入符號編碼成截斷賴斯碼字的方法流程圖。
[0022]圖2A和圖2B為對于不同的賴斯參數(shù),使用混合截斷賴斯二值化、指數(shù)哥倫布二值化方案來編碼輸入符號的表格。
[0023]圖2C為使用指數(shù)哥倫布方案編碼輸入符號的表格。
[0024]圖2D和圖2E為代表圖2A分別包含四個1和三個1前綴類型的表格。
[0025]圖3為依據(jù)本發(fā)明實施例的編碼輸入符號的方法流程圖。
[0026]圖4為依據(jù)本發(fā)明實施例的解碼碼字的方法流程圖。
[0027]圖5為依據(jù)傳統(tǒng)技術(shù)的解碼碼字的方法流程圖。
[0028]圖6為本發(fā)明閾值選擇、TR和EG 二值化平行處理的編碼實施例示意圖。
[0029]圖7為用于數(shù)字視頻或數(shù)字圖像的從碼字中產(chǎn)生索引值的實施例示意圖。
[0030]圖8為用于數(shù)字視頻或數(shù)字圖像的從碼字中產(chǎn)生索引值的實施例示意圖。
【【具體實施方式】】
[0031 ] 請參閱圖2A,其為對于賴斯參數(shù)從0到4,使用混合二值化方案所編碼的一系列輸入符號。如表格第二列所示,當(dāng)賴斯參數(shù)(cRP)等于0時,閾值(cTRMax)為4,其中低于該閾值時使用截斷賴斯二值化來編碼輸入符號;當(dāng)賴斯參數(shù)等于1時,閾值為8,其中低于該閾值時使用截斷賴斯二值化來編碼輸入符號;當(dāng)賴斯參數(shù)等于2時,閾值為16,其中低于該閾值時使用截斷賴斯二值化來編碼輸入符號;當(dāng)賴斯參數(shù)等于3時,閾值為32,其中低于該閾值時使用截斷賴斯二值化來編碼輸入符號;以及當(dāng)賴斯參數(shù)等于4時,閾值為64,其中低于該閾值時使用截斷賴斯二值化來編碼輸入符號。此外,當(dāng)賴斯參數(shù)等于0時,對低于閾值的輸入符號的TR 二值化相當(dāng)于截斷一元二值化方案。類似地,在圖2B的情況下,對于賴斯參數(shù)等于0,1,2,3和4,閾值(cTRMax)分別是7,14,26,46和78,其中低于該閾值時使用TR二值化對輸入符號進(jìn)行編碼。
[0032]此外,當(dāng)輸入符號等于或大于閾值時,可使用前綴和后綴來編碼輸入。該后綴可單獨由EGk編碼來編碼,或由一個跟隨了后綴的EG0來編碼。圖2C為k = 0?4的一些EGk編碼。圖2D和圖2E為圖2A具有不同前綴類型的代表。從圖2D表格的第二列來看,可以觀察到等于或超過閾值的任何輸入符號將具有由四個1組成的初始前綴,然而當(dāng)輸入符號低于閾值時,所創(chuàng)建的碼字會有所不同。以賴斯參數(shù)等于0為例,超過3(例如4,5等)的輸入符號將具有由四個1組成的初始前綴以及由EGK碼所編碼的后綴,其中K= 1。以賴斯參數(shù)等于1為例,超過7 (例如8,9,10等)的輸入符號將具有由四個1組成的初始前綴以及由EGK碼所編碼的后綴,其中Κ = 2。對于賴斯參數(shù)等于1的輸入符號12,閾值為8。通過使用EG2函數(shù)與等于4(來自于輸入符號與閾值之間的差異,12-8)的輸入來編碼碼字后綴。參照圖2C,相應(yīng)的碼字是‘100 00’。因此,最后的碼字CW-2D是‘1111 100 00’。類似地,當(dāng)賴斯參數(shù)等于0時,如圖2Ε的表中所示,超過2 (例如3,4等)的輸入符號將具有由三個1組成的初始前綴以及由EGK碼所編碼的后綴,其中Κ = 0。當(dāng)賴斯參數(shù)等于1時,如圖2Ε的表中所示,超過5 (例如6,7,8等)的輸入符號將具有由三個1組成的初始前綴以及由EGK碼所編碼的后綴,其中Κ = 1。對于賴斯參數(shù)等于1的輸入符號12,閾值為6。通過使用EG1函數(shù)與等于6(由12-6得到)的輸入來編碼碼字后綴。參照圖2C,相應(yīng)的碼字是‘11000 0’。因此,最后的碼字CW-2E是‘111 11000 0’。碼字CW-2D和CW-2E實際上是相同的。
[0033]對于賴斯參數(shù)等于1 (例如cRP = 1)的輸入符號12,閾值為8且其相應(yīng)的初始前綴為‘1111’。接著依據(jù)該CRP,通過將其剩余值(12-8 = 4)劃分為商數(shù)和余數(shù),可產(chǎn)生剩余碼字(remaining codeword),或者說后綴碼字。使用EG0 二值化來編碼商數(shù),而由二進(jìn)制定長碼(fixed-length code)(其長度取決于cRP)來編碼余數(shù)(remainder)。在這種情況下,cRP = 1,因此其剩余值4可以被右移2(cRP+l)比特,以產(chǎn)生商數(shù)1且其對應(yīng)的EG0碼為‘100’,如圖2C所示。通過自剩余值減去左移2比特的商數(shù),獲得余數(shù),且結(jié)果為0。接著用cRP+1 二進(jìn)制長度的定長碼字‘00’表示余數(shù)。或者可以從二進(jìn)制格式的輸入符號的(cRP+1)比特最低有效位(LSB)中選出余數(shù)。在這種情況下,輸入符號12的二進(jìn)制格式為‘1100’且其2比特最低有效位部分為‘00’。或者可以從二進(jìn)制格式的剩余值的(cRP+1)比特最低有效位中選出余數(shù)。在這種情況下,剩余值4的二進(jìn)制格式為‘100’且其2比特最低有效位部分為‘00’。簡單地說,cRP = 1的輸入符號12具有初始前綴‘llll’、EG0碼字部分‘100’、以及定長碼字部分‘00’。其整個碼字是‘1111 100 00’,這與CW-2D和CW-2E相同??傊?,優(yōu)選方法基于指數(shù)哥倫布二值化來產(chǎn)生相同的碼字。
[0034]如前所述,當(dāng)輸入符號等于或大于閾值時,也可使用前綴和后綴來編碼輸入,其中后綴可以由EG0編碼,其后跟隨另一后綴。從圖2D中表格第三列來看,以賴斯參數(shù)等于1為例,超過7 (例如8,9,10等)的輸入將具有由四個1組成的初始前綴以及EG0碼,該EG0碼后跟隨一個定長編碼的2比特二進(jìn)制格式的后綴。定長碼字的長度可由賴斯參數(shù)來決定。以圖2D為例,對于賴斯參數(shù)等于0,1,2,3,4,定長碼字的長度分別是1,2,3,4,5。
[0035]較小碼字的編碼用較小的賴斯參數(shù)更高效,但較大碼字用較大的賴斯參數(shù)編碼更高效。這就是為何賴斯參數(shù)(以及因此cTRMax)將被更新,并根據(jù)該更新的賴斯參數(shù)來編碼輸入符號。從圖2B的表格來看,可以看到超過閾值的任何輸入符號將有由8個1組成的初始前綴,然而低于閾值時,所創(chuàng)建的碼字會有所不同。
[0036]由于閾值和賴斯參數(shù)是可變的,本發(fā)明首先提出,判定欲編碼的輸入符號是否高于或低于當(dāng)前閾值。如果輸入符號低于閾值,則可以通過使用上述TR 二值化來直接創(chuàng)建該碼字。然而,如果輸入符號高于閾值,則可以使用預(yù)定義樣式(predefined pattern)(例如,一連串的四個1)來立即創(chuàng)建初始前綴。接著可以從輸入符號中減去閾值來確定后綴,以及上述EGk 二值化可用來創(chuàng)建該碼字的后綴部分。對于超過閾值的輸入符號,不需要考慮TR二值化,并且根據(jù)已設(shè)定的樣式(set pattern)可以創(chuàng)建初始前綴。此方法在圖3中示出,步驟如下:
[0037]步驟300:開始;
[0038]步驟302:輸入符號小于閾值嗎?如果是,則轉(zhuǎn)到步驟310 ;如果不是,則轉(zhuǎn)到步驟304 ;
[0039]步驟304:創(chuàng)建初始前綴;
[0040]步驟306:使用EGk 二值化過程來創(chuàng)建后綴二進(jìn)制串;
[0041]步驟308:將后綴二進(jìn)制串添加到前綴;轉(zhuǎn)到步驟312 ;步驟310:使用TR二值化方案來創(chuàng)建碼字;
[0042]步驟312:結(jié)束。
[0043]如圖3所示,當(dāng)判定輸入符號低于閾值時,可使用截斷賴斯二值化方案來直接創(chuàng)建該碼字。當(dāng)輸入符號超過閾值時,可依據(jù)第一樣式(例如,一連串的四個1)來直接創(chuàng)建初始前綴,接著使用EGk 二值化來創(chuàng)建后綴位。
[0044]本發(fā)明也可以描述如下。本發(fā)明首先提出,通過比較輸入符號與閾值來確定輸入符號被編碼的方式,其中該閾值是依據(jù)當(dāng)前的賴斯參數(shù)(cRP)來選擇的。如果比較結(jié)果指示第一狀態(tài)——例如,輸入符號小于該閾值,則對于所述輸入符號,使用截斷賴斯二值化過程來構(gòu)建碼字。如果比較結(jié)果指示第二個狀態(tài)——例如,輸入符號大于或等于所述閾值,則對于所述輸入符號,使用初始前綴和后綴來構(gòu)建碼字,其中后綴是使用指數(shù)哥倫布二值化來構(gòu)建的。
[0045]更具體地,閾值的選擇方法可能會影響到輸入符號與選定閾值的比較方法。圖2D的表格第二列的情況,以賴斯參數(shù)(cRP)為0為例。當(dāng)閾值被選擇為4時,比較輸入符號3與閾值4的結(jié)果指不第一狀態(tài),即,輸入符號小于選定閾值。在這種情況下,對于輸入符號3應(yīng)用TR 二值化過程。比較另一輸入符號4與閾值4的結(jié)果指示第二個狀態(tài),即,輸入符號等于選定閾值。在這種情況下,對于具有初始前綴(步驟304)的輸入符號4應(yīng)用指數(shù)哥倫布二值化(步驟306)。
[0046]在圖2E中,當(dāng)閾值被選擇為3時,比較輸入符號3與閾值3的結(jié)果指示第三狀態(tài),即,輸入符號等于選定閾值。在這種情況下,對于具有初始前綴(步驟304)的輸入符號3應(yīng)用指數(shù)哥倫布二值化(步驟306)。比較另一輸入符號4與閾值3的結(jié)果指示第四狀態(tài),即,輸入符號大于選定閾值。在這種情況下,對于具有初始前綴(步驟304)的輸入符號4仍然應(yīng)用指數(shù)哥倫布二值化(步驟306)。
[0047]本發(fā)明還提供了一種使用混合去二值化方案解碼碼字的方法。該方法依賴于一個事實,即對于每一賴斯參數(shù)和其相應(yīng)的閾值,等于及大于閾值的輸入符號將包含第一樣式Pi (例如由四個1組成的初始前綴)。
[0048]對于由四個1組成的第一樣式(這里指定為樣式Pi),可知輸入符號必須等于或高于閾值。接著將確定賴斯參數(shù)和閾值,并由此可獲得對應(yīng)于初始前綴的第一索引值(在本文中,“索引值”也可稱為“解碼值”)。例如,如果cRP為1,初始前綴對應(yīng)的第一索引值將等于8。然后可使用EGk解碼得出后綴。
[0049]當(dāng)沒有發(fā)現(xiàn)樣式Pi時,應(yīng)用更復(fù)雜的解碼流程。在這種情況下,如果賴斯參數(shù)等于0,則由TR 二值化來編碼碼字,且該碼字只由商數(shù)部分組成。因此,基于一元格式的位串樣式1來產(chǎn)生商數(shù)。碼字的值將等于獲得的商數(shù)。例如,碼字“110”不包含樣式Pi。因此,使用TR去二值化來解碼碼字“110”的值,且解碼后等于2。
[0050]如果賴斯參數(shù)大于0,則該碼字由商數(shù)部分和余數(shù)部分組成。基于上述方法使用TR 二值化來編碼商數(shù)部分。在產(chǎn)生商數(shù)部分之后,接著基于二進(jìn)制格式的位串樣式2來產(chǎn)生余數(shù)部分。通過將碼字的后綴部分當(dāng)做二進(jìn)制值處理,可產(chǎn)生余數(shù)部分。然后,將商數(shù)(二進(jìn)制格式)和余數(shù)連結(jié)(concatenat1n)獲得碼字的值。或者,通過將余數(shù)與位移后的商數(shù)部分相加,也可獲得碼字的值。例如,對于賴斯參數(shù)等于1的碼字“1101”不包含樣式Pi。商數(shù)部分等于2(或2’blO以二進(jìn)制格式)且余數(shù)部分等于1。這個碼字的值是{2’ blO, 1’ 1} = 5?;蛘?,這個碼字的值也可以由1+2〈〈1 = 5來得到。
[0051]請參閱圖4和圖5,分別為上述方法的范例以及根據(jù)傳統(tǒng)技術(shù)解碼碼字的方法的范例。通過比較這兩個圖,可以看到,本發(fā)明的方法提供了當(dāng)索引值等于或大于預(yù)定閾值時兩種快速解碼碼字的方法,這與傳統(tǒng)技術(shù)相比可實現(xiàn)更直接的解碼。
[0052]步驟400:開始;
[0053]步驟402:發(fā)現(xiàn)了什么樣式?如果該樣式包含第一樣式Pi,則轉(zhuǎn)到步驟412 ;如果該樣式不包含樣式Pi,則轉(zhuǎn)到步驟404 ;
[0054]步驟404:基于第一部分來產(chǎn)生商數(shù);
[0055]步驟406:賴斯參數(shù)大于0嗎?如果是,則轉(zhuǎn)到步驟408 ;如果否,則轉(zhuǎn)到步驟416 ;
[0056]步驟408:基于第一部分后的第二部分來產(chǎn)生余數(shù);
[0057]步驟410:將余數(shù)與商數(shù)連結(jié);轉(zhuǎn)到步驟416 ;
[0058]步驟412:確定賴斯參數(shù)以將索引值設(shè)定為對應(yīng)于賴斯參數(shù)的閾值;
[0059]步驟414:基于樣式Pi后的第三部分,將一數(shù)值與索引值相加;
[0060]步驟416:結(jié)束。
[0061]在上述說明中,截斷賴斯去二值化應(yīng)用在以下情形中:樣式包含一個一元樣式作為碼字的第一部分,該碼字不等于樣式Pi。第一部分之后的碼字的第二部分是使用截斷賴斯二值化編碼的碼字的非一元(non-unary)部分(即后綴)。在另一種情況下,如果碼字包含樣式Pi,則第三部分是該碼字的后綴且將由EGk過程來解碼其值(步驟414)。接著,這個值將與根據(jù)cRP和樣式Pi所產(chǎn)生的索引值相加。以碼字“1111 0 01”和cRP = 1為例,這個碼字包含樣式Pi “1111”且對應(yīng)于cRP = 1的其索引值為8。這個碼字的后綴為“0 01”且EGk去二值化后,其對應(yīng)的值為1。因此,cRP = 1的碼字“1111 0 01”表示值8+1 =9。
[0062]如前所述,也可利用碼字的三個部分來編碼輸入:前綴、EG0以及后綴。在碼字“1111 0 01”與cRP= 1的情況中,發(fā)現(xiàn)樣式Pi“l(fā)lll”,其EGO碼字部分為‘0’,代表EGO去二值化后的0。接著通過將這個值位移cRP+1位,產(chǎn)生位移(offset)值且結(jié)果為0(0〈〈2)。后綴是cRPP+1比特長的二進(jìn)制碼字‘01’(表示數(shù)值1)。因此,cRP = 1的碼字“1111001”代表值8+0+1 =9。對于另一個例子,輸入碼字為‘1111 100 00’,發(fā)現(xiàn)樣式Pi “1111”,且其EG0碼字部分為‘100’,其代表位移值4(1〈〈2)。二進(jìn)制格式的后綴碼字‘00’表示值0。因此,cRP = 1 的碼字 ‘1111 100 00’ 表示值 8+4+0 = 12。
[0063]碼字“110 1”與cRP = 1作為另一個例子。這個碼字不包含樣式Pi。在應(yīng)用TR去二值化處理后,商數(shù)和余數(shù)分別是2和1。因此,cRP = 1的碼字“1101”表示數(shù)值{2’bl0,l’bl} =5。當(dāng)應(yīng)用圖2B所示的EGO時,第一部分是一元樣式,其不等于樣式Pi。第二部分為使用截斷賴斯二值化所編碼的碼字的非一元部分(即二進(jìn)制)。
[0064]作為比較,圖5為傳統(tǒng)的解碼碼字的方法。圖5的步驟如下:
[0065]步驟500:開始;
[0066]步驟502:基于第一部分來產(chǎn)生商數(shù);
[0067]步驟504:賴斯參數(shù)大于0嗎?如果是,則轉(zhuǎn)到步驟506 ;如果不是,則轉(zhuǎn)到步驟510 ;
[0068]步驟506:基于第二部分來產(chǎn)生余數(shù);
[0069]步驟508:將余數(shù)與商數(shù)連結(jié)以產(chǎn)生索引值;
[0070]步驟510:索引值大于TRMax+Ι嗎?如果是,則轉(zhuǎn)到步驟512 ;如果不是,則轉(zhuǎn)到步驟 514 ;
[0071]步驟512:基于第三部分,將一數(shù)值與索引值相加;
[0072]步驟514:結(jié)束。
[0073]以上所述,第一部分、第二部分和第三部分與圖4中所定義的部分相同。通過比較這兩個圖可以看到,尋找樣式匹配的步驟(圖4的步驟402)使得包含樣式Pi的碼字的索引值的解碼速度遠(yuǎn)遠(yuǎn)超過現(xiàn)有技術(shù)。此外,當(dāng)該方法確定發(fā)現(xiàn)第一部分(即不同于樣式Pi的一元樣式)時,所述解碼方法比現(xiàn)有技術(shù)更快,因為該方法并不需要搜索第三部分,或基于第一和第二部分判定所解碼的索引值是否大于閾值。
[0074]進(jìn)一步說明,上述混合TR/EGk 二值化方案的編碼和解碼方法可以通過軟件來實現(xiàn),也可以利用硬件實現(xiàn),關(guān)于硬件的實際做法也有各種變化。下面是以速度為考量的平行處理,若速度要求可以慢一點,則還可以用順序方式來做。
[0075]圖6的電路為本發(fā)明閾值選擇單元602、TR單元604的二值化和EG單元606的二值化平行處理的編碼實施例示意圖。由于平行處理,本實施例具有較短的處理延遲。在功耗更為重要的情況下,可先產(chǎn)生比較結(jié)果,接著TR單元604和EG單元606中只有一個會激活(active)。比較器608將輸入符號和基于賴斯參數(shù)產(chǎn)生的閾值進(jìn)行比較,如果比較結(jié)果屬于第一類型,則多工器610選擇由TR單元604執(zhí)行截斷賴斯二值化過程來產(chǎn)生碼字;如果比較結(jié)果屬于第二類型,則以EG單元606執(zhí)行指數(shù)哥倫布二值化過程產(chǎn)生的碼字連同初始前綴一起被多工器610選擇。
[0076]在一實施例中,截斷賴斯二值化過程還可包含構(gòu)建前綴和后綴。前綴是由一系列比特“1”(其后跟隨1比特“0”)而形成?!?”的比特數(shù)目依據(jù)輸入符號和賴斯參數(shù)(cRP)來決定。前綴還可通過包含輸入符號和賴斯參數(shù)的查找表來實現(xiàn)。由截斷賴斯二值化過程產(chǎn)生的碼字的后綴為定長編碼,其中后綴的比特長度由賴斯參數(shù)來決定。
[0077]在一個優(yōu)選實施例中,最低有效位的數(shù)目與賴斯參數(shù)相同,并且通過選擇二進(jìn)制形式輸入符號的最低有效位的數(shù)目可以實現(xiàn)后綴。由截斷賴斯二值化產(chǎn)生的碼字接著可以表示為:
[0078]N 比特 TR 碼字={Xn Xn_l…X4 X3 X2 XI} = {M{1’bl},1’b0, Symbol [A:B]}
[0079]其中,前綴為{M{1’ bl}, r b0},后綴為Symbol [A:B]0更具體地,A = cRP以及B=0為其中一種實施方式,如使用圖2D所述表格的實施例。在另一優(yōu)選實施例中,例如使用圖2E所示表格的實施例,A = cRP-Ι以及B = 0。
[0080]當(dāng)指數(shù)哥倫布二值化過程的結(jié)果被選擇時,初始前綴也產(chǎn)生了。初始前綴不依賴于賴斯參數(shù)而構(gòu)建。這個過程不同于以截斷賴斯二值化來產(chǎn)生前綴,以截斷賴斯二值化來產(chǎn)生前綴依賴于賴斯參數(shù)。所提出的的方法簡化了初始前綴的產(chǎn)生,進(jìn)而導(dǎo)致降低實施成本和處理時間來產(chǎn)生初始前綴。
[0081]通過具有輸入符號和賴斯參數(shù)的查找表可容易實現(xiàn)指數(shù)哥倫布二值化過程。為了降低查找表的輸入比特,通過從符號中減去閾值(依據(jù)賴斯參數(shù)來決定)可獲得剩余量。接著通過具有輸入剩余量和賴斯參數(shù)的查找表可容易地實現(xiàn)指數(shù)哥倫布二值化過程。為了進(jìn)一步降低查找表的大小,可通過不同的方法來產(chǎn)生指數(shù)哥倫布二值化過程的商數(shù)部分和余數(shù)部分。商數(shù)仍然通過具有輸入殘余量(或符號)及賴斯參數(shù)的查找表來獲得。指數(shù)哥倫布二值化過程的余數(shù)部分可以通過類似于產(chǎn)生截斷賴斯二值化過程的后綴部分的方法,選擇輸入符號的最低有效位的數(shù)目來產(chǎn)生。此外,用于產(chǎn)生指數(shù)哥倫布二值化過程的余數(shù)的硬件和用于產(chǎn)生截斷賴斯二值化過程的后綴的硬件可以共享。實施成本可以進(jìn)一步降低。
[0082]圖7為用于數(shù)字視頻或數(shù)字圖像的從碼字中產(chǎn)生索引值的實施例示意圖。碼字被輸入至樣式檢測單元702以檢測碼字中是否包含預(yù)定樣式。如果預(yù)定樣式在碼字中,則多工器712會選擇指數(shù)哥倫布去二值化過程來產(chǎn)生對應(yīng)于輸入碼字的索引值;否則使用截斷賴斯去二值化過程。
[0083]當(dāng)選擇指數(shù)哥倫布去二值化過程時,位移產(chǎn)生單元708使用賴斯參數(shù)來產(chǎn)生位移(例如,cTRMax)。該位移可以通過具有賴斯參數(shù)的查找表作為輸入表來產(chǎn)生。接著加法器710將該位移加上由EG單元706執(zhí)行指數(shù)哥倫布去二值化過程產(chǎn)生的數(shù)值以產(chǎn)生索引值。
[0084]當(dāng)選擇截斷賴斯去二值化過程時,TR單元704使用賴斯參數(shù)來確定碼字的商數(shù)和余數(shù)部分。接著依據(jù)確定的商數(shù)和余數(shù)部分來產(chǎn)生索引值。
[0085]在兩種情況中,產(chǎn)生的索引值都被用來更新賴斯參數(shù)以用于解碼下一個碼字。
[0086]在一些優(yōu)選實施例中,樣式檢測的結(jié)果被用來作為位移產(chǎn)生單元708、EG單元706的指數(shù)哥倫布去二值化過程和TR單元704的截斷賴斯去二值化過程的門控制(gatingcontrol),以減少信號轉(zhuǎn)換進(jìn)而導(dǎo)致降低功耗。在這些實施例中,上述示意圖中的多工器610/712可以被替換為組合邏輯的0R功能。
[0087]在一些優(yōu)選實施例中,產(chǎn)生索引值還包含標(biāo)識(identify)碼字的一部分作為二進(jìn)制數(shù);以及將該二進(jìn)制數(shù)與依據(jù)碼字另一部分所解碼的數(shù)值相加。這簡化了硬件設(shè)計復(fù)雜度。將該二進(jìn)制數(shù)標(biāo)識方法應(yīng)用至截斷賴斯去二值化過程,可以容易地產(chǎn)生余數(shù)并將其與商數(shù)相加以產(chǎn)生索引值。該二進(jìn)制數(shù)標(biāo)識方法也可被應(yīng)用至指數(shù)哥倫布去二值化過程。以碼字“1111 0 01”為例,“01”可被視為這一目的的二進(jìn)制數(shù)。
[0088]圖8為用于數(shù)字視頻或數(shù)字圖像的從碼字中產(chǎn)生索引值的實施例示意圖。碼字被輸入至第一部分確定單元802以檢測該碼字是否具有預(yù)定樣式。如果預(yù)定樣式存在,則基于賴斯參數(shù)來選擇閾值(例如,cTRMax),該閾值可通過具有賴斯參數(shù)的查找表作為輸入表來產(chǎn)生。此外,因應(yīng)具有第一樣式的第一部分,該第一部分后的該碼字的第二部分中的第二樣式被EG單元806用來產(chǎn)生位移值以及該第二部分后的該碼字的第三部分中的第三樣式被第三部分確定單元808用來產(chǎn)生后綴值。該后綴為cRPP+1比特長度的二進(jìn)制編碼。因此,后綴可輕易從輸入碼字的最低有效位cRPP+1比特中提取。EG單元806執(zhí)行指數(shù)哥倫布去二值化過程。更具體地,EG單元806執(zhí)行EG0去二值化過程。接著組合單元810通過將閾值、位移值和后綴值相加計算出最后的索引值。此外,如果EG單元806執(zhí)行EGk去二值化過程,則賴斯參數(shù)也被要求作為其輸入。
[0089]另一方面,如果碼字不包含預(yù)定樣式,則對應(yīng)于該碼字的索引值通過使用TR單元804來產(chǎn)生,該TR單元804執(zhí)行截斷賴斯去二值化過程,以基于賴斯參數(shù)來產(chǎn)生商數(shù)和余數(shù)。接著可以從商數(shù)和余數(shù)獲得索引值。
[0090]在一些實施例中,余數(shù)部分可以通過標(biāo)識碼字的一部分作為二進(jìn)制數(shù)來產(chǎn)生,并利用第三部分確定單元來產(chǎn)生余數(shù)。接著基于組合單元810中的商數(shù)和余數(shù)計算得到最后的索引值。
[0091]綜上所述,針對混合TR/EGk 二值化方案,提供編碼和解碼方法,在進(jìn)行編碼和解碼之前,先進(jìn)行閾值比較,根據(jù)比較結(jié)果決定具體編碼和解碼的方案,結(jié)果比現(xiàn)有技術(shù)的方法更快、編碼效率更高,需要的成本更小,也就是需要的硅面積更小。所提出的方法可以用于各種圖像/視頻編碼系統(tǒng)中,如H265/HEVC。
[0092]本發(fā)明雖以較佳實施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定者為準(zhǔn)。
【權(quán)利要求】
1.一種輸入符號二值化的方法,使用帶賴斯參數(shù)的混合截斷賴斯/k階次指數(shù)哥倫布二值化方案,其特征在于,包含: 決定閾值; 將該輸入符號與該閾值做比較; 當(dāng)比較結(jié)果屬于第一類型比較結(jié)果時,對該輸入符號使用截斷賴斯二值化過程來構(gòu)建碼字;以及 當(dāng)該比較結(jié)果屬于第二類型比較結(jié)果時,對該輸入符號以初始前綴和后綴來構(gòu)建碼字; 其中該后綴是使用指數(shù)哥倫布二值化過程而被構(gòu)建的。
2.如權(quán)利要求1所述的方法,其特征在于,該第一類型比較結(jié)果指示該輸入符號小于該閾值,以及該第二類型比較結(jié)果指示該輸入符號等于或大于該閾值。
3.如權(quán)利要求1所述的方法,其特征在于,該閾值是基于該賴斯參數(shù)來決定的,以及該賴斯參數(shù)依據(jù)每一編碼的輸入符號來更新。
4.如權(quán)利要求1所述的方法,其特征在于,使用截斷賴斯二值化過程來構(gòu)建碼字還包含使用定長碼來構(gòu)建該碼字的后綴,其中該碼字的該后綴的比特長度等于該賴斯參數(shù)。
5.如權(quán)利要求1所述的方法,其特征在于,使用截斷賴斯二值化過程來構(gòu)建碼字的步驟包含: 依據(jù)該輸入符號和該賴斯參數(shù),形成等于一數(shù)量的I的初始前綴; 附加一個O至該初始前綴;以及 通過從二進(jìn)制形式的該輸入符號的最低有效位中選擇,確定至少一個最低有效位作為后綴,其中該最低有效位的數(shù)量是依據(jù)該賴斯參數(shù)來決定的。
6.如權(quán)利要求1所述的方法,其特征在于,使用截斷賴斯二值化過程來構(gòu)建碼字的步驟還包含: 通過包含該賴斯參數(shù)的輸入的查找表來構(gòu)建前綴。
7.如權(quán)利要求1所述的方法,其特征在于,該碼字的該初始前綴不依賴于該賴斯參數(shù)被構(gòu)建,以及該后綴依賴于該賴斯參數(shù)被構(gòu)建。
8.如權(quán)利要求1所述的方法,其特征在于,對于該輸入符號,以初始前綴和后綴來構(gòu)建碼字還包含: 通過從二進(jìn)制形式的該輸入符號的最低有效位中選擇,確定至少一個最低有效位作為后綴,其中該最低有效位的數(shù)量是依據(jù)該賴斯參數(shù)來決定的。
9.如權(quán)利要求1所述的方法,其特征在于,該構(gòu)建碼字的步驟包含: 通過從二進(jìn)制形式的該輸入符號的最低有效位中選擇,產(chǎn)生該碼字的至少一個最低有效位,其中該最低有效位的數(shù)量是依據(jù)該賴斯參數(shù)來決定的。
10.如權(quán)利要求1所述的方法,其特征在于,通過使用該指數(shù)哥倫布二值化過程構(gòu)建該后綴的步驟包含: 從該輸入符號中減去該閾值。
11.一種用于數(shù)字視頻或數(shù)字圖像編碼的從碼字中產(chǎn)生索引值的方法,其特征在于,包含: 決定賴斯參數(shù); 判定該碼字是否包含第一樣式; 當(dāng)該碼字包含該第一樣式時,通過使用指數(shù)哥倫布去二值化過程來解碼該碼字的余數(shù)部分;以及 當(dāng)該碼字不包含該第一樣式時,通過使用截斷賴斯去二值化過程來解碼該整個碼字。
12.如權(quán)利要求11所述的方法,其特征在于,還包含: 當(dāng)該碼字包含該第一樣式時,通過基于該賴斯參數(shù)決定位移來決定該第一樣式的解碼后的值;以及 對該指數(shù)哥倫布去二值化過程解碼后的值加上該位移,以產(chǎn)生該索引值。
13.如權(quán)利要求11所述的方法,其特征在于,還包含基于該產(chǎn)生的索引值來更新該賴斯參數(shù)。
14.如權(quán)利要求11所述的方法,其特征在于,當(dāng)該碼字不包含該第一樣式時,通過使用截斷賴斯去二值化過程來解碼該碼字包含:基于該賴斯參數(shù)來產(chǎn)生商數(shù)和余數(shù)。
15.如權(quán)利要求11所述的方法,其特征在于,產(chǎn)生該索引值的步驟包含: 標(biāo)識該碼字的一部分作為二進(jìn)制數(shù);以及 將該二進(jìn)制數(shù)添加至依據(jù)該碼字的其他部分所解碼的值。
16.一種用于數(shù)字視頻或數(shù)字圖像解碼的從碼字中產(chǎn)生索引值的方法,其特征在于,包含: 因應(yīng)具有第一樣式的該碼字的第一部分決定選定閾值,其中該選定閾值是基于賴斯參數(shù); 因應(yīng)具有該第一樣式的該第一部分并基于該第一部分后的該碼字的第二部分中的第二樣式,產(chǎn)生位移; 因應(yīng)具有該第一樣式的該第一部分并基于該第二部分后的該碼字的第三部分中的第三樣式,產(chǎn)生一數(shù)值; 將該選定閾值、該位移、以及該數(shù)值組合,以產(chǎn)生該索引值;以及 基于該產(chǎn)生的索引值,更新該賴斯參數(shù)。
17.如權(quán)利要求16所述的方法,其特征在于,基于該碼字的該第二部分中的該第二樣式的該位移是基于指數(shù)哥倫布去二值化過程而產(chǎn)生的。
18.如權(quán)利要求16所述的方法,其特征在于,基于該碼字的該第三部分中的該第三樣式的該數(shù)值是基于二進(jìn)制定長解碼而產(chǎn)生的,且該長度由該賴斯參數(shù)決定。
19.如權(quán)利要求16所述的方法,其特征在于,還包含: 判定該碼字是否包含第一樣式;以及 當(dāng)該碼字不包含該第一樣式時,基于該賴斯參數(shù),使用截斷賴斯去二值化過程來解碼該整個碼字,以產(chǎn)生商數(shù)和余數(shù)。
20.如權(quán)利要求16所述的方法,其特征在于,還包含: 判定該碼字是否包含第一樣式;以及 當(dāng)該碼字不包含該第一樣式時,使用截斷賴斯去二值化過程來解碼該整個碼字,其中該解碼包含:標(biāo)識該碼字的一部分作為二進(jìn)制數(shù),并將該二進(jìn)制數(shù)添加至依據(jù)該碼字的另一部分所產(chǎn)生的值。
【文檔編號】H04N19/91GK104378634SQ201410394373
【公開日】2015年2月25日 申請日期:2014年8月12日 優(yōu)先權(quán)日:2013年8月15日
【發(fā)明者】李坤儐, 周漢良, 林亭安, 陳翊豪, 朱啟誠, 賴彥杰 申請人:聯(lián)發(fā)科技股份有限公司