Chienomi

ディスプレイ解像度とフォントサイズと8k

読み物系記事::workspace

問題の整理

本記事で明らかにしたいのは次のような内容である。

  • 「文字を自然に読める」ようにするためには4kは必要か
  • 4kが望ましいディスプレイサイズはいくつか
  • 8kディスプレイは必要か
  • 日本語表示をターゲットとする場合フォントサイズはどの程度に設定すべきか

これを明らかにするにあたり、絵や写真におけるドットの要不要は感覚的なものだが、文字は「構成要素が全て描画されているか」によって足りているかどうかを判定できるため、まず日本語で日常的に使う文字(漢字)において必要なドット数を検討する。

次に、ピクセルサイズによって文字が物理的にどの程度のサイズで表示されるかを考える。 このことから、「物理的に小さすぎる」もしくは「大きすぎる」を避けつつ、十分な情報量をもたせるという点を検討する。

ピクセルサイズの計算

さて、Nピクセルが実寸でどれだけになるかは、dpiから算出できる。 dpiはディスプレイの表示領域の実寸に対してピクセル数で割れば算出できる。

ここでは私の手元にある23.6インチ(24HC5QRPbmiipzx), 27インチ(S2817Q), 31.5インチ(ET322QK), 42インチ(JN-VT4300UHDR)のディスプレイの実測から、それぞれのディスプレイのサイズを想定する。 実はピクセルは正方形ではないのだが、今回は縦で計算した。 インチに直す意味がないので、mm単位とする。

サイズ 縦実寸 FHD(1080) WQHD(1440) 4k(2160)
23.6 299 0.2769 0.2076 0.1384
27 336 0.3111 0.2333 0.1556
31.5 392 0.3630 0.2722 0.1815
42 530 0.4907 0.3681 0.2454

改めていうと、ピクセルサイズが小さいということは個々の点が小さい、よって高密度=高精細であるという意味になる。 同時に、同じピクセル数で表示したとき、物理的なサイズは小さくなる。

さて、これで物理的なサイズは導き出せるわけだが、ここでは視覚的な話をしたい。 基本的に物体は近づくほど距離に比例して大きく見えるわけだが、10cmのものが「10cmに見えている状態」を定義するには、目と物体の距離に基準を設けなければならない。

実際に試したところ、「ディスプレイから10cmであれば、かろうじて文字が読める」という感じだったので、10cmを基準サイズとし、離れた場合は仮想的に小さくなっているものとして扱う。

参考までに、スマートフォンを顔の近くに持ってきたときは20cm、少し離すと30cm、腕を軽く伸ばしたくらいの位置にすると50cmくらいになる。

PCのディスプレイの場合、「50cm以上に保ちましょう」とか言われているが、50cmだとそれなりに前のめりである。 ただ、100cm離すのはかなり難しい。 デスクの一般的な奥行きが60cmなので、普通にデスクの奥側にディスプレイを設置している場合、60〜70cmくらいが普通だろう。

ではここでは「20pxの物理的なサイズ」を距離ごとに出してみる。 FHDの場合を想定すると

サイズ 20 30 50 60 70 80
23.6 2.769 1.846 1.107 0.923 0.791 0.692
27 3.111 2.074 1.244 1.037 0.889 0.778
31.5 3.630 2.420 1.452 1.210 1.037 0.907
42 4.907 3.272 1.963 1.636 1.402 1.227

文字サイズを20pxにしているといったらだいぶ大きい印象だと思うが、それでもこのサイズ感である。 顔を近づけたくなるのもわかるだろう。

1440pxの場合は2/3に、2160pxの場合は1/2になる。

フォント描画に必要なドット

はじめに

ここでは日本語で比較的良く登場する漢字のうち、描画が厳しいものを10個ほど選び出してテストする。

方法は、グリフサイズを[10, 32]とし、これを256pxに近くなるよう整数倍に拡大する。 サイズ圧縮のため、可逆圧縮WebPでの変換を行う。

テキストの描画にはImageMagickを使う。 レンダリングエンジンはFreeType2 2.13.2で、アンチエイリアスはデフォルト設定のまま有効にする。フォントにはIPAゴシックを用いる。

具体的には次のようなスクリプトである。

#!/bin/zsh

generate_text() {
  typeset -i size=9
  typeset kanji="$1"
  typeset yomi="$2"
  
  while (( size++ < 64 ))
  do
    magick convert -fill black -background transparent -font "/usr/share/fonts/OTF/ipag.ttf" -pointsize $(( size )) label:"$kanji" $yomi-$size.png
    mogrify -resize $(( 256 / size ))00% $yomi-$size.png
    cwebp -lossless $yomi-$size.png -o $yomi-$size.webp
  done
}

#...

「描画が厳しい」だが、基本的に「そこに線を引かなければならない」場合、上下の線と分離しなければならないため、3ピクセルを必要とする。 漢字の場合、横線を引くために縦の高さが厳しいケースが多く、ここに高さ1pxでは表示できないような要素(例えば「心」)が入ってくるとそこにある程度の高さを取らないと識別できないためより厳しい。

こういった点から「スペースを確保しなければいけない要素が多い」ものを「厳しい文字」とみなして、検証する。

描画テスト

「頻繁」「繁忙」「繁栄」などで登場する。

繁 10px
繁 11px
繁 12px
繁 13px
繁 14px
繁 15px
繁 16px
繁 17px
繁 18px
繁 19px
繁 20px
繁 21px
繁 22px
繁 23px
繁 24px
繁 25px
繁 26px
繁 27px
繁 28px
繁 29px
繁 30px
繁 31px
繁 32px

潰れてはいるが、文脈次第では11pxから読めそう。 14pxからは文脈なく造形で推測できそうだ。

糸の部分の造形が手書きとち大きく異なることを感じる。 省略がなくなっているのは21pxからで、はね登場する。

「優勝」「優しい」「優秀」などで登場する。 線が多い上半分に、高さが必要なエレメントが2つ出てくる下半分という構成。

優 10px
優 11px
優 12px
優 13px
優 14px
優 15px
優 16px
優 17px
優 18px
優 19px
優 20px
優 21px
優 22px
優 23px
優 24px
優 25px
優 26px
優 27px
優 28px
優 29px
優 30px
優 31px
優 32px

登場する文脈がわかりやすいものが多く、近い造形の中では頻度が高い部類であるため、読めそうな文字ではある。

12pxで推測できるだろうか。

エレメントが正しく描画されるようになるのは21pxだが、22pxでは再び線がくっついているため、適切に描画できているのは23px以降。

天気で出てくる。 とにかく横線が多く、ほぼ水平で表現できるといってもハードルは結構高い。

曇 10px
曇 11px
曇 12px
曇 13px
曇 14px
曇 15px
曇 16px
曇 17px
曇 18px
曇 19px
曇 20px
曇 21px
曇 22px
曇 23px
曇 24px
曇 25px
曇 26px
曇 27px
曇 28px
曇 29px
曇 30px
曇 31px
曇 32px

文脈で分かる場合は多いだろうが、造形から推測するのは非常に難しい。13〜16pxあたりがグリフだけで推測できる最低ラインになりそうだ。

正しく描画されるようになるのは23px。 斜めの部分をアルファでごまかさなくなっているのは37pxから。

今回の中では最もよく目にする文字だろう。横線が多い。

曜 10px
曜 11px
曜 12px
曜 13px
曜 14px
曜 15px
曜 16px
曜 17px
曜 18px
曜 19px
曜 20px
曜 21px
曜 22px
曜 23px
曜 24px
曜 25px
曜 26px
曜 27px
曜 28px
曜 29px
曜 30px
曜 31px
曜 32px

11pxで識別可能だろう。10pxは文脈次第か。

15pxでほとんど正しく描画されており、18pxできれいに出ている。

「動画」「移動」「自動」などで登場する。 今回例に出した中ではマイルドなほうだが、横線が多く意外と長さが必要。

動 10px
動 11px
動 12px
動 13px
動 14px
動 15px
動 16px
動 17px
動 18px
動 19px
動 20px
動 21px
動 22px
動 23px
動 24px
動 25px
動 26px
動 27px
動 28px
動 29px
動 30px
動 31px
動 32px

10pxで推測できそう。14pxで確実か。

ちゃんと描画できているのは17pxから。

「違う」「違法」「相違」などで登場する。 箱要素の多い造形で、縦横で表現するのは簡単だが、空間は必要。

違 10px
違 11px
違 12px
違 13px
違 14px
違 15px
違 16px
違 17px
違 18px
違 19px
違 20px
違 21px
違 22px
違 23px
違 24px
違 25px
違 26px
違 27px
違 28px
違 29px
違 30px
違 31px
違 32px

10pxで推測は可能だが、造形の似た文字が多いため文脈なしだと結構きつい。

15pxからは割と確信が持てるだろう。 正しく描画できるようになるのは19px。

「問題」「話題」「題材」などで登場。 足りなければ潰れるところがたくさんある文字だが、なんとなくの形状と文脈で読めてしまうタイプの文字。

題 10px
題 11px
題 12px
題 13px
題 14px
題 15px
題 16px
題 17px
題 18px
題 19px
題 20px
題 21px
題 22px
題 23px
題 24px
題 25px
題 26px
題 27px
題 28px
題 29px
題 30px
題 31px
題 32px

10pxはこれ単独で出ると読めないが、11pxからは読めそう。 12〜13pxで確信が持てそうだ。

正しく描画できているのは22pxから。

「膨らむ」「膨張」「着膨れ」などで登場。 縦もしくは横に特別多くのスペースが必要なわけではないが、最低限必要なスペースが多く、潰れると読めないタイプの文字。

膨 10px
膨 11px
膨 12px
膨 13px
膨 14px
膨 15px
膨 16px
膨 17px
膨 18px
膨 19px
膨 20px
膨 21px
膨 22px
膨 23px
膨 24px
膨 25px
膨 26px
膨 27px
膨 28px
膨 29px
膨 30px
膨 31px
膨 32px

潰れて全く読めないかな、と思ったのだが、“さんづくり”が特徴的なので実際はかなり読める。なんなら10pxで読めるかもしれない。

確実に読めそうなのは14pxから。 造形が正しく描画されるのは18pxから。

斜めの線が多く、縦横の直線では表現しづらい。

縦 10px
縦 11px
縦 12px
縦 13px
縦 14px
縦 15px
縦 16px
縦 17px
縦 18px
縦 19px
縦 20px
縦 21px
縦 22px
縦 23px
縦 24px
縦 25px
縦 26px
縦 27px
縦 28px
縦 29px
縦 30px
縦 31px
縦 32px

このサイズで表示していると10pxとかただの模様だろうという感じだが、実際に10pxで表示されると読めなくもない。サブピクセルレンダリングは偉大だ。

確信を持って読めそうなのは12pxから。正しく描画されるのは17pxから。 ただし、かなりサブピクセルレンダリングに頼っているため、綺麗な線になるのは40pxを超えてから。

日常的に目にする人は一部の属性を持つ人に限られると思うが、縦線が多く、横幅を必要とする要素もある。

艦 10px
艦 11px
艦 12px
艦 13px
艦 14px
艦 15px
艦 16px
艦 17px
艦 18px
艦 19px
艦 20px
艦 21px
艦 22px
艦 23px
艦 24px
艦 25px
艦 26px
艦 27px
艦 28px
艦 29px
艦 30px
艦 31px
艦 32px

文脈があれば読めるが、12pxにならないと造形からの推測は難しい。 12pxで読めなくはない。

正しく描画されるのは20pxからだが、だいぶもやもや。「舟」斜め要素が厳しいため、27pxまではもやもやしている。

本節の結論

  • 10pxでもサブピクセルレンダリングの力で文脈次第で読める傾向ではある
  • 12〜14pxで文脈なしに文字を推測できるようになってくる。
  • 脳による補完に頼らずに読めるようになってくるのは18〜24px程度必要

物理サイズとフォントサイズ

以上を踏まえると、文字表現に最低限欲しいドットは18pxと考えられる。

フォントサイズを12〜14px程度にすると仮定すると、ドットバイドットでは文字が表現しきれず、2xスケーリングが欲しい。 つまり、4kにすると効果は覿面、というわけだ。

18pxは1.25、14〜16pxは1.5スケーリングで足りうる。 1.25はWQHDでもFHDよりも広くなる。1.5はWQHDだとFHDより狭くなるが、4kならば領域拡大と密度増加を両立できる。

そもそもUIやウェブのフォントサイズは英語を基準に決められているため、日本語で使われる漢字を表現するにはドットが足りていない。 日本語を表現する上では最低でも18px、できれば24px欲しいわけだが、かつてはディスプレイのピクセルそのものが少なく、なるべく多くの文字を表示するために文字サイズを下げたいという欲求もあった。

だが、現代では最低でもFHDの解像度があり、ディスプレイサイズもそれなりに大きくなっているため、別にフォントサイズそのものを24pxにしても問題はないはずだ。 なんなら、それくらいのサイズにしたほうが読みやすいとも思うが、現実にはもっと小さい物理サイズが好まれる傾向ではある。 (ディスプレイに目を近づけてでも!)

とはいえ、23.6インチのディスプレイで24pxを確保すると6.65mmのサイズになってしまうから、大きいという気持ちはわかる。

英語圏の人からすれば24インチでFHDか4kかなんて実用上は大差ないのかもしれないが、日本語にとってはものすごく大きい。 24インチで24pxを確保したときに3.3mm程度に収まるのだから。

ちなみに、日本語の文書で一般的な印刷文字のサイズである10.5ptは約3.7mmで、24インチで4kドットバイドットでの24px(=2xスケーリングでの12px)に近い。

50〜70cm程度の距離で読みやすい文字サイズとしては3〜4mmあたりになるようで、その物理サイズで24px以上を確保しようとするとやはり4kが欲しい。

24インチWQHDで24pxを確保すると5mmくらいになってしまうため、文字表示の都合を考えると4kが良い。 24インチWQHDで適当な物理サイズを優先する場合は18px程度になる。

デスクトップで使うディスプレイサイズでは、FHDは日本語を表示するのに適していない。

なお、13.3インチラップトップの場合はFHDでもピクセルサイズは27インチの4k並であり、適当な物理サイズとフォントサイズを両立できる。 ただし、当然ながら物理サイズが小さいので画面上に表示できる文字が少なく、文字でスペースが圧迫されるという問題はある。

ディスプレイサイズと解像度

ではここで改めてdpiを算出してみよう。 目との距離にもよるが、仮に70cmの距離だとすると、100dpiはかなりドット感を感じ、150dpiでドット感はそんなに目立たないと感じる。 200dpiでディスプレイに平坦さを感じはじめ、300dpiに達すればドット感をほとんど感じなくなる。

別の視点でざっくり言えば、100dpiあたりが前世代的な普通であり、90dpiを下回ってくると粗いと感じるようになり、150dpiに近づくと高密度であると感じられるようになってくる。 このことから100dpiを基準として、できるだけ150dpiに近づけたいというのが現代的な感覚ということだ。

サイズ 縦実寸 FHD(1080) WQHD(1440) 4k(2160)
23.6 299 91 122 183
27 336 81 108 163
31.5 392 70 93 140
42 530 51 69 103

こうして見ると27インチくらいある大きめのディスプレイでFHDというのは結構厳しい。なので、WQHDにしたいように思う。 そして、4kにすれば32インチくらいまでそこまでドットが気にならないなめらかなディスプレイが得られる。 4kにする価値はそれなりにあると読み取れるだろう。

しかし、これが2倍になればさぞ綺麗だろうが、綺麗であるという話にとどまる。 42インチだと103dpiだが、42インチはそんなに接近して見られるようなものではないため、4kでドット感を感じるということもない。 これが60インチなどになってくると、8kの価値を感じるようになってくるかもしれないが、PCのディスプレイとしては60インチというサイズ自体があまり実用的なものではないだろう。

一方、非常に高密度な表示になっているのがスマートフォンだ。 近年のディスプレイのグレードの高いスマートフォンで「文字描画が崩れている」と感じることはまずないだろう。

私が使っているスマートフォンはデフォルト文字サイズの状態で13pxでおよそ28文字を表示できる。 横方向のピクセル数は1440であり、スケーリング比は4だと考えられる。 よって、13pxの文字を実際には52px使って描画している。

これくらいになればかなり自然に見え、負担は非常に少ない。 が、52pxの文字で足りるのなら、26pxの2xスケーリングでも足りるということ。 文字はだいぶ大きめになってしまうが、4kディスプレイであればそれくらいあっても良い。

が、では仮に4kが8kになり、13px表示のままで2xスケーリングができたとする。 が、それはつまり、4kのドットバイドットでの13pxと同一サイズということになり、めちゃくちゃ小さい。

なら、13pxの2xスケーリングを4xスケーリングにするために8kにするというのはどうだろうか。 26pxという文字サイズは十分に大きく、スマホほど美しい表示ではないにせよ、可読性に問題はない。そのため、これが52pxになっても美しくはなるが、判読のための脳の負担が軽減される度合いは、13→26pxとは比較にならないほど小さい。

結局、FHD→4kのように明らかなメリットを感じるようなものではない4k→8kを選択する価値は、相当微妙。 世の中が8kに移っていくかはだいぶ怪しいところだ。

じゃあFHD→WQHD、あるいは4kはどうだろうか。

前述のように27インチクラスのディスプレイだと、FHDはだいぶ粗い。 逆に、24インチならFHDでも「足りてない」感は少ない。 画面密度の観点から言えば、21.5インチや24インチであればFHDで妥協することも考えられ、27インチにするのであればWQHDや4kにすると体験の大きな改善が得られる。

32インチになるとWQHDでも不足気味で4kを考えたい。 実際、WQHD液晶は大部分が27インチであり、27インチWQHDはバランスのとれた選択と言える。

視角

各ディスプレイの横実寸と距離から視角を算出する。 ここでは横実寸を扱うため、湾曲ディスプレイは少し有利になる。 しかし実際は湾曲ディスプレイの場合はそもそも端が人の方向を向いているため、この値以上の効果がある。

なお、最近の狭縁ディスプレイは物理的なベゼルの内側に実際には描画されない黒い領域がある。 ここの実寸では、この領域を除外した描画領域のみを対象とする。

サイズ 湾曲 横実寸 20cm 30cm 40cm 50cm 70cm 80cm 1m
23.6 1500R 51.5cm 104.3 81.3 65.5 54.5 40.4 35.7 28.9
27 - 59.7cm 112.4 89.7 73.5 61.7 46.2 40.9 33.2
31.5 - 69.9cm 120.4 98.7 82.3 69.9 53.1 47.2 38.5
34 (21:9) 1800R 79.0cm 126.3 105.6 89.3 76.6 58.9 52.6 43.1
42 - 93.8cm 133.8 114.8 99.1 86.3 67.6 60.8 50.3

ここで考慮すべきは視野角もあるが、そもそも文字を読むときは「見えている範囲」よりもずっと狭い範囲に強くフォーカスせざるを得ない。

その上であまりにも範囲が広いと眼球の移動量が増えて負担が大きくなる。 大きければ良いわけではなく、再現なく大きくできるわけでもなく、視点距離に応じた好ましいサイズがあるという話だ。

本記事検討内容における結論

  • 日本語表示の上ではデスクトップディスプレイのFHDはピクセル不足
  • 日本語にとって4kは明確なメリットがある
  • フォントは実ピクセル24px以上、実寸法3〜4mm程度が望ましい
  • 漢字のことを抜きにすれば24インチまではFHDでも実用的
  • モバイルラップトップは基本的にFHDで足りている
  • 27インチWQHDはバランスの良いディスプレイ
  • 4kはあって損なし
  • 32インチは4k欲しい
  • 4k→8kは大きなメリットを見出し難い
    • PCディスプレイでは8kの嬉しい要素が非常に限られているので、普及しないのではないか?