新作壁紙・最新iOSの基本情報(壁紙専門)は本店にて
 New アプデ速報


2014年11月16日日曜日

上からの影のルーツ - iPhoneのドックが消える閾値が変わるワケ

※ この記事の白い壁紙は最新ではありません。最新は カテゴリ ▷ 白い壁紙


iPhoneのホーム画面で不満の声の多い上の方が暗くなる問題。そのアルゴリズムはiOS 7.0から既にあったようです。

帯に入れた白いアイコンは謎解きの証

謎解きの副産物として、iPhone 6/6 Plus/5/5s/5c/4s (11/23 iPhoneの壁紙で実機なしのサポートは無理があると判断して4s対応を外し、サイズ変更してver.5としました) でドックとフォルダ全てを消す白い壁紙 White と iPad用の Shiro をver.4にしています。


消えないはずの条件でドックが消えた謎

iOS7以降のiPhoneで真っ白な壁紙を使うとドックやフォルダはグレーになります。そこで全てを白くする壁紙では、黒い帯をパララックスエフェクトで隠れる余白に入れて平均明度を下げ、ドックとフォルダを白くさせています。

iPhoneでは黒い帯はしかし、ドックかフォルダの少なくともどちらかには影を作りますし、はみ出すこともなくはありませんからこれをできるだけ細くします。しかし細過ぎても明度が基準値を超えてしまいドックはグレーになりますから、ドックだけにさながらドッグレースです。

すみません。
チキンレースでした。

実験ではドックとフォルダを消すためには輝度、明度共に平均241以下でなければなりませんでした。
ところが、White/Shiro ver.2-3の帯の太さは壁紙の高さの約1/20となっています。これだと平均の輝度明度は242を超えてしまいます(無彩色では輝度と明度は一致します)。
改めて検証してもドックはちゃんと消えますし、241という閾値にも、それを求めるための方程式にも間違いは見つかりません。

ドックを消す要因となっている隠れたルールがあるかもしれないというところまで前々回書きました。


矛盾が鍵

白い背景に真っ黒な帯ですと境界線のコントラストは最大です 。

輝度と明度の他に、ドックの処理を決める隠れた変数はコントラストかもしれない。

帯の下を1ピクセルカットすると明度が閾値を超えてドックが消えなくなるぎりぎりの太さの帯の中に、1ピクセルの線を入れてみます。


1ピクセルの差で消えなくなるドック
黒帯はスクリーンに対して約350%拡大

ドックが消える限界の帯に幅1ピクセルの線を入れると

帯の面積からすれば消えないはずのところなぜかドックは消えました。2本にするとさすがに消えなくなります。

今度は同様の帯に白い丸を入れたものと、その白丸を内側にぼかしたものを比べてみます。見ての通りぼかしたものの方が内側に滲む黒の分暗くなります。

左が白丸、右が内側にぼかした白丸

ところが通常の白丸ではドックが消え、逆にぼかした方では消えないという結果になりました。

以上から壁紙のコントラストが高い場合は少しだけドックが消えやすくなると考えられます。

続いて下の方の帯でドックを消すぎりぎりの太さの帯に、上の方でドックを消せた白丸を置いてみました。が、ドックは消えません。下に置くには丸が大きいようです。
そこで白丸をドックが消えるまで小さくしたものと、その内側にぼかしを入れたものを比べてみると

下黒帯では上より丸を小さくしなければなりませんでした

やはりぼかしを入れた方は消えません。

下のほうでもコントラスト補正はかかるものの、上よりも効果が薄いようです。

まとめるとコントラストが高いとドックは消えやすくなり、そのコントラストは下よりも上の方が重視されるということのようです。

これは何かに似ています。
あの上から影が出る壁紙の条件です。


上からの影

本来の壁紙では右上の四角は真っ白です

上の方が暗くなる現象はコントラスト高めの壁紙でなおかつ白文字になる場合に現れます。

それを避けるための工夫は散々やらされましたからもう体で覚えていると言ってもいいくらいです。壁紙を明るくして白文字になるのを防ぐ、上の方を重点的にグラデをかけてコントラストを減らすなどが基本でした。


表裏一体のアルゴリズム?

ドックを白くしようとするくらいですから当然白文字になるほど暗いはずもなく、影が出る余地はありません。今まで表面化しなかったのも当然です。

ドックを消せていた壁紙がサイズ不足などで拡大されるとドックが消えなくなることがあったのもコントラストの影響が大きいと考えれば納得できます。像が不鮮明になるとコントラストは激減します。

もう少し検証してみた結果を羅列します。
白で抜けても切り欠きになるとアウト。文字はコントラスト補正が効きづらい、ノイズは幅3ピクセル程度がベストで1、2本なら大丈夫。ただしノイズが白い所に接したらダメ。ノイズで作る文字は見た目にも不鮮明で微妙……

コントラストの判定基準は上の方が暗くなる条件とほぼ同じと見てよいようです。

そうであるなら、明るくするか暗くするかの処理の違いだけで、両者は同根であると考えるのが自然です。
順番から言うと、iOS 7.0でドックの処理に使われていた判定法を転用したのが7.1の影だったということではないでしょうか。

追記 上の方が暗くなる現象は7.0でも出ていたという声もありました。検証はできませんが、7.1で一気に問題化したのも確かなようですから、当初はもっと緩い別の条件があった可能性もあります。

壁紙のコントラストが高い場合は明暗差もそれなりであるはず。すると明るい背景の暗い部分に暗いフォルダがかかったりするおそれが出できます。いかにも美しくなさそうです。憶測ですけど最初にドックやフォルダを明るくするコントラスト補正が導入された理由としてはそんなところかと。
上の方が判定が厳しいと思っていたのは、下の方が緩かったというのが正しいかもしれません。

さすがにOSがコントラストをどう判定するかまで実験だけで定量化するつもりはないです。
これまでの経験から壁紙の下端が判定時に若干カットされることがあり、これは機種によって違うようです。どのみち未知の端末も含めて限界値を一般化することはできません。

ドックが消える方程式 (現状非公開) は確実にドックが消える条件を教えてくれて、そこに多少の文字や柄くらいなら白で入れても問題ないという使い方ができる程度。限界を知るには不足ですが実用上はそのくらいでいいのかもしれません。


ver.4は記念

あれほど避けようとした影を作る条件を今度はどうにか満たせないかと考えることになるとは皮肉なものです。
補足 : 上からの影にも強弱があること、既にコントラスト補正がかかっているはずのぎりぎりの細さの帯に更にコントラスト補正を加える実験が成功していることから、補正にも強弱があるはずです。

白と黒はコントラストの限界です。一旦ぎりぎりまで細くした黒帯にさらにコントラスト補正をかけるのは、明度を上げることと引き換えになるためなかなか細くはできません。
上の実験でも矛盾が明確になる領域はかなり狭く、大抵はどっちにしても消えるかどっちにしても消えないかです。

今回壁紙サイズをver.3より1ピクセル大きくして、モデルによっては相対的に帯を細くしていますが、これはコントラスト補正ではなくぶっちゃけver.3の追い込みが甘かっただけでして。

それなら思い切ってアイコンとか入れちゃおう。

白文字が帯の端っこにあるのは境界も使って一つの柄と認識させなければ補正が足りなくなる恐れがあるためです。
下黒帯のPure Topは場所的にコントラスト補正が弱いのでアイコンも小さくなっています。
分割帯はバランスを再調整しました。
iPad用はアイコンと文字以外ver.3のままです。
ともかくver.3とver.4を比べても、どのモデルもアイコンと文字の他は肉眼で分かるような差はありません。

ver.4は、入れようによってはぎりぎりの黒帯に白を入れてもドックが消えるのは見抜いたぞという、謎解きを証明する記念碑のようなものでございます。

0 件のコメント :

コメントを投稿

時間的な問題により技術的な質問及び壁紙のリクエストについては原則として返信致しません。ご要望を今後の制作の参考とさせていただくことはございます。
Due to time constraints, I will not reply to technical questions and wallpaper requests in principle. It might be a reference for the future wallpaper.