Episode 02 / develop DS player with SBC

結果はEpisode01の通り、今回はそこに至るまでに気づいたことのあれこれ

モバイル市場においてAndroidが登場し注目されるようになってから生産が始まった韓国(Samsung製Exynos)や中国製(Rikomagic,Allwinner)のSoCは、Andoroidに最適化さ
れ、それに対しモバイル市場をNOKIAが牽引し以前から組込み用コンピュータで使用されてきた欧米製SoC(Freescale,Qualcom,TI,Broadcom)では、基本が組込み用Linuxがベースとなっているようだ

ODOROID-XU3lite/CPU:Exynos GPU:Mali では、Android4.4.4/Android Media Frameworkで開発することしか解決策を発見できず、Android上でのFramework”Kivy”や”PyQt”での動作は確認(Pygletは未確認、KivyはBuidozerでAPKファイルにトランスレートするかランチャをインストールしてKivyコードを実行、ただしいずれの場合もHWaccelerationは無効、本機Android上でHardwareAccelerationを有効にするには、NativeにてAndroid Multimedeia Framework/OpenMAXを活用するのがよさそう)できたので、これらのFrameworkでの開発がGoodと判断。更に木曽さんの協力により、stageVIDEOを利用したAIRプログラムにおいてHardwareAccelerationも有効になることが確認でき、very good!!  LubuntuでPyQtを使用した場合、ビデオ再生でPhonon.VideoPlayer Classが使用される。このclassの基本メディアエンジンとなるGStreamerでは、XU3上において、HardwareAccelerationを適応できない。他のエンジンとしてVCLが考えられるが、GStreamerを削除しなくてはならずリスクが大きすぎるので却下した。

ODROID-C1/ CPU:Amlogic S805 GPU:Mali では、Lubuntuにおいて、XU3と同じくGStreamerでのHardwareAccelerationを適用できないが、Kodi Player(旧XBMC)でHWaccelerationを適用できる。こちらもAndroid4.4.2上では、XU3と同じくKivyの動作確認はできたが、ただし、1080P出力は不可720Pまで、またHardwareAccelerationが無効なため、実際プレイヤーとしては使用不可。stageVIDEOを利用したAIRプログラムにおいては音は出力されるが絵が出力されなかった。

ODROID-XU3lite とC1の総評として、XU3lite+Androidはプレイヤーとして使用可能、XU3とC1+Lubuntuではプレイヤといっしょに設置するマイクロWWWサーバとして利用可能と考えます(ARMは、メモリ小ということもあり、マルチタスク不可、デュアルタスクまでと考えると、WEBとの連携したサービスを実現する上では、マイクロWWWサーバもいっしょに設置する必要があると考えました)

INFORCE6410plusは、Linaro(組込みLinux/Ubuntu)に完全互換。KivyもPPAからすんなりインストールしアップデートもOK。もち、すんなりKivyを直接再生可能!! QT及びPyQTは今後引き続き検証します

UDOO Quad and DUAL/Freescale製i.MX6なので、Linuxが基本。Kivyの実装はできない。しかし、インストールされているGStreamer-0.10とi.MX Linux Multimedia Framework で、HWaccelerationによるHDの再生を実現しているi.MX Linux Multimedia Framework の使い方がいま一歩理解不足だが、基本的にGStreamerが使用できるので、PyQtで可能なように思われるが、要調査。また、Udoobuntu02のβ版が公開されたので、この検証も引き続き実施予定

Episode 01 / develop DS player with SBC

長らくお休みしていて、すいません

まずは、SBCについてですが、AdobeAIR(AndroidOSのみ)、Python/KivyまたはQt5.*で開発が可能かを検証しました。検証方法は、それぞれの言語でビデオ再生するシンプルなコードを作成し、それが実行するという方法です。AIRの場合はstageVIDEOを活用してハードウェア・アクセルレーションが有効かどうかも試しました

【ODROID-XU3lite】Samsung Exynos5422 Cortex-A15 2Ghz +Cortex-A7 Octa core CPUs、Mali-T628 MP6 GPU

Android4.4.4では、KivyコードをBuidozerを使ってトランスレートしたAPKファイルが実行できました! でも残念ながらHWアクセルレーションは無効、ソフトウェアデコードで720P動画再生時のCPU負荷が50~60%程度です。しかし、adobeAIR+stageVIDEOでは、ハードウェア・アクセルレーションによる1080P動画の再生ができました! LubuntuではKivyを実行できませんでしたが、OSとしては使い勝手がいいので、後継機XU4では、ApacheいれてマイクロWWWサーバとしても使えそうです

【ODROID-C1】Amlogic ARM Cortex-A5(ARMv7) 1.5Ghz quad core CPUs、Mali-450 MP2 GPU

Android4.4.2では、KivyコードをBuidozerを使ってトランスレートしたAPKファイルが実行できますが、HWアクセルレーションは無効ソフトウェアデコードで720P動画再生時のCPU負荷が100%フレームドロップがひどく、プレイヤとして使用は不可ですね。adobeAIR+stageVIDEOでは実行できますが画面表示ができない(音のみ)、たぶんSoCとの関係のためかと思います。こちらもLubuntuでApacheいれてマイクロWWWサーバとしてのみ使える可能性はあります

【Inforce6410plus】Qualcomm Snapdragon 600 (APQ8064 SoC)

Linaro/ubuntuにて、Kivyコードを直接実行できました! 組込みLinuxとしてQt5.*での実行も期待大!! ただし、値段がODROIDの約2倍は痛い・・・・・

【UDOOquad】Freescale i.MX 6 Quad + Atmel SAM3X8E、Vivante GC 2000 + Vivante GC 355

UDOObuntu2beta1で再検証しましたが、やはりKivyを直接実行はできませんでした・・・・ 9/10に発表されたbeta2で再トライ!! でもUDOOは、Kivyなどマルチメディアに拘らず+Arduinoという特徴を活かしたいね

今回の検証も含め、ブロッコデリ木曽様から多大なご協力を賜りましたこと、たいへん感謝しております