ページ

2011年9月25日日曜日

Raspberry Pi 続報

個人的に気になっているRaspberry Piですが、また適当に情報を仕入れたのでメモしておきます。まずモデルB(256MB)に付いている有線LANですが内部的に帯域をUSBと共有しているらしいです。ですのでUSBをフル活用している状態だとパフォーマンスは低下しそうです。例えばLANを繋いだままUSB-HDDを繋いだりとか、USBカメラでライブストリーミングしたりとか。USBキーボードとマウス使いながらインターネット閲覧とかなら問題は無さそうですけど。

そのカメラですが、そう心配する事も無さそうです。というのも実はカメラは専用のユニットを計画中らしいです:-) ここからは受け売りですがどちらにしろUSB接続では高品質なカメラ撮影の帯域が不足しているので専用のインターフェース(CSI2)で接続したカメラユニットが必要らしいのです。今回わざわざRaspberry Pi専用のカメラユニットを2つ検討中らしいです。

1つは高画素、おそらく12メガピクセル級と低画素、こちらはまだ言及されていませんがこの2つをメーカーと交渉中らしいです。前回も書きましたがRaspberry Piの元になっているSoCはNokiaのN8と同型(というか、上位系)なので、ちゃんとしたカメラユニットを用意出来ればかなりクオリティは高いと思われます。あちらはカールツァイスらしいですけど:-)

残念ながらカメラユニット自体の値段は結構するらしいです。Nokiaみたいに数百万台規模で発注できればガクンとコストダウン出来るんですがRaspberry Piでは無理ですからね。50ドルとかになりそう? その為に低画素で値段を抑えたものも考えているそうです。普通のビデオチャットとかでは高画素は要りませんしね。留守中のペットモニターとかでも使えそうです。

実はRaspberry Piで使われているSoCは結構優秀でNokia N8以外にもROKUというメーカーが販売しているメディアプレーヤー「Roku2 XS」でも採用されているらしいです。確証は無いですけど。Roku2 XSのスペックを見ると1080pのH.264を再生出来てなおかつ消費電力は2W以下らしいので、だいたい合致してますね。ちなみに100ドルくらいですね。といっても無線LANとかいろいろ付いてますけど。

現状のRaspberry Piの仕様ではH.264@4.1まで再生可能らしいです。自分も詳しくはないですがWikipediaによると1,280×720@68.3、1,920×1,080@30.1、2,048×1,024@30.0らしいので十分ですね。ちなみに再生(デコード)だけでなく録画(エンコード)も同レベルまで可能になる予定? らしいです。

何故かというと前述の専用カメラユニットがまだ決まっておらず、なおかつエンコード用のGPUドライバーの作成には熟練のチームでも数ヶ月掛かるレベルらしいからです。仕事でもそのくらい掛かるのにRPはボランティアですからね。いくら本職のBroadcomの中の人が居たとしてもそれは仕方がないですし。んーと他にも何か書きたいことがあった気がしますが私の頭の中の消しゴムが悪さしてしまったらしく綺麗さっぱり忘れてしまいました。また思い出したらダラダラと書き綴りたいと思います。今日はここまで。おやすみなさい。

#追記
あー思い出しました。RPでのメディア再生ですが基本的にCPUではなくGPU/DSPを使用する仕組みなのですが、その仕組みというのが「OpenMAX」というヤツでコレを使うにはプロプライエタリなドライバーを通してじゃないと駄目な上にOpenMAXに対応しているソフトウェアじゃないと駄目らしいです。チラッと調べた限りではLinux対応ソフトウェアではVLCやGstreamer(アプリケーションじゃないですが)らしいです。

あとSoC的にはOpenMAX対応はされていても実際に使用するには各コーデックの使用料を払わないといけないらしいです。当然オープンソースとして公開は出来ませんし。まだ各コーデック企業と交渉中らしいですが結構高額らしいです……。例えば「AAC」を使用する許可を貰うだけで何とRaspberry Piの製造コストの実に4%を費やさねばならないそうです:-( 全体で一体いくら持って行かれるのやら。ま、AACが一番ボッ○クリらしいですけどね:-) 

あと残念ながらSoC的にGoogleのWebMには対応していないそうです。時期的に仕方ないですけどね。Raspberry Piが上手くいって数年後に「Raspberry Pi 2」が企画された時は是非ともWebM=VP8&Vorbisに対応して貰いたいですね。そうしたら製造コストも下がるでしょうし:-)

#YouTube
Nokia N8で撮影したショートムービー。携帯でこれだけのモノが撮れるんだから技術の進歩は恐ろしい。
Gulp. The world's largest stop-motion animation set, shot on a Nokia N8. - YouTube
http://youtu.be/ieN2vhslTTU



こんな感じのメディアプレーヤーを皆で作っていくのも楽しそうですね。まさかのangry birds! RPにXBOX360コントローラー付けてエミュレーターとか……ゴクリ。
Roku 2 XS Demo & Review - YouTube
http://youtu.be/O5SviI9yeu4



#Amazon

#外部リンク
VideoCore - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/VideoCore#VideoCore_ICs

OpenMAX - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/OpenMAX

H.264 - Wikipedia
http://ja.wikipedia.org/wiki/H.264#.E3.83.AC.E3.83.99.E3.83.AB

Roku Streaming Players | Roku 2 HD Player, Roku 2 XD Player and Roku 2 XS Player
http://www.roku.com/roku-products

携帯に顕微鏡を装着! 医療現場の技術によって作られた世界最小コマ撮りアニメNokia N8「Dot.」 | white-screen.jp
http://white-screen.jp/?p=7409

2011年9月23日金曜日

オープンソース版Doom3(idTech4)に望むこと

前回はせっかくオープンソースになったとしてもライセンスがGPLだとゲームエンジンとしては思ったように活用されないのではないかという個人的妄想を書きました。念押しになりますが、この意見は全くの素人が考えたモノなので実際にはどうなのかは判りません。その事を考慮して、これから書く内容もご判断下さい。では前回からの続きスタートです。

ゲーム分野におけるGPLライセンスの問題点とは何なのか? 従来のゲーム、特にPCゲームだけならばそう問題でも無いのですが最近はPCと据え置き機とのハードウェアの差異が少なくなり、特にMSのXBOX360などは主要技術がPCと同じDirectXという有様です。まぁCPUアーキテクチャの違いやDirectXのバージョンが現行PCと比べると低いという問題はありますが基本的にはWindows環境で使っているゲーム技術をベースとして使える訳です。

まして最近のゲーム機は従来のパッケージ販売と並行して独自のアプリストアでのDL販売が可能になっているのでインディーズゲームや古い作品の移植版なども安価で販売出来、ゲーム開発者からするとだいぶ参入障壁は下がっている訳です。ですので、本来ならDoom3エンジンのような過去に活躍したゲームエンジンでも安価、あるいは無償で使用できれば、まだまだ活躍の場はあるはずなんです。OSSならば自分達による改良も出来るので新たなレベルに引き上げる事すら可能な訳ですからね。

普通なら開発者は喜んで使用する訳ですが実際はそうでも無いんですよね。特にGPLだと。それは何故か? 結局は各ゲーム機メーカー側がGPLなゲームエンジンを禁止しているのではないかと(実際に問い合わせた訳ではないですけど)。理由はいくつかあるでしょうがメーカーとしては自分達でコントロール出来無いシロモノを自分の庭に極力入れたくないって事でしょうかね。よほど魅力的な内容でもなければそんなものに頼る必要も無いわけですし。

じゃあどうすれば良いのか? 一番良いのはライセンス変更ですね(笑)。現にオープンソースでもBSDライセンスな物理演算エンジン「Bullet」なんかはXBOX360やPS3のゲームソフトでも使われていますし。他にもSDLも今までLGPLだったライセンスを1.3からは「zlib License」に変更予定ですし。このブログでは触れていませんでしたが「Haaf's Game Engine」という商用の2Dゲームエンジンも同じくzlib licenseでオープンソース化されています。これらのライセンスならば恐らく各ゲーム機メーカーも拒む理由は無いでしょうからね。

幸い? Doom3エンジンは商用ライセンスと(恐らく)GPLライセンスのデュアルライセンスになると思いますのでGPLを許容してくれるプラットフォームでは、そのままGPL版を、許容してくれないプラットフォームには商用ライセンスを購入して対応するというNexuizやUrban Terrorが使った方法で対処するという方法もあります。まぁUrban Terrorはどういった理由で商用ライセンスを購入したのかは憶測の域を出ないですけど。

じゃあDoom3エンジンも商業とGPLのデュアルライセンスなんだから問題ないじゃないの? と思うかもしれませんが実はそうでもないのです。これはゲームに限った問題では無いのですがデュアルライセンスにも問題点はあるのです。ここからは私の推測ですので実際の場合と異なるかもしれません。

Doom3エンジンをGPLとして公開する場合、基本的には商用ライセンス版と同じモノが公開されるでしょう(もしかしたら、他企業の開発部分が抜き取られているかもしれませんが…)。仮に公開時のバージョンを1とします。このバージョン「1」を元にオープンソースのコミュニティが改良を加えていく訳ですね。例えばOpenGLの最適化やサウンドシステムの改良等。

そうするとバージョンが1から1.1、1.2と段々と上がって行きます。一方、元となった商業版エンジンはiD Softwareが改良しなければバージョンは1のままです。勿論内部で改良していけば1.1〜と上がっていくでしょうが今までの例を見ればこれ以上旧エンジンに改良を加えていく事は無いでしょう。

この状態がQuake3をコミュニティが改良していったioQuake3と商用ライセンス版のオリジナルQuake3エンジンとの関係性です。あるいはNexuiz(DarkPlaces)とオリジナルQuakeエンジンとの関係性です。一度GPLとして公開した以上オリジナルのエンジンに改良点を移植する事は通常不可能なのです。これではせっかくGPL版を皆で改良していったとしてもその改良点を維持したままGPLライセンスを持ち込むことを許していないプラットフォーム(XBOX360やPS3)に持ち込む事が出来無いって事です。

なら商用版買えばいいじゃんと思いますが商業版はずっとバージョンが固定されたまま(iD Softwareが独自改良すれば別ですが)なので、せっかくオープンソース化してくれたとしてもあんまり恩恵が無いと。勿論GPL版を元に開発してGPL版の持ち込みを制限していないプラットフォーム限定で商売をすれば何の問題もない訳なんですが、そうなるとXboxやPS3、iPhoneといった魅力的なプラットフォームを捨てる事になってしまいます。

この問題を回避するにはGPL版を元に改良した部分をGPL以外のライセンスとして公開するか公開せずとも自分達だけで独自改良を続けて行き、完成したら商業ライセンスを購入してゲームを販売しなくてはなりません。自分達だけで改良できるくらいレベルが高ければ何の問題もないですしね。ただ、そこまでするなら何もDoom3エンジンに拘らずにUDKでもUnityでも良い訳ですが。あぁソースコードが完全に開かれてるので徹底的に弄りたいのならGPL版で試せるDoom3エンジンの方がいい場合もありますかね。

個人的にデュアルライセンスで上手く行っているプロジェクトっていうのは社内の開発チームが存在していて実質的な開発の主導権を握っている場合が多いと思います。ソースコードはオープンになっていても外部の人間の改良が実際に取り入れられる事は少ないのが実情かなぁと。これは理由があってちゃんとコードをレビューしないと取り返しのつかない事になってしまう事もあるので商売として開発している側からしたら慎重にならざるを得ないのかなぁと。

こういうプロジェクトはソースコードはオープンなんだから改良したいなら自分達で派生版作ってもいいよ的な考えなのかもしれませんね。まぁ普通のソフトウェアならそれでも十分なんですがゲームというのは主流が商業プラットホームなのでGPLの派生版じゃ大半のプラットホームからソッポ向かれてしまいますしねぇ。ましてQtのようなプロジェクトと違ってDoom3エンジンは既に開発が終了しているプロジェクトなので商用版が活発に開発される事もないでしょうし。核となる会社側の開発者が居ないでしょうしねぇ。

まとめ切れていませんけど個人的に一番良いのはライセンサーのiD Software自らがこれから立ち上がるであろう開発コミュニティと協力体制を作って半ば公式な開発コミュニティを運営する事だと思います。その際に開発貢献者には改良点をGPLではなく、より緩いBSDライクなライセンスにして貰うか例外として商用のDoom3エンジンへの統合を承諾して貰う事ですかね。よく調べてませんがこの本家への取り込みはAsteriskの開発体制では成功しているそうなので無理な話ではない気がします。うろ覚えなので完全に間違っているかもしれませんけど。

別にiD Softwareに頼らずともコミュニティ独自に似たような事をしてGPL版へのパッチとしてBSDライクなライセンスで改良していっても良いのでしょうが、そうなるとソースコード管理が複雑になりそうですしね。GPL版には統合出来るでしょうが商用ライセンスと統合するにはライセンサーの許可が要るでしょうし。

半年に一度くらいの間隔で新しいバージョンをリリースしていけばかなりいい感じでコミュニティが回るような気がします。実はこの問題は既に一部のDoom3Modコミュニティで話されておりXrealの開発者であるTr3B氏も似たような問題提起をコメントしていました。ちょっと英語が難しくて詳細までは解らなかったのですけど。

Doom3エンジン(iD Tech4)はこれから先の5年、いや下手したら10年くらいオープンソースなFPSゲームの中心となる可能性がある大型プロジェクトなので、商用利用を含めた上手いやり方が見つかってくれれば良いのになぁと個人的には思っているのですけど。おそらく次世代のiD Tech5からはオープンソース化はされないでしょうし。まだわかりませんけど少なくとも今までと同じような扱いにはならないでしょうしね。

ゼニマックスの中の人でもしこのブログ見た人がいたらオープンソースコミュニティとの連携を是非とも検討して下さい(笑)。上手くいけばインディーズゲーム開発にiD Tech4の商業ライセンス売り込めますよ(笑)。しかもコミュニティが勝手に開発してくれますし。あくまで仮定ですけど。

#外部リンク
デュアルライセンス - Wikipedia
デュアルライセンス - Wikipedia

2011年9月18日日曜日

Doom3エンジンのオープンソース化における一抹の不安

大仰なタイトルですが単なるおっさんの戯言です。前回Doom3のオープンソース化にXrealエンジンの開発者が興味を示しているという明るい話題を書きましたが、今回はちょっとした問題点について駄文を披露したいと思います。といっても技術的な問題点という訳じゃないです。どちらかという政治的? な話ですかね。

以前このブログで「Nexuiz」というオープンソースなFPSを代表するゲームについてのイザコザを書いた事があります。簡単に説明するとNexuizとは今回のDoom3エンジン(iDTech4)と同様にiD SoftwareがOSSとして公開したQuakeエンジンを基にコミュニティが独自に開発してきたFPSゲームの事です。そのNexuizが家庭用ゲーム機(Xbox360&PS3)に移植されるというニュースが去年の話です。

その際、同ゲームのエンジンとして採用されている「DarkPlaces」のオリジナル開発者自らが家庭用ゲーム機向けに改良調整を施しているという話が話題になっていました。しかし暫くした後にNexuizの家庭用ゲーム機版はDarkPlacesエンジンではなくCrytek社が開発している「CryENGINE 3」に変更すると同ゲームの開発元である「IllFonic」からアナウンスされたのです。

ビジネスの話なので実際にどういった経緯でこのような変更がなされたのかは不明(語られているかも知れませんが、私の情報不足でわかりません)ですが、直前までDarkPlacesで開発されていて、なおかつエンジンの開発者自らが省メモリ対応等の改良まで行っていたのに何故? とOSSコミュニティから疑問の声が上がっていました。

あくまで私の仮定ですが恐らく原因はDarkPlaces及びNexuizのライセンス問題。正直Nexuizのライセンスがどのようになっているのか把握していませんが基本的にGPL版のQuakeエンジンに依存しているのでGPLだと思います。最近のFPSゲームにおける解釈では核となるエンジン部分はGPLだとしてもゲームに必須であるキャラクターモデル、マップ、音楽、シナリオ等は、いわゆる「Asset」と言われる独立したコンテンツとして別のライセンス、例えば「Creative Commons」で保護されるというのが主流になっているようです。

Nexuizはかなり古いゲームなので、そこまで分化されていないのではないかと思います。そうなると今までの開発協力者全員にライセンス変更の承諾を得るか未承諾部分のコード、アセットを別のモノに変更しなければならない可能性すらあります。あくまで私の意見ですが。またコード自体はGPLだとしてもコミュニティドリブンなプロジェクトな場合、よほど強力なリーダーが居ない限り言葉は悪いですが、お金儲けの道具としてコミュニティの成果物を使用していいのかという感情的な問題も出てくるでしょう。今回の場合も主要開発者全員が一致した考えではなかったようですし。

Nexuizのゲーム機版のアセットに関してはIllFonicがプロのデザイナーを雇用して全く新しいキャラクター、マップ等を用意するとの事でしたが、残念ながらその成果物をオープンソースとして公開せずにゲームエンジンであるDarkPlacesの改良点をコミュニティに還元するという話で調整中だったようです。先程も書きましたが最近の見解では、それで特に問題が無いという考え方が主流なのですがNexuizコミュニティの強硬派は納得せずにかなり揉めていたようです。かなりうろ覚えでデマを書いてしまったかもしれませんが(苦笑)。

一部不満はありましたが、コミュニティ側は一応ケリが着いたようでしたが問題は移植先、XBOX360とPS3のソフトウェアライセンスだったのではないかと私は思っています。というのもNexuizのライセンスはGPLですのでXBOX360とPS3のラインナップとしては認められなかったのではないかと。

これは何もゲームコンソールだけの問題ではなくiPhoneのApp Storeも基本的には禁止だったと思います。現状だとAndroidマーケットくらいじゃないですかね。GPLでもOKなのは。あぁもしかしたらSteamでも大丈夫なのかな? いずれにしろXBOX、PS3、iPhoneという今一番稼げるゲームマーケットではGPL製品は受け入れてもらえないのではないかと。

Nexuiz以外にも「Urban Terror」というQuake3派生のゲームも似たような事例が発生しているようです。このUrban Terrorは元々Quake3のModとして開発されていたのですがQuake3エンジンがGPLでリリースされた後、Quake3エンジンの改良版であるioquake3エンジンをベースとしてスタンドアロンなゲームとして開発を続けていたようです。しかし、つい最近になってioquake3ベースで改良していたバージョンを廃棄して、何とiD SoftwareからQuake3エンジンの商業ライセンスを購入しての独自開発に路線変更したらしいのです。その際に名前も「Urban Terror HD」と改めたみたいです。

何でわざわざQuake3エンジンの改良版で実績もあるioquake3を捨てて商業ライセンスのオリジナルQuake3エンジンに切り替えたのかは正式なアナウンスはしていないようですが、私はおそらくNexuizと同じ理由なのでは無いかと疑っています。通常通りのPCゲームとしては、GPL版でも特に問題ない訳ですからね。といってもUrban Terrorはソースを公にしていないと一部のコミュニティメンバーから非難されてはいましたけど。

そういったイザコザが嫌だったというのもあるかもしれませんが、わざわざお金を出してまで、商業ライセンスを買ったという事は、やはりXBOX360やPS3、もしかしたらiPhone辺りで商業ゲームとして売り出したいという考えがあったのかもしれません。その為にはGPL汚染を認めないプラットホーム向けに商業ライセンスを買わざるを得なかったと。

まぁ妄想ですけど。事実まだUrban Terrorは商業プラットホームでは展開していませんけどね。それにioquake3の改良点は主にLinux向けのモノでWindowsユーザーにはそれほど恩恵が無いという意見も数人の開発者からは聞かれますし。例えばXrealの開発者であるTr3B氏も、そのようなコメントを以前していましたし。

この問題は、ほぼ同じライセンスでオープンソース化されるであろうDoom3(idTech4)にもそのまま当て嵌る事例だと思います。勿論XBOX360やPS3、iPhoneなんかで一稼ぎしようなんて考えていない人からしたら何の問題もない訳ですし、カーマック氏もオープンソース化の主な理由はこれからFPSゲーム開発を目指している若いプログラマー達の良い教科書となるようにという思いからですけど一攫千金のボーナス目当てでDoom3エンジンでゲームを開発したい開発者を見過ごすのは得策ではないと思いますし。

せっかくオープンソース化されたのにメリットが無いと多くのゲーム開発者を惹きつける事が出来ずに結局は廃れてしまうのは余りに勿体無さ過ぎますし。特にWindows環境ではUDKやCryENGINE、Unityといった優良ツールがほぼ無償で使えたりする訳ですから。結局Linuxユーザー兼ゲーム開発者といったニッチな需要しか無いという悲惨な状況になりかねませんし。ではどうすればいいか? 長くなったので次回へ続く。

#外部リンク
Forest Hale interview about Nexuiz and open-source | Time Doctor Dot Org
http://timedoctor.org/2010/03/forest-hale-interview-about-nexuiz-and-open-source/

[Phoronix] Nexuiz Gets Forked, Turned Into Xonotic
http://www.phoronix.com/scan.php?page=news_item&px=ODA4OA

[Phoronix] Urban Terror HD: Going Away From Open-Source
http://www.phoronix.com/scan.php?page=news_item&px=ODc3Mw

#内部リンク
BLOG.MINAWA.NET: NexuizとXonotic
http://blog.minawa.net/2010/09/nexuizxonotic_7277.html

2011年9月17日土曜日

OpusのWebRTC入りは確実?

先日書いたGoogleがOpusコーデックを内部でテストしているという話ですが、どうやらテスト結果をPDFとして公開してくれたようです。正直、素人の私には詳細は理解出来ませんが、おおむね好評って感じでしょうかね。
Opus at 11 kbps is comparable to iLBC at 15 kbps
Opus at 11 kbps is better than Speex at 11 kbps
Opus at 32 kbps is better than G.719 at 32 kbps
Opus at 20 kbps is better than Speex and G.722.1 at 24 kbps
Opus NB pre-coded with G.711 is comparable to AMR NB pre-coded with G.711
Opus NB transcoded to AMR NB via G.711 is better than AMR NB tandem-coded via G.711
Single-coded Opus WB is better than single-coded AMR WB
Single-coded AMR WB is slightly better than transcoding AMR WB -> Opus WB and Opus WB -> AMR WB
現在、GoogleがWebRTCに組み込んでいる「iLBC」との比較ですがiLBC 15kbpsがOpus 11kbpsとほぼ同じとの評価ですね。同じく「Speex」との比較では明らかに上との評価です。32kbps時の比較でもG.719よりも優れておりG.722.1との比較でも上の評価です。またG.711からのトランスコーディングテストでもAMRと同程度でありOpus -> G.711 -> AMRとAMR -> G.711 -> AMR 変換時の比較でもOpusからの変換の方が良いというテスト結果なようです。

OpusとAMRの直接対決でもOpusの方が上で素のAMRとOpus -> AMR、AMR -> Opus変換と比べると素のAMRの方が僅かながら上との評価なようです。まぁ仕方ないですね。素人の意見ですが、だいたいGoogleが想定しているOpusの使い方には耐えられるとの評価だと思います。普通なら全部Opusにしちゃえば良いのにって思わないでもないですが現実世界はそう単純な世界じゃないのでしょう。

ここからは完全に素人の妄想なので関係者からしたら失笑ものかもしれませんが、書いちゃいます。まずiLBCとは確実にリプレイス可能だと思います。というのもiLBCは元々IP電話向けのコーデックでありハードウェアフォン以外はコーデックの変更が比較的簡単なシステムに組み込まれているからです。同様にSpeex、G.719、G.722.1もリプレイス可能なコーデックだと思います。

例えばGoogle TalkやGoogle Voice上で完結していれば全てOpusで通しても問題無いのでしょうが過渡期である現在ではまだまだ固定電話や携帯電話に掛ける事も多いはずです。G.711は従来の固定電話、AMR WBは携帯電話で主に使われているコーデックなので最終的にはOpusをそれらのコーデックに変換しないといけない訳ですからね。

ですので変換後のクオリティも重要なのだと思います。ちなみにコーデックも全て無料という訳ではなく使用料が必要なモノも少なからずあるようです。例えばAMR WBなんかは必要に応じて使用料が必要なようです。こう言った観点からもOpusの需要は多いのではないかと思います。WebMと同様ですね。そのWebMもWebRTCに組み込まれています。最近のニュースでWebRTCにVP8のエラー訂正が改善されたというモノがありました。その記事のコメントで興味深いモノがあったので転載しておきます。
@LeonZA iSac and iLBC are also open sourced, under a very open license. More info at www.webrtc.org

We are very interested in Opus and look forward to integrating it once it is ratified and settled at the IETF, which should be soon.

September 15, 2011 9:36 AM
以前も書いたとおりiLBCとiSacはSkypeで以前使われていた音声コーデックですが、それが今は2つともオープンソースとして使える訳です。なおかつ現行のSkypeの音声コーデックである「Silk」をベースに開発されているのがOpusですので、このままWebRTCに取り込まれればSkypeとGoogle Voice? という2大IP電話の音声コーデックが統一される可能性がある訳です。

幸いなことに動画コーデックは既にVP8で統一されていますしね。SkypeがMSに買収されてしまったので先行きは不明ですが、もし相互接続が可能になった場合でも技術的課題の1つは解消される事になりますね。是非そうなって欲しいところです。コメント読むとGoogle側はOpus支持なようですし。

#YouTube
Libvpx Error Concealment Demo - YouTube
http://youtu.be/-FLXEOxPUSk



#外部リンク
Re: [codec] Listening tests at Google
http://www.ietf.org/mail-archive/web/codec/current/msg02725.html

Error concealement in libvpx - WebRTC
http://www.webrtc.org/blog/errorconcealementinlibvpx

VP8 Error Concealment in WebRTC - The WebM Open Media Project Blog
http://blog.webmproject.org/2011/09/vp8-error-concealment-in-webrtc.html

Licensing
http://www.voiceage.com/licamrwb_licterms.php

フリーソフトウェアで使える音声コーデック - SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/05/10/19/037219

2011年9月9日金曜日

Raspberry Piの新しい動画

Raspberry Piの公式ウェブサイトで新しい動画が公開されてました。大きさは名刺よりちょっと大きいくらいですかね。一応アルファ版なんで、実際の製品はもう少し小さくなるかもしれませんけど、個人的にはもう十分な大きさな気もします(笑)。動画の説明を読むとLinux上のメディアプレーヤーで再生させてるみたいですね。

先日のQuake3もDebian+LXDEだったので今回も同じ環境なのかな? ちなみに再生させている動画は1080pのH.264だそうです。素晴らしい。メディアプレーヤーはMplayer? もしそうなら発売前で既にDSP(あるいはGPU)をOSSで活用できる(一部分だとしても)のは大きいですね。流石に開発者自らがプロジェクトに関わっているだけはありますねぇ。

ちなみに音声は出していないそうですがフォーラムをチラ見した時に意外と音声の扱いが面倒な事になってるとか何やら…。特にHDMIを通しての音声はOSS環境だとまだ不完全らしい? 何やらJackが遅延するとか何とかって……。すみません。かなりうろ覚えです。JackってソフトウェアのJackかと思ってたけど、ハードウェア的な意味でのJackだったかも。恥ずかしい間違いかもしれない。今見たら、音の問題(の1つ)はハードウェアの改良でクリアしたらしい?

あと音声、特にAACはライセンスの問題もあるらしくOSS環境下ではSoCの性能をフルに使えない「可能性」もあるらしい? これも先日チラ見しただけなので確証はありません。Raspberry Piの中の人がAACの中の人と交渉中らしいですが正直どうなるか微妙な気もします。以前WebMのライセンス問題の時にチラッと書いたのですが、実際問題MP4はH.264よりAACの方がライセンス的に厳しいらしいですからねぇ……。

仮にH.264は無償で使える事になったとしても、それと組み合わせるAACがライセンスフリーじゃなければ実際の活用は非常に困難になる可能性は十分にありますからね。FAAC/FAADというフリーのエンコーダー、デコーダーがあるにはありますが、残念ながらそれほど最適化されている訳でもライセンス的にOKなのかもよくわかりませんし。

とにかくまだまだ情報不足なRaspberry Piですが、これから楽しみな存在である事は間違いないですね。H.264だけじゃなくHDなMPEG2-TSとかもハードウェアで処理出来たりしたら。ゴクリ。タイプBは有線LANも付いてますし、もしDLNA関係も整備されたら高価な専用機買わなくても万能メディアプレーヤー(もどき)が安価で手に入るかもしれませんし。タイプBでも35ドルですからねぇ。ちなみにこのデモは8時間ぶっ通しで連続再生させていたそうです。しかも平均消費電力が僅か1Wだったそうです。素晴らしい。

#YouTube
Raspberry Pi video capabilities - YouTube
http://youtu.be/TgR74Kp6Ws4



#追記
フォーラムのコメントによるとデモで使われているメディアプレーヤーは「Playerx」と呼ばれているRaspberry Piチーム内製のメディアプレーヤーみたいです。ライセンスがOSS準拠なのか、それともプロプライエタリなのかはまだわかりませんが……。SoCのハードウェア能力を使っているので、もしかしたらプロプライエタリなのかもしれません。

2011年9月7日水曜日

Raspberry Piメモ

最近かなり興味が出てきたRaspberry Piですが、ちょっと気になった点をメモしておきたいと思います。まず一番新しいBoardのサンプルがありました。あくまでアルファ版という事なので正規版はまた変化するかもしれません。クレジットカード大の大きさになるらしいですし。後はOSの起動方法はSDカードからのみらしいです。残念ながらスマートフォンやPandoraのようにNANDは内蔵されていないようです。どうやって起動するかというと、なんと内蔵のGPUかららしいです(笑)。

というのも元々このSoCはGPU(とDSP)単体のチップに後付でARM11コアを追加するような形らしいです。完全に私見ですがベースになっているのは「BCM2763」なのかもしれませんね。ちなみに姉妹チップで「BCM2727」というのがあり、こちらは720p迄のH.264を再生能力があるそうです。Raspberry Piは1080p迄なのでBCM2763相当なのではないかと邪推します。

調べてみるとBCM2727はNOKIAのN8で使用されているようです。N8は別途Samsung製のARM11 680 MHzを使用していますので構成としてはRaspberry Piにかなり近い気がします。Raspberry PiはARM11 700MHzを内蔵していますしね。まぁ3GチップやWiFI等のチップはないですけど。NOKIA N8はOSとしてSymbian^3を採用していますがRaspberry Piは今のところDebianでLXDEが推奨OSみたいですね。まぁデスクトップ用途と携帯電話ではまるで違いますが、正直このOSでどこまで快適に使用出来るかは微妙な気がしています。

だからといってSymbian^3がデスクトップ用途として快適なのかと言われれば正直困りますけども。私個人としてはUbuntuがARMv6に対応してくれるのがベースとしてはベストだと思いますが今更Raspberry Piの為に方針を変更するのも厳しいでしょうしねぇ。せっかく「Ubuntu Core」という組み込み向けの仕組みが整いだしていたので、これを使えたら面白かったのになぁと思いまして。私がUbuntuびいきなだけで他のディストリでも良いものはあるのでしょうけど。

例えばPandoraでも使用している「OpenEmbedded/Angstrom」とか。よく判りませんが最近は「Yocto Project」なるものもあるそうですね。後最近見つけた「Bodhi Linux」っていうのも気になります。基本的にスペックが厳しめのハードウェアの為のディストリみたいです。Enlightenmentらしい?

他にも思い切って目的別に絞り込んだ環境なんかも良さそうです。例えばメディアプレーヤーとして「XBMC」やエミュレーター専用機としてPandoraの成果物である「Minimenu」とパッケージ管理として「PND」を移植するとか。後はホームサーバーとして使うのに絞り込むとかも考えられているみたいです。

個人的には汎用デスクトップよりも後者の専用機器的な使い方に興味があります。特にエミュレーター専用機は面白そう。Raspberry PiはSDカードからの起動ですからそれぞれ専用アプリケーション入れたカードを用意して使い分けるっていうのも面白そうです。Raspberry PiにUSB接続でXBOX360の有線コントローラー差し込んでレトロゲーとか(笑)。

幸いHDMI/アナログ端子両方ありますから、古いテレビでも使えますしね。多分ですがSNES迄なら動きそうな気がします。快適にとなるとGP32コミュニティの協力が必要かもしれませんが。フォーラムを覗くと何人かRaspberry Piに興味を示している人物がいるので上手くいけば実現するかもしれません。他にも書こうかと思いましたが、取り敢えず今日はここまでにしておきます。

#Picasa


#YouTube
Bodhi Linux Review - Linux Distro Reviews - YouTube
http://youtu.be/zew22fRREQ0



Pandora: PNDs, switching GUIs and Hatari - YouTube
http://youtu.be/OOtENx0QuZM



Pandora - One vid per day 9: MiniMenu overview - YouTube
http://youtu.be/h4lB3tkIFwY



XBMC Pandaboard overview - YouTube
http://youtu.be/ICfaBEv5plU



#外部リンク
Raspberry Pi | An ARM Linux box for $25. Take a byte!
http://www.raspberrypi.org/

Raspberry Pi - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Raspberry_Pi

Ubuntu Core | Canonical
http://www.canonical.com/engineering-services/ubuntu-core

Broadcom.com - BCM2763 - High Definition 1080p Mobile Multimedia Processor
http://www.broadcom.com/products/Mobile-Multimedia/Mobile-Multimedia-Processors/BCM2763

Nokia N8 - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Nokia_N8

Bodhilinux.com
http://www.bodhilinux.com/

The Ångström Distribution | Embedded power
http://www.angstrom-distribution.org/

Yocto Project | Open Source embedded Linux build system, package metadata and SDK generator.
http://www.yoctoproject.org/

XBMC
http://xbmc.org/

GUI - Pandora Wiki
http://www.pandorawiki.org/GUI

Introduction to PNDs - Pandora Wiki
http://www.pandorawiki.org/Introduction_to_PNDs

2011年9月4日日曜日

Raspberry Pi 面白そう

久々に面白そうなネタを発見したのでメモ。その名も「Raspberry Pi」。全く気づかなかったのですがRaspberry Pi自体は今年の5月頃に既に話題になっていたようですね。最近はオープンソースなゲームばっかり気になってたので全然気づきませんでした(笑)。Raspberry Piっていうのは「The Raspberry Pi Foundation」という非営利組織が主に子供向けのコンピューター学習の為に開発中の超小型PCのようです。何が面白いって、その値段。何と一台25ドル! 今の日本なら2000円以下で買えちゃう値段ですよ。肝心のスペックですが、だいたい以下の通り。
700MHz ARM11
128MB or 256MB of SDRAM
OpenGL ES 2.0
1080p30 H.264 high-profile decode
Composite and HDMI video output
USB 2.0
SD/MMC/SDIO memory card slot
General-purpose I/O
Optional integrated 2-port USB hub and 10/100 Ethernet controller
Open software (Ubuntu, Iceweasel, KOffice, Python)
CPUは最近、独走状態のARM。メモリは128MBと256MBの2種類。まぁARMといってもARM11(ARMv6)の700MHzですから現行の主力であるARM Cortex-A8/A9(ARMv7)と比べるとだいぶ見劣りしてしまいますが……。特にv7世代じゃないとNeonに対応していないので、例えばFlashのようなアプリケーションは走らせることが出来ません。他にも性能面で結構差が出る場面がありますので現行のスマートフォンと比べるとだいぶ劣るのは確かでしょうね。

メモリ2種類ですが256MBの方は10/100Mの有線LANも追加されているそうです。お値段もその分高くて35ドルだそうです。代わりという訳じゃないですが128MBの方は単3電池x4本での駆動が可能らしい? それはそれで魅力的ですね。どちらもUSB2.0 x 2が有りますので無線LANやBluetoothが欲しい場合はUSBドングルで対応という事になりそうです。

フォーラムを覗くと無線LAN内蔵モデルが欲しいという意見が多いですが低価格+低消費電力を維持するには無線LANは高価過ぎるという判断のようです。OpenPandoraもそうですがオープンな環境での無線LAN内蔵はかなりリスクが高いですからね。後で書きますがTIのOMAPのように無線LANも独自で手配出来るSoCならいいんですけど、コイツは違いますので……。

CPUとメモリだけ見れば、そう面白いハードウェアでも無いのですがコイツの面白い所はOpenGL ES 2.0に対応したGPUと1080p30 H.264 high-profileのビデオを再生する事が出来るDSPをも備えている事なんですよね。CPU+GPU+DSPっていう組み合わせ見るとPandoraで使用されているTIのOMAP3に似た感じですね。といってもOMAPのように有名所のGPU/DSPでは無いようですけど。

ここでネタばらしすると、このRaspberry Piというのは「Broadcom BCM2835」というBroadcom社製の未発表SoCを使用している超小型PCなんですね。Broadcom BCM2835でググってもまだ何の情報も出てきませんけど。どうやらこのThe Raspberry PiというプロジェクトはBroadcomの社員が関わっていて主要スタッフに、このBCM2835のGPU担当者がいるらしいです。こうやってみるとTIのOMAP3を使用したBeagleBoardにコンセプトが似ていますよね。アレもTIの社員が関わっていますし。

で、このGPUですが残念ながらバイナリの形での配布になるそうです。といっても他の組み込み系もほぼ同じ形なのですけどねぇ。残念ながらオープンソースドライバーとはなりませんが何らかの形でOpenGL ES 2.0のAPIを開発者が使えるような方向で調整中らしい? DSPの方も今のところ活用するのは難しいが何らかの形で使えるようにはしたいそうです。

GPUと比べると、こちらは上手くいくかは微妙な感じがしますけど。1080pのH.264をデコード出来る程、強力なDSPなので上手く使えるようになると非常に強力な武器になりそうです。Broadcomは「Broadcom Crystal HD/BCM70012」というネットブック向けの拡張カードのドライバー? をオープンソースとして公開している実績があるので個人的にはかなり期待しているのですけどね。確かMPlayerとかで使えた気がするのですけど……。

今調べたらCPUは「ARM1176JZF-S」ですね。Wikipediaによるとコイツは初代iPhone/iPhone3Gで使われてるそうです。Androidで言うとイーモバイルのPocket Wi-Fi S2 (S41HW)クラスですかね。現行のAndroidでも普及機クラスの性能が25/35ドルで手に入ると考えると結構凄い気がしますね。まぁFlashが使えないのと携帯電話機能やGPS/Wifi/速度センサー等は無いですけど。あぁ不確定情報ですが任天堂の3DSもARM11が使われてるらしいですね。構成がまるで違うので、参考にはならないでしょうけど。

今思い出しましたがプロトタイプの写真でUSBスティックくらいの大きさのモックが出ていましたが実際の製品はもう少し大きくて名刺大くらいでそれなりの厚みがあるそうです。まぁUSBx2やHDMI/TV出力等のコネクタがありますので、どうしたって大きくなりますけど。BeagleBoardくらいかそれより小さいくらいですかね。ちなみに最初期はケース無しですが要望が多ければケースも販売する予定はあるそうです。

どちらにしろ二次ロット以降まで待った方が一般人は良さそうですね。どうしても待てない人は特攻するのもいいでしょうが。なんたって安いですからねぇ(笑)。あとデモとしてQuake3を動かしている動画がありました。詳細はわかりませんがデモモードで平均15FPSくらいですかね。正直デモモードでこのスピードだと実際にプレイ可能なのかは人に因るでしょうが動作デモとしては結構インパクトありますよね。25ドルでここまで動きゃねぇ?

あとOS関連ですが古い記事だとUbuntuで動作って書いてありますが現状だとDebianでLXDEが推奨環境だそうです。説明はされていませんがUbuntuはARMのサポートをARMv7世代に絞っているので残念ながらRaspberry Piで使用しているARMv6(ARM11)では非推奨なのかもしれませんねぇ。まぁARMのサポートはあまりに煩雑過ぎてリーナスも困ってるぐらいなのでこれからの標準であるARMv7に絞るのは妥当な判断ではあるのですけど……。

肝心の発売日ですが今の予定では今年の11月頃になりそうとの事。日本から買えるのかという問題ですが一応説明を読むと世界対応という事と最低一台からでも購入可能との事なので送料はともかく日本からも買えることは可能みたいですね。出来ればBeagleBoardのように簡単に注文できるようになると嬉しいのですけど。このRaspberry Piは、これからもチェックしていきたいと思います。

#YouTube
Raspberry Pi - Quake 3 demo - YouTube
http://youtu.be/e_mDuJuvZjI



#外部リンク
Raspberry Pi | An ARM Linux box for $25. Take a byte!
http://www.raspberrypi.org/

RaspberryPiBoard - eLinux.org
http://elinux.org/RaspberryPiBoard

キーホルダーにも付けられる超小型PC–Raspberry Piはこれを25ドルで売り出すつもりだ
http://jp.techcrunch.com/archives/20110505raspberry-pi-a-25-bare-bones-pc-that-fits-on-your-keychain/

[Phoronix] Broadcom Crystal HD Support For MPlayer, FFmpeg
http://www.phoronix.com/scan.php?page=news_item&px=ODk2Ng