《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于TMS320C6678多核處理器的JPEG實(shí)時(shí)解碼優(yōu)化算法
一種基于TMS320C6678多核處理器的JPEG實(shí)時(shí)解碼優(yōu)化算法
2017年電子技術(shù)應(yīng)用第6期
彭益智
江蘇自動(dòng)化研究所,江蘇 連云港222061
摘要: 針對(duì)電子信息系統(tǒng)應(yīng)用中數(shù)字視頻的實(shí)時(shí)處理要求,在解析JPEG解碼原理的基礎(chǔ)上,針對(duì)多核DSP的系統(tǒng)架構(gòu),提出了多核DSP任務(wù)并行設(shè)計(jì)方法,設(shè)計(jì)了基于TMS320C6678的JPEG解碼系統(tǒng),實(shí)現(xiàn)了解碼任務(wù)并行流水和核間高效通信。實(shí)驗(yàn)結(jié)果表明,基于TMS320C6678的JPEG解碼系統(tǒng)的實(shí)時(shí)處理能力有很大提升,在電子信息系統(tǒng)數(shù)字視頻傳輸與處理領(lǐng)域有廣泛應(yīng)用前景。
中圖分類(lèi)號(hào): TP317
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.011
中文引用格式: 彭益智. 一種基于TMS320C6678多核處理器的JPEG實(shí)時(shí)解碼優(yōu)化算法[J].電子技術(shù)應(yīng)用,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ù)字視頻信號(hào)準(zhǔn)確、實(shí)時(shí)地傳輸,共享圖像資源。隨著微電子技術(shù)的發(fā)展,DSP廠商嘗試采用多核處理器構(gòu)架來(lái)滿足電子信息系統(tǒng)日益增長(zhǎng)的實(shí)時(shí)處理性能要求。針對(duì)數(shù)字視頻在電子信息系統(tǒng)應(yīng)用中的實(shí)時(shí)處理要求,本文基于TI公司TMS320C6678(簡(jiǎn)稱C6678)多核DSP的系統(tǒng)架構(gòu),提出了多核DSP任務(wù)并行設(shè)計(jì)方法,設(shè)計(jì)了基于C6678的JPEG解碼系統(tǒng),實(shí)現(xiàn)了核間高效通信和解碼任務(wù)并行流水,提高了JPEG解碼系統(tǒng)的實(shí)時(shí)處理能力。

1 JPEG解碼算法原理

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

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

wdz3-t1.gif

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

2.1 多核DSP任務(wù)并行設(shè)計(jì)方法

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

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

wdz3-t2.gif

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

wdz3-t3.gif

2.2 實(shí)時(shí)解碼優(yōu)化算法設(shè)計(jì)

    TMS320C6678是基于先進(jìn)的KeyStone處理器構(gòu)架,集成8個(gè)C66x核,運(yùn)算能力強(qiáng),網(wǎng)絡(luò)性能優(yōu)越,支持圖像、視頻等信號(hào)處理應(yīng)用。運(yùn)用多核DSP任務(wù)并行設(shè)計(jì)方法,在C6678平臺(tái)上設(shè)計(jì)JPEG解碼算法,主要步驟包括算法分解、通信分析、通信優(yōu)化和多核加載。

2.2.1 算法分解

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

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

2.2.2 通信分析

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

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

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

wdz3-t4.gif

2.2.3 通信優(yōu)化

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

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

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

wdz3-t5.gif

2.2.4 多核加載

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

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

wdz3-t6.gif

2.3 設(shè)計(jì)實(shí)現(xiàn)

    利用CCS5.0提供的SYS/BIOS和IPC組件,SYS/BIOS組件用于任務(wù)調(diào)度,IPC組件用于核間通信。

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

wdz3-t7.gif

3 實(shí)驗(yàn)結(jié)果分析

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

wdz3-b1.gif

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

4 結(jié)束語(yǔ)

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

參考文獻(xiàn)

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

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

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



作者信息:

彭益智

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。