ラズベリー・パイの 高速描画テクニック

第1部
第
2章
SDL ライブラリ× OpenCV! 使いやすくてサクサク
ラズベリー・パイの
高速描画テクニック
鎌田 智也
cvShow
Window
関数に
よる描画
Xクライアント・
アプリケーション
アプリケーション
OpenCV
SDL
高速描画できる
1…
理由 シンプルで
ダイレクト
アプリケーション
OpenCV
TCP/IPネットワーク層
SDL
(Simple Media Layer)
X Windowサーバ
ハード
ウェア
GPU
プロセッサ
フレーム・バッファ・メモリ
ラズベリー・
パイのX Windowサーバは,
GPUに対応し
ていないので
遅い
ハード
ウェア
GPUプロセッサ
コンソール・フレーム・バッファ・メモリ
ビデオ・エンコーダ
ビデオ・エンコーダ
プロセッサ
プロセッサ
HDMI機器
高速描画できる
2…
理由 GPUパワーを活
用できる版の
SDLライブラリ
を使う
ラズベリー・
パイ
(a)定番X Window Systemだと描画が遅い
HDMI機器
ラズベリー・
パイ
(b)今回採用したコンソール・フレーム・バッファ方式
図 1 ラズベリー・パイで高速描画する方法
ラズベリー・パイでリアルタイムに
グラフィック描画を行う方法
● 定番 X Window System グラフィック描画の
問題点
ラズベリー・パイは,従来のマイコン・ボードと比
較すると高速なプロセッサを搭載していますが,映像
をリアルタイム表示するには工夫が要ります.
ラズベリー・パイ用アプリケーションで,作成した
画像がモニタに出力されるまでの流れを,図 1(a)に
示します.PC の Linux 環境で,画像をモニタ出力す
るには,一般に X Window System 上で動くアプリ
ケーション・ソフトウェアを開発します.
PC 上で動作する X Window System は,グラフィッ
ク・アクセラレータ機能を十分発揮して高速描画でき
るので,性能が問題になることはありません.
し か し ラ ズ ベ リ ー・ パ イ で は 残 念 な が ら,X
Window System のドライバがラズベリー・パイ内蔵
の GPU に最適化されていないため,PC 環境と同様に
2015 年 5 月号
X Window System 上で画像を扱おうとしても,グラ
フィックスの描画速度が遅くなってしまうという問題
があります.
● ラズベリー・パイで高速描画する方法
X Window System 上で動作する X Window クライ
アント・アプリケーションがグラフィック描画を行う
際には,UNIX ソケットを経由したプロトコル通信に
よって X Window サーバに対して描画の依頼を行いま
す.たとえローカル・マシン上でクライアント・アプ
リケーションと X Window サーバが動作していたとし
ても,UNIX ソケットを経由するので,本来のグラ
フィック描画を行う以外のオーバヘッドになります.
無駄な処理を省いてグラフィック描画に特化した処
理を行うことができれば,X Window System を経由
するよりも高速なグラフィック表示を行えることが期
待できます.
そこで登場するのが,X Window System を起動せ
ずにコンソール・フレーム・バッファへ直接画像デー
33