新型解碼器及解碼方法
【專利摘要】本發(fā)明提供一種新型解碼器及解碼方法,至少包括:DDR:用來緩存解碼前的視頻碼流以及可變長解碼引擎的輸出數(shù)據(jù);可變長解碼引擎:用以解碼從DDR中獲取的視頻碼流并將解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊中;數(shù)據(jù)管理模塊:將可變長解碼引擎的解碼后的數(shù)據(jù)輸出到直接內(nèi)存存取模塊,并將從直接內(nèi)存存取模塊獲取的數(shù)據(jù)輸出;直接內(nèi)存存取模塊:將數(shù)據(jù)管理模塊輸出的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到DDR中,并將從DDR中獲取的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊;本發(fā)明的直接內(nèi)存存取模塊通過增加一個讀通道和一個寫通道,即,增加很小的邏輯,而去掉了兩個416X22單口SRAM、緩存參數(shù)的兩組寄存器,如此,對比現(xiàn)有技術的設計芯片綜合面積節(jié)省約80000um2,而芯片整體面積減少約6%,從而大大的降低了對應的芯片成本。
【專利說明】新型解碼器及解碼方法【技術領域】
[0001]本發(fā)明涉及一種視頻多格式解碼器中的數(shù)據(jù)緩存,尤其是指基于DDR緩存在多格式視頻解碼器中的應用。
【背景技術】
[0002]當前視頻解碼器在監(jiān)控,數(shù)字廣播以及手持設備等多領域有廣泛的應用,而且多合一、包括多種視頻編解碼標準H.264/H.265、MPEG-2/MPEG-4、VC-1, AVS/AVS+等等格式解碼器的需求越來越明顯。當前的視頻解碼器普遍采用多級流水的架構:例如,熵解碼(VLD)->運動向量預測(MVG)->反量化反變換(IQIT)->重構(RECON)->濾波(LF)類似架構,流水之間通過RAM乒乓做緩存,由此帶來的問題就是:緩存RAM將占據(jù)一定的芯片面積,即造成芯片面積的浪費以及生產(chǎn)成本的上升。
[0003]即,通用技術是采用國際標準的視頻編解碼協(xié)議,將一幅視頻圖像分割成若干宏塊單元,并經(jīng)過一系列的壓縮過程,將圖像信息轉(zhuǎn)變?yōu)橐痪S的數(shù)據(jù)流,該數(shù)據(jù)流稱為Elementary Stream(ES)。解碼器在接收到該數(shù)據(jù)流(ES)后,采用同樣的協(xié)議,將ES還原為原始圖像。本文討論的就是解碼流程中的一個階段。具體如附圖1所示,當解碼第一個宏塊單元時,第一級流水線:可變長解碼引擎通過DMA (Direct Memory Access,直接內(nèi)存存取)從內(nèi)存(DDR)讀取ES流,并從中解析出宏塊的語法元素(如宏塊類型、量化參數(shù)、運動向量以及殘差數(shù)據(jù)等等),并將殘差數(shù)據(jù)保存在緩存模塊的數(shù)據(jù)緩存A/B中,其它語法元素保存在緩存模塊的參數(shù)緩存A/B中,第二級流水線的模塊使用緩存模塊中的數(shù)據(jù)進行標準的解碼,最終完成圖像的解碼。緩存模塊中包含一個控制邏輯,只有來自VLD的數(shù)據(jù)和參數(shù)全部傳遞完成,第二級流水線的模塊才會啟動。VLD先寫數(shù)據(jù)到數(shù)據(jù)緩存A和參數(shù)緩存A,在第二級流水線的模塊讀取數(shù)據(jù)緩存A、參數(shù)緩存A時,VLD可以同時解碼下一個宏塊單元,并將數(shù)據(jù)和參數(shù)分別寫入數(shù)據(jù)緩存B和參數(shù)緩存B,之后第二級流水線的模塊在完成上一次對緩存模塊的數(shù)據(jù)緩存A和參數(shù)緩存A的操作后,再從緩存模塊的數(shù)據(jù)緩存B和參數(shù)緩存B中讀取數(shù)據(jù)和參數(shù),以此種順序依次操作,完成解碼過程。
[0004]在現(xiàn)有技術的這個設計中緩存模塊中的數(shù)據(jù)緩存使用了兩個單口 SRAM,規(guī)格為416X22,例如,在SMIC(中芯國際集成電路制造有限公司)55nm工藝下總面積為33801um2 ;而參數(shù)緩存使用了兩組寄存單元,在SMIC55nm工藝下總面積為46764um2。即,上述的數(shù)據(jù)緩存和參數(shù)緩存分別占掉了整個解碼芯片面積的2.5%和3.5%,從而造成芯片面積的浪費以及生產(chǎn)成本的上升。
[0005]綜上所述,為了避免上述問題,一種新的、有效的新型解碼器及解碼方法的發(fā)明是勢在必行的。
【發(fā)明內(nèi)容】
[0006]鑒于以上所述現(xiàn)有技術的缺點,本發(fā)明的目的在于提供一種新型解碼器及解碼方法,其能有效的利用現(xiàn)有的DDR存儲資源,去掉現(xiàn)有技術的兩個單口 SRAM以及緩存參數(shù)的兩組寄存器,從而可以節(jié)省芯片面積,進而降低芯片成本。
[0007]為實現(xiàn)上述目的及其他相關目的,本發(fā)明的具體技術方案是:
[0008]一種新型解碼器,其至少包括:
[0009]DDR:用來緩存解碼前的視頻碼流以及可變長解碼引擎的輸出數(shù)據(jù);
[0010]可變長解碼引擎:用以解碼從DDR中獲取的視頻碼流并將解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊中;
[0011]數(shù)據(jù)管理模塊:將可變長解碼引擎的解碼后的數(shù)據(jù)輸出到直接內(nèi)存存取模塊,并將從直接內(nèi)存存取模塊獲取的數(shù)據(jù)輸出;
[0012]直接內(nèi)存存取模塊:將數(shù)據(jù)管理模塊輸出的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到DDR中,并將從DDR中獲取的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊。
[0013]直接內(nèi)存存取模塊:包括寫通道和讀通道,分別用來支持可變長解碼引擎對DDR的寫操作和下一級流水線模塊對DDR的讀操作;
[0014]數(shù)據(jù)管理模塊:包括地址管理部分和空滿信號產(chǎn)生部分;所述地址管理部分管理DDR的四段地址空間;所述空滿信號產(chǎn)生部分用來產(chǎn)生空信號、滿信號,以分別告知可變長解碼引擎和下一級流水線模塊何時啟動或停止。
[0015]所述的新型解碼器,其所述直接內(nèi)存存取模塊將來自可變長解碼引擎及其它模塊對DDR數(shù)據(jù)的讀請求傳遞給DDR,并將從DDR讀回來的數(shù)據(jù)返回給發(fā)送請求的模塊,對DDR的寫請求:直接內(nèi)存存取模塊將寫數(shù)據(jù)寫入DDR。
[0016]所述的新型解碼器,其所述空滿信號產(chǎn)生部分包含兩個計數(shù)器,計數(shù)范圍[0,3],分別命名為讀指針和寫指針。
[0017]所述的新型解碼器,其所述四段地址空間分別是地址空間1、2、3、4 ;待解碼的第一個宏塊單元的數(shù)據(jù)先寫入地址空間1,參數(shù)寫入地址空間2,第二個宏塊單元的數(shù)據(jù)寫入地址空間3,參數(shù)寫入地址空間4,下一級流水線模塊先從地址空間I和2讀取第一個宏塊單元的數(shù)據(jù)和參數(shù),再從地址空間3和4讀取第二個宏塊單元的數(shù)據(jù)和參數(shù),這樣交替讀取,完成解碼過程。
[0018]所述的一種新型解碼器的解碼方法,其包括:
[0019]第一級流水線:可變長解碼引擎通過數(shù)據(jù)管理模塊將數(shù)據(jù)和參數(shù)直接傳遞給直接內(nèi)存存取模塊,并由直接內(nèi)存存取模塊將數(shù)據(jù)信息寫入DDR中;
[0020]第二級流水線通過數(shù)據(jù)管理模塊到直接內(nèi)存存取模塊再到DDR相應位置取回數(shù)據(jù)和參數(shù),進行正常工作。
[0021]所述的解碼方法,其具體包括如下步驟:
[0022]AXPU啟動一幅圖像的解碼,并從DDR存放視頻碼流的位置讀取碼流,搜索圖像的頭信息,將解碼得到的關于圖像的幀結構、寬高信息、碼流的起始位置等,通過總線傳遞給可變長解碼引擎,從而啟動可變長解碼引擎工作;
[0023]B、可變長解碼引擎在接收到CPU傳遞過來的參數(shù)信息后啟動,在每次解碼一個宏塊單元前,可變長解碼引擎都要先觀測滿信號的值,如果信號值為1,則可變長解碼引擎暫停,直到滿信號的值為0,可變長解碼引擎恢復解碼,并從DDR的相應地址空間讀取碼流,進行解碼,將解碼得到的數(shù)據(jù)和參數(shù)通過數(shù)據(jù)管理模塊寫入DDR的約定位置,寫指針加I ;
[0024]C、第二級流水線模塊在觀察到數(shù)據(jù)管理模塊的空信號的值為O時,向數(shù)據(jù)管理模塊請求數(shù)據(jù)和參數(shù),數(shù)據(jù)管理模塊從DDR相應的地址空間處讀取數(shù)據(jù)和參數(shù),并傳遞給第二級流水線模塊,進行相應的解碼工作,數(shù)據(jù)管理模塊的讀指針加I ;
[0025]D、數(shù)據(jù)管理模塊通過真值表產(chǎn)生空、滿信號。
[0026]所述的解碼方法,其所述數(shù)據(jù)管理模塊包括地址管理部分,所述地址管理部分管理DDR的四段地址空間,所述四段地址空間分別是地址空間1、2、3、4 ;第一個宏塊單元的數(shù)據(jù)先寫入地址空間1,參數(shù)寫入地址空間2,第二個宏塊單元的數(shù)據(jù)寫入地址空間3,參數(shù)寫入地址空間4 ;第二級流水線模塊先從地址空間I和2讀取第一個宏塊單元的數(shù)據(jù)和參數(shù),再從地址空間3和4讀取第二個宏塊單元的數(shù)據(jù)和參數(shù),這樣交替讀取,完成解碼過程。
[0027]所述的解碼方法,其所述數(shù)據(jù)管理模塊包括空滿信號產(chǎn)生部分,所述空滿信號產(chǎn)生部分用以產(chǎn)生空信號、滿信號所述空滿信號產(chǎn)生部分包含兩個計數(shù)器,計數(shù)范圍[0,3],分別命名為讀指針和寫指針。
[0028]如上所述,本發(fā)明的新型解碼器及解碼方法,具有以下有益效果:本發(fā)明的直接內(nèi)存存取模塊DMA通過增加一個讀通道和一個寫通道,即,增加很小的邏輯,而去掉了兩個416X22單口 SRAM、緩存參數(shù)的兩組寄存器,如此,對比現(xiàn)有技術的設計芯片綜合面積節(jié)省約80000um2,而芯片整體面積減少約6%,從而大大的降低了對應的芯片成本。
【專利附圖】
【附圖說明】
[0029]圖1顯示為現(xiàn)有技術的解碼器的熵解碼流水線模塊與緩存模塊的交互結構示意圖。
[0030]圖2顯示為本發(fā)明新型解碼器的流水線模塊與緩存模塊的交互結構示意圖?!揪唧w實施方式】
[0031]以下由特定的具體實施例說明本發(fā)明的實施方式,熟悉此技術的人士可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點及功效。
[0032]請參閱圖1至圖2。須知,本說明書所附圖式所繪示的結構、比例、大小等,均僅用以配合說明書所揭示的內(nèi)容,以供熟悉此技術的人士了解與閱讀,并非用以限定本發(fā)明可實施的限定條件,故不具技術上的實質(zhì)意義,任何結構的修飾、比例關系的改變或大小的調(diào)整,在不影響本發(fā)明所能產(chǎn)生的功效及所能達成的目的下,均應仍落在本發(fā)明所揭示的技術內(nèi)容得能涵蓋的范圍內(nèi)。
[0033]簡言之,本發(fā)明的技術方案是對【背景技術】中的所述區(qū)域的設計架構的修改,如此可以省去以上的面積,達到降低整顆芯片的面積,有效地降低成本。例如:512MB容量的DDR的使用效率為50%,總線利用率約為20%,如此有充足的條件資源可以保證在不增加芯片面積的前提下,完成新的設計方法。即,完全去掉【背景技術】中的緩存模塊,包括其數(shù)據(jù)緩存和參數(shù)緩存,第一級流水線:可變長解碼引擎通過本發(fā)明的數(shù)據(jù)管理模塊將數(shù)據(jù)和信息直接傳遞給DMA,并由DMA將數(shù)據(jù)信息寫入DDR中,第二級流水線通過數(shù)據(jù)管理模塊到DMA再到DDR相應位置取回數(shù)據(jù)和信息,進行正常工作。本發(fā)明的具體結構如下:
[0034]DMA模塊:DMA (直接內(nèi)存存取)模塊為原有設計,將來自VLD及其它模塊對DDR數(shù)據(jù)的讀請求傳遞給DDR,并將從DDR讀回來的數(shù)據(jù)返回給發(fā)送請求的模塊,對DDR的寫請求,DMA將寫數(shù)據(jù)寫入DDR,在本發(fā)明的設計中,DMA增加了兩個端口,S卩:一個寫通道和一個讀通道,分別用來支持VLD的寫操作和第二級流水線模塊的讀操作。
[0035]數(shù)據(jù)管理模塊:該模塊分為兩部分:地址管理部分和空滿信號產(chǎn)生部分;地址管理部分管理DDR的四段地址空間,分別是地址空間1、2、3、4 ;這些地址空間分別對應現(xiàn)有設計的數(shù)據(jù)緩存A、參數(shù)緩存A ;數(shù)據(jù)緩存B以及參數(shù)緩存B,第一個宏塊單元的數(shù)據(jù)先寫入地址空間1,參數(shù)寫入地址空間2,第二個宏塊單元的數(shù)據(jù)寫入地址空間3,參數(shù)寫入地址空間
4。第二級流水線模塊先從地址空間I和2讀取第一個宏塊單元的數(shù)據(jù)和參數(shù),再從地址空間3和4讀取第二個宏塊單元的數(shù)據(jù)和參數(shù),這樣交替讀取,完成解碼過程??諠M信號產(chǎn)生部分用來產(chǎn)生空信號、滿信號,目的是產(chǎn)生空、滿兩個信號分別告知可變長解碼引擎和第二級流水線模塊何時該啟動或停止。所述的空滿信號產(chǎn)生部分包含兩個計數(shù)器,計數(shù)范圍[0,3],分別命名為讀指針和寫指針,系統(tǒng)啟動時,讀、寫指針均被復位為O。當VLD寫一個宏塊單元到數(shù)據(jù)管理模塊時,寫指針加1,當?shù)诙壛魉€模塊從數(shù)據(jù)管理模塊讀一個宏塊單元時,讀指針加I。表格I為空滿信號對應的真值表:
[0036]
【權利要求】
1.一種新型解碼器,其特征在于,至少包括: DDR:用來緩存解碼前的視頻碼流以及可變長解碼引擎的輸出數(shù)據(jù); 可變長解碼引擎:用以解碼從DDR中獲取的視頻碼流并將解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊中; 數(shù)據(jù)管理模塊:將可變長解碼引擎的解碼后的數(shù)據(jù)輸出到直接內(nèi)存存取模塊,并將從直接內(nèi)存存取模塊獲取的數(shù)據(jù)輸出; 直接內(nèi)存存取模塊:將數(shù)據(jù)管理模塊輸出的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到DDR中,并將從DDR中獲取的可變長解碼引擎的解碼后的數(shù)據(jù)輸出到數(shù)據(jù)管理模塊。
2.根據(jù)權利要求1所述的新型解碼器,其特征在于,所述直接內(nèi)存存取模塊包括有寫通道和讀通道,分別用來支持對DDR的寫操作和讀操作。
3.根據(jù)權利要求1所述的新型解碼器,其特征在于,所述數(shù)據(jù)管理模塊包括地址管理部分和空滿信號產(chǎn)生部分;所述地址管理部分管理DDR的四段地址空間;所述空滿信號產(chǎn)生部分用以產(chǎn)生空信號、滿信號。
4.根據(jù)權利要求1或2任一所述的新型解碼器,其特征在于,所述直接內(nèi)存存取模塊將來自可變長解碼引擎及其它模塊對DDR數(shù)據(jù)的讀請求傳遞給DDR,并將從DDR讀回來的數(shù)據(jù)返回給發(fā)送請求的模塊,對DDR的寫請求:直接內(nèi)存存取模塊將寫數(shù)據(jù)寫入DDR。
5.根據(jù)權利要求3所述的新型解碼器,其特征在于,所述四段地址空間分別是地址空間1、2、3、4 ;待解碼的第一個宏塊單元的數(shù)據(jù)先寫入地址空間1,參數(shù)寫入地址空間2,待解碼的第二個宏塊單元的數(shù)據(jù)寫入地址空間3,參數(shù)寫入地址空間4,讀取時先從地址空間1和2讀取第一個宏塊單元的數(shù)據(jù)和參數(shù),再從地址空間3和4讀取第二個宏塊單元的數(shù)據(jù)和參數(shù),交替讀取以完成解碼過程。
6.根據(jù)權利要求3所述的新型解碼器,其特征在于,所述空滿信號產(chǎn)生部分包含兩個計數(shù)器,計數(shù)范圍[O,3],分別命名為讀指針和寫指針。
7.如權利要求1所述的一種新型解碼器的解碼方法,其特征在于,其包括: 第一級流水線:可變長解碼引擎通過數(shù)據(jù)管理模塊將數(shù)據(jù)和參數(shù)直接傳遞給直接內(nèi)存存取模塊,并由直接內(nèi)存存取模塊將數(shù)據(jù)信息寫入DDR中; 第二級流水線通過數(shù)據(jù)管理模塊到直接內(nèi)存存取模塊再到DDR相應位置取回數(shù)據(jù)和參數(shù),進行正常工作。
8.如權利要求7所述的解碼方法,其特征在于,其具體包括如下步驟: AXPU啟動一幅圖像的解碼,并從DDR存放視頻碼流的位置讀取碼流,搜索圖像的頭信息,將解碼得到的關于圖像的幀結構、寬高信息、碼流的起始位置等,通過總線傳遞給可變長解碼引擎,從而啟動可變長解碼引擎工作; B、可變長解碼引擎在接收到CPU傳遞過來的參數(shù)信息后啟動,在每次解碼一個宏塊單元前,可變長解碼引擎先觀測數(shù)據(jù)管理模塊的所述空滿信號產(chǎn)生部分用的滿信號的值,如果信號值為1,則可變長解碼引擎暫停,直到滿信號的值為O,可變長解碼引擎恢復解碼,并從DDR的相應地址空間讀取碼流,進行解碼,將解碼得到的數(shù)據(jù)和參數(shù)通過數(shù)據(jù)管理模塊寫入DDR的相應位置,寫指針加1 ; C、第二級流水線模塊在觀察到數(shù)據(jù)管理模塊的空信號的值為O時,向數(shù)據(jù)管理模塊請求數(shù)據(jù)和參數(shù),數(shù)據(jù)管理模塊從DDR相應的地址空間處讀取數(shù)據(jù)和參數(shù),并傳遞給第二級流水線模塊,進行相應的解碼工作; D、數(shù)據(jù)管理模塊通過真值表產(chǎn)生空、滿信號。
9.如權利要求7或8任一所述的解碼方法,其特征在于,所述數(shù)據(jù)管理模塊包括地址管理部分,所述地址管理部分管理DDR的四段地址空間,所述四段地址空間分別是地址空間1、2、3、4 ;第一個宏塊單元的數(shù)據(jù)先寫入地址空間1,參數(shù)寫入地址空間2,第二個宏塊單元的數(shù)據(jù)寫入地址空間3,參數(shù)寫入地址空間4 ;第二級流水線模塊先從地址空間I和2讀取第一個宏塊單元的數(shù)據(jù)和參數(shù),再從地址空間3和4讀取第二個宏塊單元的數(shù)據(jù)和參數(shù),這樣交替讀取,完成解碼過程。
10.如權利要求7或8任一所述的解碼方法,其特征在于,所述數(shù)據(jù)管理模塊包括空滿信號產(chǎn)生部分,所述空滿信號產(chǎn)生部分用以產(chǎn)生空信號、滿信號所述空滿信號產(chǎn)生部分包含兩個計數(shù)器,計 數(shù)范圍[0,3],分別命名為讀指針和寫指針。
【文檔編號】H04N19/44GK103596013SQ201310582431
【公開日】2014年2月19日 申請日期:2013年11月19日 優(yōu)先權日:2013年11月19日
【發(fā)明者】錢宏達, 鄭成根, 江顯舟, 許集潤, 王旭升, 柴亮, 劉志恒, 王峰, 管云峰, 孫軍, 戴楊 申請人:上海高清數(shù)字科技產(chǎn)業(yè)有限公司