【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
? ? ? ? 前面我們討論了camera,也討論了屏幕驅動,這些都是基礎的部分。關鍵是,我們拿到了這些視頻數據之后,是否還需要做一些后面的工作。難道,拿到這些視頻數據之后,僅僅是為了lcd顯示一下,是否有必要保存下來、送出去,或者是從視頻中提一些信息呢。
????????截圖是hdmi轉csi2的設計,呼應文章最后一小段內容。
1、mcu、fpga、soc處理視頻的驅動差不多
? ? ? ? 其實,不光soc可以處理視頻,mcu和fpga也是可以處理視頻的。只不過mcu處理的視頻,一般sensor都自帶isp功能,fpga處理sensor則比較麻煩一點,編譯起來也不方便。相比較而言,soc處理視頻會復雜一點,分成了i2c驅動、mipi驅動、isp驅動、uvc驅動等幾個部分。對于mcu和fpga的驅動,大家可以參考某火、某原子的資料。對于soc資料,i2c驅動、mipi驅動、uvc驅動這些都可以找到,但是isp,一般廠家都只是提供工具,不會提供對應驅動代碼的。客戶會使用、會配置isp即可。
? ? ? ? 比如,這是v3s驅動中mipi的代碼,
https://github.com/aodzip/sun6i-mipi-csi
? ? ? ? 假設sensor用的是ov5640,驅動代碼在這,
https://elixir.bootlin.com/linux/v5.2.21/source/drivers/media/i2c/ov5640.c
2、視頻編碼
? ? ? ? 和傳統pc編碼相比較,嵌入式soc上面的視頻編碼一般都是硬件完成的。常見的編碼有h264、h265。具體的編碼,通常都是硬件來完成的,而把h264、h265組合成mp4、avi這樣的工作,就會用ffmepg來完成。畢竟對于軟件來說,實時編碼幾乎是不可能的,只要靠硬件來實現實時的編碼操作。
3、視頻解碼
? ? ? ? 很多時候,視頻編、解碼不一定是同時存在的。比如說,ipcam上面,很多soc只有編碼。而dvr等很多設備,則只有視頻解碼。這里面主要還是基于成本和市場的考慮。當然,如果不考慮成本,或者soc的價格足夠高,這個時候視頻編、解碼就會都存在了。
4、isp功能
? ? ? ? 雖然都叫isp,但是不同廠家的isp差異很大。可以這么說,一般的小廠soc也就是做一些基本的圖像處理,比如自動曝光、自動白平衡、自動對焦、黑電平、左右翻轉、上下反轉、噪聲處理、osd這些。而大廠的soc,這方面做的要多得多,不僅引入更多的isp圖像算法,比如去霧算法、畸變矯正等等,還會引入更多的ai model對isp進行處理。所以大家雖然名字都叫isp,但是差異還是非常大的。
? ? ? ? 如果本身對isp的要求比較高,可以考慮大廠的soc,反之為了降成本的話,則可以選擇一般的soc,甚至是自帶部分isp功能的sensor,都是可以的。
5、存儲
? ? ? ? 本地存儲是最容易想到的功能。一般的行車記錄儀、運動相機,基本上就是編碼+lcd顯示/本地保存這樣的思路。
6、npu處理
? ? ? ? 現在圖像處理,除了圖像本身,還會引入越來越多的ai功能。目前來說,剛需的ai功能有這幾個部分,人臉識別、車牌識別、ocr識別、指紋識別等等。npu的話,不必注重數值越大越好,主打一個夠用就行。畢竟一分錢,一分貨。
7、機器視覺
? ? ? ? 圖像本身除了用來看,還可以從中提取到很多的有用信息。這個時候,可以把一些常規的機器視覺算法移植到嵌入式設備上,這樣設備搖身一變,就是智能嵌入式設備了。
8、網絡處理
? ? ? ? 目前視頻處理這塊很火,有一部分就是基于網絡的處理。網絡的帶寬一般都是大小一定的,我們總是希望圖像要盡量地好,但是帶寬要盡量地低,延遲也要盡可能地低,所以這里面能做的工作還是非常多的。常見的rtsp、rtmp未必能滿足我們要求,有些場景需要我們自定義協議才能去解決。
? ? ? ? 網絡這部分,如果是后端處理,一般就是ipcam;如果是前端處理,一般就是dvr。不過大家可以擴展一下思路,畢竟還可以用于飛控、監控、醫療等很多領域。
9、fpga導出,接入csi2
? ? ? ? 有些算法如果為了低延時和高性能,引入fpga也是有可能的。這種情況下,就是fpga接入sensor,對圖像進行預處理之后,再把圖像傳給soc的csi2接口,進行后續的處理。fpga雖然處理圖像比較方便,但是沒有linux的幫助,很多事情都做不了,也不方便。所以,fpga+soc這樣的處理模式,還是非常方便的。
10、csi2接入轉換芯片
? ? ? ? 很多時候,我們會認為,csi2接口只能接入sensor,其實除了camera sensor之外,還可以是fpga的接口,甚至是其他芯片轉換過來的數據,比如hdmi轉換過來的mipi數據。大家試想一下,如果是hdmi轉換過來的數據,不就是一個視頻采集設備嗎?現在的銷售直播、游戲直播、綜藝直播這么火,這方面肯定有很大的市場。