PC Screen Fontとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > PC Screen Fontの意味・解説 

PC Screen Font

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/04/13 08:36 UTC 版)

PC Screen Font(PSF)は、現在Linuxカーネルによってコンソールフォントに使用されているビットマップフォント形式である。PSFファイル形式のドキュメントは、Linuxのkbdユーティリティのソースコード内に含まれている[1]

ファイルフォーマット

ファイルヘッダー

すべてのPSFファイルはヘッダーで始まる。ヘッダーにはPSF1とPSF2の2種類が存在する。すべてのマルチバイト整数はリトルエンディアン(下位バイトが先)である。

psf1 ヘッダー
長さ 説明 備考
2 マジックバイト 常に 36 04
1 PSFフォントモード 様々なフォントフラグ。フォントモードを参照。
1 グリフサイズ グリフのサイズ(バイト数)、8ビット符号なし整数。psf1では文字サイズは常にグリフの高さに等しい。
psf2 ヘッダー
長さ 説明 備考
4 マジックバイト 常に 72 b5 4a 86
4 バージョン 32ビット符号なし整数、現在は常に0
4 ヘッダーサイズ 32ビット符号なし整数、ヘッダーのバイトサイズ(通常は32)
4 フラグ 32ビット符号なし整数、フォントフラグを参照
4 グリフ数 32ビット符号なし整数、グリフの総数
4 グリフサイズ 32ビット符号なし整数、1グリフあたりのバイト数
4 高さ 32ビット符号なし整数、各グリフの高さ
4 32ビット符号なし整数、各グリフの幅

すべてのpsf1グリフは幅8ピクセルである。

フォントモード

psf1ヘッダーにおけるフォントモードは、8ビット符号なし整数で、フォントに関する様々なフラグを含んでいる。

フォントモードのビット
値(16進数 名称 意味
0x01 PSF1_MODE512 このビットがセットされている場合、フォントフェイスは512個のグリフを持つ。セットされていない場合、256個のグリフのみとなる
0x02 PSF1_MODEHASTAB このビットがセットされている場合、フォントフェイスはUnicodeテーブルを持つ
0x04 PSF1_MODESEQ PSF1_MODEHASTABと同義

フォントフラグ

psf2ヘッダーにおけるフォントフラグは、32ビット符号なし整数で、フォントに関する様々なフラグを含んでいる。現在は1つのフラグのみが存在する。

フォントフラグのビット
値(16進数) 名称 意味
0x00000001 PSF2_HAS_UNICODE_TABLE このビットがセットされている場合、フォントフェイスはunicodeテーブルを持つ

ファイルビットマップ

実際のグリフデータはヘッダーの直後に続く。各グリフ内の各ビットはフォント内の1ピクセルを表しており、0は未描画、1は描画を示す。各グリフの各行は、バイト単位で揃えられるようにパディングされている。たとえば、12x12フォントでは1行あたり2バイトとなる。12x12のPSFビットマップにおける文字「A」は以下のように表現されることがある。

                         パディング
フォントデータ   |
+----------------+  +--+
000001100000 0000
000011110000 0000
000110011000 0000
001100001100 0000
011000000110 0000
110000000011 0000
111111111111 0000
111111111111 0000
110000000011 0000
110000000011 0000
110000000011 0000
110000000011 0000

12ビット分の実データと、それぞれの行を最も近いバイト単位まで埋めるパディングが含まれている。行は最左列から順に格納される。

Unicodeテーブル

PSFファイルがUnicodeテーブルを含む場合、各グリフはUnicodeテーブル内にエントリを持ち、最初のグリフはテーブルの最初のエントリに、2番目のグリフは2番目のエントリに対応する。Unicodeテーブル内のエントリの形式は、PSFヘッダーの種類によって異なる。

PSF1Unicodeテーブル

PSF1ファイルのUnicodeテーブル内のエントリは、0xffffで終わる16ビットリトルエンディアンの符号なし整数の連続として表される。エントリ内の最初の整数群は、対応するグリフで表現されるUnicode文字を含む。これらのUnicode文字は、整数0xfffeに達するまで続く。その後は、0xfffeから始まり、個別のUnicode文字ではなく、グリフに対応するUnicode文字列を表す整数の連続が記述される。新たな0xfffeが現れるたびに新しい文字列の列が始まり、0xffffに到達するまで続く。たとえば、以下のような16ビットリトルエンディアンの符号なし整数の連続は、次のように解釈される。

0xdead
0xbeef

0xfffe
0x3141
0x5926

0xfffe
0x1234
0x5678

0xffff

U+DEAD、U+BEEF、U+3141 U+5926の列、またはU+1234 U+5678の列が現れた場合には、該当するUnicodeテーブルのエントリに対応するグリフを表示する。

PSF2Unicodeテーブル

PSF2ファイルのUnicodeテーブル内のエントリは、PSF1ファイルとほぼ同様である。ただし、Unicode文字はUTF-8で表され、Unicode文字列の開始は2バイトの0xfffeではなく1バイトの0xfeで示され、Unicodeエントリの終了も2バイトの0xffffではなく1バイトの0xffで示される。

脚注

  1. ^ the Linux Kernel Organization (2007年1月28日). “psf.h”. 2025年4月13日閲覧。



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  PC Screen Fontのページへのリンク

辞書ショートカット

すべての辞書の索引

「PC Screen Font」の関連用語

PC Screen Fontのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PC Screen Fontのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのPC Screen Font (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS