下麵的系列文章記錄瞭如何使用一塊linux開發扳和一塊OLED屏幕實現視頻的播放: 項目介紹 為OLED屏幕開發I2C驅動 使用cuda編程加速視頻處理 這篇文章主要對項目的實現做整體的介紹, 包括硬體的需求, 最終實現的視頻播放效果, 以及軟體的實現思路. 1). 硬體需求 beaglebone ...
下麵的系列文章記錄瞭如何使用一塊linux開發扳和一塊OLED屏幕實現視頻的播放:
這篇文章主要對項目的實現做整體的介紹, 包括硬體的需求, 最終實現的視頻播放效果, 以及軟體的實現思路.
1). 硬體需求
- beaglebone black board(之後簡稱bbb)
- ssd1306 oled屏幕(支持i2c介面)
- 支持cuda的N卡(用於視頻處理加速)
2). 效果演示
跳轉到6:48直接觀看演示
3). 實現原理
下圖是系統中各部分的交互關係:
- 待播放視頻以mp4文件的形式保存. OLED屏幕不支持彩色, 並且要求每幀視頻解析度為128x64, 所以需要對視頻數據進行resize和灰度處理, 使用GPU編程完成這部分的數據處理.
- bbb板子上運行著debian系統, 需要開發OLED屏幕的I2C驅動, 以及一個用戶態程式, 其中用戶態程式負責接收GPU處理之後的視頻數據, 並且通過I2C設備驅動暴露的文件系統介面, 操作屏幕播放視頻
總結下來, 實際的代碼開發的工作主要包括:
-
Host Machine:
- cuda視頻處理加速
- 用戶態程式, 調用cuda代碼處理視頻, 並作為伺服器把視頻數據發送給bbb
-
bbb板子:
- SSD1306 OLED屏幕的I2C驅動開發
- 用戶態程式, 從Host Machine請求數據, 操作設備播放視頻
之後的文章中將逐一介紹代碼中的實現細節.
4). 文末推廣
感覺還不錯的小伙伴, 歡迎關註我的B站賬號, 或者加入QQ群838923389, 一起研究電腦底層技術, 一起搞事情:P