Wireless・のおと
サイレックスの無線LAN 開発者が語る、無線技術についてや製品開発の秘話、技術者向け情報、新しく興味深い話題、サイレックスが提供するサービスや現状などの話題などを配信していきます。
ワイヤレス・のおとメディア小論(5)
今回も番外編です。決して長くないインターネット普及の歴史(1990 年代中頃~現在)のなかで、盛り上がって(あるいは盛り上がることもなく)消えていったキーワードを幾つかほじくり返してみます。
Java: Write once, run everywhere
1990 年代の終わり頃「Java 革命」という言葉がネットや紙面を飛び回っていました。もう OS は要らなくなるとか、インテル・マイクロソフトの天下は終わったとか言われて、そして何事も無かったかのように通り過ぎてゆきました。あれは一体何だったのでしょう。
Java は Sun Microsystems 社によって開発されたプログラム言語で、仮想マシンコードで動作するという特徴を持っていました。どんな CPU・どんな OS でも仮想マシン(JVM:Java Virtual Machine)さえ実装されれば同じ Java プログラムが同じように動作する理屈で、Sun Microsystems 社はこの特徴を「Write once, run everywhere(一度書けばどこでも走る)」として宣伝しました。
Java がメディアを賑わしたのは技術的要因だけでなく、Sun Microsystems、Oracle、Netscape の3社が共同して「Java を中心とした次世代ネットワーク構想」をぶち上げたことにありました(むしろこちらの方が大ニュースだった)。その中枢をなすのが「NC (Network Computer)」構想です。NC というのは HDD もCD-ROM も 備えない箱で、これにディスプレイとキーボードとマウスを付けてインターネットにつなげば、あとは WEB ブラウザだろうがワープロだろうが全部ネットからダウンロードして Java で動くコンピューターという構想でした。
Java が仮想マシンで動く以上 NC の中に入っている CPU は何でも良く、たとえ OS や CPU のアーキテクチャが根本から変わろうとも JVM の仕様さえ維持すれば Java のプログラムは同じように動作する理屈で、これが「インテル・マイクロソフトの天下は終わった」という下馬評を生むことになります。
しかし、NC も Java も当初語られていた未来を実現することはありませんでした。それには Java の実行が重かったこと、矢継ぎ早のバージョンアップと仕様の混乱、Java 実装系ごとの互換性問題、Microsoft と Sun の法廷闘争と Windows の JVM 標準添付廃止、競合技術の登場など幾つもの要因があります。こんにち最も普及している Java の末裔はおそらく Google Android が採用している Dalvik(Java の「方言」、基本構想や文法を流用しているものの直接互換性がない)だと思いますが、90 年代に語られていた「Java 革命」の未来像とはほど遠いものがあります。
IPv6: The future we're still waiting for
IP アドレスは 32bit で理屈上約 40 億通りの組み合わせがあります。IPv4 が設計された 1980 年代、インターネットの接続点は1拠点(大学、大企業研究所、国家機関など)あたりせいぜい数十台くらいで、32bit あれば世界中の拠点を接続してお釣りが来るくらいの規模でした。しかし 90 年代に入って一般個人がインターネットにアクセスを始めるとネットワーク規模は爆発的に増殖してアドレスは見る見るうちに消費されてゆき、40 億「しかない」IP アドレスが枯渇するのは時間の問題となりました。
アドレス空間拡大を主眼とする次世代インターネット・アーキテクチャの開発プロジェクトは「IPng (IP Next Generation)」と呼ばれ、1995 年 12 月には IP バージョン 6(IPv6) が IPng として正式に採択されました。当初は長くても 10 年くらいの共存・移行期間を経て IPv4 を完全に置換することが見込まれていましたが、この見込みは大幅にずれこむことになります。IPv6 の発表から 20 年が過ぎましたが、未だに「インターネット」あるいは「TCP/IP」の主役は IPv4 であり、IPv6 は「廃れてはいない」「使われているところもある」程度の存在に過ぎません。
90 年代に心配されていた「IP アドレスの枯渇問題」は何処へ行ったのでしょう?実は何処にも行ってはいません。IP アドレスは少しづつ、確実に枯渇に向かって減り続けています。ただ、その減少ペースが 90 年代の予想に比べて大幅にスローダウンしたというだけです。このスローダウンをもたらしたのは「NAT (Network Address Translation)」という便宜的な発明でした。
NAT(※註) は広域インターネットに接続する1点にのみ「正規の IP アドレス」を持ち、その反対側の企業内・家庭内のローカルネットワークは 192.168.x.x などの「ローカル IP アドレス」で運営されます。ローカルネットワークから広域インターネットを参照するとき、NAT はローカルアドレスと広域アドレスを「差し換える(Translate)」ことで見かけ上の透過性を提供します。
90 年代の想定では、インターネットに接続する機器には1台ごとに正規の IP アドレスを与える必要があると考えられていたのですが、NAT の導入によって1世帯・1施設あたり1個の IP アドレスで済むことになり、アドレスの消費ペースは数十~数百分の1に低下したのです。
(※註) NAT は世間一般には「ルーター」という用語で知られていますが、この用語は必ずしも正確ではありません。同様に、広域インターネット接続点に用いられる機器を「モデム」と呼ぶのも不正確です。
インターネット研究者は NAT は時間稼ぎに過ぎず、いずれ IPv4 アドレスが枯渇することが確実である以上、IPv6 による「真の次世代インターネット」へ早期に移行するべきであると主張しています。また NAT によって構成されたネットワークは対称的透過性に欠ける「歪なもの」であり、インターネット本来の発展性を阻害するものとして批判しています。
しかし、技術者・研究者が理想とする「美しい技術」よりも、市場は得てして「今そこにあって使える技術」を支持するものです。IPv6 がいつかどこかでブレイクして IPv4 を完全に置き換えるのか、それとも IPv4 が「忌まわしき前世紀の技術」として延々と使われ続けるのか、全くわかりません。
JPEG2000: Someone still loves you
JPEG は今日最も多用されている画像フォーマットの一つです。JPEG とは Joint Photographic Experts Group でフォーマット生成委員会の名前であり、画像フォーマットは正式には JFIF (JPEG File Interchange Format)、あるいはアルゴリズムの名前を取って DCT-JPEG (DCT:Discrete Cosine Transform, 離散コサイン変換)とも呼ばれます。
1992 年に制定された DCT-JPEG は「必要なとき、必要な機能を備えた」発明として、インターネット上の画像フォーマットあるいはデジタルカメラの画像フォーマットとして文字通り爆発的に普及しました。その JPEG 委員会が来るべき次世代に向けて 2000 年に発表した新フォーマットが JPEG2000 です。
JPEG2000 は離散コサイン変換に換えて離散ウェーブレット変換(DWT:Discrete Wavelet Transform)というアルゴリズムを採用しました。DWT は DCT に比べ 10~20 倍の演算量になりますが、同程度の画質ならば DCT に対し約 1/2 のデータ量まで圧縮できる技術です。コンピュータの演算能力が数年毎に倍増していた時代、DWT の演算量はいずれ問題ではなくなると考えられ、高画質/圧縮比を筆頭とした各種の特長によっていずれ DCT-JPEG を置換すると考えられたこともありました。
しかし登場から 15 年経ち、JPEG2000 は全然普及していないどころか殆ど忘れかけられています。原因は幾つもありますが、その最たるものはコンピュータの演算能力以上にネットワークの接続速度や HDD・フラッシュメモリの容量が増大し、2倍程度の圧縮率向上は大した利点ではなくなったことが挙げられるでしょう。実際インターネット上にアップロードされる JPEG の量子化係数(情報の切り捨て単位)は小さくなっており、高画質化のため量子化テーブルを最小値の 1 で埋めた通称「無圧縮 JPEG」(実際には無圧縮でもないし、DCT 係数の小数部は切り捨てられるので量子化は行われるのですが)を見ることも珍しくなくなりました。
演算速度についても、実際には 10~20 倍では済まない違いがありました。DCT は 8x8 画素のブロック単位で処理されるため、ブロックを処理するハードウェアを複数持つことで何倍もの処理速度高速化が可能(デジタルカメラの多くはそうしている)ですが、DWT は全画面域にわたってのデータ処理が必要なので DCT ほど容易に並列化できないのです。また JPEG2000 は非常に凝ったフォーマットで、特にタグツリーと称するビット単位のデータ構造は実装が非常に面倒でもありました(※註)。
(※註) 私が JPEG2000 のパーサを実装したときは2冊の書籍を参照したのですが、2冊ともタグツリーのサンプルデータとそのパース解析例が(しかも別々のところで)間違っていた、という体たらくでした。
DCT-JPEG には「画像サイズが 16bit x 16bit まで」「ピクセルあたりの情報深度が 8bit まで」という制約もあり、超高解像度・高再現性を求められる用途(医療・科学的な画像解析など)には向きません。32bit x 32bit 12bit/pixel を扱える JPEG2000 はそういった分野で使われていますが、そういう特殊な事情を必要とする場合にしか使われていないとも言えます。
なお JPEG2000 が事実上失敗したあと、2006 年には JPEG-XR が発表されました(原型は Microsoft が開発した HD Photo)。ウェーブレットに換えて今度はリフティングというアルゴリズムが採用され、JPEG2000 で不評だった演算量や並列性については改善されています。ピクセルあたりの深度情報は 32bit まで拡大され、扱える色モデル範囲も拡張されたことから、デジタルカメラの画像センサー情報を直接圧縮する RAW モードへの適用が期待されました。しかしこれも JPEG2000 同様、フラッシュメモリの価格低下と容量増大によって「無圧縮 RAW でもあんまり困っていない」状況となり、JPEG-XR もやはり普及の兆しはほとんど見られません。
MNG: An invention nobody wanted
1999 年、それまで JPEG とならぶインターネットの標準画像フォーマットとして使われていた GIF (Graphics Interchange Format) に対し、Unisys 社が突然の特許料徴収を表明しインターネットは一種のパニック状態に陥りました。GIF 騒動の詳細については割愛しますが、Unisys の LZW 特許に抵触しない代替フォーマットとして開発され普及したのが PNG (Portable Network Graphics) です。
さて GIF には「アニメーション GIF」という特徴もありました。アニメーション GIF は複数の静止画像を束ねたもので、それを一定間隔で順繰りに表示する「パラパラ漫画」方式でアニメーションを実現するものです。しかし「GIF を凌駕し代替する」ことを目的として開発された PNG には何故かアニメーション機能がありません。実は、これは MNG (Multiple-image Network Graphics) という別プロジェクトで実現される筈だったのです。
アニメーション GIF は単純なパラパラ漫画なので、一連の動きのなかで同じ画像が出てくる場合は同じデータを何度も反復して束ねなければならず、容量効率が悪い欠点がありました。MNG はこれを参照方式とすることで、同じ画像であれば同じデータを再利用することで効率向上を図りました。その辺で止めておけばよかったのですが、理想と善意に燃える MNG 制定委員会は「背景と移動物を別々のレイヤーに置いて合成可能とする」「移動物に対して拡大縮小回転などの変形を可能とする」「レイヤーに求められる性質に応じて PNG, JPEG など異種フォーマットの混在を可能とする」などの特長を次々に盛り込んでゆき、「画像フォーマット」という範疇を大幅に逸脱した、アニメーション既述システムのような大規模で複雑な仕様にしてしまいました。
MNG にとって不幸だったのは、「大規模で複雑なアニメーション既述システム」なら既に商用ソフトウェアである Macromedia Shockwave Flash (のちに Adobe 社に買収され Adobe Flash となる) が実現していたことです(※註)。ライセンスフリーとはいえ、まともに動く実装系が殆どない MNG(再生系も少なければ、MNG 生成システムはもっと少なかった)に対し、金さえ払えばちゃんと動くシステムが入手できサポートまで受けられる Flash の競争力は圧倒的で、特に企業 WEB サイトはこぞって Flash を採用し、MNG は全く普及する気配がありませんでした。
(※註) MNG は「絵を動かすこと」しかできませんが、Flash は絵に同期してサウンドも再生できますし、マウス入力などに応じて動きを変えるインタラクティブにも対応します。もっとも Flash も一時期の勢いは失いつつあり、HTML 内に埋め込んだ JavaScript 言語を駆使してアニメーションやインタラクティブを実装する例が増えてきています。HTML5 ではこの「ダイナミック WEB」の機能が大幅に拡張され、例によって気の早いライターが「もう専用Appの時代は終わった」などと書いたりしていますが、どうなるかは神のみぞ知ります。
MNG の苦戦を見た制定委員会は、複雑すぎる機能を削減したサブセット版を「MNG-LC (Low Complexity)」、更に大幅に機能を削ってアニメーション GIF 程度まで落としたものを「MNG-VLC (Very Low Complexity)」として定義しましたが、その頃には問題の発端となった Unisys 社の LZW 特許が失効しており、GIF が再び広く使われるようになっていました。一時的に下火になっていたとはいえ殆どのブラウザで標準サポートされ、作成ツールも豊富に揃っていたアニメーション GIF に対して MNG-VLC は「その程度だったら GIF でいいじゃん」的な扱いとなり、やっぱり普及することはありませんでした。
IM: CQ, CQ...
IM とは Instant Messenger の略です。1996 年に発表された ICQ を筆頭に Microsoft Messenger, Yahoo! Messenger, AOL Instant Messenger など、乱発気味に発表された製品がそれぞれにユーザー数を競いました。
それまでインターネット上の情報交換は e-mail と BBS によって実現されていましたが、どちらもある程度まとまった文章を時間を置いて交換するシステムであり、無駄話をするかのように気軽に言葉を交わすには不便なものでした。家庭用インターネットがダイヤルアップだった時代にはそれでも良かったのですが、常時接続のブロードバンドが普及するにつれ、インターネットをもっとリアルタイムなコミュニケーション手段として使うことが求められ、IM はそういった時代背景を受けて普及しました。
当初の IM はただの短文交換システムでしたが、ビデオチャット機能や音声会話機能、グループ間のデータ(画像、動画、音楽など)共有機能などが追加されてゆくにつれ、一方では SKype のようなビデオ電話システム、もう一方では Facebook や Twitter のような SMS (Social Media Service) と競合するものになり、IM は次第に「どっちつかず」の存在となってゆきます。また携帯電話・スマートフォンが普及すると、回線キャリアの提供するテキストメッセージサービスが電話感覚で多用されるようになり(※註)、これも IM からユーザーを奪う一因になりました。
今日 IM サービスはまだ継続していますが、一時期の勢いはないように思います。リアルタイム短文交換というコミュニケーション手段じたいは廃れていないのですが、それは他の方法(SKype Message, Twitter, 携帯テキスト)で実現されており、それに特化した専用の IM サービスは居場所を失いつつあるように思います。
(※註) 米国では Texting という動名詞で呼ばれます。スマートフォンの普及により、車を運転しながらの Texting が交通事故の増加させていると批判されてもいます。
WEB2.0: What the heck is?
Wikipedia によれば「WEB2.0」という言葉は 2005 年、ティム・オライリー(Tim O'Reilly)によって提唱されたとされています。当時はやたら流行して「WEB2.0 時代に向けたなんたらかんたら」という雑誌記事だの講演会だのが盛んでしたが、そもそも WEB2.0 が具体的に何を意味するのかは当時から現代に至るまで曖昧なままです。少なくとも WEB の基底技術仕様である HTTP プロトコルは「バージョン 1.1」しかありません(※註)。
(※註) 90 年代には ASN.1 PER フォーマットを使う HTTPng が検討されたこともありましたが、実装が大変面倒なうえ既存 HTTP との互換性が皆無という代物で、話題になることもなく消えてゆきました。2014 年現在、Google 社を中心に「HTTP/2」が検討されていますが、これは HTTP/1.1 との互換性を維持したまま効率と機能を向上させたものです。
あえて WEB2.0 の擁護をすれば、これは特定の実装仕様や技術を指した言葉ではなく、「ネットがあるのが当たり前」「繋がっているのが当たり前」という前提において、情報と人の関わり方が変わりつつあった現象を指そうとしたものだったのでしょう。何だか知らない用語が出てきたら辞書を引くより先に Wikipedia を見るとか、店舗やレストランの場所を調べるのに地図を見るより先に Google Map を見るとか、イベントの写真を撮る片端から Facebook に上げるとか...その裏では ADSL や LTE 回線網や SOAP/XML や Javascript やデータセンターや仮想マシンサーバーという技術が動いていますが、個々の構成要素ではなく、それらによって実現される新たな価値、新たな人の行動パターンを指そうとした言葉が「WEB2.0」だったのだと私は思います。
とはいえ、新しい技術によって人の価値観や行動が変わること(広義のイノベーション)は別に 2005 年に突然起きた驚天動地の一大イベントではなく、人類史始まって以来延々と継続的に起きていることです。火の発見、文字の発明、活版印刷、蒸気機関でも人の行動は大きく変わりました。情報機器の長くない歴史のなかでも「電子計算機の発明」「パーソナルコンピュータの実用化」「全世界をつなぐデジタルネットワークの実現」といった大きなイノベーションがあり、それらに比べれば WEB2.0 による変革などむしろ些細な部類に入ります。
「WEB2.0」という流行り言葉に胡散臭い思いを抱く技術者が多かったのは、「その程度のもの」に如何にも大袈裟な名前を付けるセンスや、それをまた如何にも凄い一大発明であるかのように持ち上げるマスメディアに対する反感だったのでしょう。そして幸か不幸か、それは今でもあんまり変わっていません。
まとめ
「困った時の昔話だのみ」で、懐かしい言葉を幾つもほじくり返してみました。Java や IPv6 には今も熱烈な信奉者がおり、うっかり「Java は廃れた」とか「IPv6 はもはや必要ない」なんて言おうものなら火のごとき反論が降ってくることがありますが、かつて語られていたバラ色の物語を知っている身からすると「消えてはいないというだけで、昔言ってた未来像とはぜんぜん違うじゃん!」というのが偽らざる現実だと思います。
WEB2.0 に代表される「流行り言葉(バズワード: Buzz word)」は今も作られては消費され続けています。「M2M (Machine To Machine)」なんてちょっと流行ったかと思ったら消え、代わりに「IOT (Internet Of Things)」だの「IOE (Internet Of Everything)」なんて言われるようになりました。これも実態はあるような無いような、「インターネットになんか機械をいっぱい繋いでブワーッとアレしたいわけよ!」みたいなガテン系のノリを感じます。かつて Java が流行ったときもコーヒメーカーや腕時計にも Java が入るんだとか、IPv6 では蛍光灯の1本1本にアドレス付けるんだと言っていた記憶があり、結局やろうとしている事は変わっておらず、そこに付けられる名札が変わっているだけのように感じます。
ただ昔のことを知っていると、バズワードにいちいち踊らされることも憤ることもなく、冷ややかに見ることができるようにはなりました。スティーブ・ジョブス氏が実証したように、ハッタリだって立派なイノベーションの一要素です。紙面に踊るハッタリの中から、いずれ何か我々の行動や価値観を変えるものが出現するのでしょう。
1990 年代の終わり頃「Java 革命」という言葉がネットや紙面を飛び回っていました。もう OS は要らなくなるとか、インテル・マイクロソフトの天下は終わったとか言われて、そして何事も無かったかのように通り過ぎてゆきました。あれは一体何だったのでしょう。
Java は Sun Microsystems 社によって開発されたプログラム言語で、仮想マシンコードで動作するという特徴を持っていました。どんな CPU・どんな OS でも仮想マシン(JVM:Java Virtual Machine)さえ実装されれば同じ Java プログラムが同じように動作する理屈で、Sun Microsystems 社はこの特徴を「Write once, run everywhere(一度書けばどこでも走る)」として宣伝しました。
Java がメディアを賑わしたのは技術的要因だけでなく、Sun Microsystems、Oracle、Netscape の3社が共同して「Java を中心とした次世代ネットワーク構想」をぶち上げたことにありました(むしろこちらの方が大ニュースだった)。その中枢をなすのが「NC (Network Computer)」構想です。NC というのは HDD もCD-ROM も 備えない箱で、これにディスプレイとキーボードとマウスを付けてインターネットにつなげば、あとは WEB ブラウザだろうがワープロだろうが全部ネットからダウンロードして Java で動くコンピューターという構想でした。
Java が仮想マシンで動く以上 NC の中に入っている CPU は何でも良く、たとえ OS や CPU のアーキテクチャが根本から変わろうとも JVM の仕様さえ維持すれば Java のプログラムは同じように動作する理屈で、これが「インテル・マイクロソフトの天下は終わった」という下馬評を生むことになります。
しかし、NC も Java も当初語られていた未来を実現することはありませんでした。それには Java の実行が重かったこと、矢継ぎ早のバージョンアップと仕様の混乱、Java 実装系ごとの互換性問題、Microsoft と Sun の法廷闘争と Windows の JVM 標準添付廃止、競合技術の登場など幾つもの要因があります。こんにち最も普及している Java の末裔はおそらく Google Android が採用している Dalvik(Java の「方言」、基本構想や文法を流用しているものの直接互換性がない)だと思いますが、90 年代に語られていた「Java 革命」の未来像とはほど遠いものがあります。
IPv6: The future we're still waiting for
IP アドレスは 32bit で理屈上約 40 億通りの組み合わせがあります。IPv4 が設計された 1980 年代、インターネットの接続点は1拠点(大学、大企業研究所、国家機関など)あたりせいぜい数十台くらいで、32bit あれば世界中の拠点を接続してお釣りが来るくらいの規模でした。しかし 90 年代に入って一般個人がインターネットにアクセスを始めるとネットワーク規模は爆発的に増殖してアドレスは見る見るうちに消費されてゆき、40 億「しかない」IP アドレスが枯渇するのは時間の問題となりました。
アドレス空間拡大を主眼とする次世代インターネット・アーキテクチャの開発プロジェクトは「IPng (IP Next Generation)」と呼ばれ、1995 年 12 月には IP バージョン 6(IPv6) が IPng として正式に採択されました。当初は長くても 10 年くらいの共存・移行期間を経て IPv4 を完全に置換することが見込まれていましたが、この見込みは大幅にずれこむことになります。IPv6 の発表から 20 年が過ぎましたが、未だに「インターネット」あるいは「TCP/IP」の主役は IPv4 であり、IPv6 は「廃れてはいない」「使われているところもある」程度の存在に過ぎません。
90 年代に心配されていた「IP アドレスの枯渇問題」は何処へ行ったのでしょう?実は何処にも行ってはいません。IP アドレスは少しづつ、確実に枯渇に向かって減り続けています。ただ、その減少ペースが 90 年代の予想に比べて大幅にスローダウンしたというだけです。このスローダウンをもたらしたのは「NAT (Network Address Translation)」という便宜的な発明でした。
NAT(※註) は広域インターネットに接続する1点にのみ「正規の IP アドレス」を持ち、その反対側の企業内・家庭内のローカルネットワークは 192.168.x.x などの「ローカル IP アドレス」で運営されます。ローカルネットワークから広域インターネットを参照するとき、NAT はローカルアドレスと広域アドレスを「差し換える(Translate)」ことで見かけ上の透過性を提供します。
90 年代の想定では、インターネットに接続する機器には1台ごとに正規の IP アドレスを与える必要があると考えられていたのですが、NAT の導入によって1世帯・1施設あたり1個の IP アドレスで済むことになり、アドレスの消費ペースは数十~数百分の1に低下したのです。
(※註) NAT は世間一般には「ルーター」という用語で知られていますが、この用語は必ずしも正確ではありません。同様に、広域インターネット接続点に用いられる機器を「モデム」と呼ぶのも不正確です。
インターネット研究者は NAT は時間稼ぎに過ぎず、いずれ IPv4 アドレスが枯渇することが確実である以上、IPv6 による「真の次世代インターネット」へ早期に移行するべきであると主張しています。また NAT によって構成されたネットワークは対称的透過性に欠ける「歪なもの」であり、インターネット本来の発展性を阻害するものとして批判しています。
しかし、技術者・研究者が理想とする「美しい技術」よりも、市場は得てして「今そこにあって使える技術」を支持するものです。IPv6 がいつかどこかでブレイクして IPv4 を完全に置き換えるのか、それとも IPv4 が「忌まわしき前世紀の技術」として延々と使われ続けるのか、全くわかりません。
JPEG2000: Someone still loves you
JPEG は今日最も多用されている画像フォーマットの一つです。JPEG とは Joint Photographic Experts Group でフォーマット生成委員会の名前であり、画像フォーマットは正式には JFIF (JPEG File Interchange Format)、あるいはアルゴリズムの名前を取って DCT-JPEG (DCT:Discrete Cosine Transform, 離散コサイン変換)とも呼ばれます。
1992 年に制定された DCT-JPEG は「必要なとき、必要な機能を備えた」発明として、インターネット上の画像フォーマットあるいはデジタルカメラの画像フォーマットとして文字通り爆発的に普及しました。その JPEG 委員会が来るべき次世代に向けて 2000 年に発表した新フォーマットが JPEG2000 です。
JPEG2000 は離散コサイン変換に換えて離散ウェーブレット変換(DWT:Discrete Wavelet Transform)というアルゴリズムを採用しました。DWT は DCT に比べ 10~20 倍の演算量になりますが、同程度の画質ならば DCT に対し約 1/2 のデータ量まで圧縮できる技術です。コンピュータの演算能力が数年毎に倍増していた時代、DWT の演算量はいずれ問題ではなくなると考えられ、高画質/圧縮比を筆頭とした各種の特長によっていずれ DCT-JPEG を置換すると考えられたこともありました。
しかし登場から 15 年経ち、JPEG2000 は全然普及していないどころか殆ど忘れかけられています。原因は幾つもありますが、その最たるものはコンピュータの演算能力以上にネットワークの接続速度や HDD・フラッシュメモリの容量が増大し、2倍程度の圧縮率向上は大した利点ではなくなったことが挙げられるでしょう。実際インターネット上にアップロードされる JPEG の量子化係数(情報の切り捨て単位)は小さくなっており、高画質化のため量子化テーブルを最小値の 1 で埋めた通称「無圧縮 JPEG」(実際には無圧縮でもないし、DCT 係数の小数部は切り捨てられるので量子化は行われるのですが)を見ることも珍しくなくなりました。
演算速度についても、実際には 10~20 倍では済まない違いがありました。DCT は 8x8 画素のブロック単位で処理されるため、ブロックを処理するハードウェアを複数持つことで何倍もの処理速度高速化が可能(デジタルカメラの多くはそうしている)ですが、DWT は全画面域にわたってのデータ処理が必要なので DCT ほど容易に並列化できないのです。また JPEG2000 は非常に凝ったフォーマットで、特にタグツリーと称するビット単位のデータ構造は実装が非常に面倒でもありました(※註)。
(※註) 私が JPEG2000 のパーサを実装したときは2冊の書籍を参照したのですが、2冊ともタグツリーのサンプルデータとそのパース解析例が(しかも別々のところで)間違っていた、という体たらくでした。
DCT-JPEG には「画像サイズが 16bit x 16bit まで」「ピクセルあたりの情報深度が 8bit まで」という制約もあり、超高解像度・高再現性を求められる用途(医療・科学的な画像解析など)には向きません。32bit x 32bit 12bit/pixel を扱える JPEG2000 はそういった分野で使われていますが、そういう特殊な事情を必要とする場合にしか使われていないとも言えます。
なお JPEG2000 が事実上失敗したあと、2006 年には JPEG-XR が発表されました(原型は Microsoft が開発した HD Photo)。ウェーブレットに換えて今度はリフティングというアルゴリズムが採用され、JPEG2000 で不評だった演算量や並列性については改善されています。ピクセルあたりの深度情報は 32bit まで拡大され、扱える色モデル範囲も拡張されたことから、デジタルカメラの画像センサー情報を直接圧縮する RAW モードへの適用が期待されました。しかしこれも JPEG2000 同様、フラッシュメモリの価格低下と容量増大によって「無圧縮 RAW でもあんまり困っていない」状況となり、JPEG-XR もやはり普及の兆しはほとんど見られません。
MNG: An invention nobody wanted
1999 年、それまで JPEG とならぶインターネットの標準画像フォーマットとして使われていた GIF (Graphics Interchange Format) に対し、Unisys 社が突然の特許料徴収を表明しインターネットは一種のパニック状態に陥りました。GIF 騒動の詳細については割愛しますが、Unisys の LZW 特許に抵触しない代替フォーマットとして開発され普及したのが PNG (Portable Network Graphics) です。
さて GIF には「アニメーション GIF」という特徴もありました。アニメーション GIF は複数の静止画像を束ねたもので、それを一定間隔で順繰りに表示する「パラパラ漫画」方式でアニメーションを実現するものです。しかし「GIF を凌駕し代替する」ことを目的として開発された PNG には何故かアニメーション機能がありません。実は、これは MNG (Multiple-image Network Graphics) という別プロジェクトで実現される筈だったのです。
アニメーション GIF は単純なパラパラ漫画なので、一連の動きのなかで同じ画像が出てくる場合は同じデータを何度も反復して束ねなければならず、容量効率が悪い欠点がありました。MNG はこれを参照方式とすることで、同じ画像であれば同じデータを再利用することで効率向上を図りました。その辺で止めておけばよかったのですが、理想と善意に燃える MNG 制定委員会は「背景と移動物を別々のレイヤーに置いて合成可能とする」「移動物に対して拡大縮小回転などの変形を可能とする」「レイヤーに求められる性質に応じて PNG, JPEG など異種フォーマットの混在を可能とする」などの特長を次々に盛り込んでゆき、「画像フォーマット」という範疇を大幅に逸脱した、アニメーション既述システムのような大規模で複雑な仕様にしてしまいました。
MNG にとって不幸だったのは、「大規模で複雑なアニメーション既述システム」なら既に商用ソフトウェアである Macromedia Shockwave Flash (のちに Adobe 社に買収され Adobe Flash となる) が実現していたことです(※註)。ライセンスフリーとはいえ、まともに動く実装系が殆どない MNG(再生系も少なければ、MNG 生成システムはもっと少なかった)に対し、金さえ払えばちゃんと動くシステムが入手できサポートまで受けられる Flash の競争力は圧倒的で、特に企業 WEB サイトはこぞって Flash を採用し、MNG は全く普及する気配がありませんでした。
(※註) MNG は「絵を動かすこと」しかできませんが、Flash は絵に同期してサウンドも再生できますし、マウス入力などに応じて動きを変えるインタラクティブにも対応します。もっとも Flash も一時期の勢いは失いつつあり、HTML 内に埋め込んだ JavaScript 言語を駆使してアニメーションやインタラクティブを実装する例が増えてきています。HTML5 ではこの「ダイナミック WEB」の機能が大幅に拡張され、例によって気の早いライターが「もう専用Appの時代は終わった」などと書いたりしていますが、どうなるかは神のみぞ知ります。
MNG の苦戦を見た制定委員会は、複雑すぎる機能を削減したサブセット版を「MNG-LC (Low Complexity)」、更に大幅に機能を削ってアニメーション GIF 程度まで落としたものを「MNG-VLC (Very Low Complexity)」として定義しましたが、その頃には問題の発端となった Unisys 社の LZW 特許が失効しており、GIF が再び広く使われるようになっていました。一時的に下火になっていたとはいえ殆どのブラウザで標準サポートされ、作成ツールも豊富に揃っていたアニメーション GIF に対して MNG-VLC は「その程度だったら GIF でいいじゃん」的な扱いとなり、やっぱり普及することはありませんでした。
IM: CQ, CQ...
IM とは Instant Messenger の略です。1996 年に発表された ICQ を筆頭に Microsoft Messenger, Yahoo! Messenger, AOL Instant Messenger など、乱発気味に発表された製品がそれぞれにユーザー数を競いました。
それまでインターネット上の情報交換は e-mail と BBS によって実現されていましたが、どちらもある程度まとまった文章を時間を置いて交換するシステムであり、無駄話をするかのように気軽に言葉を交わすには不便なものでした。家庭用インターネットがダイヤルアップだった時代にはそれでも良かったのですが、常時接続のブロードバンドが普及するにつれ、インターネットをもっとリアルタイムなコミュニケーション手段として使うことが求められ、IM はそういった時代背景を受けて普及しました。
当初の IM はただの短文交換システムでしたが、ビデオチャット機能や音声会話機能、グループ間のデータ(画像、動画、音楽など)共有機能などが追加されてゆくにつれ、一方では SKype のようなビデオ電話システム、もう一方では Facebook や Twitter のような SMS (Social Media Service) と競合するものになり、IM は次第に「どっちつかず」の存在となってゆきます。また携帯電話・スマートフォンが普及すると、回線キャリアの提供するテキストメッセージサービスが電話感覚で多用されるようになり(※註)、これも IM からユーザーを奪う一因になりました。
今日 IM サービスはまだ継続していますが、一時期の勢いはないように思います。リアルタイム短文交換というコミュニケーション手段じたいは廃れていないのですが、それは他の方法(SKype Message, Twitter, 携帯テキスト)で実現されており、それに特化した専用の IM サービスは居場所を失いつつあるように思います。
(※註) 米国では Texting という動名詞で呼ばれます。スマートフォンの普及により、車を運転しながらの Texting が交通事故の増加させていると批判されてもいます。
WEB2.0: What the heck is?
Wikipedia によれば「WEB2.0」という言葉は 2005 年、ティム・オライリー(Tim O'Reilly)によって提唱されたとされています。当時はやたら流行して「WEB2.0 時代に向けたなんたらかんたら」という雑誌記事だの講演会だのが盛んでしたが、そもそも WEB2.0 が具体的に何を意味するのかは当時から現代に至るまで曖昧なままです。少なくとも WEB の基底技術仕様である HTTP プロトコルは「バージョン 1.1」しかありません(※註)。
(※註) 90 年代には ASN.1 PER フォーマットを使う HTTPng が検討されたこともありましたが、実装が大変面倒なうえ既存 HTTP との互換性が皆無という代物で、話題になることもなく消えてゆきました。2014 年現在、Google 社を中心に「HTTP/2」が検討されていますが、これは HTTP/1.1 との互換性を維持したまま効率と機能を向上させたものです。
あえて WEB2.0 の擁護をすれば、これは特定の実装仕様や技術を指した言葉ではなく、「ネットがあるのが当たり前」「繋がっているのが当たり前」という前提において、情報と人の関わり方が変わりつつあった現象を指そうとしたものだったのでしょう。何だか知らない用語が出てきたら辞書を引くより先に Wikipedia を見るとか、店舗やレストランの場所を調べるのに地図を見るより先に Google Map を見るとか、イベントの写真を撮る片端から Facebook に上げるとか...その裏では ADSL や LTE 回線網や SOAP/XML や Javascript やデータセンターや仮想マシンサーバーという技術が動いていますが、個々の構成要素ではなく、それらによって実現される新たな価値、新たな人の行動パターンを指そうとした言葉が「WEB2.0」だったのだと私は思います。
とはいえ、新しい技術によって人の価値観や行動が変わること(広義のイノベーション)は別に 2005 年に突然起きた驚天動地の一大イベントではなく、人類史始まって以来延々と継続的に起きていることです。火の発見、文字の発明、活版印刷、蒸気機関でも人の行動は大きく変わりました。情報機器の長くない歴史のなかでも「電子計算機の発明」「パーソナルコンピュータの実用化」「全世界をつなぐデジタルネットワークの実現」といった大きなイノベーションがあり、それらに比べれば WEB2.0 による変革などむしろ些細な部類に入ります。
「WEB2.0」という流行り言葉に胡散臭い思いを抱く技術者が多かったのは、「その程度のもの」に如何にも大袈裟な名前を付けるセンスや、それをまた如何にも凄い一大発明であるかのように持ち上げるマスメディアに対する反感だったのでしょう。そして幸か不幸か、それは今でもあんまり変わっていません。
まとめ
「困った時の昔話だのみ」で、懐かしい言葉を幾つもほじくり返してみました。Java や IPv6 には今も熱烈な信奉者がおり、うっかり「Java は廃れた」とか「IPv6 はもはや必要ない」なんて言おうものなら火のごとき反論が降ってくることがありますが、かつて語られていたバラ色の物語を知っている身からすると「消えてはいないというだけで、昔言ってた未来像とはぜんぜん違うじゃん!」というのが偽らざる現実だと思います。
WEB2.0 に代表される「流行り言葉(バズワード: Buzz word)」は今も作られては消費され続けています。「M2M (Machine To Machine)」なんてちょっと流行ったかと思ったら消え、代わりに「IOT (Internet Of Things)」だの「IOE (Internet Of Everything)」なんて言われるようになりました。これも実態はあるような無いような、「インターネットになんか機械をいっぱい繋いでブワーッとアレしたいわけよ!」みたいなガテン系のノリを感じます。かつて Java が流行ったときもコーヒメーカーや腕時計にも Java が入るんだとか、IPv6 では蛍光灯の1本1本にアドレス付けるんだと言っていた記憶があり、結局やろうとしている事は変わっておらず、そこに付けられる名札が変わっているだけのように感じます。
ただ昔のことを知っていると、バズワードにいちいち踊らされることも憤ることもなく、冷ややかに見ることができるようにはなりました。スティーブ・ジョブス氏が実証したように、ハッタリだって立派なイノベーションの一要素です。紙面に踊るハッタリの中から、いずれ何か我々の行動や価値観を変えるものが出現するのでしょう。