一種實(shí)現(xiàn)復(fù)用的離散余弦變換dct8裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)復(fù)用的離散余弦變換dct8裝置及方法。
【背景技術(shù)】
[0002]H.264是目前最新的國際視頻壓縮標(biāo)準(zhǔn)。H.264擁有極高的編碼效率,主要是因?yàn)椴捎玫母_的幀內(nèi)預(yù)測(intra predict1n)和幀間預(yù)測(inter predict1n)。但是這些編碼效率的提高都會伴隨著編碼復(fù)雜度的提高,為實(shí)現(xiàn)實(shí)時(shí)算法提出了新的挑戰(zhàn)。
[0003]隨著可穿戴智能設(shè)備的興起,在極小空間內(nèi)集成的硬件設(shè)備要求越來越低功耗,而且能夠高效處理各項(xiàng)事務(wù),特別是針對視頻采集等廣泛性的社會需求,這也造成了視頻編碼系統(tǒng)的挑戰(zhàn)。離散余弦變換dct變換作為H.264視頻編碼中一個(gè)計(jì)算量極大的運(yùn)算過程,需要消耗很多寄存器資源,這也造成了視頻編碼器在設(shè)計(jì)上面積以及功耗的難題。
[0004]現(xiàn)有技術(shù)的離散余弦變換dct8裝置的中間轉(zhuǎn)置部分使用隨機(jī)存取存儲器ram,并且需要拆分獨(dú)立8條ram單元,對整個(gè)面積并不會節(jié)省太多;整個(gè)8x8DCT變換塊的處理時(shí)間需要13個(gè)時(shí)鐘周期完成;ram的操作和使用較為復(fù)雜,后期需要單獨(dú)進(jìn)行ram的維護(hù);
[0005]另外,ram不一定支持同一個(gè)地址同時(shí)讀寫,因此處理多個(gè)dct8x8塊時(shí),在每次二維變換器讀ram數(shù)據(jù)時(shí)刻,后一個(gè)dct8x8塊的一維變換器需要等讀完之后才可以寫入。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題之一,在于提供一種實(shí)現(xiàn)復(fù)用的離散余弦變換DCT8裝置,實(shí)現(xiàn)視頻4kx2k@30FPS,1080p@120FPS的高性能編碼需求,并節(jié)省dct變換過程中的資源消耗和功耗消耗。
[0007]本發(fā)明問題之一是這樣實(shí)現(xiàn)的:一種實(shí)現(xiàn)復(fù)用的離散余弦變換DCT8裝置,
[0008]包括:一維變換器、兩個(gè)8路復(fù)用器、二維寄存器組、二維變換器、以及reg寄存器;所述二維寄存器組由8個(gè)二維寄存器組成,每個(gè)二維寄存器存儲1個(gè)像素?cái)?shù)據(jù);
[0009]所述一維變換器經(jīng)一個(gè)8路復(fù)用器與所述二維寄存器組連接,所述二維寄存器組通過另一個(gè)8路復(fù)用器與所述二維變換器連接,二維變換器與所述reg寄存器連接;
[0010]所述一維變換器將編碼圖像中8X8離散余弦變換變換塊進(jìn)行一維變換處理后得到的8個(gè)像素?cái)?shù)據(jù)經(jīng)過一 8路復(fù)用器復(fù)用后直接寫入二維寄存器組中指定的位置;
[0011]所述二維變換器通過另一 8路復(fù)用器從二維寄存器組中同一個(gè)位置讀取8個(gè)像素?cái)?shù)據(jù)進(jìn)行二維的變換操作;
[0012]所述reg寄存器存儲二維變換操作后的結(jié)果數(shù)據(jù)。
[0013]進(jìn)一步的,所述編碼圖像中8X8離散余弦變換變換塊通過一維變換器和二維變換器的處理時(shí)間只要11個(gè)時(shí)鐘周期,且滿足時(shí)序處理要求。
[0014]進(jìn)一步的,所述二維寄存器組使用兩個(gè)4Bits計(jì)數(shù)器來分別控制讀和寫數(shù)據(jù)的操作。
[0015]進(jìn)一步的,當(dāng)一維變換器操作寫二維寄存器組是橫向?qū)懙那闆r下,二維變換器操作也是橫向讀取一維變換器寫過的二維寄存器行像素進(jìn)行二維處理,從而進(jìn)行能流水處理;
[0016]當(dāng)一維變換器縱向?qū)懚S寄存器組的情況下,二維變換器也是縱向讀??;同樣進(jìn)行流水處理;
[0017]則橫向和縱向都是公用一套二維寄存器組,同時(shí)利用寄存器能橫向和縱向都能操作的特性。
[0018]本發(fā)明要解決的技術(shù)問題之二,在于提供一種實(shí)現(xiàn)復(fù)用的離散余弦變換DCT8方法,實(shí)現(xiàn)4kx2k@30FPS,1080p@120FPS的高性能編碼需求,并節(jié)省dct變換過程中的資源消耗和功耗消耗。
[0019]本發(fā)明問題之二是這樣實(shí)現(xiàn)的:一種實(shí)現(xiàn)復(fù)用的離散余弦變換DCT8方法,所述方法需提供一維變換器、兩個(gè)8路復(fù)用器、二維寄存器組、二維變換器、以及reg寄存器;所述二維寄存器組由8個(gè)二維寄存器組成,每個(gè)二維寄存器存儲1個(gè)像素?cái)?shù)據(jù);
[0020]所述方法具體為:
[0021]所述一維變換器將編碼圖像中8X8離散余弦變換變換塊進(jìn)行一維變換處理后得到的8個(gè)像素?cái)?shù)據(jù)經(jīng)過一 8路復(fù)用器復(fù)用后直接寫入二維寄存器組中指定的位置;
[0022]所述二維變換器通過另一 8路復(fù)用器從二維寄存器組中同一個(gè)位置讀取8個(gè)像素?cái)?shù)據(jù)進(jìn)行二維的變換操作;所述一維變換器和二維變換器進(jìn)行行列讀寫操作時(shí)無需停頓操作,能完全流水處理;
[0023]所述reg寄存器存儲二維變換操作后的結(jié)果數(shù)據(jù)。
[0024]進(jìn)一步的,所述編碼圖像中8X8離散余弦變換變換塊通過一維變換器和二維變換器的處理時(shí)間只要11個(gè)時(shí)鐘周期,且滿足時(shí)序處理要求。
[0025]進(jìn)一步的,所述二維寄存器組使用兩個(gè)4Bits計(jì)數(shù)器來分別控制讀和寫數(shù)據(jù)的操作。
[0026]進(jìn)一步的,當(dāng)一維變換器操作寫二維寄存器組是橫向?qū)懙那闆r下,二維變換器操作也是橫向讀取一維變換器寫過的二維寄存器行像素進(jìn)行二維處理,從而進(jìn)行能流水處理;
[0027]當(dāng)一維變換器縱向?qū)懚S寄存器組的情況下,二維變換器也是縱向讀??;同樣進(jìn)行流水處理;
[0028]則橫向和縱向都是公用一套二維寄存器組,同時(shí)利用寄存器能橫向和縱向都能操作的特性。
[0029]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明的二維寄存器組可以很好支持同時(shí)行列讀寫操作;由于支持同時(shí)讀寫,對面積并不會帶來更多消耗;實(shí)現(xiàn)dct8變換過程中的資源復(fù)用,減小芯片設(shè)計(jì)面積及功耗。同時(shí)本發(fā)明省去了現(xiàn)有技術(shù)中隨機(jī)存取存儲器ram的獨(dú)立維護(hù),和增加ram測試邏輯。
【附圖說明】
[0030]圖1為本發(fā)明裝置的結(jié)構(gòu)示意圖。
[0031 ]圖2為本發(fā)明方法的流程示意圖。
[0032]圖3為本發(fā)明一維變換器往二維寄存器組按照行寫后二維變換器按照行讀的結(jié)構(gòu)示意圖。
[0033]圖4為本發(fā)明一維變換器往二維寄存器組按照列寫后二維變換器按照列讀的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0034]請參閱圖1所示,本發(fā)明的一種實(shí)現(xiàn)復(fù)用的離散余弦變換DCT8裝置,包括:一維變換器11、兩個(gè)8路復(fù)用器12、二維寄存器組13、二維變換器14、以及reg寄存器15;所述二維寄存器組13由8個(gè)二維寄存器組成,每個(gè)二維寄存器存儲1個(gè)像素?cái)?shù)據(jù);
[0035]所述一維變換器11經(jīng)一個(gè)8路復(fù)用器12與所述二維寄存器組13連接,所述二維寄存器組13通過另一個(gè)8路復(fù)用器12與所述二維變換器14連接,二維變換器14與所述reg寄存器15連接;
[0036]所述一維變換器11將編碼圖像中8X8離散余弦變換變換塊進(jìn)行一維變換處理后得到的8個(gè)像素?cái)?shù)據(jù)經(jīng)過一8路復(fù)用器12復(fù)用后直接寫入二維寄存器組13中指定的位置;該8路復(fù)用器12可使多路數(shù)據(jù)信息共享一路信道。
[0037]所述二維變換器14通過另一 8路復(fù)用器12從二維寄存器組13中同一個(gè)位置讀取8個(gè)像素?cái)?shù)據(jù)進(jìn)行二維的變換操作;
[0038]所述reg寄存器15存儲二維變換操作后的結(jié)果數(shù)據(jù)。
[0039]在本發(fā)明中,所述編碼圖像中8X8離散余弦變換變換塊通過一維變換器和二維變換器的處理時(shí)間只要11個(gè)時(shí)鐘周期,且滿足時(shí)序處理要求。所述二維寄存器組使用兩個(gè)4Bits