動画や3Dグラフィックなどの描画をスムーズに!
ラズベリーパイは教育用のコンピュータとして低価格なのに高性能ですが、さすがに普通のパソコンなどのスペックと比べてしまうとずいぶん見劣りします。それもそのはず、逆に言えば無駄な機能を省く専用機などを作りやすいシステムですが、それでもパソコンのように使ったり、学習用にはいろいろな用途に使いたいものです。
ラズベリーパイに搭載されているLinux系OS Raspbianでは学習用コンピュータとして必要十分な機能を搭載していますが、高度な動画再生や3Dグラフィックの表示をさせると非常に動作が遅く不安定です。
グラフィックのテストをしてみよう
グラフィックがどのように表示されるかをテストするのに便利なglxgearsというコマンドがあります。これを実行すると画面上に3Dのギアが回転するグラフィックが現れ、現在の状況で再生した場合どのようになるかを表してくれます。コマンドを実行したあとに表示されるまでに少し時間がかかる場合があります。
$ glxgears
標準の状態で再生すると画面左上にあるようにギアの画面が再生されますが、グラフィックの表示が追い付かず全て赤で表示されるはずのギアは中央が黄色くなっていて、青いギアも白くなってしまって、実際に動いている動画などではチカチカ点滅するような表示になってしまいます。下の図ではコマンドラインに動画のフレームレートが表示されていますが、4秒間ごとにどれくらいのフレームを表示できているかが表示されています。フレームレートとは動画はパラパラ漫画のように1秒間に静止画を何枚も並べて表示しているため、1秒間に差し込んでいる静止がの数が多いほどなめらかという事です。
このglxgearsの動作を修了させるためには「Ctrl」キーを押したまま「C」キーを押すことで強制終了できます。
OpenGLを有効にし、GPUグラフィックメモリを増強する。
そもそもOpenGLとは?
コンピュータにはCPUという計算する頭脳の部分の他にGPUと呼ばれるグラフィック用の頭脳も用意されています。OpenGLはOpen Graphics LibraryというGPUなどで使うライブラリです。OpenGLを有効にすることでCPUで処理していた部分を積極的にGPUに任せるようになるため、ラズベリーパイの全体的な処理能力が上がります。
まずはOpenGLを有効にして、GPUを積極的に使うようにし、そうなるとGPUに割り当てるメモリも増やしてあげることでGPUの負荷も軽減することができ、グラフィックをより綺麗に表現できるようになります。
OpenGLを有効にするには、raspi-configコマンドで設定を呼び出します。このコマンドはroot(管理者)で行うためsudoを付けます。
$ sudo raspi-config
Raspberry Pi Software Configuration Tool が開いたら「7 Advanced Options」を選択します。LXTerminalの中ではキーボードからの操作が基本ですので、キーボードの矢印キーで上下に移動して「Enter」します。
次にA7 GL Driverを選択してEnterをクリックして進めます。
ここでドライバの選択を行います。「G1 GL (Full KMS) OpenGL desktop driver with full KMS」を選択して、Enterします。
The full KMS GL driver is enabled. と表示されれば有効になった事が確認できましたので、「了解」が赤くなっていることを確認してEnterします。
これでメニューに戻ってきます。OpenGLドライバはこれで有効になっているので、設定を修了します。メインメニューで「→」キーを押すと一番下の<Finish>が選択されますので、Enterを押して進みます。
再起動するように促されますが、GPUメモリを増やしてから再起動しますので、ここでは「いいえ」を選択してEnterしてください。
GPUメモリを追加する。
GPUメモリを増加させることで、GPUの動作が速くなります。しかしながらシステム全体のメモリをGPUに割り当ててしまうため、他の動作には影響がでてきます。メモリの割り当てはラズベリーパイの動作を見ながら調整していくと良いでしょう。
「ラズベリーパイメニュー」-「設定」-「Raspberry Piの設定」を開きます。
次に「パフォーマンス」タブをクリックして「GPUメモリ」欄にある上向き矢印で256MBになるように設定します。
最後に「OK」ボタンを押すと「再起動しますか?」と聞かれますので、ここでは「はい」をクリックして再起動します。
これで、OpenGLが有効になり、GPUメモリが256MBになりましたので、グラフィックの表示が早くなったと思います。
再度glxgearsコマンドを実行してみましょう。
今度は3Dグラフィックが滑らかにきれいに表示されました。コマンドラインのフレームレートも平均して60FPSを記録しているので、非常にスムーズであることがわかります。
glxgearsの動作を修了させるためには「Ctrl」キーを押したまま「C」キーを押すことで終了できます。
このように設定を変えてみると、ラズベリーパイでもスムーズに動画の表示を行う事ができます。先にも述べたように、一方ではGPUに固定で256MBのメモリが割り当てられてしまうため、他の処理が遅くなってしまう場合もあるため、バランスを見ながら設定を変更していく事をおすすめします。
上記操作方法をまとめた動画が以下のものになります。