いまの医用画像はすべてデジタルです。しかし、体を通り抜けてきたX線そのものは連続量で、デジタルではありません。どこかで必ず、連続を飛び飛びの数値に置き換える作業が入ります。
この置き換えは2段階で行われ、それぞれ別のものを決めています。標本化が空間分解能、量子化が濃度分解能です。ここを取り違えた選択肢が、試験では繰り返し出ます。
この記事では、標本化と量子化の意味から、標本化定理とエリアシング、データ量の計算、画像圧縮までをまとめて扱います。前の記事「MTFの測り方」で出てきたナイキスト周波数も、ここで正面から整理します。
デジタル化は2段階:標本化と量子化
標本化は「位置」、量子化は「値」。標本化が空間分解能を、量子化が濃度分解能を決める。
標本化(サンプリング)は、連続した信号を等間隔の位置だけ読み取る操作です。どれくらい細かい間隔で読むかが、そのまま画素の細かさ=空間分解能になります。
量子化は、読み取った値を決まった段階に丸める操作です。何段階まで表せるかが、濃度分解能になります。
この2つは独立です。画素をいくら細かくしても階調が2段階なら白黒の絵にしかなりませんし、階調を 65,536 段階にしても画素が粗ければぼやけた絵のままです。
試験では「濃度分解能を向上させるのはどれか」といった形で、どちらが効くかを問われます。濃度分解能は量子化ビット数、空間分解能は標本化間隔(画素サイズ)。この対応を固定してください。
標本化定理とエリアシング
本当は 1.6 cycles/mm の細かい縞なのに、0.5 mm ごとに読むと 0.4 cycles/mm の別の縞に化ける。これがエリアシング。
標本化の間隔が粗すぎると、細かい縞がまったく別の粗い縞として記録されてしまいます。図の例では、本当は 1.6 cycles/mm の縞なのに、0.5 mm ごと(標本化周波数 fs = 2 cycles/mm)で読んだために、標本点をつなぐと 0.4 cycles/mm の縞に見えています。標本点の値は両者でぴったり一致するので、記録したあとではどちらが本物か区別できません。
これがエリアシング(折り返し)で、画像ではモアレとして現れます。
これを防ぐ条件が標本化定理です。
fs>2fmax⟺fN=2fs>fmax
fs は標本化周波数で、1 mm あたりに何回標本を取るか(cycles/mm)を表します。fmax は記録したい画像に含まれる最高周波数です。つまり、fmax の2倍より細かく標本化する、と覚えます。標本化周波数 fs の半分がナイキスト周波数 fN で、これを超えた成分が折り返してきます。
画素間隔 Δ で言い換えると、
fs=Δ1,fN=2Δ1
画素 100 µm(0.1 mm)なら fN=5 cycles/mm、画素 50 µm なら 10 cycles/mm です。
では、もともと入ってくる信号に高い周波数が含まれていたらどうするか。標本化する前に削ってしまう、というのが答えです。これがアンチエリアシングフィルタで、正体はローパスフィルタです。ナイキスト周波数以上の成分をあらかじめ減衰させておけば、折り返す成分そのものがなくなります。
代償として、画像は少しなまります。これはエリアシングを防ぐための引き換えで、避けられません。
量子化:階調数 = 2 の ビット数 乗
階調数 = 2 の ビット数 乗。段階が粗いと、なだらかな濃度変化が「段々」に見える。逆に 1,024 階調なら 10 bit。
量子化のビット数 n と階調数の関係は単純です。
階調数=2n
| ビット数 | 階調数 |
|---|
| 8 bit | 256 |
| 10 bit | 1,024 |
| 12 bit | 4,096 |
| 16 bit | 65,536 |
逆向きも使えるようにしておきます。「1,024 階調」と言われたら 210 なので 10 bit、「4,096 階調」なら 12 bit です。データ量の計算問題では、この逆算から始まることがよくあります。
段階が粗いと、なだらかな濃度変化が段々に見えます(擬似輪郭)。医用画像で 10〜16 bit が使われるのは、一般的な写真の 8 bit では診断に必要な濃度の違いを表しきれないからです。
データ量の計算
手順はいつも同じ3ステップ。ビットのまま掛けないこと。16 bit = 2 byte と最初に直してしまう。
計算問題は、次の3ステップから外れません。
- 画素数を出す。縦 × 横。視野と画素サイズが与えられていれば、視野÷画素サイズ で1辺の画素数を出す
- 1画素あたりのバイト数を出す。ビット数÷8。端数はバイト単位に切り上げる
- 掛け合わせる。そのあと MB に直す
最大の失点は、ビットのままで掛けてしまうことです。答えがちょうど8倍になるので、選択肢にその値が必ず用意されています。最初に「16 bit = 2 byte」と直してしまうのが確実です。
ステップ2の「切り上げ」にも注意が要ります。1,024 階調は 10 bit ですが、実際のデータはバイト単位で格納されるので、10 bit でも 2 byte を使います。1 byte(8 bit=256階調)では足りないからです。
暗算を速くする関係も2つ覚えておくと有利です。
- 2,048×2,048≒4 M 画素、1,024×1,024≒1 M 画素
- 2 byte/画素なら、容量は画素数の2倍
なお、MB への換算には 1,000,000 バイトとする流儀と 1,024×1,024 バイトとする流儀があり、数%の差が出ます。国家試験は「最も近いのはどれか」という聞き方をするので、選択肢の中から近いものを選べば問題ありません。
画像圧縮:可逆と非可逆
可逆は元どおりに戻せるが圧縮率は低い。非可逆は戻せないが圧縮率は高い。ウィンドウ処理やボケマスクは圧縮ではない。
画像圧縮は2種類に分かれます。
可逆圧縮(ロスレス)は、圧縮前と完全に同じデータに戻せる方式です。ランレングス符号化、ハフマン符号化、JPEG-LS などがこれにあたります。情報を捨てないぶん圧縮率は低く、おおむね 2 : 1 程度にとどまります。診断に使う原画像の保存に向いています。
非可逆圧縮(ロッシー)は、元どおりには戻せない代わりに圧縮率が高い方式です。離散コサイン変換(DCT)を使うのが JPEG、ウェーブレット変換を使うのが JPEG 2000 です。どちらも画像を周波数成分に分解し、人間の目が気づきにくい高周波成分を粗く捨てることでデータ量を減らします。
圧縮しすぎると診断に影響が出るため、医療では圧縮率に注意が必要です。
試験でよく狙われるのは、圧縮ではない処理との区別です。
| 処理 | 正体 | データ量 |
|---|
| 離散コサイン変換・ウェーブレット変換 | 圧縮に使う変換 | 減る |
| ウィンドウ処理 | 階調変換 | 減らない |
| ヒストグラム平坦化 | 階調変換 | 減らない |
| ボケマスク処理(アンシャープマスク) | 鮮鋭化 | 減らない |
| サブトラクション処理 | 画像の引き算 | 減らない |
試験で問われやすいポイント
| 論点 | 覚える形 |
|---|
| 標本化が決めるもの | 空間分解能(画素の細かさ) |
| 量子化が決めるもの | 濃度分解能(階調の段階数) |
| 標本化定理 | fs>2fmax。最高周波数の2倍より細かく |
| ナイキスト周波数 | fN=fs÷2=1÷(2Δ) |
| エリアシング | ナイキスト周波数を超えた成分が折り返す。モアレの原因 |
| アンチエリアシングフィルタ | 標本化の前にナイキスト周波数以上を減衰。ローパス |
| その代償 | 画像は少しなまる |
| 階調数 | 2ビット数。1,024 階調 = 10 bit |
| データ量 | 画素数 × バイト数。16 bit = 2 byte に直してから |
| 切り上げ | 10 bit でも実データは 2 byte |
| 可逆圧縮 | 完全に戻せる。圧縮率は低い |
| 非可逆圧縮 | 戻せない。DCT → JPEG、ウェーブレット → JPEG 2000 |
まとめ
- デジタル化は標本化と量子化の2段階。標本化が空間分解能、量子化が濃度分解能を決める
- 標本化定理は「記録したい最高周波数の2倍より細かく標本化する」。半分がナイキスト周波数
- 超えた成分は消えず折り返す。これがエリアシングで、モアレの原因になる
- アンチエリアシングフィルタはローパスフィルタ。標本化の前にかけ、代償として画像はなまる
- 階調数 = 2 の ビット数 乗。1,024 階調は 10 bit だが、実データは切り上げて 2 byte
- データ量は画素数 × 1画素あたりのバイト数。ビットのまま掛けない
- 圧縮は可逆(戻せる・圧縮率は低い)と非可逆(戻せない・圧縮率は高い)。非可逆の中核が DCT とウェーブレット変換
次は、ここで出てきた「周波数成分に分解する」という考え方を正面から扱います。フーリエ変換と空間フィルタ処理です。
この分野のほかの記事