午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種基于哈希表查找的cavld方法

文檔序號:6552586閱讀:268來源:國知局
一種基于哈希表查找的cavld方法
【專利摘要】本發(fā)明公開了一種基于哈希表查找的CAVLD方法,包括以下步驟:S1、根據(jù)語法元素NC的取值范圍,選取對應(yīng)元素對應(yīng)的可變長碼表;S2、讀入數(shù),利用哈希表查找技術(shù)在建立的哈希表查找得到對應(yīng)碼字后綴長度;S4、如果通過哈希表查找到的碼字后綴長度具有惟一值,則根據(jù)公式:碼長=碼字后綴長度+碼字前綴0的個(gè)數(shù)+1,直接確定碼長;如果通過哈希表查找到的碼字后綴長度存在有2個(gè)可能值,則需要再次再讀取1位位流并判斷其值即可確定碼長;S5、根據(jù)確定碼長查找標(biāo)準(zhǔn)codtab()碼表可得到解碼輸出輸入碼流,并計(jì)算輸入碼流中連續(xù)前綴0的個(gè)數(shù);S3、根據(jù)碼字前綴0的個(gè)。本發(fā)明可減少TLSS內(nèi)存消耗,加快查表速度,節(jié)約碼表存儲空間,從而大大提高CAVLD中碼查找性能。
【專利說明】—種基于哈希表查找的CAVLD方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于哈希表查找的CAVLD方法。

【背景技術(shù)】
[0002]H.264/AVC 是由 ITU-VCEG (Internat1nal Telecommunicat1ns Un1nTelecommunicat1n)國際電信聯(lián)盟視頻編碼專家組和IS0/IEC ( Internat1nalOrganizat1n for Standardizat1n / Internat1nal Electrotechnical Commiss1n)國際標(biāo)準(zhǔn)化組織、國際電工技術(shù)委員會共同制定的一種比較先進(jìn)的關(guān)于視頻壓縮編碼的國際標(biāo)準(zhǔn)。由于它具有高效率的編碼壓縮性能、友好網(wǎng)絡(luò)的接口和在較小帶寬上能提供高質(zhì)量視頻圖像傳輸?shù)奶攸c(diǎn),因而在移動視頻通信和圖像存儲壓縮等領(lǐng)域得到了廣泛的應(yīng)用,被普遍認(rèn)為是最有影響力的行業(yè)標(biāo)準(zhǔn)。CAVLD (Adaptive Variable Length Decoding)是
H.264/AVC標(biāo)準(zhǔn)中一種常見編碼熵解碼方式,由于它可以根據(jù)視頻流的不同在多組結(jié)構(gòu)不同的碼表中進(jìn)行動態(tài)的切換,進(jìn)而實(shí)現(xiàn)大大提高視頻編碼效率和質(zhì)量目的。然而,CAVLD在提高視頻編碼效率和質(zhì)量同時(shí),但因其頻繁地查找VLTs (Variable Length Tables),因而消耗了視頻解碼器大量的功耗,所以說,H.264/AVC高性能的獲得是以增加其解碼器功耗為代價(jià)的。
[0003]眾所周知,頻繁進(jìn)行表查找操作會消耗大量內(nèi)存和查找時(shí)間,進(jìn)而產(chǎn)生一個(gè)大的功耗消耗。然而在標(biāo)準(zhǔn)H.264/AVC中,CAVLD需要去解碼五個(gè)語法元素:Coeff_token,Tls,Level, Run_before 和 Total_zeros。其中解碼 Coeff_token, Run_before 和 Total_zeros三個(gè)語法元素需要頻繁查找可變長碼表解碼,因此CAVLD中碼查找花費(fèi)了 H.264/AVC視頻解碼器大量內(nèi)存和查找時(shí)間,進(jìn)而消耗其大量的功耗。所以如何在CAVLD減少頻繁的碼表查找操作,進(jìn)而去減少查找可變長碼表時(shí)的內(nèi)存消耗和時(shí)間,節(jié)約解碼器的功耗,成為我們當(dāng)前關(guān)注的一個(gè)重要問題。針對上述這個(gè)問題,已有一些學(xué)者開展了一些研究并提出了一些很有價(jià)值解決方案。
[0004]在硬件設(shè)計(jì)方面,宋娜等人提出使用Verilog HDL技術(shù)實(shí)現(xiàn)了 CAVLD解碼器,用簡單的加法操作實(shí)現(xiàn)耗時(shí)的查表操作,提高了解碼速度。Heng等人提出一種組合所有碼表成一張碼表,然后再利用子碼表的形式進(jìn)行組織和查找這張碼表的方法;Lee等人提出一種利用流水線的結(jié)構(gòu)實(shí)現(xiàn)常規(guī)操作方法;Wang等人設(shè)計(jì)出一種低功耗高性能的新型解碼器去提高CAVLD整體解碼性能;Fang等人則提出利用CMOS和FPGA技術(shù)聯(lián)合作用共同去提高CAVLD解碼性能。在軟件設(shè)計(jì)部分,一種基于二叉樹表查找通用方法被提出去提高CAVLD解碼查表時(shí)間性能,但由于它獲取內(nèi)存存在一些不確定性,導(dǎo)致這種方法在一些系統(tǒng)中并不是十分有效。李芬等人提出[14]根據(jù)碼字前綴的不同劃分碼表,縮小了查表的范圍,減少對整個(gè)碼表的遍歷實(shí)現(xiàn)減少長碼字解碼的時(shí)間。Moon等人提出利用整數(shù)算術(shù)運(yùn)算符去實(shí)現(xiàn)Run_before和Total_zeros元素的碼表查找方法,從而可大大減少CAVLD解碼查表時(shí)內(nèi)存和時(shí)間的消耗;Lu等人提出一種新熵解碼算法,可提高75.1%-82.7%解碼時(shí)間。Lee等人則提出一種新的碼表結(jié)構(gòu)和新查表方法,以極大減少解碼查表時(shí)內(nèi)存消耗和提高解碼查表速度。Kim等人提出利用基于整數(shù)算術(shù)運(yùn)算符的方法實(shí)現(xiàn)了除了 Coeff_token和Run_before元素外的其它元素表查找方法,從而大大節(jié)省查表內(nèi)存消耗和減少查表時(shí)間。韓晶晶等人提出把CAVLD碼表進(jìn)行劃分為區(qū)域,精確查表范圍,再進(jìn)行熵解碼的查表過程優(yōu)化方法。Uchihara等人針對CAVLD中l(wèi)evel編碼變動問題,提出了一種快速變動方法,此方法能夠減少70%的CAVLD幅值變動消耗能量.針對軟件CAVLC解碼器結(jié)構(gòu),Uchihara等人又提出一種基于幅值長度提取方法,所提方法能夠提高22%解碼器速度。
[0005]本發(fā)明主要針對當(dāng)前H.264/AVC標(biāo)準(zhǔn)中CAVLD過程中TLSS在查找碼表時(shí)存在占用內(nèi)存大,花費(fèi)查表時(shí)間長,消耗碼表存儲空間多的問題,提出了一種基于哈希表查找的CAVLD方法,在碼表查找過程中使用了哈希表查找技術(shù),減少了碼字后綴和碼長的查找操作次數(shù),節(jié)約了查找碼表時(shí)內(nèi)存消耗和查找時(shí)間,進(jìn)而節(jié)省了 CAVLD中功耗。本發(fā)明改進(jìn)了標(biāo)準(zhǔn)CAVLD中TLSS方法,對現(xiàn)有的CAVLD中查表技術(shù)做了擴(kuò)展,大大提高了 CAVLD解碼性能,使其能夠適合于移動環(huán)境下具有小面積,低功耗和快反應(yīng)的嵌入式產(chǎn)品解碼需求。
[0006]上述論述內(nèi)容目的在于向讀者介紹可能與下面將被描述和/或主張的本發(fā)明的各個(gè)方面相關(guān)的技術(shù)的各個(gè)方面,相信該論述內(nèi)容有助于為讀者提供背景信息,以有利于更好地理解本發(fā)明的各個(gè)方面,因此,應(yīng)了解是以這個(gè)角度來閱讀這些論述,而不是承認(rèn)現(xiàn)有技術(shù)。


【發(fā)明內(nèi)容】

[0007]本發(fā)明主要針對當(dāng)前標(biāo)準(zhǔn)CAVLD過程中TLSS方法在查表時(shí)存在大的內(nèi)存,長的查表時(shí)間,高的表存儲空間的問題,提出了一種基于哈希表查找的CAVLD方法,改進(jìn)了當(dāng)前標(biāo)準(zhǔn)的CAVLD中碼表查找方法,擴(kuò)展了現(xiàn)有CAVLD中表查表技術(shù),大大提高了 H.264/AVC中CAVLD性能。
[0008]本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn):
提供一種基于哈希表查找的CAVLD方法,包括以下處理步驟:
51、根據(jù)語法元素NC的取值范圍,選取對應(yīng)元素對應(yīng)的可變長碼表;
52、讀入輸入碼流,并計(jì)算輸入碼流中連續(xù)前綴O的個(gè)數(shù);
53、根據(jù)碼字前綴O的個(gè)數(shù),利用哈希表查找技術(shù)在建立的哈希表查找得到對應(yīng)碼字后綴長度;
54、如果通過哈希表查找到的碼字后綴長度具有惟一值,則根據(jù)公式:碼長=碼字后綴長度+碼字前綴O的個(gè)數(shù)+1,直接確定碼長;如果通過哈希表查找到的碼字后綴長度存在有2個(gè)可能值,則需要再次再讀取I位位流并判斷其值即可確定碼長;
55、根據(jù)確定碼長查找標(biāo)準(zhǔn)codtab()碼表可得到解碼輸出。
[0009]其中,在步驟SI 中,語法兀素對應(yīng)為 Coeff_token, Run_before 和 Total_zeros,可根據(jù)不同NC的取值范圍選取不同的可變長碼表。
[0010]其中,在步驟S3中,哈希表依據(jù)碼字前綴O的個(gè)數(shù)和碼字后綴長度關(guān)系建立,其存儲元素為碼字前綴O的個(gè)數(shù)和碼字后綴長度,在計(jì)算出碼字前綴O的個(gè)數(shù)后,通過建立哈希函數(shù)映射到哈希地址中去,進(jìn)而可查找到碼字后綴長度。
[0011]其中,在步驟S4中,只有當(dāng)碼字后綴長度的個(gè)數(shù)存在2個(gè)可能值時(shí),才需要再次從輸入碼流中讀取I位位流并判斷其值來確定碼字后綴長度,在大部分情況下,碼字前綴O的個(gè)數(shù)與碼字后綴長度存在一一對應(yīng)關(guān)系,經(jīng)過一次查找可確定碼字后綴長度,進(jìn)而確定碼長。
[0012]其中,在步驟S5中,確定了碼長,再查一次查找標(biāo)準(zhǔn)codtab O,可解碼所需碼字。
[0013]本發(fā)明的有益效果是:所提出的一種基于哈希表查找的CAVLD方法,應(yīng)用了哈希表查找的方式去減少碼字后綴和碼長查找操作次數(shù),節(jié)省查表內(nèi)存消耗,查表時(shí)間和存儲空間標(biāo)準(zhǔn),克服了當(dāng)前標(biāo)準(zhǔn)CAVD中TLSS方法查表時(shí)存在查表占用內(nèi)存大,消耗查表時(shí)間長,占據(jù)碼表存儲空間大的缺點(diǎn),減少了 CAVLD功耗,提高了標(biāo)準(zhǔn)CAVLD性能。本發(fā)明改進(jìn)了當(dāng)前H.264/AVC標(biāo)準(zhǔn)中的CAVLD碼表查找過程,擴(kuò)展了現(xiàn)有CAVLD表查找技術(shù),提高了
H.264/AVC中CAVLD在數(shù)據(jù)流上的解碼能力。

【專利附圖】

【附圖說明】
[0014]利用附圖對本發(fā)明作進(jìn)一步說明,但附圖中的實(shí)施例不構(gòu)成對本發(fā)明的任何限制,對于本領(lǐng)域的普通技術(shù)人員,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)以下附圖獲得其它的附圖。
[0015]圖1是本發(fā)明的算法工作流程圖。
[0016]圖2是使用本發(fā)明算法解碼Coeff_token兀素的不例圖。
[0017]圖3是本發(fā)明算法與TLSS算法在測試不同圖像系列時(shí)內(nèi)存消耗比較圖(120幀,QP=28)。
[0018]圖4是本發(fā)明算法與TLSS算法在測試不同圖像系列時(shí)內(nèi)存消耗比較圖(60幀,QP=32)。
[0019]圖5是本發(fā)明算法與TLSS算法在測試不同QP值時(shí)內(nèi)存消耗比較圖(Paris(CIF),60中貞)。
[0020]圖6是本發(fā)明算法與TLSS算法在不同QP值時(shí)內(nèi)存消耗比較圖(Walk (QCIF),120幀)。
[0021]圖7是本發(fā)明算法與TLSS算法在測試不同系列時(shí)表查找時(shí)間方面比較圖(120幀,QP=24)。
[0022]圖8是本發(fā)明算法與TLSS算法在測試不同系列時(shí)表查找時(shí)間方面比較圖(60幀,QP=28)。

【具體實(shí)施方式】
[0023]為了使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)的描述,需要說明的是,在不沖突的情況下,本申請的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0024]如圖1所示,本發(fā)明所述的一種基于哈希表查找的CAVLD方法,包括
在本實(shí)施例中,采用VC++6.0開發(fā)工具作為系統(tǒng)軟件開發(fā)和仿真平臺,選擇JM16.2作為測試模型,本發(fā)明中使用JM16.2測試模型,表I是測試模型中一些重要環(huán)境參數(shù)設(shè)置值,具體如下。 ProfileBaseSne
SAID (Hadamard)On
RDOpiimizat1nI
RD OOn (festalg orithni)
MV smrch range±32 pixels
Reference frame5 frames [qP Il 24,28,32
Mot1n searchFast search
Into intervalO
Mot1n searchFast search
SymbolModeO (CAVLC is used)
QPPrimeyZeraTtansffarniB ]^assFlagO (lossless)
[FileIVlc:c—
EncoderJM 16.2
[0025]表I
表2是本發(fā)明算法建立起來哈希表結(jié)構(gòu)圖,具體如下。
ZZI 贈希寰I鶴字前鱺||令-丨磚字JB疆Bi I ZT
Jid1:撤長璧
--—--OH2 ---—
[口 I ~――
IHOOII IIIer 23 Or 4
OlOI
emip
PO重 I重I222er3S ?rtf
" mmm.....................................................................WOltI I 332?
mm m4雜哪m.mm m1-9 mm 99m嫌酶難嫌雜雜■揮.爾職期
9000000000001 I 12 I12O13
[0026]表2
實(shí)驗(yàn)選用 Mobile (M), Walk (W), Paris (P), Football (F), Soccer (S)和 Walk(W)等六種不同格式圖像系列(CIF與QCIF)作為測試系列,在相同測試條件和環(huán)境下,通過測試不同系列圖像在不同的幀長度,QP值等參數(shù)下,以對比本發(fā)明所提方法與TLSS標(biāo)準(zhǔn)方法在查找碼表時(shí)內(nèi)存消耗,時(shí)間消耗和碼表存儲空間消耗三方面情況,從而評估本發(fā)明所提算法整體性能
圖1是基于哈希表查找CAVLD方法工作流程圖。在假設(shè)輸入解碼碼流為0000100011-,NC取值為O ( NC<2情況下,以解碼Coeff_token為例,闡述本發(fā)明所提基于哈希表查找的CAVLD方法解碼過程。其具體過程可分成如下幾個(gè)步驟完成:
S1、根據(jù)NC的值O ( NC〈2,選取Coeff_ token的VLCTO作為程序入口 ; 52、讀取輸入碼流,計(jì)算輸入碼流0000100011中碼字連續(xù)的前綴O的個(gè)數(shù)為4;
53、由于碼字前綴O的個(gè)數(shù)為4,查找建立的哈希表(如表2)中哈希地址為4地址,可查找得到對應(yīng)碼字后綴長度為I或2 ;
54、由于通過哈希表查找到的碼字后綴長度存在有2個(gè)可能值(I或2),則需要再次從輸入碼流中讀取I位位流(0),判斷其值為0,可確定碼長7。
[0027]S5、根據(jù)確定碼長(7)查找標(biāo)準(zhǔn)codtab O碼表可得到解碼碼字為0x65。
[0028]圖2是使用本發(fā)明算法解碼Coeff_token具體過程圖。請注意,解碼Run_before和Total_zeros元素的過程方法與解碼Coeff_token過程方法相類似。
[0029]圖3至圖6分別是本發(fā)明方法與標(biāo)準(zhǔn)TLSS方法在測試不同圖像序列不同QP下碼表查找時(shí)內(nèi)存消耗情況。其中圖3和圖4分別是本發(fā)明算法與TLSS算法在測試不同圖像系列(120幀,QP=28和60幀,QP=32)時(shí)內(nèi)存消耗比較圖。圖5和圖6分別是本發(fā)明算法與TLSS算法在測試不同QP值(Paris (CIF),60幀和Walk (QCIF),120幀)時(shí)內(nèi)存消耗比較圖。從圖3和圖6可以看出,不論是在不同序列圖像還是不同QP值序列測試下,我們所提發(fā)明方法均在碼表內(nèi)存消耗方面低于TLSS方法,可以節(jié)省約25%碼表內(nèi)存消耗。分析其節(jié)省主要原因主要在于,我們所提方法采用了哈希表查找方式減少標(biāo)準(zhǔn)TLSS中碼字后綴長度和碼長連續(xù)查找次數(shù),從而節(jié)約了碼表查找時(shí)內(nèi)存消耗,提高了 CAVLD性能。
[0030]圖7至圖8是本發(fā)明算法與標(biāo)準(zhǔn)TLSS算法在解碼不同圖像序列(I 20幀,QP=24和60幀,QP=28)時(shí)碼表查找花費(fèi)時(shí)間情況。從圖7至圖8可以看出,本發(fā)明所提基于哈希表查找方法在碼表查找時(shí)間方面優(yōu)于標(biāo)準(zhǔn)的TLSS方法,可以節(jié)省約20%的碼表查找時(shí)間。分析其節(jié)約原因主要在于本發(fā)明所提方法采用哈希表查找方式去加速碼字后綴長度和碼長確定,進(jìn)而減少對碼字后綴長度和碼長查找時(shí)間。
[0031]表3是本發(fā)明算法與標(biāo)準(zhǔn)TLSS方法在碼表存儲空間方面消耗圖,具體如下。
譜法赫I ^ I節(jié)省空圖眷率<%>
imlSiJiMfc.I4CKSI!!32--重 7禮 I 42L Tt
QM^ftnhtMgJC........................................1l?23417442.7 ~
‘ TnfcijEW; 1................................................................................252.........................................................................228...............................47.S ‘
T<ial_zegiriCIC |MW)410MO )8
^Baalb^ice^lZM\ISlT90
[0032]表3
從表3可以看出,相比標(biāo)準(zhǔn)的TLSS方法,本發(fā)明所提方法能夠節(jié)省1056字節(jié)的碼表存儲空間,節(jié)省主要原因在于本發(fā)明所提方法采用哈希表去存儲標(biāo)準(zhǔn)TLSS中IentabO元素,從而可以減少TLSS中碼表存儲空間,提高了移動環(huán)境下低功耗,存儲資源受限便攜式設(shè)備存儲空間利用率。
[0033]本發(fā)明根據(jù)從輸入碼流中計(jì)算的碼字前綴O的個(gè)數(shù),利用哈希表查找技術(shù)從已建立的哈希表中去找到碼字后綴長度,可減少查找、匹配和判斷碼字后綴長度的操作,節(jié)省CAVLD中表查找內(nèi)存消耗和查表時(shí)間。在確定碼字后綴長度之后,根據(jù)碼長=碼字前綴O的個(gè)數(shù)+碼字后綴長度的固有關(guān)系,找到快速確定碼長方法,可減少查找、匹配、判斷和確定碼長操作,節(jié)省查表內(nèi)存消耗和查表時(shí)間。由于使用了哈希表技術(shù)存儲碼字后綴長度,根據(jù)碼字前綴O的個(gè)數(shù)+碼字后綴長度關(guān)系=碼長可快速確定碼長,可節(jié)省標(biāo)準(zhǔn)TLSS方法中進(jìn)行IentabO查找步驟中和lentab()碼表存儲空間,提高了 CAVLD中碼表存儲空間利用率,是比較高效的CAVLD方法。
[0034]上面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實(shí)施,因此,不能理解為對本發(fā)明保護(hù)范圍的限制。
[0035]總之,本發(fā)明雖然例舉了上述優(yōu)選實(shí)施方式,但是應(yīng)該說明,雖然本領(lǐng)域的技術(shù)人員可以進(jìn)行各種變化和改型,除非這樣的變化和改型偏離了本發(fā)明的范圍,否則都應(yīng)該包括在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種基于哈希表查找的CAVLD方法,其特征在于:包括以下處理步驟: 51、根據(jù)語法元素NC的取值范圍,選取對應(yīng)元素對應(yīng)的可變長碼表; 52、讀入輸入碼流,并計(jì)算輸入碼流中連續(xù)前綴O的個(gè)數(shù); 53、根據(jù)碼字前綴O的個(gè)數(shù),利用哈希表查找技術(shù)在建立的哈希表查找得到對應(yīng)碼字后綴長度; 54、如果通過哈希表查找到的碼字后綴長度具有惟一值,則根據(jù)公式:碼長=碼字后綴長度+碼字前綴O的個(gè)數(shù)+1,直接確定碼長;如果通過哈希表查找到的碼字后綴長度存在有2個(gè)可能值,則需要再次再讀取I位位流并判斷其值即可確定碼長; 55、根據(jù)確定碼長查找標(biāo)準(zhǔn)codtab()碼表可得到解碼輸出。
2.根據(jù)權(quán)利要求1所述的基于哈希表查找的CAVLD方法,其特征在于:在步驟SI中,語法元素對應(yīng)為Coeff_token,Run_before和Total_zeros,可根據(jù)不同NC的取值范圍選取不同的可變長碼表。
3.根據(jù)權(quán)利要求1所述的基于哈希表查找的CAVLD方法,其特征在于:在步驟S3中,哈希表依據(jù)碼字前綴O的個(gè)數(shù)和碼字后綴長度關(guān)系建立,其存儲元素為碼字前綴O的個(gè)數(shù)和碼字后綴長度,在計(jì)算出碼字前綴O的個(gè)數(shù)后,通過建立哈希函數(shù)映射到哈希地址中去,進(jìn)而可查找到碼字后綴長度。
4.根據(jù)權(quán)利要求1所述的基于哈希表查找的CAVLD方法,其特征在于:在步驟S4中,只有當(dāng)碼字后綴長度的個(gè)數(shù)存在2個(gè)可能值時(shí),才需要再次從輸入碼流中讀取I位位流并判斷其值來確定碼字后綴長度,在大部分情況下,碼字前綴O的個(gè)數(shù)與碼字后綴長度存在一一對應(yīng)關(guān)系,經(jīng)過一次查找可確定碼字后綴長度,進(jìn)而確定碼長。
5.根據(jù)權(quán)利要求1所述的基于哈希表查找的CAVLD方法,其特征在于:在步驟S5中,確定了碼長,再查一次查找標(biāo)準(zhǔn)codtabO,可解碼所需碼字。
【文檔編號】G06F17/30GK104133853SQ201410322500
【公開日】2014年11月5日 申請日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】韓一石, 王建華, 閔智旋, 羅志霄, 覃新宇, 孫運(yùn)龍 申請人:廣東工業(yè)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1