<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > JPEG 2000標準中MQ編碼器的VLSI結構設計

JPEG 2000標準中MQ編碼器的VLSI結構設計

作者: 時(shí)間:2009-08-26 來(lái)源:網(wǎng)絡(luò ) 收藏

2 MQ編碼器的優(yōu)化
MQ編碼器采用串行執行方式,且編碼算法復雜、耗時(shí),從而導致編碼器執行速度慢,效率低下。為了提高M(jìn)Q編碼器的運行速度,利用FPGA的大容量和并發(fā)執行等特性,對MQ編碼器進(jìn)行設計,在不改變原算法理論的條件下,對整個(gè)流程進(jìn)行改進(jìn)和優(yōu)化。
只有當前一輸入的結果被輸出后才能讀人下一輸入的串行執行方式,極大地限制了編碼速度的提高。為解決這個(gè)問(wèn)題,將整個(gè)編碼流程分成三個(gè)大的模塊(如圖3所示)串接起來(lái),采用流水線(xiàn)的方式進(jìn)行工作。

其中,GLGJ模塊為概率估計模塊,其功能是根據上下文索引CX選擇,判決D編碼所必需的概率估值和相關(guān)數值,在各個(gè)上下文自適應更新數值; PJENCODER模塊為判決編碼模塊,其功能主要是進(jìn)行MPS編碼或LPS編碼、重新歸一化等主要數據處理進(jìn)程;ENCODER模塊為編碼輸出模塊,主要完成壓縮數據的輸出及編碼終結等功能;由這三個(gè)模塊組成三級流水線(xiàn)。
2.1 判決編碼的化簡(jiǎn)
判決編碼中先判斷D的取值是“0”還是“1”,如果D=0,就進(jìn)行0的編碼;如果D=1,那就進(jìn)行1的編碼。在“0”或“1”的編碼中,又要根據MPS (CX)的取值,判斷是進(jìn)行MPS編碼,還是進(jìn)行LPS編碼;在MPS和LPS編碼中,先更新區間寬度A的值,即A=A-Qe[I(CX)],再判斷A是大于還是小于Qe[I(CX)],由此與其他的一些條件決定最后的賦值方式。
上述過(guò)程包括ENCODE,CCOE0/CODE1,CO-DELPS/CODEMPS五個(gè)子流程,6個(gè)條件判斷,多次賦值,降低了編碼速度。對編碼的判決條件進(jìn)行整理,減少不必要的賦值,其Verilog代碼如下:


由此可有效地減少不必要的寄存器和位數賦值,加快模塊的工作效率,從而提高整個(gè)系統的工作頻率。
2.2 重新歸一化的加速
MQ編碼器一方面在編碼MPS時(shí),給代碼C加上Qe值,將概率區間A減為A-Qe;另一方面,在編碼LPS時(shí),代碼C不變,將概率區間A置換成Qe。如果將這樣的區間劃分運算進(jìn)行下去,在某一時(shí)間點(diǎn)上,概率區間A就會(huì )比必要精度范圍(O.75≤A1.5)小,這時(shí)就要通過(guò)重新歸一化A與C維持精度范圍。
重新歸一化過(guò)程是根據條件(A0.75):當條件成立時(shí),將區間寄存器A和代碼寄存器C再左移1次,使其大小加倍,直到概率區間A的大小超過(guò)0. 75。由此可見(jiàn),如果A的值很小,則左移操作將會(huì )反復進(jìn)行,大大降低了編碼速率。同時(shí)因編碼中有MPS編碼和LPS編碼兩種,根據D的不同以及編碼方式的不同,重新歸一化時(shí)移位的次數也不同。
因此為了提高速度,并充分利用硬件的優(yōu)勢,將Qe的移位次數作為寄存器數,加入到概率估計表中(表1所示)。無(wú)論輸入數據D為何值,編碼的判決都是以 LPS或MPS為,所以當判決為L(cháng)PS編碼時(shí),LZE-ROS中的數據就決定了左移位的次數;當判決為MPS編碼時(shí),MZEROS中的數據就決定了左移位的次數。通過(guò)編程將擴展后的概率估計表,以寄存器的方式固化在芯片內部,雖然這樣增加了硬件電路中寄存器的數量,但可以通過(guò)一次性的直接查表得到判決編碼和重歸一化所需的數據,提高了查找效率。由于每次編碼都要用到該表,訪(fǎng)問(wèn)效率很高,這樣大大加快了編碼的速率,同時(shí)便于流水線(xiàn)結構的實(shí)現。

2.3 編碼輸出模塊的改進(jìn)
MQ編碼器中當輸出計數器CT=0時(shí),MQ編碼器輸出1個(gè)字節。中字節輸出流程是串行執行的,造成效率低下。又由于重新歸一化過(guò)程采用了一次性的移位方式,最大的移位次數可達15次,且過(guò)程中伴隨著(zhù)字節輸出。有三種可能情況:不需要進(jìn)行字節輸出,需要進(jìn)行1個(gè)字節或2個(gè)字節的字節輸出。因此需要對字節輸出機制作改進(jìn)。這里將減法記數器CT改為5位的加法記數器,并使用一個(gè)16位的數據緩存器。根據CT的取值,判別輸出的是0字節還是1字節或者2字節,由此達到加速字節輸出的目的。

電機保護器相關(guān)文章:電機保護器原理


關(guān)鍵詞: JPEG 2000 VLSI 標準

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>