一種數(shù)碼相機成像和視頻處理前端的設(shè)計
關(guān)鍵詞:數(shù)碼相機 TVP5040 TMS320DSC 系列DSP CCD
目前,數(shù)字類消費電子產(chǎn)品的需求率增長驚人。在這些產(chǎn)品中,成像和視頻類產(chǎn)品比重很大。在這些影像產(chǎn)品中,無論是數(shù)碼相機還是內(nèi)置數(shù)碼相機的可拍照手機,或者其它數(shù)字成像和視頻終端產(chǎn)品,都需要成像和視頻處理前端與其協(xié)同工作。
德州儀器公司(TI)在推動新興消費類產(chǎn)品的高級圖像應(yīng)用方面及時跟進,發(fā)布了目前業(yè)界性能最為卓越的基于數(shù)字信號處理器(TMS320DSC系列DSP)的解決方案。這種低功耗、完全可編程的DSP解決方案,使實時視頻功能在成像終端上的應(yīng)用成為可能。TMS320DSC系列芯片在一個單一器件中集成了兩項功能:超低功耗的TMS320C5000用來進行實時媒體處理;一個ARM7TDMI RISC處理器以實現(xiàn)系統(tǒng)控制功能。可編程的硬件多媒體加速器可以進行并發(fā)性處理,以增強專用成像和視頻性能。
TI還提供了一系列成像和視頻處理前端產(chǎn)品,可與TMS320DSC系列DSP進行無縫工作。TVP5031、TVP5040和TVP5145使用戶能夠?qū)⒛M視頻信號轉(zhuǎn)換成TMS320DSC系列芯片可以處理的數(shù)字數(shù)據(jù)。
1 數(shù)碼相機的成像和視頻處理前端
數(shù)碼相機市場通常被劃分為高端(400萬像素以上)、中端(330、210萬像素)與低端(百萬像素以下①三種檔次。針對不同的市場,大部分廠商會根據(jù)CCD和CMOS的差異而采取不同的解決方案,而采用TMS320DSC系列DSP的數(shù)碼相機解決方案則可兼顧。從入門產(chǎn)品到最高級設(shè)計的整個相機系統(tǒng)或其它影像產(chǎn)品,都可由這個系列DSP的可編程能力而輕松實現(xiàn),這是其優(yōu)勢之一。其次,成像和視頻處理前端TVP5031、TVP5040和TVP5145的可編程能力,使得開發(fā)者可以通過更新的算法和標準來升級或更改模塊前端的處理。
一般來說,數(shù)碼相機的成像和視頻處理前端主要是鏡頭模塊(包含CCD傳感器、鏡頭和馬達)與模擬前端電路(AFE)。本文所述的成像和視頻處理前端與專用數(shù)字處理器TMS320DSC的接口設(shè)計如圖1所示。
驅(qū)動電路和時序生成器件產(chǎn)生CCD或CMOS所需要的時鐘信號,模擬前端的作用是將圖像傳感器輸出的模擬圖像信號鉗位放大,并完成A/D轉(zhuǎn)換,這里采用TVP5040。TMS320DSC系列DSP含有圖像處理和時序控制電路,通過I/O接口可以控制時序產(chǎn)生,通過CCD控制器可以正確接收垂直同步(VD)和水平同步(HD)信號。經(jīng)過相關(guān)配置以后,DSP就可以接受TVP5040輸出的CCD原始數(shù)據(jù)了。
2 NTSC/PAL數(shù)字視頻解碼器TVP5040
TVP5040作為一款高質(zhì)量單芯片數(shù)字視頻解碼器,可能很方便的將模擬視頻信號轉(zhuǎn)換成數(shù)字視頻。它包括業(yè)界領(lǐng)先的2個10位高速2x過抽樣A/D轉(zhuǎn)換器。接受標準的NTSC/PAL制式的復合視頻信號和S-Video信號輸入,輸出格式可以是8位、10位、16位或20位4:2:2(YcbCr)子采樣格式,也可以是8位或10位ITU-RBT,656定義的標準輸出(帶嵌入同步)。采樣可以是矩形像素或者遵循ITU-RBT.601協(xié)議。TVO5040利用德州儀器的專利技術(shù),對那些微弱、不穩(wěn)定的信號進行捕捉,并去除噪聲。
其三線互補自適應(yīng)梳狀濾波器,可以降低色度和亮度的交叉影響。利用所支持的主機端口和接口I2C、3個并行主機接口(PHI)或VIP模式,可對視頻特性,如色調(diào)、對比度和飽和度等進行編程操作。TVP5040產(chǎn)生同步、消隱、場和鎖存信號,以及數(shù)字視頻輸出。同時,具有先進的垂直消隱區(qū)間數(shù)據(jù)恢復功能,內(nèi)置FIFO可存儲高達14行的圖文電視數(shù)據(jù)。
TVP5040主要包括以下模塊:
*模擬信號處理器和A/D轉(zhuǎn)換器(AGC,AD);
*Y/C分離電路(Luma/Chroma separation);
*色度處理(chrominance processing);
*亮度處理器(luminance processing);
*時鐘處理與節(jié)電控制;
*輸出格式化器(outputformatter);
*主機端口接口(interface);
*VBI數(shù)據(jù)處理器(VBI);
*增強型Macrovision檢測(Macrovision detection)。
模塊功能如圖2所示。
TVP5040由一組內(nèi)部寄存器初始化并控制,它們設(shè)置所有的操作參數(shù)。為了能夠正確設(shè)置寄存器的參數(shù),主機在上電復位時,必須向TVP5040下載微代碼,以使TVP5040的內(nèi)部微處理器對內(nèi)部寄存器編程。由于微代碼較大,TVP5040提供了不同的主機端口接口,包括I2C端口(I2C Interface)、3個并行主機接口(PHI Interface)和視頻端口接口(VIP Interface)用于下載和進一步的配置。主機接口用于初始化內(nèi)部微處理器,讀寫狀態(tài)寄存器以及訪問分片VBI數(shù)據(jù)(sliced VBI data)。這些接口模式是在上電復位或是組合使用GLCO、PALI和FID引腳復位時確定的。
外部控制器通過標準的主機端口接口與TVP5040通信。TVP5040有一個內(nèi)部微處理器,還有相連的100K的指令RAM。微處理器控制芯片的功能包括PLL操作、AGC、同步和寄存器配置等。這種可編程結(jié)構(gòu)使得TVP5040可以利用更新的算法來提高性能。每次上電啟動的時候都要下載用于內(nèi)部微處理器的微代碼。
控制每行像素數(shù)的采樣頻率是不同的,這取決于視頻格式和標準。TVP5040的視頻端口輸出格式時序如圖3所示。其它還有水平、垂直同步以及場同步信號的時序圖,限于篇幅,就不一一列出了。
3 TMS320DSC系列DSP的CCD控制器
TMS320DSCX系列DSP的圖像功能單元CCD控制器為CCD和CMOS圖像傳感器提供了必需的邏輯,對逐行和隔行掃描CCD或CMOS圖像傳感器給予了很好的支持。CCD控制器可以編程控制,有20個寄存器需要設(shè)置,由TMS320DSCX控制,能支持高達4096×4096像素的CCD。它有以下幾部分功能:CCD接口、數(shù)字鉗位、時序發(fā)生以及輸出格式化,如圖4所示。
CCD控制器采集處理CCD圖像傳感器的數(shù)據(jù)。CCD所需的A/D轉(zhuǎn)換和時序生成由外部芯片提供。CCD時序生成器(CCD timing generator)可以向外部時序產(chǎn)生電路提供HD/VD信號,也可以接收外部傳來的HD/VD信號并與其保持同步。CCD控制器最高可以處理12位寬的圖像數(shù)據(jù),可以支持高達30MHz的點時鐘。這里采用TVP5040生成CCD控制器所需時序,并傳送HD/VD、場ID和像素時鐘信號。
鉗位電路(clamper)采樣CCD黑像素的數(shù)字,然后每個像素的值都減去這個黑電平值。用戶可以通過寄存器設(shè)置黑電平像素的位置,用于求黑像素的數(shù)量(8個或16個)。另外,也可以將黑電值設(shè)置成一個常數(shù)。
輸出格式化器模板(output formatter)提供反混淆濾波(anti-aliasing filter)、A-律壓縮和水平、垂直降采樣。反混淆濾波由一個簡單的三階濾波器構(gòu)成。A-律表壓縮將10位以上的鉗位后數(shù)據(jù)壓縮成8位。最后是一個可編程降采樣模板,從每8個像素中抽取N個像素。
CCD控制器提供2個數(shù)據(jù)通道。在通過(passthrough)通道時,8、10、12位的像素值被保存到1個16位SDRAM字的高位,沒有使用的低位填入0。數(shù)據(jù)存入SDRAM時,每次保存32位,即2個像素,其中左邊的象素保存到32位的低16位。在數(shù)據(jù)壓縮通道,圖像數(shù)據(jù)的高10位被壓縮成8位,然后每4個像素存入SDRAM的一個32位字。
4 DSP與TVP5040的硬件連接及軟件實現(xiàn)
4.1 硬件連接
考慮到TMS320DSCX的CCD控制器只能接收12位寬的數(shù)據(jù),在TVP5040端決定采用10位YUV 4:2:2的視頻輸出格式,則TMS320DSCX與TVP5040的硬件連接如圖5所示。
由于TVP5040輸出10位數(shù)據(jù),所以本設(shè)計保留最高位,低兩位接地或者懸空。TMS320DSC接收來自TVP5040的VD、HD以及場信號并與其保持同步。圖像數(shù)據(jù)輸入TMS320DSC系列DSP時,在輸入點時鐘的上升沿和下降沿被鎖存,可通過寄存器DET設(shè)置。CCD控制器可以將數(shù)據(jù)直接存入SDRAM,也可以通過預覽引擎(preview engine)Burst壓縮單元將數(shù)據(jù)壓縮后存入SDRAM。
TVP5040輸出的寫信號(WEN)用于從CCD接口直接將數(shù)據(jù)寫入SDRAM,可通過EWEN位進行設(shè)置。當WEN信號為高讀寫位(RDWE),即位是“1”時,圖像數(shù)據(jù)就載入SDRAM。
需要注意的是,TVP5040必須外接14.31818MHz的晶振才能保持正常的工作頻率。
4.2 軟件實現(xiàn)
首先需要初始化TVP5040,將微代碼通過TVP5040的I2C主機端口下載到微處理器中。
Void TVP5040INIT(void)
{
resetTVP(); //首先將TVP5040復位
DELAYTIME; //延時,下載代碼需要時序穩(wěn)定
MicrocodeDown(); //下載微代碼
RestartMicroprocessor();//下載完后,需要重新啟動5040的微處理器
TimerWait(5); //微處理器重新啟動需要等待5ms
PatchTVPRegister(); //內(nèi)部寄存器處于默認狀態(tài),需要重新設(shè)置
}
然后需要設(shè)置CCD控制器以獲取一幀圖像數(shù)據(jù)并送入SDRAM。
Void main()
{
TVP5040INIT();//初始化TVP5040
SdramInit(); //初始化SDRAM
CCDCInit();//初始化CCD控制器
CCDCSetLinePerFrame();//設(shè)置每幀圖像的行數(shù)
CCDCSetRawDataMode();//設(shè)置內(nèi)部生成時序信號的寬度、極性、位置和方向
CCDCGetFrame();//獲取一幀圖像數(shù)據(jù)送入SDRAM
}
然后,就可以對SDRAM中的圖像數(shù)據(jù)進行處理了,比如進行圖像的壓縮或增強處理等,這些超出了本文的討論范圍,就不多述了。
5 結(jié)論
上述系統(tǒng)在數(shù)碼相機設(shè)計方案中取得了非常好的效果。實踐證明,這種高性能、可編程的、基于DSP的解決方案,使得產(chǎn)品的開發(fā)和應(yīng)用變得更加容易,為產(chǎn)品更快的進入市場奠定了基礎(chǔ)。