ビデオテープを整理していて、「ここで注釈などやその映像の付加情報を一緒に記録したいなぁ」と思うことがよくあります。あまり凝ったことはせずに、単に字幕を入れる程度なら簡単にできそうなので試しにやってみることにしました。要はビデオタイトラーのようなものです。(右の写真は起動時のステータス表示)
まず、重ね合わせる文字色は白色のみとします。これにより色信号の処理を省ける為、アナログ系が極めて単純になります。また、解像度はメモリ構成の容易さと漢字を表示するのに十分な 512x240フルグラフィックとします。
最初はオンスクリーンディスプレイ用ICを使用して簡単に済まそうと思いましたが、任意のグラフィックを表示できる解像度のものが無いのと、何よりアマチュアがそれらのICを入手するのは困難なため、以前使用した CRTC HD6445で外部同期をかけて使おうとしました。しかし、これも常時在庫する店がほとんど無くなってきているので、再現性を確保するために汎用部品だけで組むことにしました。その方がかえって単純になりましたが(^^;。制御方法としては、各種のボードマイコンを接続してメモリアクセスでビデオバッファを書き換える方式にして、汎用性を高めています。
文字をスクロールしたときのチラツキや、書き換え動作が見えないようにビデオバッファを高速に書き換えられることが必要です。しかし、表示アクセスと読み書きアクセスの調停がソフトウェアによるブランキング待ちでは、時間のロスが多すぎるので使えません。そこで、表示アクセスの間をぬって読み書きできるようにして、WAIT信号による調停としました。ただし、書き換えのタイミングを得るために垂直同期信号と奇数/偶数フィールド信号はモニタできるようにします。
入出力信号 | NTSCコンポジット信号(S信号はオプション) |
解像度 | 水平 512ドット、垂直 240ライン、白黒 |
制御I/F | バス接続(メモリアクセス)、WAIT制御あり |
製作費 | 部品代 \6,000 |
組み立ての際に注意すべき点は、高速ディジタル回路とアナログ回路が同居する場合に一般的なことくらいでしょう。特に微妙な所はないので配線の間違いさえ無ければ一発で動作するはずです。また、この回路では PLDを使用していますので、実際に製作する場合、PLDにプログラムできる環境であることが必要です。
VR2はスーパーインポーズの垂直位置を調整します。21ライン目から表示がスタートするように調整します。このときのパルス幅は 1.1ms程度になります。
VR3はスーパーインポーズの水平位置を調整します。ラスタの表示領域からスタートするように調整します。このときのパルス幅は 8〜10μs程度になります。
VR1はスーパーインポーズの明るさを調整します。出力を 75Ωで終端した際に、シンクチップ(同期信号の先端)と文字の間で 1.0Vp-pになるように調整します。
ビデオ信号の表示可能領域いっぱいに表示するようにしているので、TVに表示させるとスーパーインポーズ領域の周辺部が画面からはみ出します。このため、字幕がはみ出さないように描画する必要があります。スーパーインポーズの表示サイズをTVの可視領域に合わせたい場合でも、上下方向のサイズを変えることはできません。VR2で上端を合わせることはできますが。横サイズを変化させて合わせるにはマスタークロックを変えることで可能です。20〜25MHzの範囲で調整して見てください(クロックを上げると左右のサイズが縮む)。
この回路ではPLLを使用せず、ドットクロックは固定クロックとしています。このため、水平同期信号による同期化の際に50ns程度のジッタが発生します。これは水平期間の 1/1300程度となり、普通に見る分には気になりませんが、よく見ると縦線の部分で線が僅かに乱れているのが認識できます。
白一色の表示なので仕方ありませんが、背景が明るいと文字が見難くなります。ドット出力とマルチプレクサの間に入っているディレイ回路は、文字に陰影を付けて見易くするためのもので、後から追加したものです。垂直方向の影も入れられれば良かったのですが、回路が複雑になるので止めました。最初から2bit/pixelにした方が簡単でしょう。
表示領域は512x240、となります(仕様の通りですが)。このため、ドットの形は正方形にはなりません。例えば、正方形の文字を表示するには24x16フォントを使用することになります。ビデオバッファのサイズは512/8x240で16KバイトとなりメモリICを半分しか使っていません。ビデオメモリの1ビットが1ドットに対応し、64バイトで1ラインです。
垂直方向の解像度が240ラインとやや低い。偶数/奇数フィールドに関係なく同じものを表示しているので仕方ないことです。しかし、LM1881NのODD/EVEN出力を表示アドレスの一部として使用する(反転して水平アドレスカウンタと垂直アドレスカウンタの間に挿入)ことにより解像度を 512x480とすることは容易です。この場合、メモリICの容量をフルに使用することになります。
全て汎用部品のみを使用しているので、特に入手難なものはないでしょう。秋葉を一巡すれば揃うものばかりです。ビデオバッファに使用している高速SRAMは入手しにくいでしょうけど、これはキャッシュメモリ(45ns以下)を使用するとよいです。
メインの回路図│S-VIDEO接続アダプタ│I/Fタイミング│PLDソースファイル│KL5C8012との接続例│HD64180との接続例│V25との接続例│ISAとの接続例│LPTポートとの接続例