一種soc中內(nèi)嵌的圖像處理加速方法
【技術領域】
[0001]本發(fā)明涉及一種SOC中內(nèi)嵌的圖像處理加速方法。
【背景技術】
[0002]隨著移動互聯(lián)網(wǎng)和移動支付的發(fā)展,智能手機逐漸演變成一個功能強大的終端系統(tǒng),用戶對手機的安全機制要求越來越高。指紋作為生物認證的一個向,已經(jīng)引起了手機廠家和移動支付系統(tǒng)鏈條上各個廠家的充分重視。蘋果最早把指紋方案應用在手機上,接著中國的華為也推出了自己的指紋應用手機,指紋應用手機已經(jīng)成為市場的風向標,越來越受到終端客戶的認可。用戶在使用智能手機的過程中對指紋識別的性能提出了越來越高的要求。為了提高用戶的指紋體驗,需要不斷的加快指紋認證的速度,即要不斷的提高處理指紋圖像的速度的能力。
[0003]指紋識別技術的原理是利用人體的指紋特征對個體身份進行區(qū)分和鑒定。指紋識別的原理包括指紋采集原理、指紋特征提取原理和指紋特征匹配原理三大部分。其中指紋特征提取的原理是對指紋圖案的整體特征和細節(jié)特征進行提取、鑒別的原理。其分析的對象包括紋形特征和特征點的分布、類型,以及一組或多組特征點之間的平面幾何關系。特征點的平面幾何關系表現(xiàn)為某兩個特征點之間的距離等,或者某三個或更多特征點之間組成的多邊形的幾何特性。不論是特征點的單體特征,還是特征點的組合特征,都是指紋特征的組成部分。把這些指紋特征用數(shù)字模板的形式表示出來,就實現(xiàn)了一個指紋特征提取的過程。指紋特征提取過程中,濾波是個很重要的步驟,目前公知的一些算法,濾波一般占指紋特征提取的75%左右,濾波的處理過程中,卷積的耗時最長,如果能有效的提高濾波的性能即提高卷積的速度,整體指紋特征提取的性能會有明顯的提升。
目前公知的指紋特征提取的技術中,涉及到濾波部分,基本采用軟件算法實現(xiàn)指紋特征提取。一副完整的指紋圖像通常由300?2000幀不等的指紋片斷組成,指紋圖像是以2進制的方式存儲,每幀指紋片斷的數(shù)據(jù)量為I?2KB。采用軟件算法處理這么多的數(shù)據(jù)實現(xiàn)特征提取需要處理器不斷的讀取指紋圖像的數(shù)據(jù)來參與卷積的運算,導致運算復雜,處理速度慢,同時也會給處理器帶來額外的負擔;為了克服這一困難,需要從嵌入式芯片的架構上加以改進,在盡量不增加硬件資源的前提下,提高嵌入式芯片處理指紋的特征提取算法的效率,進而提高指紋算法的整體性能。采用硬件電路輔助實現(xiàn)濾波,處理速度會有很大的提高,但是因為濾波要涉及大量的運算,濾波中涉及到乘法器和加法器單元需要占大量的用硬件資源,如果是采用D S P處理器協(xié)助,因為DSP的價格相對而言比較貴必然會增加開發(fā)的成本,如果自行設計部分硬件邏輯,乘法器等也會占用大量的硬件資源,也會增加開發(fā)的成本和難度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種提高指紋圖像處理的速度的SOC中內(nèi)嵌的圖像處理加速方法。
[0005]本發(fā)明采用的技術方案是: 一種SOC中內(nèi)嵌的圖像處理加速方法,包括一 SOC芯片,所述SOC芯片包括處理器,所述處理器上連接有指紋處理使用的RAM、卷積加速器、數(shù)據(jù)采集接口,所述數(shù)據(jù)采集接口上連接有指紋傳感器,其特征在于:所述RAM內(nèi)設有存儲算子數(shù)據(jù)的參數(shù)區(qū)和存儲指紋圖像數(shù)據(jù)的圖像數(shù)據(jù)區(qū),所述卷積加速器同時對參數(shù)區(qū)和圖像數(shù)據(jù)區(qū)內(nèi)數(shù)據(jù)訪問并進行卷積運算,再依據(jù)設定對卷積的結(jié)果進行調(diào)整處理,最后將處理完的數(shù)據(jù)寫回圖像數(shù)據(jù)區(qū)。本發(fā)明的圖像處理的卷積運算和結(jié)果調(diào)整都是由卷積加速器這個硬件完成的,減少處理器的干預,間接提高圖像處理的速度。卷積運算之前參與運算的算子數(shù)據(jù)和指紋圖像數(shù)據(jù)存儲在對應的RAM內(nèi)的存儲區(qū)里,方便卷積運算時的調(diào)用。
[0006]進一步,所述指紋圖像數(shù)據(jù)是按行存儲在圖像數(shù)據(jù)區(qū),卷積加速器啟動卷積運算時按照設定的卷積類型從每行讀取需要的連續(xù)指紋圖像數(shù)據(jù)參與卷積運算,卷積運算的結(jié)果經(jīng)卷積加速器處理之后再寫回到圖像數(shù)據(jù)區(qū)的結(jié)果地址內(nèi)。
[0007]進一步,所述卷積加速器在一次運算結(jié)束后自動啟動下一次卷積運算,相對應的取數(shù)地址自動移動到下一個要計算的點,下一次計算的結(jié)果自動存儲到之前存儲地址的下一個地址。本發(fā)明的卷積運算和結(jié)果調(diào)整均是連續(xù)的運算,提高圖像處理的速度。進一步,所述卷積加速器在每一輪運算開始時會鎖存參與運算設置的對應數(shù)據(jù)存儲的基地址,并在每一輪運算結(jié)束后會重新讀取新的基地址,如果基地址保持不變,對應的運算取數(shù)的地址會自動移動到下一個取數(shù)地址。
[0008]進一步,所述卷積加速器包括設置參數(shù)區(qū)的基地址的模板基址寄存器、設置初次參與運算的指紋圖像數(shù)據(jù)的基地址的圖像基址寄存器、設置卷積運算結(jié)果存儲地址的基地址的結(jié)果基址寄存器。
[0009]進一步,所述卷積加速器包括設置卷積運算循環(huán)次數(shù)的運算循環(huán)次數(shù)寄存器、設置卷積類型和卷積結(jié)果處理控制信息的卷積控制寄存器。
[0010]進一步,所述卷積加速器包括設置調(diào)整卷積運算結(jié)果的結(jié)果控制寄存器,以便卷積算法更好的利用卷積后的結(jié)果。
[0011]進一步,所述卷積加速器包括設置圖像寬度的參數(shù)寄存器,方便卷積加速器根據(jù)此參數(shù)值來調(diào)用指紋圖像數(shù)據(jù)參與卷積運算。
[0012]本發(fā)明的有益效果:圖像處理速度快,各參數(shù)調(diào)用方便。
【附圖說明】
[0013]圖1是本發(fā)明的結(jié)構示意圖。
[0014]圖2是本發(fā)明的數(shù)據(jù)通道示意圖。
[0015]圖3是本發(fā)明的數(shù)據(jù)流向示意圖。
[0016]圖4是本發(fā)明的運算流程圖。
[0017]圖5是本發(fā)明的一個MAC單元參與運算的取數(shù)和存儲結(jié)果地址變化示意圖。
[0018]圖6是本發(fā)明的二個MAC單元參與運算的取數(shù)和存儲結(jié)果地址變化示意圖。
[0019]圖7是本發(fā)明的單個MAC單元的運算時間關系示意圖。
[0020]圖8是本發(fā)明的兩個MAC單元的運算時間關系示意圖。
【具體實施方式】
[0021]下面結(jié)合具體實施例來對本發(fā)明進行進一步說明,但并不將本發(fā)明局限于這些【具體實施方式】。本領域技術人員應該認識到,本發(fā)明涵蓋了權利要求書范圍內(nèi)所可能包括的所有備選方案、改進方案和等效方案。
[0022]參照圖1,一種SOC中內(nèi)嵌的圖像處理加速方法,包括一 SOC芯片,所述SOC芯片包括處理器1,所述處理器I上連接有指紋處理使用的RAM2、卷積加速器3、數(shù)據(jù)采集接口 4,所述數(shù)據(jù)采集接口 4上連接有指紋傳感器5,所述RAM2內(nèi)設有存儲算子數(shù)據(jù)的參數(shù)區(qū)和存儲指紋圖像數(shù)據(jù)的圖像數(shù)據(jù)區(qū),所述卷積加速器3同時對參數(shù)區(qū)和圖像數(shù)據(jù)區(qū)內(nèi)數(shù)據(jù)訪問并進行卷積運算,再依據(jù)設定對卷積的結(jié)果進行調(diào)整處理,最后將處理完的數(shù)據(jù)寫回圖像數(shù)據(jù)區(qū)。本發(fā)明的圖像處理的卷積運算和結(jié)果調(diào)整都是由卷積加速器3這個硬件完成的,減少處理器的干預,間接提高圖像處理的速度。卷積運算之前參與運算的算子數(shù)據(jù)和指紋圖像數(shù)據(jù)存儲在對應的RAM2內(nèi)的存儲區(qū)里,方便卷積運算時的調(diào)用。
[0023]本實施例所述指紋圖像數(shù)據(jù)是按行存儲在圖像數(shù)據(jù)區(qū),卷積加速器3啟動卷積運算時按照設定的卷積類型從每行讀取需要的連續(xù)指紋圖像數(shù)據(jù)參與卷積運算,卷積運算的結(jié)果經(jīng)卷積加速器3處理之后再寫回到圖像數(shù)據(jù)區(qū)的結(jié)果地址內(nèi)。
[0024]本實施例所述卷積加速器3在一次運算結(jié)束后自動啟動下一次卷積運算,相對應的取數(shù)地址自動移動到下一個要計算的點,下一次計算的結(jié)果自動存儲到之前存儲地址的下一個地址。本發(fā)明的卷積運算和結(jié)果調(diào)整均是連續(xù)的運算,提高圖像處理的速度。本實施例所述卷積加速器3在每一輪運算開始時會鎖存參與運算設置的對應數(shù)據(jù)存儲的基地址,并在每一輪運算結(jié)束后會重新讀取新的基地址,如果基地址保持不變,對應的運算取數(shù)的地址會自動移動到下一個取數(shù)地址。
[0025]本實施例所述卷積加速器3包括設置參數(shù)區(qū)的基地址的模板基址寄存器、設置初次參與運算的指紋圖像數(shù)據(jù)的基地址的圖像基址寄存器、設置卷積運算結(jié)果存儲地址的基地址的結(jié)果基址寄存器。
[0026]本實施例所述卷積加速器3包括設置卷積運算循環(huán)次數(shù)的運算循環(huán)次數(shù)寄存器、設置卷積類型和卷積結(jié)果處理控制信息的卷積控制寄存器。
[0027]本實施例所述卷積加速器3包括設置調(diào)整卷積運算結(jié)果的結(jié)果控制寄存器,以便卷積算法更好的利用卷積后的結(jié)果。
[0028]本實施例所述卷積加速器3包括設置圖像寬度的參數(shù)寄存器,方便卷積加速器根據(jù)此參數(shù)值來調(diào)用指紋圖像數(shù)據(jù)參與卷積運算。
[0029]本發(fā)明存儲在RAM2的指紋圖像處理后的數(shù)據(jù)供卷積加速器3調(diào)用使用,每次卷積計算的結(jié)果寫回對應的RAM2空間,處理器I通過總線接口連續(xù)讀取卷積加速器3處理后的數(shù)據(jù)。參數(shù)區(qū)和圖像數(shù)據(jù)區(qū)需要各自有對立的存儲空間,卷積需要對2個區(qū)域同時訪問,卷積運算完之后依據(jù)算法的需求對卷積的結(jié)果做第二次的處理,處理完的數(shù)據(jù)寫回到圖像數(shù)據(jù)區(qū)。
[00