當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]為了使JPEG2000能應(yīng)用到便攜產(chǎn)品中,采用了高效存儲(chǔ)結(jié)構(gòu)的硬件實(shí)現(xiàn)方案,并設(shè)計(jì)了相應(yīng)的寄存器組和控制邏輯。仿真結(jié)果表明所設(shè)計(jì)所設(shè)計(jì)的編碼器能夠在0.256s內(nèi)完成對(duì)一幀512×512的灰度圖像的編碼。

隨著多媒體市場(chǎng)的迅猛發(fā)展,百萬(wàn)像素的數(shù)碼相機(jī)、各種功能強(qiáng)大的彩屏手機(jī)等數(shù)字消費(fèi)產(chǎn)品逐漸普及。這些多媒體應(yīng)用均需要處理高質(zhì)量、高分辨率的大圖像,這對(duì)存儲(chǔ)介質(zhì)的容量和傳輸信道的帶寬都提出了新要求。圖像壓縮的國(guó)際標(biāo)準(zhǔn)JPEG已不能滿足這些新的要求,而且它在低碼率時(shí)還存在著方塊效率。因此,從1997年開(kāi)始,JPEG委員會(huì)就致力于開(kāi)發(fā)新的靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG2000,并在2000年8月形成了最終經(jīng)濟(jì)核草案,在2000年12月使其成為了國(guó)標(biāo)標(biāo)準(zhǔn)。



JPEG2000相比JPEG有著更大的靈活性,不僅能對(duì)原始圖像高效地壓縮,而且可以對(duì)壓縮后的數(shù)據(jù)進(jìn)行處理。這意味著可以從壓縮碼流中提取一部分?jǐn)?shù)據(jù)來(lái)重建低分辨率或低碼率的圖像,或者是撮圖像的感興趣區(qū)域。這樣就允許將原始圖像壓縮為單一的碼流以適應(yīng)不同的傳輸信道、存儲(chǔ)或顯示設(shè)備,而不必考慮圖像的大小、分量多少以及樣本的精度。

JPEG2000的一個(gè)主要特性就是基于圖像質(zhì)量和分辨率的累進(jìn)傳輸,為了支持這種可分級(jí)的壓縮編碼,JPEG2000采用了離散小波變換(DWT)替代JPEG中的離散余弦變換(DCT),并采用了Taubman提出的具有優(yōu)化截?cái)帱c(diǎn)的嵌入式塊編碼(EBCOT)算法。



JPEG2000編碼器的框圖如圖1所示。

首先將原始圖像劃分為圖像片,通過(guò)DWT將圖像片分解為不同的分辨率級(jí)別,獲得多個(gè)子帶的頻域系數(shù),將各個(gè)子帶劃分為碼塊(典型大小是32×32或64×64),對(duì)每個(gè)碼塊進(jìn)行嵌入式的塊編碼,生成上下文和待編碼的數(shù)據(jù)位;然后由算術(shù)編碼部分根據(jù)每個(gè)數(shù)據(jù)位的上下文自適應(yīng)編碼,產(chǎn)生每個(gè)碼塊的子碼流;最后將各個(gè)碼塊的子碼流組織成代表碼流質(zhì)量層的分組,并添加相應(yīng)的頭結(jié)構(gòu)信息,幫助解碼器如何解碼。

EBCOT作為JPEG2000的核心部分,包含了層1和層2兩部分,其中嵌入式塊編碼的邏輯比較復(fù)雜,是影響編碼速度的瓶頸之一,使用通用處理器很難提高其效率。傳統(tǒng)的編碼方式采用軟件實(shí)現(xiàn),但速度和效率不高,且占用較大的存儲(chǔ)資源;而采用硬件實(shí)現(xiàn)方式則會(huì)有更大的靈活性。事實(shí)上采用硬件芯片實(shí)現(xiàn),不但可以提高編碼的速率和效率,而且也能根據(jù)算法本身的特點(diǎn),采用特定的、高效的硬件結(jié)構(gòu)來(lái)實(shí)現(xiàn)算法的關(guān)鍵部分,可以較大幅度地提高編碼效率。另外,隨著多媒體的應(yīng)用和網(wǎng)絡(luò)應(yīng)用逐步便攜化,以前多數(shù)可以在PC機(jī)上處理的工作必須轉(zhuǎn)移到便攜產(chǎn)品上,這對(duì)便攜產(chǎn)品有限的資源提出了挑戰(zhàn)。因此有必要研究硬件編碼芯片完成編碼過(guò)程,本文旨在研究JPEG2000編碼中的關(guān)鍵技術(shù)——嵌入式塊編碼。



1 算法分析及設(shè)計(jì)

嵌入式塊編碼其實(shí)是基于位平面的編碼,而每個(gè)位平面又被劃分為三個(gè)編碼通道,即顯著通道、細(xì)分通道和清除通道。編碼采用固定的掃描方式,每個(gè)比特位僅在其中的一個(gè)編碼通道中完成編碼。編碼過(guò)程可以分為兩個(gè)步驟,即差別編碼通道的歸屬和編碼原操作。在顯著通道中,當(dāng)比特位本身不顯著,且周圍8個(gè)近鄰至少有一個(gè)是顯著時(shí)被編碼;在細(xì)分通道中,當(dāng)比特位在上一個(gè)位平面就變顯著時(shí)被編碼;在清除通道,所有在上面兩個(gè)通道中略過(guò)的比特位被編碼。編碼原操作共患難個(gè),即零值編碼、符號(hào)編碼、細(xì)化編碼和游程編碼。

根據(jù)算法要求,編碼時(shí)必須用到一些編碼信息。假設(shè)碼塊的大小是32×32的,則編碼信息立即包括1024個(gè)顯著信息位(表示當(dāng)前系數(shù)位是否顯著)、1024個(gè)細(xì)化信息位(表示當(dāng)前系數(shù)位是否第一次細(xì)分)、1024個(gè)訪問(wèn)信息位(表示當(dāng)前系統(tǒng)位是否在前面的編碼通道中編過(guò))。當(dāng)然,除此之外,還需要有1024個(gè)符號(hào)位和幅度位,因此編碼過(guò)程中需要存儲(chǔ)的信息為5Kbit。由于FPGA片內(nèi)RAM資源十分有限,因此將碼塊量化后的小波系數(shù)在外部RAM中(對(duì)于32×32的碼塊,16bit的系數(shù),需要存儲(chǔ)16bit),而在片內(nèi)只存儲(chǔ)5Kbit的信息。

塊編碼過(guò)程是以一列的4個(gè)比特位為單位進(jìn)行編碼,且在判別編碼通道的歸屬和編碼操作時(shí),都需要用到當(dāng)前比特位的8個(gè)近鄰的顯著信息和符號(hào)信息。因此,事實(shí)上在編碼每一列數(shù)據(jù)時(shí),必須訪問(wèn)18bit的顯著信息和符號(hào)信息,以及當(dāng)前列的幅度位、訪問(wèn)信息和細(xì)分信息各4bit。對(duì)于幅度位、訪問(wèn)信息和細(xì)分信息,可以將每列的數(shù)據(jù)作為一個(gè)字存儲(chǔ),但這種存儲(chǔ)方式對(duì)顯著信息和符號(hào)信息卻效率較低。如圖2系數(shù),需要存儲(chǔ)16Kbit),而在片內(nèi)只存儲(chǔ)5Kbit的信息。



塊編碼過(guò)程是以一列的4個(gè)比特位為單位進(jìn)行編碼,且在判別編碼通道的歸屬和編碼操作時(shí),都需要用到當(dāng)前比特位的8個(gè)近鄰的顯著信息和符號(hào)信息。因此,事實(shí)上在編碼每一列數(shù)據(jù)時(shí),必須訪問(wèn)18bit的顯著信息和符號(hào)信息,以及當(dāng)前列的幅度位、訪問(wèn)信息和細(xì)化信息各4bit。對(duì)于幅度位、訪問(wèn)信息和細(xì)分信息,可以將每列的數(shù)據(jù)作為一個(gè)字存儲(chǔ),但這種存儲(chǔ)方式對(duì)顯著信息和符號(hào)信息卻效率較低。如圖2所示,如果采用右邊的方案,則對(duì)于編碼帶中的每一列,必須讀取12bit的顯著和符號(hào)信息,其中有6bit是冗余的;如果采用左邊的交錯(cuò)存儲(chǔ)的方案,即對(duì)于32×32的碼塊,在其首行之前和末行之后各添加一行,形成34×32的塊,然后將每?jī)尚凶鳛橐唤M,并采取交錯(cuò)方式存儲(chǔ)(a,b,c,b,a,b,c,…,b,c,b,a),則讀取信息時(shí)不會(huì)有冗余。

顯然,交錯(cuò)存儲(chǔ)方案更有效,只是它需要在硬件電路上付出一些代價(jià)。首先,在預(yù)處理小波數(shù)據(jù)時(shí),必須將符號(hào)位按照上述交錯(cuò)方式寫入內(nèi)部RAM,這比處理幅度位復(fù)雜一些。其次,在編碼過(guò)程中,需要讀取數(shù)據(jù)至內(nèi)部6×4顯著或符號(hào)寄存器,而對(duì)于奇、偶數(shù)編碼帶,其讀入順序也是交錯(cuò)的,對(duì)于前者是a、b、c,對(duì)于后者則是c、b、a;而且讀取三塊內(nèi)存區(qū)域的地址信號(hào)也是不同步的,如表1所示,讀取存儲(chǔ)器b的地址信號(hào)始終增長(zhǎng),而讀取存儲(chǔ)器a和b的地址信號(hào)則符號(hào)以下規(guī)律:前者在從奇編碼帶過(guò)到偶編碼帶時(shí)地址增加,而在從偶編碼帶過(guò)渡到奇編碼帶時(shí)地址保持不變;手者正好相反。

表1 32×32碼塊編碼過(guò)程中,處于各個(gè)編碼帶下讀取內(nèi)部緩存abc的相應(yīng)地址信號(hào)

c
a b c
1
0~31 0~31 0~31
2
32~63 32~63 0~31
3
32~63 64~95 32~63
4
64~95 96~127 32~63
5
64~95 128~159 64~95
6
96~127 160~191 64~95
7
96~127 192~223 96~127
8
128~159 224~255 96~127

因此,必須設(shè)計(jì)相應(yīng)的控制電路滿足上述要求,盡管這樣做付出了額外的代價(jià),但卻大大提高了存儲(chǔ)器的讀寫效率(提高了50%),這對(duì)于需要頻繁訪問(wèn)存儲(chǔ)器的位平面編碼來(lái)說(shuō)是很寶貴的;另外,采用了交錯(cuò)存儲(chǔ)方式,可以對(duì)三塊存儲(chǔ)區(qū)域獨(dú)立地產(chǎn)生地址信號(hào),一次性讀取6bit,而在常規(guī)的存儲(chǔ)方式下,為了讀取12bit信息,必須對(duì)同一塊存儲(chǔ)區(qū)域訪問(wèn)3次,可見(jiàn)采用交錯(cuò)存儲(chǔ)的方案同時(shí)也提高了讀寫速度。

JPEG2000的的中,塊編碼器采用兩種編碼模式,即NORAML和VCAUSAL。在VCAUSAL模式下,考慮當(dāng)前編碼位的周圍顯著的信息時(shí),將下一編碼帶的顯著信息看作是不顯著的,而在NORMAL模式下則看作是顯著。采用VCAUSAL模式,盡管這樣簡(jiǎn)化了對(duì)存儲(chǔ)訪問(wèn)的邏輯控制,節(jié)省了一些存儲(chǔ)空間,但卻降低了塊編碼器的編碼效率。因此,設(shè)計(jì)了圖3所示的寄存器組來(lái)配合上面介紹的交錯(cuò)存儲(chǔ)的方案,這些內(nèi)部寄存器包括6×4bit的顯著和符號(hào)信息寄存器,8bit的細(xì)化和訪問(wèn)信息寄存器,4bit的幅度寄存器,如圖3所示。

圖3中表示出了各個(gè)寄存器讀入數(shù)據(jù)和寫回更新數(shù)據(jù)的位置、當(dāng)前的編碼位置和當(dāng)前編碼位。這些寄存器都能完成右移一位的功能特別值得注意的是:由于編碼過(guò)程中必須用到18bit的顯著和符號(hào)信息,因此在每個(gè)編碼帶開(kāi)始處,必須對(duì)顯著和符號(hào)信息寄存器做初始化右移一次,確保在編碼第0列數(shù)據(jù)時(shí)已經(jīng)有18bit的信息,見(jiàn)圖4的示例。



2 硬件設(shè)計(jì)

根據(jù)本文設(shè)計(jì)的編碼算法,可用如圖5所示的硬件結(jié)構(gòu)實(shí)現(xiàn)嵌入式塊編碼器。

上述結(jié)構(gòu)中,狀態(tài)機(jī)用于控制總體的編碼流程,外部信號(hào)START使?fàn)顟B(tài)機(jī)進(jìn)入初始的預(yù)處理狀態(tài),表示此時(shí)外部RAM的數(shù)據(jù)已經(jīng)準(zhǔn)備好,然后在編碼過(guò)程中根據(jù)計(jì)數(shù)器的數(shù)值進(jìn)行狀態(tài)切換。

設(shè)計(jì)中用到的計(jì)數(shù)器共3個(gè),即Countrow(位計(jì)數(shù)器)、Count(列計(jì)數(shù)器)、Countloop(編碼帶計(jì)數(shù)器)。圖6中示出了塊編碼器的總體流程,從中可以看出編碼器的狀態(tài)隨計(jì)數(shù)器的數(shù)值變化的情況。

預(yù)處理單元預(yù)處理包括部分:碼塊預(yù)處理和位平面預(yù)處理。其中碼塊預(yù)處理包括計(jì)算需要編碼的位平面數(shù),撮各個(gè)系數(shù)的符號(hào)位填充相應(yīng)的符號(hào)緩存,初始化顯著信息緩存和細(xì)化緩存(全部清0);位平面預(yù)處理則提取當(dāng)前位平面的幅度位填充相應(yīng)的幅度緩存,初始化訪問(wèn)信息緩存(全部清0)。

讀寫控制控制單元負(fù)責(zé)產(chǎn)生合適的控制信號(hào)與外部RAM和內(nèi)部緩存接口;在預(yù)處理時(shí)負(fù)責(zé)外部RAM和內(nèi)部緩存的讀寫控制,在編碼過(guò)程中則負(fù)責(zé)內(nèi)部緩存和寄存器組的讀寫控制。

編碼單元分為兩部分(見(jiàn)圖7),判斷邏輯和編碼操作單元。判斷邏輯負(fù)責(zé)決策當(dāng)前系數(shù)位是否屬于當(dāng)前的編碼通道,編碼操作單元包括零值編碼、細(xì)化編碼和符號(hào)編碼,而流程編碼則采用硬連線編碼,不使用獨(dú)立的單元。這幾個(gè)編碼操作單元直接采用組合邏輯實(shí)現(xiàn),而不是采用查表方式。多路選擇器則根據(jù)當(dāng)前執(zhí)行的編碼操作選擇輸出合適的CX和D。



FIFO單元用于解決塊編碼和算術(shù)編碼邏輯之間的異步問(wèn)題(因?yàn)榍罢弋a(chǎn)生數(shù)據(jù)具有間歇性,且算術(shù)編碼處理數(shù)據(jù)也會(huì)有一定的延遲)。

3 結(jié)論與展望

本文通過(guò)對(duì)嵌入式塊編碼的算法分析,采用了比較合理的存儲(chǔ)結(jié)構(gòu)來(lái)存儲(chǔ)編碼信息,并設(shè)計(jì)相應(yīng)的寄存器組和地址產(chǎn)生控制邏輯,本設(shè)計(jì)能夠做到讀寫操作無(wú)冗余信息。



本編碼器算法采用MODELSIM進(jìn)行功能仿真,圖8是在MODELSIM中截取的部分仿真波形。仿真所采用的時(shí)鐘頻率是50MHz,從圖8中可以看出編碼過(guò)程在1074090ns完成,大約1ms左右完成32×32碼塊的編碼。因此,對(duì)于一幀512×512的灰度圖像,估計(jì)能夠在0.256s內(nèi)完成編碼。本設(shè)計(jì)選用的FPGA芯片最高時(shí)鐘頻率可達(dá)到275MHz,估計(jì)通過(guò)一定的優(yōu)化,可使工作頻率進(jìn)一步提高;另外,塊編碼的算法本身就蘊(yùn)含著并行的特性,可以在FPGA中實(shí)現(xiàn)多個(gè)塊編碼器單元同時(shí)處理多個(gè)碼塊的數(shù)據(jù),這樣編碼一幀圖像的速度可以進(jìn)一步提高。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉