《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種基于TMS320C6678多核處理器的JPEG實時解碼優(yōu)化算法
一種基于TMS320C6678多核處理器的JPEG實時解碼優(yōu)化算法
2017年電子技術應用第6期
彭益智
江蘇自動化研究所,江蘇 連云港222061
摘要: 針對電子信息系統(tǒng)應用中數(shù)字視頻的實時處理要求,在解析JPEG解碼原理的基礎上,針對多核DSP的系統(tǒng)架構,提出了多核DSP任務并行設計方法,設計了基于TMS320C6678的JPEG解碼系統(tǒng),實現(xiàn)了解碼任務并行流水和核間高效通信。實驗結果表明,基于TMS320C6678的JPEG解碼系統(tǒng)的實時處理能力有很大提升,在電子信息系統(tǒng)數(shù)字視頻傳輸與處理領域有廣泛應用前景。
中圖分類號: TP317
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.011
中文引用格式: 彭益智. 一種基于TMS320C6678多核處理器的JPEG實時解碼優(yōu)化算法[J].電子技術應用,2017,43(6):45-47.
英文引用格式: Peng Yizhi. A JPEG real-time decoding optimization algorithm based on multicore DSP TMS320C6678[J].Application of Electronic Technique,2017,43(6):45-47.
A JPEG real-time decoding optimization algorithm based on multicore DSP TMS320C6678
Peng Yizhi
Jiangsu Automation Research Instisute,Lianyungang 222061,China
Abstract: Focus on the real-time processing requirement for digital video in electronic information system applications, based on the analysis of JPEG decoding, proposes a method of multicore DSP task-level parallel implementation for the system architecture of multicore DSP, and design a JPEG decoding system based on TMS320C6678, implement decoding task-level parallel pipeline and efficient inter-core communication. Experimental results show that the real-time processing capability of JPEG decoding system based on TMS320C6678 has improved so much and broaded application prospect in the field of digital video transmission and processing of electronic information systems.
Key words : digital video;JPEG;multicore DSP;TMS320C6678;real-time

0 引言

    在艦船指揮控制系統(tǒng)中,要求數(shù)字視頻信號準確、實時地傳輸,共享圖像資源。隨著微電子技術的發(fā)展,DSP廠商嘗試采用多核處理器構架來滿足電子信息系統(tǒng)日益增長的實時處理性能要求。針對數(shù)字視頻在電子信息系統(tǒng)應用中的實時處理要求,本文基于TI公司TMS320C6678(簡稱C6678)多核DSP的系統(tǒng)架構,提出了多核DSP任務并行設計方法,設計了基于C6678的JPEG解碼系統(tǒng),實現(xiàn)了核間高效通信和解碼任務并行流水,提高了JPEG解碼系統(tǒng)的實時處理能力。

1 JPEG解碼算法原理

    JPEG是成熟的圖像壓縮標準,根據(jù)人眼視覺特性,去除數(shù)據(jù)冗余信息,達到壓縮圖像的目的。JPEG編碼算法先將源圖像數(shù)據(jù)分塊,經前向離散余弦變換(FDCT)、量化和熵編碼處理,輸出壓縮數(shù)據(jù)[1]。

    JPEG解碼算法流程是編碼算法的逆過程。壓縮數(shù)據(jù)輸入解碼器,按位讀取以識別Huffman碼字,對照編碼表進行熵解碼,輸出8×8的DCT系數(shù)矩陣,經反量化、反向離散余弦變換(IDCT),8×8的DCT系數(shù)矩陣變換為8×8的數(shù)據(jù)塊,經反向層平移、色彩模型轉換,重建圖像[2]。JPEG編解碼算法流程如圖1所示。

wdz3-t1.gif

2 基于TMS320C6678多核處理器的JPEG實時解碼優(yōu)化算法

2.1 多核DSP任務并行設計方法

    多核DSP任務并行設計方法適用于解決復雜算法在多核DSP平臺的設計問題,包含算法模塊化分解、模塊間通信分析、模塊間通信優(yōu)化和模塊的多核加載4個步驟。任務并行方式主要有主從模式和數(shù)據(jù)流模式[3]

    主從模式的特點是集中控制和分散執(zhí)行。一個處理核設為Master,它調度所有的任務,其他的處理核都為Slave。該模式要解決好處理核之間實時負載平衡問題。主從模式如圖2所示。

wdz3-t2.gif

    數(shù)據(jù)流模式的特點是分散控制和分散執(zhí)行。處理核加載不同的運算法則處理數(shù)據(jù),再將數(shù)據(jù)傳遞到下一個處理核,通過查詢數(shù)據(jù)的有效性或發(fā)送消息來激活處理核。適用數(shù)據(jù)流模式的程序通常包含較高計算復雜度的模塊,且模塊間存在緊密的數(shù)據(jù)依賴。運用該模式時,各個處理核之間有大量的數(shù)據(jù)要傳輸,要求系統(tǒng)帶寬高,并且難以平衡核間負載,處理性能受限于計算負載最大的核[2]。數(shù)據(jù)流模式如圖3所示。

wdz3-t3.gif

2.2 實時解碼優(yōu)化算法設計

    TMS320C6678是基于先進的KeyStone處理器構架,集成8個C66x核,運算能力強,網絡性能優(yōu)越,支持圖像、視頻等信號處理應用。運用多核DSP任務并行設計方法,在C6678平臺上設計JPEG解碼算法,主要步驟包括算法分解、通信分析、通信優(yōu)化和多核加載。

2.2.1 算法分解

    將算法盡可能分解為小的模塊,有利于發(fā)現(xiàn)算法的并行性。分解時,要結合考慮模塊計算量以及模塊之間的結合性、耦合性,分解點一般選擇在結合性較高、耦合性較低的地方[2]。JPEG解碼算法可分為下面8個模塊[1]:(1)初始化;(2)熵解碼;(3)DC系數(shù)解碼;(4)AC系數(shù)解碼;(5)反Z字形掃描;(6)反量化;(7)逆向離散余弦變換(IDCT);(8)色彩空間轉換。

    模塊之間數(shù)據(jù)聯(lián)系緊密,且熵解碼和IDCT模塊的計算復雜度較高,所以為JPEG解碼算法選擇數(shù)據(jù)流任務并行模式。壓縮圖像數(shù)據(jù)經熵解碼,輸出解碼中間符號,然后經DC系數(shù)、AC系數(shù)解碼,輸出64個DCT系數(shù),經反Z字形掃描、反量化、IDCT和色彩空間轉換,最后重建圖像。解碼過程中發(fā)現(xiàn),DC系數(shù)解碼和AC系數(shù)解碼模塊存在數(shù)據(jù)聯(lián)系,模塊間耦合性較強,Z字形掃描、反量化、IDCT和色彩空間轉換模塊間結合性較強。

2.2.2 通信分析

    算法分解后,一般這些模塊不能獨立執(zhí)行,因為模塊之間需要傳輸命令和數(shù)據(jù),這是模塊間的通信需求。

    控制流程表示模塊的執(zhí)行順序,加載到不同處理核的模塊通過發(fā)送消息來實現(xiàn)同步,模塊間還有數(shù)據(jù)傳輸需求,這些通信會給系統(tǒng)帶來延遲時間,控制流程的設計目的是系統(tǒng)處理能力最大化。數(shù)據(jù)流程表示模塊間數(shù)據(jù)傳輸?shù)姆较颍枋鰯?shù)據(jù)與模塊的關系,數(shù)據(jù)流程的設計目的是模塊間數(shù)據(jù)通信量最小化。

    JPEG解碼算法通信分析如圖4所示,分為模塊層和數(shù)據(jù)層,實線箭頭代表數(shù)據(jù)傳輸,虛線箭頭代表命令傳輸。

wdz3-t4.gif

2.2.3 通信優(yōu)化

    通信分析后,為了實現(xiàn)多核DSP內核間高效通信,使算法高效執(zhí)行,模塊間通信需要優(yōu)化。模塊計算量小且與其他模塊耦合性較強,可將模塊與其他模塊合并為子系統(tǒng),模塊間數(shù)據(jù)傳輸轉變?yōu)樽酉到y(tǒng)內數(shù)據(jù)讀寫。

    針對JPEG解碼算法,DC系數(shù)解碼和AC系數(shù)解碼模塊共同處理DCT系數(shù)的DC系數(shù)和AC系數(shù),這兩個模塊間耦合性較強,且模塊的計算量較小,將DC系數(shù)解碼、AC系數(shù)解碼和熵解碼合并為解碼子系統(tǒng)。反Z字形掃描、反量化、IDCT和色彩空間轉換模塊結合性較強,在解碼過程中,這4個模塊間傳輸?shù)臄?shù)據(jù)量相當龐大,除了IDCT,其他3個模塊的計算量都很小,將它們合并為DCT子系統(tǒng),這樣模塊間通信變?yōu)樽酉到y(tǒng)內數(shù)據(jù)讀取,減少了模塊間通信。優(yōu)化后的JPEG解碼算法分為初始化模塊、解碼子系統(tǒng)和DCT子系統(tǒng)3部分,減少了模塊數(shù)量,優(yōu)化了模塊間通信。

    通信優(yōu)化后的模塊通信如圖5所示,分為模塊層和數(shù)據(jù)層,實線箭頭代表數(shù)據(jù)傳輸,虛線箭頭代表控制命令的傳輸。

wdz3-t5.gif

2.2.4 多核加載

    通信優(yōu)化后,根據(jù)算法適合的任務并行模式,將模塊、子系統(tǒng)加載到不同處理核,實現(xiàn)算法的任務級并行流水處理。

    將初始化模塊、解碼子系統(tǒng)和DCT子系統(tǒng)加載到不同處理核,實現(xiàn)算法的任務級流水。由于解碼和DCT子系統(tǒng)計算復雜度較高,限制了任務級流水的處理速度,為了充分發(fā)揮多核處理器性能,也對應于JPEG編碼算法采用的映射方式,將這兩個子系統(tǒng)映射到多個處理核,以核級并行流水來提升系統(tǒng)的解碼速度。C6678的8個C66x核的編號為0~7,核0負責系統(tǒng)初始化,核1、2、3執(zhí)行解碼子系統(tǒng),解碼后的數(shù)據(jù)分別傳遞到核4、5、6,并執(zhí)行DCT子系統(tǒng),核1與4、2與5、3與6組成3條處理核級的并行流水線,如圖6所示。

wdz3-t6.gif

2.3 設計實現(xiàn)

    利用CCS5.0提供的SYS/BIOS和IPC組件,SYS/BIOS組件用于任務調度,IPC組件用于核間通信。

    C6678的8個處理核為CORE0~CORE7,處理核初始化完成后等待同步消息。為實現(xiàn)內核間高效通信,CORE0與CORE1、2、3間的通信采用最小通信模式,CORE1與CORE4、CORE2與CORE5、CORE3與CORE6間的通信采用數(shù)據(jù)傳輸模式。基于C6678的并行JPEG解碼系統(tǒng)的整個處理流程如圖7所示。

wdz3-t7.gif

3 實驗結果分析

    為檢驗基于C6678的JPEG解碼系統(tǒng)的處理能力,將相同的算法運行在C6416、C6678的單C66x核上比較,實驗數(shù)據(jù)如表1所示。

wdz3-b1.gif

    根據(jù)測試結果可知,優(yōu)化前,JPEG解碼算法具有基本相同的復雜度,基于C66x內核的系統(tǒng)處理能力是基于C6416的系統(tǒng)的4.03倍;基于C6678的JPEG解碼系統(tǒng)的處理能力是基于C66x內核的系統(tǒng)的4.65倍,是基于C6416的系統(tǒng)18.77倍。優(yōu)化后,JPEG解碼算法復雜度略有不同,基于C66x內核的系統(tǒng)處理能力是基于C6416的系統(tǒng)的2.93倍;基于C6678的并行JPEG解碼系統(tǒng)的運行時間為11 ms,系統(tǒng)的處理能力是基于C66x內核的系統(tǒng)的5.36倍,是基于C6416的系統(tǒng)的15.73倍。

4 結束語

    隨著先進視頻處理技術在電子信息裝備中的應用,本文針對TI公司TMS320C6678多核DSP的系統(tǒng)架構,提出了基于TMS320C6678的多核DSP解碼任務并行處理算法,提升了視頻處理實時能力。由于本文只采用了編譯器優(yōu)化途徑,后續(xù)可以在流水線設計、內存調整控制等方面進一步優(yōu)化,基于C6678的JPEG解碼系統(tǒng)的實時處理能力將進一步增強。

參考文獻

[1] WALLACE G K.The JPEG still picture compression standard[J].IEEE Transaction on Consumer Electronics,1992,38:18-34.

[2] 彭益智,霍家道,徐偉.一種基于TMS320C6678的JPEG編碼算法并行實現(xiàn)方法[J].指揮控制與仿真,2012,34(1):119-122.

[3] 劉波,孫書為,孫永節(jié).H.264視頻編碼器的并行性分析[C].第十一屆全國計算機工程與工藝學術年會論文集,合肥,2007:194.



作者信息:

彭益智

(江蘇自動化研究所,江蘇 連云港222061)

此內容為AET網站原創(chuàng),未經授權禁止轉載。