2010年09月14日

わかっちゃいるけど、難しい

今日はやや技術的な話ですが、実はよくある話について。

自宅のビデオカメラ(2008年に購入したキャノンのiVIS HF10)で使用していたメモリーカードが一杯になったので、追加のメモリーカードを購入しました。SD(SDHC)の8GB。あまり価格差がなかったこともあり、せっかくなので読み書きのスピードが速いClass 10を選択しました。で、早速使おうとすると、「このカードではFXPモード(最も高画質なモード)は利用できません」といったようなメッセージが。一般に動画撮影では、高画質であるほど情報量が増えるため、メモリーカードも高速に読み書きできる必要があります。このFXPモード(約17Mbps)ではClass4もしくはClass 6が必要ということは認識しており、そのためにもせっかくなら速い方がいいだろうということで、Class 10を選んだのです(Classの後の数字が大きいほど高速に読み書きができることを意味します)。

あわてて調べたところ、この機種のFXPモードで利用できるのはやはりClass 4もしくはClass 6のみ。それより高速なはずのClass 10は、若干低画質のモードでしか使えないということがわかりました。

なぜ、こういったことが起きたかというと、このビデオカメラが開発された段階では、Class 10という規格自体がなかったため。そのため、FXPモードを使えるかどうかを判断する際に、Class が4もしくは6という「決め打ち」で判断するロジックを組み込んだということだと思われます。より低画質なモードではそもそもClassのチェックを行わないので、低速なClass 2でも、高速なClass 10でもokということになっているのだと思われます。

理由がわかると「なーんだ」、かつ、「ダサい」と思われるかもしれませんが、実はこの種の話って良くあるんです。将来にわたってどうなるかがクリアにわかっていれば、それに対応できるロジックを組むことも可能ですが、往々にして、将来どうなるかは良くわからない、また開発の時間も限られている中で、「今見えている範囲では」正しく動くプログラムが生まれます。将来条件が変わると、動くべきものが途端に動かなくなりますが、後の祭りというわけです。

どれぐらい良くある話かというと、Windows 7の登場に伴い、一定の要件を満たしたソフトウェアなどに"Compatible with Windows 7"という認定が与えられるプログラムがあるのですが、この中の要件として明記してあるほどです。「アプリケーションは(== 5.1といった)一致によるバージョンチェックをしてはならない」、と書いてあります。望まれる方法としては、「特定の機能を必要とする場合には、機能の存在自体をチェックせよ。OSレベルでチェックが必要であれば、一致ではなく以降でチェック(>= 5.1)せよ」とあります。

当たり前の話ですよね。でも、要件として明記されるほど、逆に言えば、ありがちな問題なのです。なんで== 5.1と書くかというと、その方が簡単(書くのも、テストも)だから。>= 5.1と書いたとすると、本来は何らかの方法でバージョンが5.1より大きいOS環境を作ってテストする必要があります。 これは5.1より大きいOSが既に存在していれば簡単ですが、そうでない場合は大仕事になります。

今は良くても、将来も大丈夫か。どこまで将来を見据えた製品開発を行うか、これは弥生を含め、メーカー全ての共通の課題です。
 
念のためですが、キャノンのビデオカメラはかなり優秀で、個人的には結構気に入っています。今回の件はちょっと残念ですが、調べてみるとClass 10に対応していないことはすぐに判明しましたので、基本的には下調べが足りなかった当方の落ち度かと思います。でも、2008年に買ったビデオカメラで、今はたかだか2010年ですからね。将来を見据えることの難易度が上がってきていることを示す一つの例かと思います。
posted by 岡本浩一郎 at 18:05 | TrackBack(0) | ビジネス
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/40707333
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック