適用于hevc標(biāo)準(zhǔn)的基于sram的dct輸入輸出數(shù)據(jù)緩存方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于高清數(shù)字視頻壓縮編解碼技術(shù)領(lǐng)域,具體為一種適用于HEVC標(biāo)準(zhǔn)中對(duì)DCT的輸入輸出數(shù)據(jù)進(jìn)行緩存的方法。
【背景技術(shù)】
[0002]HEVC (High Efficiency Video Coding)是由國(guó)際電信組織(ITU)和運(yùn)動(dòng)圖像專家組(MPEG)聯(lián)合成立的組織JCTVC提出的下一代視頻編解碼標(biāo)準(zhǔn)。目標(biāo)是在相同的視覺(jué)效果的前提下,相比于上一代標(biāo)準(zhǔn),即H.264/AVC標(biāo)準(zhǔn),壓縮率提高一倍。
[0003]基于HEVC的視頻編碼器,主要由以下模塊組成:幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、變換、量化、反量化、反變換、重建、去方塊濾波器、自適應(yīng)樣點(diǎn)補(bǔ)償?shù)?。其中,離散余弦變換(DCT)作為編碼器必不可少的一部分,與包括預(yù)測(cè)模塊、熵編碼模塊、去方塊化模塊在內(nèi)的諸多模塊存在數(shù)據(jù)交互。然而,由于離散余弦變換模塊(DCT)所常用的輸入輸出格式,即按行輸出,與其他模塊的常用輸入輸出模式,即按塊輸出,不一致,從而需要在各條數(shù)據(jù)的通路上設(shè)置緩存,如圖1所示。而在HEVC標(biāo)準(zhǔn)下,圖像處理塊(IXU)的大小最大已經(jīng)到達(dá)了 64X64,這導(dǎo)致傳統(tǒng)的基于寄存器的緩存方式變得不再適用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提出一種可以克服現(xiàn)有技術(shù)不足的、能有效適用于HEVC標(biāo)準(zhǔn)中對(duì)DCT的輸入輸出進(jìn)行數(shù)據(jù)緩存方法。
[0005]本發(fā)明提出的適用于HEVC標(biāo)準(zhǔn)的對(duì)DCT的輸入輸出數(shù)據(jù)進(jìn)行緩存方法,是基于靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)的。本發(fā)明方法僅使用了 4個(gè)深度為128,寬度為8像素寬度的靜態(tài)隨機(jī)存儲(chǔ)器(SRAM),但無(wú)論訪問(wèn)的塊大小為4X 4,8 X 8,16 X 16還是32 X 32,無(wú)論訪問(wèn)的格式是按行輸出還是按塊輸出,該方法總是能夠提供每周期32像素的吞吐率。
[0006]本發(fā)明提出的適用于HEVC標(biāo)準(zhǔn)的對(duì)DCT的輸入輸出數(shù)據(jù)進(jìn)行緩存方法,將64 X 64大小的圖像處理塊等分成4個(gè)32X32大小的1/4圖像處理塊,每個(gè)圖像處理塊的標(biāo)號(hào)用符號(hào)表示,序號(hào)以光柵順序記錄,從0計(jì)數(shù);將32 X 32大小的1/4圖像處理塊等分成16個(gè)8X8大小的1/64處理塊,每個(gè)圖像處理塊的標(biāo)號(hào)用符號(hào),序號(hào)以光柵順序記錄,從0計(jì)數(shù);將8 X 8大小的1/64處理塊等分成8個(gè)1 X 8大小的圖像處理行,每個(gè)圖像處理行的標(biāo)號(hào)用符號(hào)示,序號(hào)依次向下,從0計(jì)數(shù)。
[0007]由此,每個(gè)圖像處理行的完整表示方式是nQLCU~nBlock-nRow,如圖2所示。
[0008]本方法中每個(gè)靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的標(biāo)號(hào)用符號(hào)ban陳示,從0計(jì)數(shù);每個(gè)靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的地址用符號(hào)示,從零計(jì)數(shù)。
[0009]由此,每個(gè)存儲(chǔ)單元的完整表示方式是bank-addr。
[0010]根據(jù)上述標(biāo)號(hào)定義,本發(fā)明對(duì)各圖像塊處理的數(shù)據(jù)與各靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器中各存儲(chǔ)單元地址之間對(duì)應(yīng)的存儲(chǔ)關(guān)系,即具體映射公式如下:當(dāng) iz/Po禮)4 等于 0 時(shí),bank = {nBlock+Q) %4當(dāng) /iffow%4 等于 1 時(shí),bank - {nBlock+2) %4當(dāng) /iffow%4 等于 2 時(shí),bank - {nBlock+l) %4(1)
當(dāng) /iffow%4 等于 3 時(shí),bank - (nBlock+3) %4ad dr - 32 X nQLClhS X {nRov/ 4] +nBlock
此處,符號(hào)“%”表示取余,符號(hào)“[]”表示取整,且采用向下取整的方式,映射后的數(shù)據(jù)排布如圖3所示。
[0011]按照這樣的映射,在按塊訪問(wèn)時(shí),總是可以訪問(wèn)水平相鄰的2個(gè)4X4塊,吞吐率是32像素每周期;在按行訪問(wèn)時(shí),總是可以訪問(wèn)8X8塊下的4相鄰4行,16X16塊下的相鄰2行和32X32塊下的1行,吞吐率也是32像素每周期。
【附圖說(shuō)明】
[0012]圖1:離散余弦變換周?chē)枰木彺妗?br>[0013]圖2:數(shù)據(jù)標(biāo)記方式。
[0014]圖3:數(shù)據(jù)映射方式。
[0015]圖4:各類訪問(wèn)。
【具體實(shí)施方式】
[0016]按照公式(1),有如下映射方式:
像素行0-0-0映射于存儲(chǔ)單元0-0 ;
像素行0-0-1映射于存儲(chǔ)單元1-1;
像素行0-0-2映射于存儲(chǔ)單元2-2 ;
像素行0-0-3映射于存儲(chǔ)單元3-3 ;
像素行0-0-4映射于存儲(chǔ)單元0-4 ;
像素行0-0-5映射于存儲(chǔ)單兀1-5 ;
像素行0-0-6映射于存儲(chǔ)單元2-6 ;
像素行0-0-7映射于存儲(chǔ)單元3-7 ;
像素行0-1-0映射于存儲(chǔ)單元2-0 ;
像素行0-1-1映射于存儲(chǔ)單元3-1 ;
像素行0-1-2映射于存儲(chǔ)單元0-2 ;
像素行0-1-3映射于存儲(chǔ)單元1-3 ;
像素行0-1-4映射于存儲(chǔ)單元2-4 ;
像素行0-1-5映射于存儲(chǔ)單元3-5 ;
像素行0-1-6映射于存儲(chǔ)單元0-6 ;
像素行0-1-7映射于存儲(chǔ)單元1-7 ;
像素行0-2-0映射于存儲(chǔ)單元1-0 ;
像素行0-2-1映射于存儲(chǔ)單元2-1 ;
像素行0-2-2映射于存儲(chǔ)單元3-2 ;
像素行0-2-3映射于存儲(chǔ)單元0-3 ; 像素行0-2-4映射于存儲(chǔ)單元1-4 ;
像素行0-2-5映射于存儲(chǔ)單元2-5 ;
像素行0-2-6映射于存儲(chǔ)單元3-6 ;
像素行0-2-7映射于存儲(chǔ)單元0-7 ;
像素行0-3-0映射于存儲(chǔ)單元3-0 ;
像素行0-3-1映射于存儲(chǔ)單元0-1 ;
像素行0-3-2映射于存儲(chǔ)單元1-2 ;
像素行0-3-3映射于存儲(chǔ)單元2-3 ;
像素行0-3-4映射于存儲(chǔ)單元3-4 ;
像素行0-3-5映射于存儲(chǔ)單兀0-5 ;
像素行0-3-6映射于存儲(chǔ)單元1-6 ;
像素行0-3-7映射于存儲(chǔ)單元2-7 ;
像素行0-4-0映射于存儲(chǔ)單元0-8 ;
像素行0-4-1映射于存儲(chǔ)單元1-9 ;
像素行0-4-2映射于存儲(chǔ)單元2-10 ;
像素行0-4-3映射于存儲(chǔ)單元3-11 ;
像素行0-4-4映射于存儲(chǔ)單元0-12 ;
像素行0-4-5映射于存儲(chǔ)單兀1-13 ;
像素行0-4-6映射于存儲(chǔ)單元2-14 ;
像素行0-4-7映射于存儲(chǔ)單兀3-15 ;
ο
[0017]而在訪問(wèn)數(shù)據(jù)時(shí),無(wú)論是1個(gè)1 X 32行,2個(gè)相鄰的1 X 16行,4個(gè)相鄰的1 X 8行,還是2個(gè)相鄰4X4塊總是分布在不同的如/7々,亦即不同的靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)當(dāng)中。
[0018]如由圖像處理行0-0,1-0,2-0和3-0構(gòu)成的1個(gè)1 X 32行,被映射在了存儲(chǔ)單元
0-0,2-0,1-0和 3-0 中;
如由圖像處理行0-0,0-1,1-0和1-1構(gòu)成的2個(gè)IX 16行,被映射在了存儲(chǔ)單元0-0,
1-1,2-0和 3-1 中;
如由圖像處理行0-0,0-1,0-2和0-3構(gòu)成的4個(gè)1X8行,被映射在了存儲(chǔ)單元0_0,1-1,2-2 和 3-3 中;
如由圖像處理行0-0,0-1,0-2和0-3構(gòu)成的2個(gè)4X4塊,被映射在了存儲(chǔ)單元0_0,1-1,2-2 和 3-3 中;
如圖4所示。
【主權(quán)項(xiàng)】
1.一種適用于HEVC標(biāo)準(zhǔn)的基于SRAM的DCT輸入輸出數(shù)據(jù)緩存方法,其中使用4個(gè)深度為128、寬度為8像素寬度的靜態(tài)隨機(jī)存儲(chǔ)器; 首先,將64X64大小的圖像處理塊等分成4個(gè)32 X 32大小的1/4圖像處理塊,每個(gè)圖像處理塊的標(biāo)號(hào)用符號(hào)表示,序號(hào)以光柵順序記錄,從0計(jì)數(shù);將32 X 32大小的1/4圖像處理塊等分成16個(gè)8X8大小的1/64處理塊,每個(gè)圖像處理塊的標(biāo)號(hào)用符號(hào)nBlock表示,序號(hào)以光柵順序記錄,從0計(jì)數(shù);將8 X 8大小的1/64處理塊等分成8個(gè)1 X 8大小的圖像處理行,每個(gè)圖像處理行的標(biāo)號(hào)用符號(hào)示,序號(hào)依次向下,從0計(jì)數(shù); 于是,每個(gè)圖像處理行的完整表示方式是nQLCU~nB 1 ock-nRow\ 每個(gè)靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的標(biāo)號(hào)用符號(hào)ban陳示,從0計(jì)數(shù);每個(gè)靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器的地址用符號(hào)示,從零計(jì)數(shù); 于是,每個(gè)存儲(chǔ)單元的完整表示方式是bank-addr' 根據(jù)上述標(biāo)號(hào)定義,各圖像塊處理的數(shù)據(jù)與各靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器中各存儲(chǔ)單元地址之間對(duì)應(yīng)的存儲(chǔ)關(guān)系,即具體映射公式如下: 當(dāng) nRow%4 等于 0 時(shí),bank = (nBlock+O)%4 當(dāng) nRow%4 等于 1 時(shí),bank = (nBlock+2)%4 當(dāng) nRow%4 等于 2 時(shí),bank = (nBlock+1)%4(1) 當(dāng) nRow%4 等于 3 時(shí),bank = (nBlock+3)%4 addr = 32XnQLCU+8X [nRow/4]+nBlock 此處,符號(hào)“%”表示取余,符號(hào)“ □”表示取整,且向采用下取整的方式。
【專利摘要】本發(fā)明屬于高清數(shù)字視頻壓縮編解碼技術(shù)領(lǐng)域,具體為一種適用于HEVC標(biāo)準(zhǔn)的基于SRAM的DCT輸入輸出數(shù)據(jù)緩存方法。本發(fā)明使用4個(gè)深度為128,寬度為8像素寬度的靜態(tài)隨機(jī)存儲(chǔ)器(SRAM),并將64×64大小的圖像處理塊等分成4個(gè)32×32大小的1/4圖像處理塊;將32×32大小的1/4圖像處理塊等分成16個(gè)8×8大小的1/64處理塊;將8×8大小的1/64處理塊等分成8個(gè)1×8大小的圖像處理行;然后對(duì)各圖像塊處理的數(shù)據(jù)與各靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器中各存儲(chǔ)單元地址之間建立對(duì)應(yīng)的存儲(chǔ)關(guān)系。使用本發(fā)明方法,無(wú)論訪問(wèn)的塊大小為4×4,8×8,16×16還是32×32,無(wú)論訪問(wèn)的格式是按行輸出還是按塊輸出,總是能夠提供每周期32像素的吞吐率,從而以極低的硬件代價(jià)來(lái)達(dá)到極高的吞吐率。
【IPC分類】H04N19/625, H04N19/433, H04N19/122
【公開(kāi)號(hào)】CN105376582
【申請(qǐng)?zhí)枴緾N201510787841
【發(fā)明人】范益波, 黃磊磊, 劉淑君, 曾曉洋
【申請(qǐng)人】復(fù)旦大學(xué)
【公開(kāi)日】2016年3月2日
【申請(qǐng)日】2015年11月17日