JPEG解碼器IP核的設計與實現
摘要:介紹了基于靜止圖像壓縮標準JPEG解碼器IP核的設計與實現。設計采用適于硬件實現的IDCT算法結構,通過增加運算并行度和流水線技術相結合的方法以提高處理速度。根據Huffman碼流特點,采用新的Huffman并行解碼硬件實現結構,用簡單的算術運算代替復雜的配對模式,解碼速度快,硬件成本低。該IP核可方便地集成到諸如數碼相機、手機以及掃描儀等各種應用中。
關鍵詞:JPEG;IP核;Huffman;流水線設計
基于IP(Intellectual Property)核的設計和可復用已成為SoC(System on a Chip)設計方法的主流設計方法。本設計實現了基于靜止圖像壓縮標準JPEG基本模式的解碼器軟IP核。JPEG(Joint Photograph ExpelsGroup)是1992年CCITT和ISO正式通過的連續色調靜止圖像壓縮標準。圖像的高數據量和廣泛應用對圖像的存儲和傳輸提出了要求,有限的存儲容量和傳輸帶寬不能直接對圖像進行存儲與傳輸,因此需要先對圖像進行壓縮處理。JPEG壓縮算法因其優異的壓縮性能成為目前最流行的圖像壓縮工具。
1 JPEG解碼IP核設計和實現
在JPEG解碼器中,因為Huffman解碼是變長的,本次解碼結束后才能重新定位碼流,難以實現流水線設計,所以本設計中主要通過提高功能部件并行度和在功能模塊內部實現流水線來提高解碼速度。因為解碼速度不定,所以各功能模塊間的握手信號很關鍵。每個模塊的數據輸出時也要考慮到后級模塊的數據輸入要求,這樣才能達到整個解碼過程的有序、高效進行。JPEG解碼IP核總體架構,如圖1所示。
1.1 JPEG解碼IP核控制器設計
JPEG解碼器控制器的作用是在不同解碼環節為各個單元模塊分配任務,以控制中間運算過程及最后輸出結果。采用了有限狀態機的設計方法,這是一種結構清晰、設計靈活的方法,它易于建立、理解和維護,特別是應用于大量狀態轉移和復雜時序控制系統中更顯優勢。控制器主要由一個Mealy型有限狀態機實現,狀態轉移如圖2所示。
初始化狀態(IDLE):復位或者一幅圖像解碼完成時進入的狀態,重新定位碼流,在解碼開始標志有效時跳轉到標志符解碼狀態(DeMar-ker)。
標志符解碼狀態(DeMarker):按JPEG碼流語法和JFIF文件格式解析標記符,根據解析出的標志符跳轉到相應的標志段解碼狀態,如果解析到SOI標志符或者是0xFFFF狀態不改變。
解碼出錯狀態(False):若是在標志段解碼出錯跳轉到False狀態,通過輸出端口將出錯信號輸出,在得到外部反饋后跳轉到初始化狀態IDLE。
應用擴展標志段APPn、幀開始標志段SOFO、量化表定義DQT標志段、Huffman碼表定義DHT標志段和掃描行開始SOS標志段的解碼過程是相似的,在相應標志符后是標志段的長度,可以根據這個長度值,結合JPEG碼流語法,進行碼流解析,將所需的圖像信息如圖像尺寸、圖像格式、量化表、Huffman碼表等寫入相應寄存器或者存儲器中,以便于后續壓縮數據的解碼。
Huffman碼流解碼狀態(DeHuffman):在解析完掃描開始標志段SOS后跳轉到Huffman碼流解碼狀態,解碼圖像壓縮數據,主要包括Huffman解碼、反量化、反Z字形重排、IDCT和輸出緩存等。
控制器還負責外部輸入的調配工作,每個時鐘周期,都將本次解碼長度送至碼流緩存模塊,從而重新定位解碼碼流位置。因為有多種圖像格式,所以控制器還要負責各個模塊的亮度色度選擇信號的輸入。
評論