0
本文詳細介紹了DM368視頻前端支持的輸入數(shù)字信號格式。并以MT9D131和PCVGA信號為例,將兩者的時序和DM368視頻前端配置參數(shù)一一匹配。同時介紹了如何合理配置和使用VD中斷,為DM368用戶正確采集數(shù)據(jù)提供了參考。本文內容也可以給DM8127、DM385芯片的用戶在使用視頻攝像并行輸入口采集時提供幫助。
1前言
DM368是TI達芬奇系列芯片中的一顆,被廣泛的使用在IPNC(IPnetcamera網(wǎng)絡攝像機)的應用領域里。對于IPNC應用,首先就需要將視頻信號送入DM368里面,這就需要使用到DM368的視頻前端(VPFE-VideoProcessingFrontEnd)。DM368的視頻前端主要包含了IPIPEIF(ImagePipeInterface圖像管道接口),ISIF(ImageSignalInterface圖像信號接口),IPIPE(ImagePipe圖像管道),Resizer(縮放器)四個部分。
IPIPEIF功能是數(shù)據(jù)通路連接,以及把數(shù)據(jù)整合成后端模塊接口可以接入的格式/大小。ISIF是視頻信號的輸入口,可以支持Bayer格式的RAW數(shù)據(jù)(原始數(shù)據(jù))或者是YUV的數(shù)據(jù)的輸入。IPIPE主要是做ISP的處理。Resizer起到了對圖像縮放和圖像存儲格式轉換的作用。本文是基于IPIPEIF將外部并口輸入數(shù)據(jù)送入ISIF處理的基礎上展開討論。
TI達芬奇系列芯片DM368在視頻前端信號采集中的應用分析
TI達芬奇系列芯片DM368在視頻前端信號采集中的應用分析
圖1.視頻處理前端
如何將輸入信號和DM368視頻前端參數(shù)一一對應?如何獲取外部的RAW數(shù)據(jù)以及RAW轉換成的對應的YUV數(shù)據(jù)?如何只采集或者處理圖像中的一部分區(qū)域?如何配置VD中斷觸發(fā)的時機?在VD中斷里面我們應該處理什么?希望在閱讀完本文后,你可以找到相應的答案。
2DM368的前端信號輸入
如果用戶外接傳感器(sensor)輸出RAW數(shù)據(jù)或者YUV數(shù)據(jù)到DM368,為了采集到正確的數(shù)據(jù),我們需要了解DM368的視頻前端是如何解讀信號,以獲得正確的數(shù)據(jù)。如果用戶使用的是FPGA輸出信號到DM368,那就更需要了解DM368視頻前端支持的信號格式,正確輸出DM368可以接收的信號。
2.1輸入信號的物理連接
DM368視頻前端支持并口的信號輸入,包括PCLK(像素時鐘),8到16位數(shù)據(jù)線,HD(行同步)信號,VD(場同步)信號??梢灾С肿疃?6位的Bayer格式的RAW數(shù)據(jù)輸入。也可以支持內嵌同步或者外部信號同步的8位或者16位的YUV422信號輸入。如果是內嵌同步,則不需要接入HD信號和VD信號。對于輸入內嵌同步的信號,DM368硬件可以自動解析出數(shù)據(jù)上嵌入的同步信息給芯片內部使用。DM368的PCLK最高可支持120MHz,可以支持720p60、1080p30等分辨率的輸入,也可以支持較大分辨率,例如五百萬、八百萬等分辨率,但幀率是非實時(小于30幀)的。
DM368的視頻前端ISIF可以支持master(主)模式或者slave(從)模式。所謂master模式就是PCLK、VD和HD由DM368向外發(fā)出。而slave模式是外部設備提供PCLK、VD和HD信號給DM368。在實際的應用里面絕大部分的情況都使用采slave模式。
2.2DM368視頻前端對輸入信號的解析
2.2.1ISIF對信號的解析
無論是master模式還是slave模式,DM368的視頻前端接口ISIF對于信號的處理是一樣的。
圖2.幀圖像格式
圖2的時序通常認為水平同步和垂直同步信號都為高電平有效,需要配置ISIF的MODESET.HDPOL=MODESET.VDPOL=0。在這種情況下,水平同步信號寬度為HDW(HDpulsewidth),以像素為單位。垂直同步信號寬度為VDW(VDpulsewidth),以行數(shù)為單位。PLLN(Pixelsperline)是每行的像素個數(shù),也就是相鄰兩個行同步信號間的像素個數(shù)。LPFR是Linesperframe的縮寫,表示每幀數(shù)據(jù)有多少行,也是相鄰兩個場同步信號之間的行數(shù)。在slave模式下,PLCK/HD/VD都是外部輸入的,ISIF寄存器HDW/VDW/PLLN是不需要配置的。圖2中的灰色區(qū)域我們叫做有效數(shù)據(jù)區(qū)域,也就是用戶希望獲得的有效數(shù)據(jù)。而斜線陰影區(qū)域就是消隱區(qū)域。消隱區(qū)域在視頻前端處理中也是必不可少的部分,關于這點我們會在第3節(jié)詳細介紹。
如果你使用的是單次(oneshot)模式,或者在連續(xù)(continuous)模式下,你需要保存RAW數(shù)據(jù),那你就需要配置SPH(Startpixelhorizontal水平方向起始像素),SLV0/1(Startlinevertical-field0/1垂直方向奇偶場起始行),LNH(Numberofpixelsinline每行像素個數(shù)),LNV(Numberoflinesvertical垂直方向行數(shù))。這是為了告訴DM368你需要把輸入的圖像的哪部分寫到DDR。也就是說你可以選擇只輸出有效數(shù)據(jù)里面的某一部分到DDR。
SPH告訴硬件在同步信號有效以后從哪個像素開始寫入DDR。請注意這里的HD信號有效起始點是指同步信號有效的沿,不是從同步信號脈沖結束后作為計數(shù)像素的起點。例如,如果HD信號高電平有效,就是HD上升沿后開始計數(shù),LNH個PCLK(也就是像素)后將接收到的數(shù)據(jù)寫入DDR。同樣SLV0/1告訴硬件從哪行數(shù)據(jù)開始需要寫入DDR,LNV決定了寫多少行數(shù)據(jù)到DDR。所以調整ISIF的SPH,SLV0/1,LNH和LNV就可以調整保存到DDR上的RAW數(shù)據(jù)在原圖中的位置,以及RAW數(shù)據(jù)段大?。ㄩL寬)。如果不需要寫入RAW到DDR,那就不需要配置SPH,SLV0/1,LNH和LNV。
圖2的時序如果配置為同步信號低電平有效也是可以的。但是如果配置為低電平有效,相關的參數(shù)就發(fā)生了變化。例如水平同步信號寬度就變?yōu)镻PLN-HDW,垂直同步信號寬度為LPFR-VDW。SPH和SLV0/1都變成了0。所以在配置ISIF相關寄存器前首先需要把同步信號的極性確定下來。要采集到正確的數(shù)據(jù),DM368采樣數(shù)據(jù)時機必須和傳感器輸出數(shù)據(jù)的時機匹配。在DM368上默認是PCLK的下降沿采樣數(shù)據(jù)。用戶可以通過修改SYSTEMmodule寄存器VPSS_CLK_CTRL的PCLK_INV[2]位來改變PCLK采樣沿。
2.2.2IPIPE和Resizer對信號的解析和處理
如果ISIF直接通過IPIPEIF連接到IPIPE,那所有的圖像數(shù)據(jù),也就是圖2里的globalframe都會傳輸?shù)絀PIPE。在IPIPE里面用戶需要配置SRC_HPS(HorizontalStartPosition),SRC_VPS(VerticalStartPosition),SRC_HSZ(HorizontalProcessingSize)和SRC_VSZ(VerticalProcessingSize),來確認globalframe里面的哪一部分需要IPIPE來處理。
在resizer的模塊里面,也有SRC_HPS,SRC_VPS,SRC_HSZ和SRC_VSZ可以配置resizer處理的圖像的區(qū)域。如果IPIPE的輸出到resizer已經(jīng)是需要處理的區(qū)域,那SRC_HPS,SRC_VPS就可以配置為0,而resizer的SRC_HSZ,SRC_VSZ等于IPIPE的SRC_HSZ,SRC_VSZ。如果ISIF的輸出是通過IPIPEIF直接到resizer(沒有經(jīng)過IPIPE),resizer的SRC_HPS,SRC_VPS就不能配置為0了,需要用戶根據(jù)需要處理的圖像合理的配置resizer的SRC_HPS,SRC_VPS寄存器。
2.2.3RAW數(shù)據(jù)和YUV數(shù)據(jù)的匹配
在連續(xù)模式下,用戶同時獲得resizer輸出的YUV和ISIF輸出的RAW,時常有用戶發(fā)現(xiàn)自己保存的RAW數(shù)據(jù)和Resizer輸出的YUV數(shù)據(jù)不匹配,有一定的偏移。這種問題的原因是IPIPE,Resizer里面的SRC_HPS,SRC_VPS,SRC_HSZ和SRC_VSZ和ISIF里面的寫入DDR時候配置的偏移和大小不匹配。IPIPE/Resizer和ISIF的寄存器本身是沒有直接關系的,這就需要用戶將它們一一對應,匹配起來。例如ISIF輸出的數(shù)據(jù)輸入給IPIPE,為了讓RAW和YUV匹配,需要ISIF的SPH等于IPIPE的SRC_HPS,ISIF的SLV0/1等于IPIPE的SRC_VPS,ISIF的LNH等于IPIPE的SRC_HSZ,ISIF的LNV等于IPIPE的SRC_VSZ。而Resizer的SRC_HPS,SRC_VPS需要配置為0,而resizer的SRC_HSZ,SRC_VSZ要等于IPIPE的SRC_HSZ,SRC_VSZ。
在單次模式下,也就是數(shù)據(jù)通路ISIF-》DDR-》IPIPEIF-》IPIPE(Resizer),由于IPIPE的輸入是DDR上的RAW數(shù)據(jù),有效數(shù)據(jù)的獲取已經(jīng)在ISIF輸出到DDR配置里面實現(xiàn)了,IPIPE里面的處理數(shù)據(jù)的起始位置就可以是(0,0)了。
這樣無論是在連續(xù)模式還是在單次模式下,RAW數(shù)據(jù)和RAW輸出轉換出的YUV數(shù)據(jù)就可以完全匹配了。
雙面板免費加費,四層板加急打樣,厚銅電路板打樣