動(dòng)態(tài)調(diào)整2D圖像處理引擎DMA通道資源的方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本申請(qǐng)涉及集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別是涉及一種動(dòng)態(tài)調(diào)整2D圖像處理引擎DMA通道資源的方法及系統(tǒng)。
背景技術(shù)
[0002] 目前SOC芯片中普遍具有獨(dú)立的圖形2D處理引擎(G2D)IP核,用于處理2D圖像,比如縮放、格式轉(zhuǎn)換、裁剪、混合、拼接、旋轉(zhuǎn)、矩形填充顏色、快速拷貝等。采用圖形2D處理引擎處理簡單的2D圖像,可以節(jié)省CPU/GPU?占用率,提高系統(tǒng)整體圖像處理的效率。
[0003] 但由于芯片成本和面積的要求,芯片內(nèi)部G2D硬件IP核的DMA?FIFO(DMA先入先出緩存器)大小和通道數(shù)量有限。G2D?DMA的FIFO和通道決定了訪問內(nèi)存上數(shù)據(jù)的速度,往往是限制G2D?處理2D圖像的瓶頸,降低了2D圖像處理的速度。如何最大程度利用DMA?FIFO和通道的配置,有效的提高G2D?處理2D圖像的速度,成為目前亟待解決的問題。
發(fā)明內(nèi)容
[0004] 為了解決現(xiàn)有技術(shù)存在的不足,本申請(qǐng)的目的在于提供一種動(dòng)態(tài)調(diào)整2D圖像處理引擎DMA通道資源的方法及系統(tǒng),動(dòng)態(tài)調(diào)整G2D的DMA通道和FIFO配置,從而高效的利用G2D,提高SOC中2D圖像處理的速度。
[0005] 為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┑囊环N動(dòng)態(tài)調(diào)整2D圖像處理引擎DMA通道資源的方法,應(yīng)用于SOC芯片,包括:
[0006] 從圖像信息中,獲取所述圖像信息對(duì)應(yīng)的圖像數(shù)據(jù)的圖層總數(shù)、每個(gè)圖層的圖像格式以及圖像數(shù)據(jù)的內(nèi)存地址;
[0007] 根據(jù)所述圖層總數(shù),確定占用的硬件圖層總數(shù);
[0008] 根據(jù)所述圖像格式,得到所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)和圖像采樣方式各分量字節(jié)的比值;
[0009] 根據(jù)所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)、圖像采樣方式各分量字節(jié)的比值、占用硬件圖層總數(shù)以及圖像數(shù)據(jù)的內(nèi)存地址,得到2D圖像處理引擎處理圖像任務(wù)所需的DMA通道數(shù);
[0010] 根據(jù)所述DMA通道數(shù)和DMA先進(jìn)先出緩存器資源總量,得到每個(gè)通道上的數(shù)據(jù)先進(jìn)先出緩存器容量和指令先進(jìn)先出緩存器容量;
[0011] 根據(jù)所述每個(gè)通道上的數(shù)據(jù)先進(jìn)先出緩存器容量,確定訪問AXI總線的突發(fā)傳輸數(shù)據(jù)容量;
[0012] 將所述DMA通道數(shù)、數(shù)據(jù)先進(jìn)先出緩存器容量、指令先進(jìn)先出緩存器容量和所述訪問AXI總線的突發(fā)傳輸數(shù)據(jù)容量寫入所述2D圖像處理引擎寄存器;
[0013] 使能2D圖像處理引擎,處理所述圖像數(shù)據(jù)。
[0014] 進(jìn)一步地,還包括:
[0015] 從外部輸入的圖像信息中,獲取所述圖像信息對(duì)應(yīng)圖像數(shù)據(jù)的圖層總數(shù)、每個(gè)圖層的圖像格式以及圖像數(shù)據(jù)的內(nèi)存地址;根據(jù)所述圖層總數(shù),確定硬件圖層總數(shù);
[0016] 根據(jù)所述圖像格式,得到所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)和圖像采樣方式各分量字節(jié)的比值;
[0017] 根據(jù)所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)、圖像采樣方式各分量字節(jié)的比值、占用硬件圖層總數(shù)以及圖像數(shù)據(jù)的內(nèi)存地址,得到2D圖像處理引擎處理圖像任務(wù)所需的RDMA通道數(shù);
[0018] 根據(jù)所述讀DMA通道數(shù)和讀DMA先進(jìn)先出緩存器資源總量,得到每個(gè)讀DMA通道上的讀數(shù)據(jù)先進(jìn)先出緩存器容量和讀指令先進(jìn)先出緩存器容量;
[0019] 根據(jù)每個(gè)讀DMA通道上的讀數(shù)據(jù)先進(jìn)先出緩存器容量,確定讀AXI總線的突發(fā)傳輸數(shù)據(jù)容量;
[0020] 將所述讀DMA通道數(shù)、所述讀數(shù)據(jù)先進(jìn)先出緩存器容量、所述讀指令先進(jìn)先出緩存器容量和所述讀AXI總線的突發(fā)傳輸數(shù)據(jù)容量寫入所述2D圖像處理引擎讀寄存器;
[0021] 使能2D圖像處理引擎,處理所述圖像數(shù)據(jù)。
[0022] 進(jìn)一步地,還包括:
[0023] 從2D圖像處理引擎輸出的圖像信息中,獲取所述圖像信息對(duì)應(yīng)圖像數(shù)據(jù)的圖層總數(shù)、每個(gè)圖層的圖像格式以及圖像數(shù)據(jù)的內(nèi)存地址;
[0024] 根據(jù)所述圖層總數(shù),確定硬件圖層總數(shù);
[0025] 根據(jù)所述圖像格式,得到所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)和圖像采樣方式各分量字節(jié)的比值;
[0026] 根據(jù)所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)、圖像采樣方式各分量字節(jié)的比值、占用硬件圖層總數(shù)以及圖像數(shù)據(jù)的內(nèi)存地址,得到2D圖像處理引擎處理圖像任務(wù)所需的寫DMA通道數(shù);
[0027] 根據(jù)所述寫DMA通道數(shù)和寫DMA先進(jìn)先出緩存器資源總量,得到每個(gè)寫DMA通道上的寫數(shù)據(jù)先進(jìn)先出緩存器容量和寫指令先進(jìn)先出緩存器容量;
[0028] 根據(jù)每個(gè)寫DMA通道上的寫數(shù)據(jù)先進(jìn)先出緩存器容量,確定寫AXI總線的突發(fā)傳輸數(shù)據(jù)容量;
[0029] 將所述寫DMA通道數(shù)、所述寫數(shù)據(jù)先進(jìn)先出緩存器容量、所述寫指令先進(jìn)先出緩存器容量和所述寫AXI總線的突發(fā)傳輸數(shù)據(jù)容量寫入所述2D圖像處理引擎讀寫存器;
[0030] 使能2D圖像處理引擎,處理所述圖像數(shù)據(jù)。
[0031] 進(jìn)一步地,所述根據(jù)所述圖像格式,得到所述圖像數(shù)據(jù)的平面?zhèn)€數(shù)和圖像采樣方式各分量字節(jié)的比值的步驟,還包括: