「何のパターンを出せるか」より、先に「何を疑うか」を決める
テストパターン生成器を作り始めると、カラーバー、格子、円、線対、ゾーンプレートと、増やせる図形が次々に見つかります。しかし、パターン名の一覧を増やしても、映像が崩れたときにどれを使えばよいかは分かりません。
私が先に整理したいのは、図形の種類ではなく観測対象です。色がおかしいなら色の境界を多く含む図、黒や白がおかしいなら段階的な明るさを含む図、細線が消えるなら周波数を変えた線対を選びます。入力画像を「診断したい現象」に合わせて選べるようにすると、処理経路のどこを確認すべきかも絞れます。
ここで扱うパターンは、規格に定められた測定信号を再現することが目的ではありません。自作のRAW入力を用い、RGB/Y'CbCr、色差サブサンプリング、range、bit深度、格納形式の取り違えを見つけやすくするためのものです。
本記事は、映像テストパターン生成器シリーズの導入記事に続く第4回です。前回の第3回では、RAW・PNG・JPEGの役割を分けました。今回は、そのRAWへどのパターンを入力するかを、観測したい崩れから選びます。
観測対象とパターンを対応付ける
この対応は一対一ではありません。たとえばカラーバーでも色差サブサンプリングの影響は見えますし、格子でもアスペクト比と位置ずれを同時に見られます。ここでは「最初に選ぶなら何か」を整理しています。
| 観測対象 | 最初に選ぶパターン | 目立たせたい現象 |
|---|---|---|
| 色・成分順・range | カラーバー、色ブロック | 色相の入れ替わり、黒・白の位置の違和感 |
| 階調・量子化 | グレーステップ、ランプ | 段差、黒つぶれ、白飛び |
| 位置・アスペクト比 | 格子、円、十字 | 等間隔でない、正円が楕円、中心のずれ |
| 細線・色差の解像感 | 線対、ハッチ、斜めエッジ | 線の消失、色にじみ、境界位置のずれ |
| 周波数に応じた崩れ | ゾーンプレート、マルチバースト | 偽模様、場所によって違う解像感 |
最初の一枚を迷わないための五つ
実装には多数のパターンがありますが、最初から全部を並べる必要はありません。原因がまだ広い段階では、次の五つから始めると切り分けの方向を決めやすくなります。
| まず疑うこと | パターン名 | 次に戻る場所 |
|---|---|---|
| 色が明らかに違う | colorbar |
Cb/Crの順、matrix、range |
| 暗部や白が不自然 |
graysteps または grayramp
|
range、量子化、表示時のclip |
| 画像の形・中心が違う |
grid または circles
|
width / height、stride、クロップ、表示アスペクト比 |
| 色だけがにじむ | hatch |
4:2:2 / 4:2:0の色差共有、補間、Cb/Crの格納順 |
| 細かい場所だけが崩れる |
linepairs または zoneplate
|
縮小表示、補間、空間周波数ごとの挙動 |
これは故障を自動判定する表ではありません。表示で違和感を見つけ、次にmanifestの条件、画素プローブ、RAWの格納規則へ戻るための順番です。自然画で「少し変だ」と感じた後に、どの人工パターンで差を拡大するかを決める用途にも使えます。
カラーバーは「色が出るか」だけを見る図ではない
カラーバーは色の名前を確認するための図に見えます。しかし、Y'CbCrへの変換、Cb/Crの取り違え、matrixやrangeの誤りが、広い色面として現れるので、最初の切り分けに向きます。
たとえば赤と青が入れ替わるなら、成分順や色差成分の扱いを疑えます。全体が白っぽい、黒が浮く、白が早く飽和するなら、rangeの扱いを確認します。ただし、カラーバーだけでは「どの画素で、どのbitが違うか」までは分かりません。manifestの条件、RAWのコード値、変換後の表示を順に確認する入口です。
generated にある colorbar や smptebars のプレビューは、この用途のために使えます。ただし、smptebarsは実装上のパターン識別子であり、特定規格への適合を示す名称としては使いません。記事へ実画像を載せるときは、RAWとmanifestを同時に公開できるサンプルだけを選び、画像だけを切り出して「規格のカラーバー」とは呼ばないようにします。
グレーステップとランプは、明るさの扱いを分けて見る
グレーステップは、複数の明るさを段階ごとに置いた図です。段差が潰れていないか、暗部と明部がどこで失われるかを見やすくします。特にlimited rangeをfull rangeとして扱ったり、その逆をしたりしたときは、黒と白の余白や中間段階の見え方が変わります。
ランプは、明るさを連続的に変える図です。ステップでは気付きにくい不連続やバンディングを、帯として見つけるために使えます。
どちらも「表示が滑らかなら正しい」と断定する材料ではありません。表示器の階調、プレビュー時の8bit化、OSやブラウザの色管理も見え方へ影響します。RAWの値を検証するときは、画面上の滑らかさと、ピクセルプローブで読んだコード値を分けて扱います。
格子・円・十字は、色より先に座標の異常を見つける
映像が横に伸びる、縦横比が違う、画像の開始位置がずれるといった問題では、自然画より格子や円が役に立ちます。建物や人の顔では、少しの伸びを見逃すことがありますが、正方形の格子や同心円なら崩れがすぐ見えます。
- 格子では、縦線と横線の間隔が一定かを見ます。
- 円では、本来同じ半径の方向が楕円になっていないかを見ます。
- 十字では、画像の中心と座標系の基準が合っているかを見ます。
この系統は、Y'CbCrかRGBかより前に、幅・高さ・stride・クロップ位置を疑うときに使います。画像が斜めに崩れるなら、1行の開始位置やstrideが違う可能性があります。画像全体が縦長・横長なら、表示側のアスペクト比だけでなく、入力サイズの読み違いも候補になります。
線対・ハッチ・斜めエッジは、サンプリングと補間の差を見つける
線対は、太さや間隔を段階的に変えた白黒線です。どの細かさで線が区別できなくなるかを観察できます。ハッチは規則的な斜線で、方向による違いも含めて見ます。斜めエッジは、輪郭の位置・階段状の見え方・補間の違いを観察しやすい形です。
この三つは、4:4:4/4:2:2/4:2:0のように色差のサンプル密度が変わる条件で特に役立ちます。細い色線や赤青のハッチは、Y'の輪郭は保たれていても色だけがにじむ現象を見つけやすくします。
ただし、白黒の線対だけでは色差サブサンプリングの違いは目立ちません。色差を見たいときは、色の境界を含むハッチや色線を使います。反対に、純粋に輝度方向の解像感を見たいときは、不要な色の情報を入れない線対のほうが判断しやすくなります。
ゾーンプレートは、見栄えのための模様ではない
ゾーンプレートは、中心から外側へ行くほど細かくなる同心円状のパターンです。1枚の画像に低い空間周波数から高い空間周波数までが入るため、処理の場所によって解像感が変わる、偽模様が出る、といった傾向を見つける入口になります。
一方で、結果の読み方は簡単ではありません。縮小表示そのものがモアレを作ることがあり、ブラウザやビューアの補間も影響します。ゾーンプレートで何かが見えたら、そこで結論にせず、同じ周波数帯を線対やハッチで切り出して確認します。
縮小したプレビューは、検証対象ではなく表示側の結果でもある
RawInspector(第6回で扱う自作のWPFビューアー)のプレビューは、画素を新たに作らないよう最近傍で拡大・縮小します。それでも100%未満では、元画像の細かな縞を画面の画素数へ間引くことになります。zoneplateやsweepのように周波数が上がるパターンでは、線が消えるだけでなく、元のRAWには無い模様が見えることがあります。
これはRAWが壊れたという意味ではありません。表示側が細かいパターンを表現し切れなかった結果です。周波数を見るパターンを縮小中に見る場合、RawInspectorでは注意を出します。異常らしい模様を見つけたら、まず等倍以上へ戻し、同じ場所を線対・ハッチ・画素プローブで確かめます。
「画面に見えたもの」をそのまま入力データの異常と呼ばないことも、パターンを選ぶときの条件です。検証ツール自身の表示処理が何を変えるかを把握して初めて、パターンを比較の基準として使えます。
RawInspectorでは、選んでいるパターンが何を見るための絵か、どこを見ればよいかを一覧の下へ出します。サムネイルを眺めて終わらせず、観測対象から次の確認へ進めるためです。パターンの選択理由まで残す必要がある点は、生成側と閲覧側で変わりません。
実サンプルを使うときの最小単位
生成済みサンプルを記事や検証へ使うときも、PNGだけを持ち出さず、RAW・manifest・プレビューを一組にします。サンプルは、video-test-patternsの公開リポジトリ(samples/raw)に置いています。この記事で扱う色差境界の例は、次の3ファイルです(2026年8月18日時点のmaster、コミット 1541a69)。
- hatch_redblue_ycbcr420_8bit_nv12.raw
- hatch_redblue_ycbcr420_8bit_nv12.manifest.json
- hatch_redblue_ycbcr420_8bit_nv12.preview.png
同じパターンをRGB、4:2:0、10bitなどで複数作るときは、見た目が似ていても一つのRAWへ上書きしません。条件ごとにmanifestを残せば、後から「どの違いを比べた画像なのか」を推測しなくて済みます。
ここで扱わないこと
- 解像度・色差・圧縮を数値で採点する測定方法
- 特定の規格テストチャートの再現や規格適合性の判定
- ディスプレイ・カメラ・キャプチャ機器の校正
- パターン単独での故障原因の自動判定
まとめ
- テストパターンは、図形の種類からではなく、見つけたい崩れから選びます。
- カラーバー、階調、格子、線対、ゾーンプレートは、それぞれ得意な観測対象が違います。
- 画面上の見え方だけでなく、manifestの条件とRAWのコード値を組み合わせて確認します。
- 実サンプルはRAW・manifest・プレビューを一組で残し、比較条件を後から追えるようにします。
次の第5回では、色変換、4:4:4/4:2:2/4:2:0へのサブサンプリング、量子化、格納を別の段階として扱い、hatchの色境界がどこで変わるかを確認します。
