output_comp
2013年8月21日撮影

  比較明合成で月と星が流れる様子を表現したかったのですが、軌跡が途切れていたり、満月のフレアが激しく出ていたり、拡大するとノイズのようなものが出ていたり、左下に雲が出ていたりで「何故こんな写真を公開したのか」と思われても仕方ないクォリティになってしまいました。

  何故「失敗作」と言ってもおかしくないレベルの写真を公開したからというと、534枚撮影して合成するのは労力がいるので、労力を認めてほしい、というなんとも小学生的な理由です。

  こんな枚数になると合成処理する時間もバカになりません。また、HD動画を撮影してYoutubeにアップロードするためにエンコードしたりBDに書き込んだり、ということをやるにしてもマシンパワーを要します。

  今回は、処理の高速化について書きます。

◎画像・動画処理の現実

  デジタル写真の画素数は年を追うごとに多くなり、PCに掛かる負荷も大きくなっています。特にRAW画像の編集やJPEGへの変換では非常に時間がかかります。HD動画のエンコードも同様です。

  「遅いならPCを買い換えればいいじゃない」という考え方もありますが、それではお金がかかります。いくら株高や消費増税実施で今買えばいいとは言うものの、使えるお金には限界があります。使えるお金と電気が無限なら苦労しませんが、実際の世界では厳しい制約がつきものです。

■システムディスクを整理する

  「PCが遅い!」という現象が起こるとき、大体の場合システムを入れているディスクが断片化しているか残り容量が少ししかないかのどちらかです。使ってないソフトウェアを削除する、ディスクを増設するなどの対処で良くなることが案外多いです。

■HDDをSSDに換える・USBを新しい規格の製品にする


  大量のファイルを扱っていると、転送にものすごく時間がかかりイライラすることがあります。HDDをより高速なSSDに変えたり、規格が最新のUSBポートを使用したり、SD・CFカードを高速のものに変えるなどすると、転送速度がアップし、ストレスが解消されることがあります。

■CPUを入れ替える

  上記の事を行っても改善しない時は、CPUが遅いという可能性が高いです。ただし、CPUの交換はソケット形状や使用マザーボードに大きく左右されるので、「CPUを変えると全部買い換え」という事態に陥ることも多いです。自作ならばオーバークロックも有効な手段の一つです。

  近年のCPUはIntelにしてもAMDにしても昔のものに比べて性能あたりの消費電力が減少していますので、節電が重要視されている今なら買い替えを検討することも良いと思います。

■物理メモリを増やす

  特に大きなサイズの画像や動画を取り扱うと、そのアプリケーションだけで数GBもメモリを消費してしまいます。Windows7/8の推奨メモリ容量は2GBとなっていますが、RAW画像やHD動画を取り扱うなら8GBはあった方がいいでしょう。

  Windowsでは、OSやアプリケーションが使用するメモリの領域が不足した場合に、内蔵ドライブの一部を物理メモリの代わりに使いますが、HDDのランダムアクセス性能は非常に低いため、メモリ不足状態ではよく動作速度の低下が問題になります。また、SSDの場合には寿命を縮める恐れがあります。なので、増設出来るだけ増設することが重要です。

■GPU利用

  みんなCPUの性能ばかり気にしますが、実は「GPU」というものも最近では高速化において重要となっています。GPUはGraphic Processing Unitという名称の通り、本来3Dゲームや3Dグラフィックなどの処理を行うものですが、最近は一般的なアプリケーションでも高速化に利用しているものが増えています。

  GPUが何故重要かというと、消費電力あたりの処理能力の高さです。

cpu-vs-gpu

画像:Intel CPUNVIDIA GPUの処理能力の比較(SP:単精度 DP:倍精度)
http://michaelgalloy.com/2013/06/11/cpu-vs-gpu-performance.html


  CPUとGPUを人間に例えると、CPUは「天才が4人ほど集まった状態」であり、GPUは「凡人が2700人ほど集まった状態」です。計算能力を比較すると、HaswellのIntel Core i7 4770Kで倍精度約100GFLOPSKeplerのNVIDIA GeForce GTX Titanで倍精度約1300GFLOPS(理論値)となっています。

※FLOPS…1秒あたりの浮動小数点演算能力。
※倍精度…64bitで表わされる浮動小数点(符号1bit + 指数部11bit + 仮数部52bit)のこと。


  ちなみに、Core i7 4770Kのピーク消費電力は約100W(TDP84W)、GeForce GTX Titanのピーク消費電力は約270W(TDP250W)で約3倍の差があります。単純に数字で比較すると、GTX Titanの方が4~5倍ほど1Wあたりの性能が良いということになります。

  CPUには出来てGPUには出来ないような複雑な命令はCPUで行うことで高速化されますが、その一方でGPUでもできることをCPUでまとめてやると、エネルギー効率的にも速度的にも改善します。GPUをグラフィック以外の目的に使うことを「GPGPU」と呼び、GPUメーカーであるNVIDIAAMDが開発を進めていますが、まだ不十分です。

  photoshopなどでは一部の処理をGPUで行うなどGPGPUが見られますが、結局現像をCPUで行うとGPUの意義がなくなるので、そこは中途半端だと思われます。ビデオエンコードなどでも最近は「CUDA対応」(CUDA…NVIDIA社のGPUで利用できるコンピューティング機能)というものが見られますが、正直実際に使ってみると画質や稼働率の面で課題が残っていると思います。

  NVIDIAのライバルであるAMDも「ATI Stream」というGPGPUのための機能がありますが、正直CUDAに比べると知名度も低いですし、AMD自身もメーカー問わず使用できる「OpenCL」に力を入れています。

  CPUも進化を続けていますが、技術の進歩を持ってしてもCPU単独で戦うのは難しい時代とだと思われます(第一、CPU専業だったインテルも、最近はGPUにも力を入れている)。エネルギーと時間の両方の効率の面で、今後GPUの利用は更に重要になると思われます。

  なんか、ここまでNVIDIAを持ち上げてIntelに不利なことばかり言っていると、NVIDIAの工作員か!と思われても仕方ないのですが、別に工作員ではありません。まあ、実際GeForceのビデオカードを使ったことはありますが…




■おまけ:進撃のNVIDIA

  最近、「進撃の巨人」というアニメ作品が海外でも人気だそうですが、この作品とNVIDIAのGTX Titanに何らかの関係があるそうです。「進撃の巨人」を英語で表記すると”Attack on Titan”、つまりTitanの部分が一緒です。

  実際、このネタでコラージュ画像を作った人もいるそうです。

Attack on Titan / Shingeki No Kyojin - Attack on GTX Titan

25a

  各種の性能テストでも、このGTX TitanはデュアルGPUに迫る恐ろしいスコアを出しているそうですが、販売価格も12万前後と恐ろしいです。吾輩のような一般人には縁がなさそうです。

(真に恐ろしい事は、CanonやNikonの大三元レンズの方がGTX Titanよりも高いことだが…)

■おまけII:進撃の鳩山

http://blogs.yahoo.co.jp/rose_reiner_widerspruch/32896638.html

※飲み物を飲んでいる人は見ないことをお勧めします。