在ADTF(Automotive Data and Time-Triggered Framework)中,過濾器(Filter)扮演著數據處理的核心角色。過濾器是處理數據流的基本單元,它們接收、處理并發送數據。接下來,將分享ADTF中創建和使用過濾器,包括設置輸入輸出針腳(Pins)、配置觸發器(Triggers)以及處理數據樣本(Samples)。
一、過濾器基礎
過濾器是ADTF中用于數據處理和轉換的小型處理單元,可以通過特定的接口接收和發送數據,如圖1所示。
圖1 Filter過濾器核心能力如下:
1.數據接收:通過輸入引腳(In Pins)和對應的樣本讀取器(Sample Reader)接收數據。
2.數據發送:通過輸出引腳(Out Pins)和對應的樣本寫入器(Sample Writer)發送數據。
3.數據處理:在運行器(Runners)(也稱為觸發上下文、可運行對象或可調用對象)的上下文中處理數據。
在進行過濾器的設計,考慮將數據傳輸與運行時行為分離。因此引入了觸發機制,包括數據觸發和時間觸發。
1.數據觸發:功能在傳入數據事件上運行。
2.時間觸發:功能在傳入時間事件上運行。
通過這種設計支持構建一個強大且可適應的系統,使用過濾器可以輕松集成和定制。比如在數采系統中,通過不同的時間觸發設計,以適應不同頻率的傳感器數據采集。或者利用cDataTriggerHint類來確保當車輛傳感器數據(如攝像頭圖像)到達時,觸發相應的數據處理算法運行,從而實現實時數據流的高效響應和處理。
二、創建過濾器
通常,在ADTF中濾波器會被打包成一個插件。通過ADTF 的插件機制使其能夠在 ADTF 的運行時加載。在濾波器中,可以通過可以創建輸出引腳或輸入引腳,這里我們以輸出引腳為例。引腳傳輸出去的數據,在ADTF中稱為樣本(Sample)。其代碼案例如下,創建一個濾波器并添加一個輸出引腳及樣本數據。
三、 樣本(Sample)
樣本(Sample)是 ADTF中用于數據傳輸的基本單元。它們不僅包含數據本身,還包含與數據流相關的元信息,如圖2所示。
圖2 Sample一般來說,樣本通過 streaming::ISample 接口進行操作。其樣本組成包含以下內容:
1.時間戳(Timestamp):為每個數據提供時間關聯。
2.樣本緩沖區(SampleBuffer):通常是一個內存塊的引用,包含用戶數據。
3.樣本信息(Sample Info)(可選):提供額外的元數據。
4.子流 ID(Substream Id)(可選):用于標識特定的數據子流。
比如我們可以輕易實現將內存緩沖區內容復制到樣本中,實現數據傳輸。
四、過濾器應用
ADTF過濾器的應用場景廣泛,它們不僅能夠處理和轉換數據,還能夠根據特定的需求定制功能。在圖3所示,在人臉識別算法工程中,過濾器被用于處理從攝像頭捕獲的視頻流。
首先,一個過濾器用于解碼視頻流,將原始數據轉換為圖像幀。接下來,通過一個復雜的過濾器(OpenCV Face Detector Filter)實現人臉識別算法,識別并跟蹤視頻中的人臉。通過這些過濾器的協同工作,系統能夠實時處理視頻數據,并提供有用的輸出,如安全監控或人流量統計。
圖3 人臉識別算法工程此外,過濾器可用于多種用途,包括但不限于:
1.解碼來自CAN、MOST或FlexRay等設備的流源數據。
2.預處理傳入數據,為算法實現做準備。
3.通過復雜的算法實現重新計算和合并傳入數據。
4.實現循環控制器。
5.接收傳入數據并進行數據可視化。
五、總結
ADTF過濾器提供了一個靈活且強大的平臺,用于構建和集成數據處理流程。無論是在汽車、工業自動化等領域,過濾器都能夠提供定制化的解決方案,滿足特定的技術需求。通過合理設計和配置過濾器,可以大大提高數據處理的效率和可靠性。
-
算法
+關注
關注
23文章
4607瀏覽量
92826 -
數據處理
+關注
關注
0文章
595瀏覽量
28554 -
過濾器
+關注
關注
1文章
428瀏覽量
19593 -
自動駕駛
+關注
關注
784文章
13784瀏覽量
166375 -
汽車
+關注
關注
13文章
3493瀏覽量
37250
發布評論請先 登錄
相關推薦
評論