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

Cavlc熵解碼器及熵解碼方法

文檔序號:7823381閱讀:318來源:國知局
Cavlc熵解碼器及熵解碼方法
【專利摘要】本發(fā)明公開了一種CAVLC熵解碼器及熵解碼方法。該解碼器包括CAVLC控制器、解碼模塊和存儲模塊和數(shù)據(jù)拼接模塊。解碼器對碼流中非零系數(shù)較少的情況做了專門優(yōu)化;在CAVLC控制器和解碼模塊間加入旁路電路提前進行解碼狀態(tài)跳轉(zhuǎn)的判斷,以節(jié)約時鐘周期;并將前游程解碼與幅值前綴解碼并在一個模塊完成。本發(fā)明在提高熵解碼效率的同時節(jié)約了面積開銷。
【專利說明】CAVLC熵解碼器及熵解碼方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻編解碼【技術(shù)領(lǐng)域】,更具體地涉及CAVLC熵解碼器及熵解碼方法。

【背景技術(shù)】
[0002] CAVLC是一種用于降低比特率并充分利用統(tǒng)計冗余的熵編碼技術(shù)。作為視頻解碼 框架中的第一步,熵解碼對視頻解碼性能有著非常大的影響。在當(dāng)今視頻編解碼中應(yīng)用最 廣泛的H. 264標(biāo)準(zhǔn)中,規(guī)定熵編碼可采用基于上下文的的自適應(yīng)變長編碼(CAVLC)和基于 上下文的自適應(yīng)算術(shù)編碼(CABAC)。其中,CAVLC的編碼效率較早先的MPEG-1和MPEG-2標(biāo) 準(zhǔn)有了明顯提高,而實現(xiàn)復(fù)雜度較CABAC而言則低了不少,在視頻編碼中得到廣泛使用。
[0003] 在CAVLC解碼器中,通常涉及以下六種語法元素的解碼:非零系數(shù)的數(shù)目、拖尾系 數(shù)的數(shù)目、每個拖尾系數(shù)的符號、拖尾系數(shù)以外非零系數(shù)的幅值、最后一個非零系數(shù)前零的 數(shù)目、當(dāng)前非零系數(shù)與前一個非零系數(shù)之間零的數(shù)目。
[0004] 一般的解碼步驟如下:首先查表解得非零系數(shù)的數(shù)目和拖尾系數(shù)的個數(shù),再解出 各拖尾系數(shù)的符號位,然后解出除拖尾系數(shù)外非零系數(shù)的幅值,再解出最后一個非零系數(shù) 前零的個數(shù),最后解出每個非零系數(shù)前0的個數(shù)。
[0005] 傳統(tǒng)的CAVLC熵解碼器通常由系數(shù)標(biāo)志位模塊、拖尾系數(shù)符號模塊、幅值前綴模 塊、幅值后綴模塊、總零數(shù)模塊、前游程模塊共六個功能模塊,加上一個CAVLC控制模塊,以 及相應(yīng)的存儲模塊組合而成。由于解碼步驟和模塊較多,每個模塊的解碼又依賴于前面模 塊輸出的結(jié)果,導(dǎo)致各模塊等待時間較長,整體解碼效率偏低。
[0006] 目前,對于CAVLC解碼器的優(yōu)化主要集中在改善其解碼效率而提高解碼速度上。 以下為其中兩種代表性的方案:
[0007] 1)加入旁路電路模塊的方法[2]。這種方法將上一級解碼模塊所獲得的解碼參數(shù) 從旁路電路單元傳輸給下一級解碼狀態(tài)機跳轉(zhuǎn)控制模塊和下一級解碼模塊,減少了條件判 斷時等待的時間,一定程度上提升了解碼效率,但其結(jié)構(gòu)較復(fù)雜,模塊與模塊之間、模塊與 寄存器之間需要較多連線,帶來較大的面積開銷。
[0008] 2)基于優(yōu)化的查找表的方法[3]。這種方法將根據(jù)碼字中前置零的個數(shù)將C〇efT_ token查找表重新分組,解碼時以前置零個數(shù)和碼字后綴為索引進行查表,從而減少查表次 數(shù)。但QP較大時,coefT_token碼字的前置零的個數(shù)較少,此方法對解碼的加速效果不明 顯〇


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

[0009] (一)要解決的技術(shù)問題
[0010] 本發(fā)明旨在解決現(xiàn)有技術(shù)中的解碼器在碼流中QP較大時優(yōu)化效率不高以及面積 開銷大的問題。
[0011] (二)技術(shù)方案
[0012] 鑒于以上提到的問題,本發(fā)明提供了一種新的CAVLC熵解碼器的實現(xiàn)和方法,對 系數(shù)較少的情況做了專門優(yōu)化,使用較少的旁路電路提前判斷是否進入下一個解碼狀態(tài), 并將前游程解碼與系數(shù)塊重建合并在一個模塊完成。能進行高效的解碼并減少面積開銷。
[0013] 為解決上述技術(shù)問題,本發(fā)明提出一種CAVLC熵解碼器,包括CAVLC控制器、解碼 模塊、存儲模塊和數(shù)據(jù)拼接模塊,其中:所述CAVLC控制器包括狀態(tài)跳轉(zhuǎn)控制模塊、拖尾符 號輸出模塊、系數(shù)幅值計算模塊,用于控制碼流輸入,協(xié)調(diào)各模塊的工作,根據(jù)各模塊解碼 得到的語法元素進行拖尾符號和幅值的解碼;所述解碼模塊用于從碼流中解出碼字的系數(shù) 標(biāo)志位和總零數(shù)以及每個幅值的前綴和前游程;所述存儲模塊用于暫時保存解碼模塊和 CAVLC控制器解出的語法元素值;所述數(shù)據(jù)拼接模塊將系數(shù)幅值重新組合拼接后輸出。
[0014] 根據(jù)本發(fā)明的【具體實施方式】,所述解碼模塊包括系數(shù)標(biāo)志位解碼模塊、總零數(shù)解 碼模塊、幅值前綴解碼模塊和前游程解碼模塊。
[0015] 根據(jù)本發(fā)明的【具體實施方式】,所述存儲模塊包括非零系數(shù)寄存器、拖尾系數(shù)寄存 器、幅值前綴寄存器、總零數(shù)寄存器、后綴碼長寄存器、剩余零數(shù)寄存器、前游程寄存器、非 零系數(shù)幅值存儲器和系數(shù)幅值存儲器。
[0016] 根據(jù)本發(fā)明的【具體實施方式】,所述CAVLC控制器在解出系數(shù)標(biāo)志位后,對拖尾系 數(shù)個數(shù)提前進行判斷,若拖尾系數(shù)個數(shù)為〇,解碼器跳過拖尾符號解碼,進行幅值解碼。
[0017] 根據(jù)本發(fā)明的【具體實施方式】,所述CAVLC控制器在解完拖尾符號后,對非零系數(shù) 個數(shù)與拖尾系數(shù)的個數(shù)進行判斷,若相等,表明不存在除拖尾系數(shù)之外的非零系數(shù),解碼器 跳過幅值解碼,進行總零數(shù)解碼。
[0018] 根據(jù)本發(fā)明的【具體實施方式】,所述的CAVLC控制器還包括幅值后綴解碼模塊,其 用于在系數(shù)標(biāo)志解碼狀態(tài)中,根據(jù)解碼得到的非零系數(shù)和拖尾系數(shù)對后綴碼長進行初始 化,在幅值解碼狀態(tài)中,根據(jù)已解碼的系數(shù)幅值對后綴碼長作動態(tài)更新。
[0019] 根據(jù)本發(fā)明的【具體實施方式】,所述的CAVLC控制器和解碼模塊間,還包括參數(shù)傳 輸電路,其用于將解碼模塊中得到的參數(shù)值,在當(dāng)前周期傳遞給CAVLC控制器,提前進行狀 態(tài)機的跳轉(zhuǎn)判斷。
[0020] 根據(jù)本發(fā)明的【具體實施方式】,前游程解碼模塊中包含所述幅值前綴解碼模塊,在 進行前游程解碼時,對于剩余零數(shù)大于6情況,前游程的值可根據(jù)幅值前綴解碼模塊計算 得到。
[0021] 本發(fā)明還提出一種CAVLC熵解碼方法,應(yīng)用于CAVLC解碼器中,CAVLC解碼器包括 CAVLC控制器、解碼模塊、存儲模塊和數(shù)據(jù)拼接模塊,所述解碼方法包括如下步驟:步驟S1 : 查表確定碼流中的非零系數(shù)個數(shù)和拖尾符號個數(shù),并根據(jù)其值設(shè)置后綴碼長的初始值;步 驟S2 :當(dāng)拖尾符號個數(shù)大于零時,順序解出每個拖尾系數(shù)的符號值;步驟S3 :解出當(dāng)前變 換系數(shù)的前綴碼和后綴碼,計算得到幅值并判斷是否還有待解碼的非零系數(shù),若存在則重 復(fù)此步驟,直至解出所有非零系數(shù);步驟S4 :查表解出總零數(shù)值,將其作為剩余零數(shù)的初始 值;步驟S5 :根據(jù)剩余零數(shù),查表解出前游程的值,并動態(tài)更新剩余零數(shù),重復(fù)進行該步驟, 直至只剩最后一個非零系數(shù)或是剩余零數(shù)與前游程相等;步驟S6 :根據(jù)解出的拖尾符號 值、系數(shù)幅值、和前游程值重建系數(shù)塊,經(jīng)過zig-zag掃描后輸出。
[0022] (三)有益效果
[0023] 本發(fā)明對CAVLC熵解碼過程中,碼流中非零系數(shù)較少的情況做了專門優(yōu)化,在控 制模塊與解碼模塊間加入了旁路電路提前進行狀態(tài)機跳轉(zhuǎn)判斷,并將前游程解碼與系數(shù)塊 重建合并在一個模塊完成,從而提高了熵解碼器的工作效率,對其面積開銷和延時也有一 定改善,能有效地提高整體解碼的速度。

【專利附圖】

【附圖說明】
[0024] 圖1是本發(fā)明實現(xiàn)的CAVLC熵解碼器結(jié)構(gòu)示意圖;
[0025] 圖2是本發(fā)明實現(xiàn)的CAVLC熵解碼器狀態(tài)機跳轉(zhuǎn)示意圖;
[0026] 圖3是拖尾系數(shù)條件判斷示意圖;
[0027] 圖4是非零系數(shù)個數(shù)條件判斷示意圖;
[0028] 圖5是H. 264標(biāo)準(zhǔn)中給出的prefix_value碼表[1];
[0029] 圖6是H. 264標(biāo)準(zhǔn)中給出的run_before碼表[1]。

【具體實施方式】
[0030] 本發(fā)明提出的CAVLC熵解碼器包括CAVLC控制器、解碼模塊、數(shù)據(jù)拼接模塊和存儲 豐旲塊。
[0031] 所述CAVLC控制器包括狀態(tài)跳轉(zhuǎn)控制模塊、拖尾符號輸出模塊、系數(shù)幅值計算模 塊。
[0032] 所述解碼模塊包括系數(shù)標(biāo)志位解碼模塊(coeff_token)、總零數(shù)解碼模塊 (total_zero)、幅值前綴解碼模塊(level_prefix)和前游程解碼模塊(run_before)。
[0033] 所述存儲模塊包括非零系數(shù)寄存器(TotalCoefT)、拖尾系數(shù)寄存器 (TrailingOnes)、幅值前綴寄存器(level_prefix)、總零數(shù)寄存器(total_zeros)、后綴碼 長寄存器(suffix_length)、剩余零數(shù)寄存器(zeros_left)、前游程寄存器(run_before)、 非零系數(shù)幅值存儲器(LevelVal)和系數(shù)幅值存儲器(coeff_level)。
[0034] 所述CAVLC控制器用于控制碼流輸入,通過狀態(tài)機協(xié)調(diào)各模塊的工作,根據(jù)各模 塊解碼得到的語法元素進行拖尾符號和幅值的解碼,最后當(dāng)所有語法元素解碼完成后,將 系數(shù)幅值重新組合拼接后輸出。
[0035] 所述CAVLC控制器,在進行狀態(tài)跳轉(zhuǎn)控制時,對系數(shù)較少的情況做了專門優(yōu)化:
[0036] 1)系數(shù)標(biāo)志位解碼狀態(tài)下,對非零系數(shù)個數(shù)和拖尾系數(shù)個數(shù)提前進行判斷。若非 零系數(shù)個數(shù)為〇,則結(jié)束當(dāng)前塊解碼;若拖尾系數(shù)個數(shù)為〇,直接跳過拖尾符號解碼狀態(tài),如 圖3所示。
[0037] 2)在拖尾符號解碼狀態(tài)下,加入了對非零系數(shù)個數(shù)的判斷,若總的非零系數(shù)個數(shù) 與拖尾系數(shù)的個數(shù)相等,表明不存在除拖尾系數(shù)之外的非零系數(shù),狀態(tài)機跳過幅值解碼,直 接進入總零數(shù)解碼狀態(tài),如圖4所示。
[0038] CAVLC控制器和各解碼模塊間還包括參數(shù)傳輸電路,用于將解碼模塊中得到的參 數(shù)值,在當(dāng)前周期傳遞給CAVLC控制器,提前進行狀態(tài)機的跳轉(zhuǎn)判斷,避免寄存器幅值完成 后再判斷狀態(tài)跳轉(zhuǎn)造成不必要的等待。
[0039] 所述的幅值前綴解碼模塊,在實現(xiàn)時作為子模塊,包含在前游程解碼模塊中。由圖 5、圖6中碼表可以看出,當(dāng)zeros_left大于6時,若碼流中前兩位均為零,run_before的 值直接由level_prefix的值加4給出,無需再通過查表或組合邏輯得到,節(jié)約了開銷。
[0040] 本發(fā)明還提出應(yīng)用于CAVLC解碼器的CAVLC熵解碼方法,包括如下步驟:
[0041] 步驟SI :查表確定碼流中的非零系數(shù)個數(shù)和拖尾符號個數(shù),并根據(jù)其值設(shè)置后綴 碼長的初始值;
[0042] 步驟S2 :當(dāng)拖尾符號個數(shù)大于零時,順序解出每個拖尾系數(shù)的符號值;
[0043] 步驟S3 :解出當(dāng)前變換系數(shù)的前綴碼和后綴碼,計算得到幅值并判斷是否還有待 解碼的非零系數(shù),若存在則重復(fù)此步驟,直至解出所有非零系數(shù);
[0044] 步驟S4 :查表解出總零數(shù)值,將其作為剩余零數(shù)的初始值;
[0045] 步驟S5 :根據(jù)剩余零數(shù),查表解出前游程的值,并動態(tài)更新剩余零數(shù),重復(fù)進行該 步驟,直至只剩最后一個非零系數(shù)或是剩余零數(shù)與前游程相等;
[0046] 步驟S6 :根據(jù)解出的拖尾符號值、系數(shù)幅值、和前游程值重建系數(shù)塊,經(jīng)過 zig-zag掃描后輸出。
[0047] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明作進一步的詳細(xì)說明。
[0048] 如圖1所示,本發(fā)明實現(xiàn)的熵解碼器包括CAVLC控制器、解碼模塊和存儲模塊和數(shù) 據(jù)拼接模塊。所述CAVLC控制器包括狀態(tài)跳轉(zhuǎn)控制模塊(11)、拖尾符號輸出模塊(12)、系數(shù) 幅值計算模塊(13)。所述解碼模塊,包括系數(shù)標(biāo)志位解碼模塊(21)、總零數(shù)解碼模塊(22)、 幅值前綴解碼模塊(23)和前游程解碼模塊(24)。
[0049] 所述存儲模塊,包括非零系數(shù)寄存器(31)、拖尾系數(shù)寄存器(32)、幅值前綴寄存 器(33)、總零數(shù)寄存器(34)、后綴碼長寄存器(35)、剩余零數(shù)寄存器(36)、前游程寄存器 (37)、非零系數(shù)幅值存儲器(38)和系數(shù)幅值存儲器(39)。
[0050] CAVLC控制器、解碼模塊和存儲模塊在一起構(gòu)成了一個狀態(tài)機,狀態(tài)機的狀態(tài)表征 解碼所處的階段。狀態(tài)機包括初始化、系數(shù)標(biāo)志位解碼、拖尾符號解碼、幅值解碼狀態(tài)、幅值 輸出狀態(tài)、總零數(shù)解碼、前游程解碼這七個狀態(tài),各狀態(tài)之間跳轉(zhuǎn)關(guān)系如圖2所示。完整的 解碼步驟如下:
[0051] 步驟1 :熵解碼器接收到使能信號,進入初始化狀態(tài),各寄存器和存儲器被清零, 初始化完成后,狀態(tài)機跳轉(zhuǎn)到系數(shù)標(biāo)志位解碼狀態(tài)。
[0052] 步驟2 :在系數(shù)標(biāo)志位解碼狀態(tài)中,解碼器將系數(shù)標(biāo)志位解碼模塊解碼得到 的 coeff_token_TotalCoeff、coeff_token_TrailingOnes 通過旁路電路分別傳輸給 TotalCoeff 和 TrailingOnes 寄存器。
[0053] 依據(jù)標(biāo)志位的值對幅值后綴長度寄存器的值進行初始化,當(dāng)coeff_token_ TotalCoeff 大于 10 且 coeff_token_TrailingOnes 小于 3 時,suffix_length 的值被賦為 1,否則賦為〇。
[0054] 進行狀態(tài)跳轉(zhuǎn)判斷,若非零系數(shù)個數(shù)為零,則結(jié)束當(dāng)前殘差塊的解碼,狀態(tài)機跳轉(zhuǎn) 回到初始化狀態(tài),等待進行下一殘差塊解碼。
[0055] 若非零系數(shù)個數(shù)不為零,則如圖3所示,根據(jù)拖尾系數(shù)的數(shù)目進行狀態(tài)跳轉(zhuǎn)判斷:
[0056] 若拖尾系數(shù)個數(shù)為零,狀態(tài)機跳過拖尾系數(shù)解碼狀態(tài),直接跳轉(zhuǎn)到幅值解碼狀態(tài), 執(zhí)行步驟4 ;
[0057] 若拖尾系數(shù)個數(shù)不為零,狀態(tài)機跳轉(zhuǎn)進入拖尾系數(shù)解碼狀態(tài)。
[0058] 步驟3 :在拖尾符號解碼狀態(tài)中,CAVLC控制器依次對輸入比特流中各個拖尾系數(shù) 的符號進行解碼,并將結(jié)果輸出到LevelVal中。
[0059] 如圖4所示過程,將TrailingOnes和TotalCoeff的值進行比較,根據(jù)結(jié)果進行狀 態(tài)跳轉(zhuǎn):
[0060] 若相等,則表明除拖尾系數(shù)外沒有其他非零系數(shù)需要解碼,狀態(tài)機直接跳轉(zhuǎn)進入 總零數(shù)解碼狀態(tài),執(zhí)行步驟6;
[0061] 若TrailingOnes的值小于TotalCoeff,狀態(tài)機跳轉(zhuǎn)進入幅值解碼狀態(tài)。
[0062] 步驟4 :在幅值解碼狀態(tài)中,CAVLC控制模塊首先將前綴幅值模塊解出的level_ prefix_value 傳輸給 level_prefix 寄存器,并根據(jù) suffix_length 更新 levelSuffixSize 的值。
[0063] 然后根據(jù)level_prefix_value和suffix_length的值解出高頻位置上第一個未 解碼的非拖尾系數(shù)的幅值,并將其輸出到LevelVal的相應(yīng)位。最后使?fàn)顟B(tài)機跳轉(zhuǎn)到幅值輸 出狀態(tài)。
[0064] 步驟5 :在幅值輸出狀態(tài)中,首先對當(dāng)前解碼的非零系數(shù)的數(shù)目進行判斷,若還有 未被解碼的非零系數(shù),則狀態(tài)機跳轉(zhuǎn)回到幅值解碼狀態(tài),繼續(xù)解下一非拖尾系數(shù)幅值。
[0065] 若所有系數(shù)幅值均被解碼,再對startldx-endldx+l的結(jié)果進行判斷,進行狀態(tài) 跳轉(zhuǎn):
[0066] 若等于TotalCoeff,CAVLC控制器輸出系數(shù)幅值到coeff_level中,經(jīng)重新拼接后 輸出,完成當(dāng)前殘差塊的解碼,狀態(tài)機跳轉(zhuǎn)回初始狀態(tài);
[0067] 若不等,則進入總零數(shù)解碼狀態(tài)。
[0068] 步驟6 :在總零數(shù)解碼狀態(tài)下,CAVLC控制模塊將總零數(shù)解碼模塊解出的total_ zeros_value 傳輸給 zeros_left 寄存器。
[0069] 再對總零數(shù)的值進行判斷,根據(jù)結(jié)果進行狀態(tài)跳轉(zhuǎn):
[0070] 若total_zeros_value為0,即沒有系數(shù)為0的情況,將LevelVal的值直接傳輸給 coeff_l eve 1,拼接后輸出,完成當(dāng)前殘差塊的解碼,狀態(tài)機跳轉(zhuǎn)回初始狀態(tài)。
[0071] 若total_zeros_value不為0,再對非零系數(shù)的個數(shù)進行判斷。
[0072] 若TotalCoeff等于1,表明只有一個非零系數(shù),不需要解run_before,將LevelVal 中唯一的非零系數(shù)值直接傳到C〇eff_leVel的對應(yīng)位上,拼接后輸出,完成當(dāng)前殘差塊的 解碼,狀態(tài)機跳轉(zhuǎn)回初始狀態(tài)。
[0073] 若TotalCoeff不等于1,表明有多個非零系數(shù)需要解碼,狀態(tài)機跳轉(zhuǎn)至前游程解 碼狀態(tài)。
[0074] 步驟7 :在前游程解碼狀態(tài)下,CAVLC控制器根據(jù)前游程解碼模塊解出的run_ before_value的值,更新zeros_left寄存器的值,然后將LevelVal中各系數(shù)幅值,根據(jù)游 程,寫入coeff_level對應(yīng)的位置。
[0075] 對剩余非零系數(shù)個數(shù)進行判斷:
[0076] 當(dāng)只剩最后一個非零系數(shù)時,不需要繼續(xù)解run_before的值,直接將最低頻的 LevelVal賦給系數(shù)幅值存儲器C〇eff_leVel的相應(yīng)位置。完成當(dāng)前殘差塊的解碼
[0077] 當(dāng)剩余非零系數(shù)不止一個時,再對zeros_left和run_before_value的大小進行 判斷:
[0078] 若相等,表明除當(dāng)前非零系數(shù)外,剩余的非零系數(shù)前,均不存在前導(dǎo)零,可依次順 序輸出系數(shù)幅值給coefOevel存儲器。完成當(dāng)前殘差塊的解碼。
[0079] 若不等,表明還存在待解碼的前導(dǎo)零,狀態(tài)機循環(huán)執(zhí)行步驟7的工作,直至當(dāng)前殘 差塊解碼完成。
[0080] coeff_level存儲器中的16個系數(shù)幅值經(jīng)數(shù)據(jù)拼接模塊按zig-zag掃描重排序之 后,拼接為一整行輸出。CAVLC控制器將解碼完成信號拉高,并跳轉(zhuǎn)至初始狀態(tài),等待下一殘 差塊的解碼。
[0081 ] 本發(fā)明在控制模塊和解碼模塊之間加入旁路電路的方式,提前進行狀態(tài)機跳轉(zhuǎn)判 斷;對碼流中非零系數(shù)較少的情況加入相應(yīng)的判斷條件,以跳過不必要的解碼狀態(tài);并將 前游程解碼與系數(shù)塊重建合并在一個模塊完成。通過以上方法實現(xiàn)的熵解碼器具備解碼效 率高,面積開銷小的特點。
[0082] 以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳 細(xì)說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護 范圍之內(nèi)。
【權(quán)利要求】
1. 一種CAVLC熵解碼器,其特征在于,包括CAVLC控制器、解碼模塊、存儲模塊和數(shù)據(jù)拼 接模塊,其中: 所述CAVLC控制器包括狀態(tài)跳轉(zhuǎn)控制模塊、拖尾符號輸出模塊、系數(shù)幅值計算模塊,用 于控制碼流輸入,協(xié)調(diào)各模塊的工作,根據(jù)各模塊解碼得到的語法元素進行拖尾符號和幅 值的解碼; 所述解碼模塊用于從碼流中解出碼字的系數(shù)標(biāo)志位和總零數(shù)以及每個幅值的前綴和 前游程; 所述存儲模塊用于暫時保存解碼模塊和CAVLC控制器解出的語法元素值; 所述數(shù)據(jù)拼接模塊將系數(shù)幅值重新組合拼接后輸出。
2. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于, 所述解碼模塊包括系數(shù)標(biāo)志位解碼模塊、總零數(shù)解碼模塊、幅值前綴解碼模塊和前游 程解碼模塊。
3. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于, 所述存儲模塊包括非零系數(shù)寄存器、拖尾系數(shù)寄存器、幅值前綴寄存器、總零數(shù)寄存 器、后綴碼長寄存器、剩余零數(shù)寄存器、前游程寄存器、非零系數(shù)幅值存儲器和系數(shù)幅值存 儲器。
4. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于,所述CAVLC控制器在解出系數(shù) 標(biāo)志位后,對拖尾系數(shù)個數(shù)提前進行判斷,若拖尾系數(shù)個數(shù)為0,解碼器跳過拖尾符號解碼, 進行幅值解碼。
5. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于,所述CAVLC控制器在解完拖尾 符號后,對非零系數(shù)個數(shù)與拖尾系數(shù)的個數(shù)進行判斷,若相等,表明不存在除拖尾系數(shù)之外 的非零系數(shù),解碼器跳過幅值解碼,進行總零數(shù)解碼。
6. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于,所述的CAVLC控制器還包括幅 值后綴解碼模塊,其用于在系數(shù)標(biāo)志解碼狀態(tài)中,根據(jù)解碼得到的非零系數(shù)和拖尾系數(shù)對 后綴碼長進行初始化,在幅值解碼狀態(tài)中,根據(jù)已解碼的系數(shù)幅值對后綴碼長作動態(tài)更新。
7. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于,所述的CAVLC控制器和解碼模 塊間,還包括參數(shù)傳輸電路,其用于將解碼模塊中得到的參數(shù)值,在當(dāng)前周期傳遞給CAVLC 控制器,提前進行狀態(tài)機的跳轉(zhuǎn)判斷。
8. 根據(jù)權(quán)利要求1所述的CAVLC熵解碼器,其特征在于,前游程解碼模塊中包含所述幅 值前綴解碼模塊,在進行前游程解碼時,對于剩余零數(shù)大于6情況,前游程的值可根據(jù)幅值 前綴解碼模塊計算得到。
9. 一種CAVLC熵解碼方法,應(yīng)用于CAVLC解碼器中,CAVLC解碼器包括CAVLC控制器、 解碼模塊、存儲模塊和數(shù)據(jù)拼接模塊,其特征在于,所述解碼方法包括如下步驟: 步驟S1 :查表確定碼流中的非零系數(shù)個數(shù)和拖尾符號個數(shù),并根據(jù)其值設(shè)置后綴碼長 的初始值; 步驟S2 :當(dāng)拖尾符號個數(shù)大于零時,順序解出每個拖尾系數(shù)的符號值; 步驟S3 :解出當(dāng)前變換系數(shù)的前綴碼和后綴碼,計算得到幅值并判斷是否還有待解碼 的非零系數(shù),若存在則重復(fù)此步驟,直至解出所有非零系數(shù); 步驟S4 :查表解出總零數(shù)值,將其作為剩余零數(shù)的初始值i 步驟S5 :根據(jù)剩余零數(shù),查表解出前游程的值,并動態(tài)更新剩余零數(shù)it重復(fù)進行該步 驟,直至只剩最后一個非零系數(shù)或是剩余零數(shù)與前游程相等; 步驟S6:根據(jù)解出的拖尾符號值、系數(shù)幅值、和前游程值重建系數(shù)塊,經(jīng)過zig-zag掃 描后輸出。
【文檔編號】H04N19/13GK104486624SQ201410796177
【公開日】2015年4月1日 申請日期:2014年12月18日 優(yōu)先權(quán)日:2014年12月18日
【發(fā)明者】王東琳, 李玲, 石守謙, 陳皓, 譚吉來, 周鈺致 申請人:中國科學(xué)院自動化研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
托克逊县| 湟源县| 阿图什市| 织金县| 汉川市| 大埔区| 新和县| 潼关县| 佛冈县| 甘洛县| 文昌市| 彩票| 焦作市| 隆安县| 乡城县| 宁河县| 登封市| 镇远县| 大宁县| 泰安市| 岱山县| 苍山县| 江阴市| 鹰潭市| 绍兴县| 孟连| 大安市| 桦南县| 昆明市| 林口县| 富阳市| 巨鹿县| 绍兴县| 安仁县| 太原市| 莱芜市| 龙里县| 东明县| 襄汾县| 上犹县| 东乌珠穆沁旗|