書き出しスピードは特定サイズを境に160%加速される
みんな大好きLightroomは写真管理や豊富なRAW現像調整項目の他に、RAWからJPEGやTIFFに書き出すスピードも速いのが特徴です。条件によっては1枚1秒以下で書き出す事も出来るくらい早いです。
まぁ早いよねということで今まで特に気にせず使ってきたのですが、特にLightroomCC2015(Lightroom6)にアップデートしてからというもの、なんか早いときと遅いときがあるなぁとなんとなく感じていました。
これまで気づかぬふりをして使ってきたワケですがやっぱり気持ち悪いので調べてみたら面白いことが分かったのでご紹介しようと思います。設定によっては最大70%くらい160%以上書き出しスピードを加速できますよ!
*今回の記事の検証はLightroom CC(2015.2.1), Windows10 で行っています。
書き出し時の画像サイズがカギ
普段ブログ用に写真を書き出すときは枚数も少ないし、サクサク書き出せているのですが、仕事用で数十~数百枚一気に書き出すと枚数が増えた以上になんだかモッサリするなぁと以前から感じてました。
まぁ遅いと言っても他のソフトよりは速いわけでそんなに深刻に考えてはいなかったのですが、ちょっと気になったので調べてみました。ブログ用と仕事用の写真の書き出しで異なるのは写真のサイズ(解像度)。
ブログ用はだいたい長辺900px程度で書き出しているのですが、仕事用はもっと大きなサイズで書き出して納品しているのでこの辺りがあやしいなと考え調べてみたのでした。
画像サイズとスピードの関係にはしきい値が存在する
書き出しサイズ(画像の長辺の長さ)を変えながらRAWファイルをJPEGに変換しながら1枚辺りの現像時間を調べてみました。条件は下記の通りです。
検証環境
・OS:Windows 10、CPU:Core i7 2600K、Memory:16GB
・Lightroom CC 2015.2.1(検証時最新版)
・使用画像:EOS 5D MarkIIのRAWファイル(.CR2、5616×3744px)
*5D MarkIIIの画像使ったと思ったらMarkIIの画像でした^^;
・現像設定:Lightroomのデフォルト設定で長辺のサイズを変えながらJPEG(画質80%)にストレート現像
・測定方法:10枚まとめて書き出し、かかった時間を測定
*現像開始ボタン押下からシークバー上の「○○枚現像中」の表示が消えるまでの時間を測定しています。
*追記:「○○枚現像中」の表示が消える前のシークバーが満タンになった時点で現像が完了してました。シークバー満タンから「○○枚現像中」の表示が消えるまで3~4秒かかるので、正確には今回の例だと1枚あたり0.3~0.4秒くらい速く終わってる計算になります(記事の最後の追記を参照)
結果
書き出し時の長辺のピクセル数と1枚辺りの現像時間をグラフにプロットしてみました。こちらです。
おわかり頂けますでしょうか、今回の実験では長辺の長さが1400位の所にしきい値があります。
1枚にかかる現像時間は長辺1400ピクセル付近で一気に長くなる(遅くなる)ことがわかりました。
元サイズの1/4がしきい値
じゃぁいったいこの境目はいったいどの辺なのだろう?と思いチマチマと範囲を狭めていくと、1403pxと1404pxの間が境目であることが分かりました。勘のいい方ならすでにこの数字なんの数字か分かる人もいるでしょう。
長辺 1403pixel | 1404pixel | |
---|---|---|
1枚あたり(sec) | 1.5 | 2.3 |
現像スピード(枚/s) | 0.67 | 0.43 |
たった1ピクセル違うだけで現像にかかる時間がこんなに違います。1403pxの現像スピードは1404pxよりも約53%も高速化しています!
1404ピクセルの正体は?
ではここで謎の「1404ピクセル」の正体は?ということですが、これ5D MarkIIの元画像の長辺(5616pixel)の1/4(25%)ですね。
5616 ÷ 4 = 1404
つまり、元画像の長辺の1/4以上のサイズで書き出すと遅くなり、1/4未満のサイズで書き出すと一気に高速化されることが分かりました!
他の条件での比較
一応、他の画素数のカメラのRAWファイルでも検証してみました。
手元にあったSONY α7II(6000×4000px)、PENTAX K-3II(6016×4000px)、Olynpus OM-D E-M5 MarkII(4608×3456px)のRAWファイルでもやはり、長辺の1/4(それぞれ1500, 1504, 1152ピクセル)がしきい値でした。
*どうでも良いけどK3IIって横がちょっとだけ長いのね。
しきい値未満のサイズで書き出すとキヤノンと同じく現像スピードも50~60%高速化します。
トリミングしてたらどうなる?
では現像時にトリミングしていたらどうなるのか?ということで、上のグラフで使った写真を適当にトリミングして4318×2878にしてから現像してみました。
その結果、しきい値は1080ピクセル。
4318/4 = 1079.5 なので1079ピクセルでは速く、1080ピクセルでは遅くなる結果。
トリミングしていた場合はトリミング後の長辺サイズが効いてきます。
また、ちょっと横道にそれますが、トリミングするとトリミング前(画素数大)とくらべて現像スピードがアップするのでLightroomではトリミングされて見えなくなった部分は計算しないような効率化が図られているんじゃないかと思います。
現像するとさらに違いが顕著に
上で紹介したグラフは現像せずにそのままJPEG変換しましたが、いろいろ調整してから書き出すと現像スピードの差が広がります。
最初の条件から、基本補正(露光量、コントラスト、白レベル、明瞭度、自然な彩度)、レンズ補正(自動)をかけて同じく10枚現像したときの結果がこちら。
長辺 1403pixel | 1404pixel | |
---|---|---|
1枚あたり(sec) | 2.4 | 4.1 |
現像スピード(枚/s) | 0.42 | 0.24 |
調整を重ねたぶん、未調整と比べると遅くなっていますが、現像スピードは長辺1404pxにくらべて1403pxはなんと71%も高速化!
まとめ
調べてみたら明確な基準がわかって非常にスッキリ。なんだかLightroomの秘密を知ってしまったようです(笑)
まぁ作業を早く終わらせたいから書き出し時の解像度を下げるというのはオススメしませんが、意味も無いのに高解像度で書き出すとこれだけ時間がかかるので、自分が必要な画像の解像度を良く見極めておくと時間短縮になりそうですね。
私の場合、仕事用の納品データはもちろん高解像度で仕上げる必要がありますが、確認用のコンタクトシートなど軽いデータの場合はなるべく1/4サイズ未満で書き出そうと思った次第です。
ブログやSNSにアップする写真も通常は長辺1000pxもあれば十分ですね。
ところで、なぜ1/4未満で急に速くなるのかという原因は分かりません。想像するに現像時に計算を省略してるのかな?なんて思うのでもしかするとしきい値前後の写真には多少画質の差が見られる可能性はありますね。どなたか検証して頂けることをお待ちしております(笑)
追記:1/8、1/16のしきい値もありました!
記事公開後数名の方から単純に複数のピクセルをまとめて圧縮してるだけでは?とご意見いただいたので調べてみました。デジカメに使われているベイヤー型センサーはRGGBの2×2のピクセルが1単位なので、ベイヤー1単位を2×2にまとめると長辺は1/4になりますね。
そう考えるとベイヤー1単位を3×3にまとめた場合(長辺1/6)、4×4にまとめた場合(長辺1/8)あたりがつぎのしきい値だと考えられそうで追加実験してみました。
結果がこちら
長辺1404px(1/4)以上はすでに結果が分かっているためそれ以下に注目。しきい値っぽいのが見えますよね。
拡大して見ると。。
1/8となる702pxに明確なギャップがあり、次の1/16となる351pxにも小さなギャップがありますね!
一方、当初予想していたベイヤー単位3×3となる1/6のポイント(936px)には有意な差はありませんでした。念のため画素単位で9×9になる1/9のポイント(624px)も見てみましたがこちらも有意な差とは言えず。
1/8や1/16のポイントは1/4のポイントに比べて恩恵は小さいですが、ブログ用なら700pxでもありかも知れませんね。自分のカメラの長辺1/4, 1/8のポイントのサイズを元に書き出しプリセットを作っておくと良いかも知れません。
*条件は最初と同じ長辺5616ピクセルのRAWファイルを使用しています。ただし、かかった時間の計り方を変えました。最初の実験ではシークバー上の「○○枚を現像中」が消えたタイミングで測定していましたが、その前のシークバーが満タンになったタイミングですでに現像が終了していることから、今回の測定は現像開始ボタン押下~シークバー満タンの時間で行っています。たぶんこっちの測定の方が正確かと。
1/4にしたときの高速化も70%どころではありませんね。約100%、1/8に設定すると約160%高速化します☆