多台相機若無法同步曝光,會影響影像處理及3D重建等任務。本文介紹低功耗多台相機同步曝光模組,確保相機同步曝光。
多台相機若無法同步曝光,會導致一連串的時序誤差與空間失真,進而對影像處理、同時定位與繪圖(Simultaneous Localization and Mapping, SLAM)及3D點雲重建等任務造成嚴重影響。本文將介紹可整合至系統級單晶片(SoC)內的低功耗多台相機同步曝光模組,以確保所有相機皆能同步曝光。
系統架構
首先,可使用FPGA客製化設計軟核微處理(soft-core MCU),其內包含多台相機時序同步電路。但須先克服微控制器與FPGA記憶體資源不足的問題。然而,即使未使用完整作業系統,仍可能面臨記憶體不足的問題,其原因在於一般的MCU的SRAM容量只有幾十KB到數百KB,MCU的Flash也僅有數百KB到數MB。FPGA內的區塊記憶體(Block RAM, BRAM)容量更加有限,雖然配置彈性高,但容量小。由於並未使用OS的記憶體保護機制,容易出現堆疊溢位、記憶體碎片、動態配置失敗或未優化。解決方法詳見表1。
表1 解決記憶體不足的策略
為了有效減少CPU與DMA的資源競爭,DMA+雙緩衝區(Ping-pong Buffer)是常用的方法,其原理如圖1。
圖1 DMA+雙緩衝區的原理
雙埠隨機存取記憶體(Dual-ported RAM, DPRAM)是另一種減少CPU與DMA資源競爭的方法,它是硬體層級的解法,具備兩組獨立的匯流排(位址與資料),允許CPU和DMA同時存取記憶體,達到真正的平行作業,但成本與設計複雜度較高。上述方法皆用於降低資料搬運過程中的延遲與資源競爭。兩者之比較如表2。
表2 DMA+雙緩衝區和DPRAM的比較
DPRAM可區分成兩類,如下所述:
- 雙埠SRAM:是最常見的DPRAM實作,速度快、架構簡單,常用於FPGA、寄存器堆(Register File)等。
- 雙埠DRAM:專為影像記憶體(Video RAM)設計,允許CPU繪圖與顯示器同時讀取資料。
相較於雙埠SRAM,雙埠DRAM容量較大、成本較低,但速度略慢,且架構較為複雜,兩者差異如表3,因此多用於影像緩衝等大容量應用情境。
表3 常見的FSYNC應用場景
圖2是多台相機同步曝光模組的功能方塊圖。其中,MCU本身就是一顆具CPU核心(如Cortex-M或RISC-V)的微控制器,它負責執行所有與相機同步、時間戳記、DMA管理、中斷服務程序(Interrupt Service Routine, ISR)等相關邏輯。並且通常會搭配FreeRTOS或類似的即時作業系統(Real-time operating system, RTOS)來管理排程與中斷。
圖2 結合MCU和FPGA的多台相機同步曝光模組
從系統設計與暫存器傳輸級(Register-transfer Level, RTL)的角度來看,FPGA的快門同步控制器(Trigger Pulse Generator)是一個上層模組,其內部整合多個功能模組,負責產生與控制曝光觸發訊號。快門同步控制器是泛指所有可觸發相機曝光的脈衝產生器,包含:FSYNC、GPIO、PWM等脈衝源。目前有些SoC系統是直接將PWM脈衝當作曝光觸發訊號。此作法的優缺點,如表4。
表4 以PWM取代FSYNC的優缺點
圖2中的曝光觸發訊號是使用訊框同步(Frame Sync, FSYNC)訊號。它由FSYNC產生器輸出硬體觸發脈衝,頻率通常固定(如30Hz、60Hz),可使所有相機於同一時間點開始曝光。此外,與FPGA連接的所有MIPI CSI-2相機都需支援全局式快門(Global Shutter),例如:OV9782、AR0234、IMX273等相機,以確保不會發生滾動式快門失真(Rolling Shutter Distortion),如圖3。FSYNC廣泛應用於多模組影像同步場景,例如多相機系統與感測器融合架構。
圖3 全局式快門(Global Shutter)和滾動式快門(Rolling Shutter)相機的比較:(1)和(2)是個別訊號時序圖;(3)是個別拍攝結果,以滾動式快門拍攝快速運動的物體時會出現扭曲變形,稱之為果凍效應(Jello Effect)
同步時序來源
圖2中,MCU的時間同步/戳記模組和FPGA的時間戳記(Timestamp)產生器是設計高精確度同步系統時,不可忽略的核心單元。時間同步/戳記模組是外部的時鐘源,負責提供準確的時間基準,例如:每秒脈衝(Pulse Per Second, PPS)、網路時間協定(Network Time Protocol, NTP)、精確時間協定(Precision Time Protocol, PTP)。時間戳記產生器是事件記錄器,在事件發生時,根據以FPGA的本地時脈為基礎所累加的時脈計數器(Clock Counter)產生時間戳記。先從PPS、NTP、PTP中選定時鐘源,並根據此校準FPGA時脈,使時間戳記產生器得以基於該時脈記錄事件發生時間。需記錄的事件,包括:FSYNC、曝光、DMA等。這不只是為了多台相機能夠同步曝光,還為了建立跨模組、跨層級的時間一致性。這在多台相機系統、SLAM、感知融合、甚至在AI推論中,都是不可或缺的。
從發出FSYNC訊號開始,直到完成AI推論為止,完整時間鏈為:FSYNC→曝光→從MIPI CSI-2介面讀取資料→DMA→CPU→AI推論。此時間鏈上的每個節點都可能有抖動(Jitter)、延遲、相位漂移(Pase Drift)。唯有記錄每個時間點,才能使多台相機的資料對齊(時序對齊)、補償相機的延遲或滾動式快門的偏差,最後建立時間戳記的詮釋資料(Metadata),供AI模型使用。
DMA的時間戳記是在資料搬運完成時,記錄的時間戳記,代表該筆資料已準備好,可供CPU、ISP、AI模型使用。在自駕車、自主機器人、AR/VR等場景中,相機、LiDAR、IMU、雷達都各自有獨立DMA完成時間,若無精準的時間戳記,不同模組的資料融合誤差會導致定位錯誤、物體偏移。若每筆資料都有附上精準的時間戳記,就能在CPU層級進行時間對齊。例如:將IMU的時間戳記與相機的DMA時間戳記對齊,進行姿態估測(Pse Etimation)。CPU或Linux常駐程式(Demon)也可根據時間戳記決定何時啟動ISP、AI推論、SLAM,如此可避免過早擷取或資源競爭情況(Rce Cndition)。此外,比較FSYNC的時間戳記與DMA的時間戳記,可得出:相機的延遲(曝光→讀取MIPI CSI-2)、ISP的延遲(DMA→CPU)、系統抖動或相位漂移,這可用於問題的追蹤分析、調整服務品質、優化緩衝區。
Genlock
產生器鎖定(Generator Locking, Genlock)或同步鎖相技術是一種視訊同步技術,用來使多個影像來源(如相機、顯示器)鎖定在同一個時間基準訊號上,確保它們的影像訊框在時間上完全對齊。它不只是為了使多台相機能同步曝光,還要將整個視訊系統的時間對齊,這包含ISP、顯示器、影像編碼器等。它被廣泛應用於廣播用視訊同步系統(如多路SDI視訊輸入、多台顯示器同步)、AR/VR頭戴裝置、工業影像處理平台。
Genlock也是從PPS、NTP、PTP中選定時鐘源,但精確度可達μs~ns,屬於高階視訊同步。且支援相位對齊、子訊框對齊,甚至像素時脈(Pixel Clock)對齊。只要將圖2中的FSYNC產生器更換成Genlock模組,MCU透過SPI或I2C或GPIO設定Genlock參數暫存器,即可動態設定由Genlock產生的FSYNC頻率、脈衝寬度、相位偏移。
測試平台
為避免RTL反覆重構、MCU的ISR設計錯誤,在進行上述MCU與FPGA原型設計前,應先建構可調整曝光延遲的測試平台或模型,觀察在不同時間偏移下的影像拼接誤差,並可量化其對SLAM或3D重建的影響。這個測試平台不只是測試工具,更是整個同步架構的設計前導或需求規格。它能在實作RTL之前,就掌握誤差來源、同步瓶頸與設計的優化空間。且在完成原型設計之後,用來驗證原型的輸出。
以下說明3D相機感測系統之同步曝光測試平台架構,它的硬體層至少需包含:FSYNC產生器、時間戳記產生器。這是因為它們直接參與時序控制與事件標記,需在時脈週期運作,並具備極高的精確度與低延遲特性,這些需求無法靠軟體模擬達到。測試平台的軟體層需包含:相機模擬器、曝光延遲注入器、DMA模擬器、中斷控制器、3D重建模組、誤差分析器、可視化模組。硬體層可使用Verilog/VHDL語言在FPGA內設計RTL邏輯,或直接使用現成的硬體IP。
在軟體層方面,相機模擬器可用RTL、Python模擬MIPI CSI-2的行為。曝光延遲注入器可用RTL模擬快門延遲或使用Python將延遲時間加入。DMA模擬器可用RTL模擬,但在真實系統,需使用硬體的DMA控制器。中斷控制器可使用RTL模擬中斷產生和清除,但在真實系統,MCU或SoC內部須有硬體支援。3D重建模組可用Python或C++實作。誤差分析器可用Python和Numpy實作。可視化模組可用Plotly或Open3D軟體,屬於使用者介面層。
誤差指標
上述的誤差分析器負責將重建出的3D點雲與真實基準(Ground Truth)做比較,並量化時間同步誤差對空間重建的影響。下文說明三個主要誤差指標:
- 均方根誤差(Root Mean Squared Error, RMSE):衡量重建點與真實點之間距離的平均誤差,對大誤差特別敏感。如公式(1)。其計算單位與空間一致,對離群值敏感。適合評估整體的重建精確度。

- Z偏移(Depth Bias):量測重建點在Z軸(深度方向)上的平均偏移量,反映時間延遲造成的深度誤差。如公式(2)。其正負值表示前後偏移。適合分析滾動式快門或曝光延遲造成的深度誤差。可進一步繪製曝光延遲與Z偏移之關係曲線。

- 扭曲指標(Distortion Metric):可量化和可視化點雲的幾何扭曲程度,例如:點雲的局部密度變化、邊緣拉伸或重影(Double Imaging)。常見方法有:
- 郝斯多夫距離(Hausdorff Distance):描述兩組點集之間的相似程度。
- 表面法向量偏移(Surface Normal Deviation):重建表面法向量與真實表面法向量的夾角。
- 偏度指數(Skewness Index):點雲在某方向上的偏斜程度。
實務上,可用Python設計誤差分析器,輸入點雲與真實基準,自動計算上述的三種誤差指標,再利用Plotly或Open3D軟體設計可視化模組來繪製曲線圖。可進一步將分析結果整理為量化指標與視覺化圖表,以利評估與比較。
此外,也可建立時間偏移對空間誤差的映射模型,並驗證時間戳記對齊的精確度是否足夠,以及對FSYNC、DMA、曝光時間控制器的設計參數進行微調。