ソフトウェア発明ネタ

開発に成功すれば直ぐに実用化されるであろう、ソフトウェア発明ネタのシリーズ第一弾。

高圧縮オブジェクトストレージ

大量にデータが蓄積される時代、圧縮技術の重要性は高まるばかり。これまでハフマン符号化のようなビットストリームを相手にするものから、メディアの特性を利用した圧縮(例えばJPEG2000)まで様々な圧縮方式が開発されてきた。最近はファイル間でのデータ共有を積極的に行う方式もある。例えば仮想マシンにおけるリンククローンや、ストレージの重複除外技術がそれだ。

さらに、メディアデータを事前に分類した上で圧縮方式を切り替える方法も考えられる。例えば同じ動画でもアニメと実写でエンコード方式は同じでよいのだろうか?アニメ専用の高効率なコーデックは可能だと思われる。さらに、アクションモノやサスペンスモノなど、ジャンルによっても最適な圧縮方式は変わってくるだろう。画像についても同様だ。例えば似たシーンで何枚も写真を撮ったりしたら、それらをまとめて動画のようなものとみなすことで圧縮率を上げられるだろう。音声なども同様である。信号の発生源まで踏み込んでモデル化することで、より高い圧縮が可能だろう。

XMLJSONなどのドキュメントオブジェクトについても、モデルの性質に踏み込んだ圧縮は可能と思われる。木、DAG、循環OKなグラフ、key-valueタプルリスト、高次元の疎ベクトル、多次元テンソル、などなど。

通信ログの高効率圧縮

ファイル単位ではなく、ネットワーク上のストリームを圧縮するニーズも高まるだろう。代表的なのは、IPパケットデータやWebプロキシのログ、さらにApacheのよなWebサーバのログなども含めて色々なログがありえる。これもログの素性が分かっているとその性質を使って圧縮率やコーデックスピードを向上できるだろう。

データ分析に適したデータ格納方式

データはなぜ保存するのか?それは後で再生したいからだ。再生したいデータを検索するために、データベース製品はインデックス化機能を備えているものが多い。しかしデータ量が増えると、単に検索して再生させるだけではユーザの時間ばっかりかかる。よってデータベースシステムの側が「見るべき箇所を絞る」とか「要約する」とかいった機能を備えていると嬉しい。よって「検索」における「インデクシング」のような機能が、」分析(集計や要約など)」においても必要になってくるだろう。

簡単な例として、毎日の売り上げデータがあったとする。よくある集計は「ある期間内の売り上げ合計(または平均)」である。これは累積データがあれば、fromからtoまでの期間の合計は、toの時点とfromの時点の間で累積データの差を取れば良い。このように、分析ニーズに合わせてデータ格納時に上手い事処理を行ってくれるようなデータベースがあると非常に便利だろう。DWHの分野ではOLAPキューブというデータモデルがよく使われ、これはスタースキーマという方式で実装されている。さらに高度な分析のためのデータ格納方式が待ち望まれるところだ。

動画を簡単に編集できるUI

ケータイの普及で「写メ」をみんなが使うようになった。なぜか?共有すると楽しいからだ。そもそも、デジタルカメラが登場する前から、消費者が写真を撮るのは「自分の思い出」と「他の人と共有」という用途だった。あと写真は「誰でも簡単に撮れる」という性質もある。

ではケータイがスマホになることで何が起こるか?たぶん、動画の共有が今よりも進むと思う。なぜかというと、スマホは「画面がデカい」から。でも動画は写真ほど簡単じゃない。写真は何枚もとってベストショットを「選ぶ」だけでよいが、動画は「編集」が必要だからだ。単なる「取捨選択」と「編集」にはユーザの負担に大きな隔たりがある。

よって、撮った写真から「友達に送るやつを選ぶだけ」みたいなお手軽さで、撮った動画から「友達に送るとこを選ぶだけ」みたいなことが出来れば、すごく流行ると思われる。技術的には今あるもので十分。これはユーザインタフェースの問題だ。

そんな感じで

また機を見てネタ出ししたいと思います。シリーズ化予定。

ではまた明日。


12/14 追記) テラデータ社の新バージョン「Teradata 14」で、カラム型データベースが搭載され、その中でカラムの内容に応じて自動的に圧縮方式を切り替える機能が実装された。