「クラウド」というと、スーツを着た営業が創りだしたバズワードに過ぎない。まあ、ここでは聞こえがいいのでクラウドという言葉を使う。
クラウドと言った所で、その本質は、サーバー側での処理だ。たとえばYouTubeなどの動画サイトは、ユーザーがアップロードした動画を共通のフォーマットに変換している。これを実現するためには、多彩な動画と音声のフォーマットをデコードするソフトウェアが必要だ。現在、そのデコードするソフトウェアは、ffmpeg(あるいはlibav)が担っている。これは、自由なソフトウェアである。自由なソフトウェアであるので、非常に使いやすい。使いやすいというのは、単に機能的に使いやすいだけではない。必要であれば、使いやすく改変することができるという点で、使いやすいのだ。
ffmpegが、今の地位に至るのは、容易ではなかった。多くの動画圧縮フォーマットは、そのフォーマットの詳細が公開されていない。したがって、ffmpegでデコーダーを実装するには、非常に低級な解析作業が必要になる。もはや、ffmpegしかデコーダーが存在しない動画圧縮フォーマットもあるのだ。何故ならば、公式のデコーダーは、すでに製造されていないハードウェア上でしか動かず、さらにNDAを結ばなければ入手することすら不可能で、しかも、もはや開発放棄されたソフトウェアだったりするからだ。ffmpegは、そのような動画圧縮フォーマットが再生不可能になる事態を防いできた。
とはいえ、世の中にはffmpegがサポートしていない動画圧縮フォーマットは山ほどある。あまりにも利用例が少なく、知名度が低いので、もはや誰にも知られることがなく朽ちている。そのようなフォーマットは、クラウドでは受け付けられない。何故ならば、フォーマットを扱うソフトウェアが存在しないからだ。
単に動画サイトだけではない。もはや画像処理もクラウドの時代だ。Photoshopの代わりに、サーバー側で画像処理を行う。ユーザーがローカルで操作するのは、単にサーバーと会話するUIを提供するソフトウェアである。これにより、ユーザー側のコンピューターが、高度な画像処理のためには非力であっても、サーバー側に十分な演算力があり、またネットワークがしっかりしていれば、ストレスなく画像処理が行える。
音声もクラウドの時代だ。たとえば、音声のフォーマットを変換するサービスを提供しているWebサイトが非常に多い。音声のフォーマット変換ぐらい。もはや手のひらに収まる大きさのコンピューターでも十分なパフォーマンスがだせるのだが、やはりユーザーは、簡単なUIを望む。ffmpegやlibavを使えばコマンド一発でできて、しかもクラウドサービスより丁寧にエンコードするので、同ビットレートで画質、音質もよくなるのだが、ユーザーは単に利便性を望むのだ。
ゲームですら、もはやクラウドの時代である。クラウドによるゲームというのは、単にMMORPGやオンラインシューターのことではない。サーバー側でゲームを実行して、結果をリアルタイムで動画にエンコードしてユーザーに渡すのだ。ユーザー側で行うのは、入力をサーバーに送信することと、結果として送られてくる映像や音声をデコードして表示することである。10年前にこんなことを書くと、夢物語のように思われたが、今では、このクラウドサービスは実在する。
これらのクラウドサービスを実現するには、動画や音声や画像のフォーマットの詳細が、最低でも公開されていることが非常に重要になってくる。詳細の公開されていないフォーマットは、クラウドでは扱いにくいのだ。そして、ソフトウェアが自由であることも、非常に重要になってくる。不自由なソフトウェアは、大規模なサーバー群による分散処理を行うために改変することができない。
クラウドには、欠点もある。まずプライバシーの問題だ。ソフトウェアを自分の所有するコンピューターで実行していないので、その意味では制限が多いとも言える。しかし、クラウドの興隆は、むしろ自由なソフトウェアへの移行を促すのではないか。そうであれば、クラウドは、自由なソフトウェアのためには、利点のほうが多いのではないか。
なんにせよ、不自由なソフトウェアは人道上の罪であり、もはや未来がないのは明白だ。
仕事で不自由なソフトウェアを作っています。
ReplyDeleteいずれはオープンソース化を目指したいです。