登錄 注冊
購物車0
TOP
Imgs 行業(yè)資訊

0

TI達(dá)芬奇系列芯片DM368在視頻前端信號(hào)采集中的應(yīng)用分析

2021-03-19 11:44:49

本文詳細(xì)介紹了DM368視頻前端支持的輸入數(shù)字信號(hào)格式。并以MT9D131和PCVGA信號(hào)為例,將兩者的時(shí)序和DM368視頻前端配置參數(shù)一一匹配。同時(shí)介紹了如何合理配置和使用VD中斷,為DM368用戶正確采集數(shù)據(jù)提供了參考。本文內(nèi)容也可以給DM8127、DM385芯片的用戶在使用視頻攝像并行輸入口采集時(shí)提供幫助。
1前言
DM368是TI達(dá)芬奇系列芯片中的一顆,被廣泛的使用在IPNC(IPnetcamera網(wǎng)絡(luò)攝像機(jī))的應(yīng)用領(lǐng)域里。對(duì)于IPNC應(yīng)用,首先就需要將視頻信號(hào)送入DM368里面,這就需要使用到DM368的視頻前端(VPFE-VideoProcessingFrontEnd)。DM368的視頻前端主要包含了IPIPEIF(ImagePipeInterface圖像管道接口),ISIF(ImageSignalInterface圖像信號(hào)接口),IPIPE(ImagePipe圖像管道),Resizer(縮放器)四個(gè)部分。
IPIPEIF功能是數(shù)據(jù)通路連接,以及把數(shù)據(jù)整合成后端模塊接口可以接入的格式/大小。ISIF是視頻信號(hào)的輸入口,可以支持Bayer格式的RAW數(shù)據(jù)(原始數(shù)據(jù))或者是YUV的數(shù)據(jù)的輸入。IPIPE主要是做ISP的處理。Resizer起到了對(duì)圖像縮放和圖像存儲(chǔ)格式轉(zhuǎn)換的作用。本文是基于IPIPEIF將外部并口輸入數(shù)據(jù)送入ISIF處理的基礎(chǔ)上展開討論。
TI達(dá)芬奇系列芯片DM368在視頻前端信號(hào)采集中的應(yīng)用分析
TI達(dá)芬奇系列芯片DM368在視頻前端信號(hào)采集中的應(yīng)用分析
圖1.視頻處理前端
如何將輸入信號(hào)和DM368視頻前端參數(shù)一一對(duì)應(yīng)?如何獲取外部的RAW數(shù)據(jù)以及RAW轉(zhuǎn)換成的對(duì)應(yīng)的YUV數(shù)據(jù)?如何只采集或者處理圖像中的一部分區(qū)域?如何配置VD中斷觸發(fā)的時(shí)機(jī)?在VD中斷里面我們應(yīng)該處理什么?希望在閱讀完本文后,你可以找到相應(yīng)的答案。
2DM368的前端信號(hào)輸入
如果用戶外接傳感器(sensor)輸出RAW數(shù)據(jù)或者YUV數(shù)據(jù)到DM368,為了采集到正確的數(shù)據(jù),我們需要了解DM368的視頻前端是如何解讀信號(hào),以獲得正確的數(shù)據(jù)。如果用戶使用的是FPGA輸出信號(hào)到DM368,那就更需要了解DM368視頻前端支持的信號(hào)格式,正確輸出DM368可以接收的信號(hào)。
2.1輸入信號(hào)的物理連接
DM368視頻前端支持并口的信號(hào)輸入,包括PCLK(像素時(shí)鐘),8到16位數(shù)據(jù)線,HD(行同步)信號(hào),VD(場同步)信號(hào)??梢灾С肿疃?6位的Bayer格式的RAW數(shù)據(jù)輸入。也可以支持內(nèi)嵌同步或者外部信號(hào)同步的8位或者16位的YUV422信號(hào)輸入。如果是內(nèi)嵌同步,則不需要接入HD信號(hào)和VD信號(hào)。對(duì)于輸入內(nèi)嵌同步的信號(hào),DM368硬件可以自動(dòng)解析出數(shù)據(jù)上嵌入的同步信息給芯片內(nèi)部使用。DM368的PCLK最高可支持120MHz,可以支持720p60、1080p30等分辨率的輸入,也可以支持較大分辨率,例如五百萬、八百萬等分辨率,但幀率是非實(shí)時(shí)(小于30幀)的。
DM368的視頻前端ISIF可以支持master(主)模式或者slave(從)模式。所謂master模式就是PCLK、VD和HD由DM368向外發(fā)出。而slave模式是外部設(shè)備提供PCLK、VD和HD信號(hào)給DM368。在實(shí)際的應(yīng)用里面絕大部分的情況都使用采slave模式。
2.2DM368視頻前端對(duì)輸入信號(hào)的解析
2.2.1ISIF對(duì)信號(hào)的解析
無論是master模式還是slave模式,DM368的視頻前端接口ISIF對(duì)于信號(hào)的處理是一樣的。

圖2.幀圖像格式
圖2的時(shí)序通常認(rèn)為水平同步和垂直同步信號(hào)都為高電平有效,需要配置ISIF的MODESET.HDPOL=MODESET.VDPOL=0。在這種情況下,水平同步信號(hào)寬度為HDW(HDpulsewidth),以像素為單位。垂直同步信號(hào)寬度為VDW(VDpulsewidth),以行數(shù)為單位。PLLN(Pixelsperline)是每行的像素個(gè)數(shù),也就是相鄰兩個(gè)行同步信號(hào)間的像素個(gè)數(shù)。LPFR是Linesperframe的縮寫,表示每幀數(shù)據(jù)有多少行,也是相鄰兩個(gè)場同步信號(hào)之間的行數(shù)。在slave模式下,PLCK/HD/VD都是外部輸入的,ISIF寄存器HDW/VDW/PLLN是不需要配置的。圖2中的灰色區(qū)域我們叫做有效數(shù)據(jù)區(qū)域,也就是用戶希望獲得的有效數(shù)據(jù)。而斜線陰影區(qū)域就是消隱區(qū)域。消隱區(qū)域在視頻前端處理中也是必不可少的部分,關(guān)于這點(diǎn)我們會(huì)在第3節(jié)詳細(xì)介紹。
如果你使用的是單次(oneshot)模式,或者在連續(xù)(continuous)模式下,你需要保存RAW數(shù)據(jù),那你就需要配置SPH(Startpixelhorizontal水平方向起始像素),SLV0/1(Startlinevertical-field0/1垂直方向奇偶場起始行),LNH(Numberofpixelsinline每行像素個(gè)數(shù)),LNV(Numberoflinesvertical垂直方向行數(shù))。這是為了告訴DM368你需要把輸入的圖像的哪部分寫到DDR。也就是說你可以選擇只輸出有效數(shù)據(jù)里面的某一部分到DDR。
SPH告訴硬件在同步信號(hào)有效以后從哪個(gè)像素開始寫入DDR。請注意這里的HD信號(hào)有效起始點(diǎn)是指同步信號(hào)有效的沿,不是從同步信號(hào)脈沖結(jié)束后作為計(jì)數(shù)像素的起點(diǎn)。例如,如果HD信號(hào)高電平有效,就是HD上升沿后開始計(jì)數(shù),LNH個(gè)PCLK(也就是像素)后將接收到的數(shù)據(jù)寫入DDR。同樣SLV0/1告訴硬件從哪行數(shù)據(jù)開始需要寫入DDR,LNV決定了寫多少行數(shù)據(jù)到DDR。所以調(diào)整ISIF的SPH,SLV0/1,LNH和LNV就可以調(diào)整保存到DDR上的RAW數(shù)據(jù)在原圖中的位置,以及RAW數(shù)據(jù)段大?。ㄩL寬)。如果不需要寫入RAW到DDR,那就不需要配置SPH,SLV0/1,LNH和LNV。
圖2的時(shí)序如果配置為同步信號(hào)低電平有效也是可以的。但是如果配置為低電平有效,相關(guān)的參數(shù)就發(fā)生了變化。例如水平同步信號(hào)寬度就變?yōu)镻PLN-HDW,垂直同步信號(hào)寬度為LPFR-VDW。SPH和SLV0/1都變成了0。所以在配置ISIF相關(guān)寄存器前首先需要把同步信號(hào)的極性確定下來。要采集到正確的數(shù)據(jù),DM368采樣數(shù)據(jù)時(shí)機(jī)必須和傳感器輸出數(shù)據(jù)的時(shí)機(jī)匹配。在DM368上默認(rèn)是PCLK的下降沿采樣數(shù)據(jù)。用戶可以通過修改SYSTEMmodule寄存器VPSS_CLK_CTRL的PCLK_INV[2]位來改變PCLK采樣沿。
2.2.2IPIPE和Resizer對(duì)信號(hào)的解析和處理
如果ISIF直接通過IPIPEIF連接到IPIPE,那所有的圖像數(shù)據(jù),也就是圖2里的globalframe都會(huì)傳輸?shù)絀PIPE。在IPIPE里面用戶需要配置SRC_HPS(HorizontalStartPosition),SRC_VPS(VerticalStartPosition),SRC_HSZ(HorizontalProcessingSize)和SRC_VSZ(VerticalProcessingSize),來確認(rèn)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ù)模式下,用戶同時(shí)獲得resizer輸出的YUV和ISIF輸出的RAW,時(shí)常有用戶發(fā)現(xiàn)自己保存的RAW數(shù)據(jù)和Resizer輸出的YUV數(shù)據(jù)不匹配,有一定的偏移。這種問題的原因是IPIPE,Resizer里面的SRC_HPS,SRC_VPS,SRC_HSZ和SRC_VSZ和ISIF里面的寫入DDR時(shí)候配置的偏移和大小不匹配。IPIPE/Resizer和ISIF的寄存器本身是沒有直接關(guān)系的,這就需要用戶將它們一一對(duì)應(yīng),匹配起來。例如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配置里面實(shí)現(xiàn)了,IPIPE里面的處理數(shù)據(jù)的起始位置就可以是(0,0)了。
這樣無論是在連續(xù)模式還是在單次模式下,RAW數(shù)據(jù)和RAW輸出轉(zhuǎn)換出的YUV數(shù)據(jù)就可以完全匹配了。

高都電子,為客戶創(chuàng)造價(jià)值!

雙面板免費(fèi)加費(fèi),四層板加急打樣,厚銅電路板打樣

Xcm