‘同期信号’ カテゴリーのアーカイブ

PC-6001 SCREEN MODE4 の色滲みを調べる

2014年10月31日 金曜日

別サイトへのリンクですが、PC-6001の色のにじみ現象とはなんなのか、とことん調べてみました。NTSCで色が出る仕組みや、AppleIIの発色方法などの参考にも。

PC-6001 SCREEN MODE4 の色滲みを調べる

色滲み

映像信号を測る / ギャプラス基板

2012年4月10日 火曜日

JAMMA規格がない頃の基板ですね。

1フレーム分の同期信号がこちら。

ギャプラス基板同期信号

ミスタードリラー2基板との大きな違いは、垂直同期信号が出力されている間は水平同期信号が出ていないということでしょうか。それから同期信号のレベルが基板出力の段階でTTLでHiが+5Vになっています。

垂直同期期間は16.499us~16.5000usでした。周波数にすると60.6060…Hzです。この時期のナムコ基板はこの映像周波数のゲームが多かったようです。

さて、ここまで色々な同期信号をみてきましたが、他に気になる基板は垂直走査周波数が55HzのIREM系でしょうか。表示領域の走査線本数が256本で一般的な240本よりも多めです。ただ、測定するまでもなく、イメージファイトの取扱説明書には映像信号のタイミングが細かく記載されています。
あとは、残念ながら所有していないのですが、映像コンバータを使うと画像がゆがむ事で有名(?)なグラディウスIIの映像信号もいつかはみてみたいですね。

映像信号を測る / ミスタードリラー2基板

2012年4月10日 火曜日

ミスタードリラー2基板の映像信号をオシロで眺めてみました。古いゲーム基板は、最近の液晶モニタだと映らないとか各種コンバータを通すと映像がおかしくなるとか録画できないとか言われるように、基板によって映像信号が異なります。電圧レベルだけでなく同期期間もバラバラなのですが、一昔前のブラウン管モニタ側も厳密ではない映像信号をそれなりに表示してくれましたし、モニタ側で表示状態を調整することができたので、それほどには問題になりませんでした。

ミスタードリラー2は2000年7月に発売された基板です。JAMMA VIDEO規格 第三版[PDF]の改訂発行日よりも後に発売ということになりますから、映像信号はJAMMA VIDEO規格から大きく外れてないんじゃないかなと思うのですが、さてどうでしょう。

今回はミスタードリラー2のテストモードを表示したままでの測定です(一応、ゲーム中でも同期信号に変化が無いことは確認しました)。

ミスタードリラー2の映像同期信号は複合同期です。垂直同期信号と水平同期信号が1つの信号線から出ています。水平同期信号が規則的に並んでいる中に垂直同期信号が垂直走査周波数の間隔で入ってくるような波形になります。垂直同期信号部分を拡大したものがこちらの画像です。

ミスタードリラー2同期信号

水平同期信号(水平同期パルス)の間隔1つ分が水平映像信号1本分の時間になります。垂直同期信号は走査線3本分の幅があり、その前後に垂直同期信号と同じ幅の等価パルスがあります(画像では左側の前等価パルスが見切れてしまっています)。同期信号だけみるとNTSCやコンポジット映像信号と同じです。
JAMMA VIDEO規格では映像信号の出力レベルはTTLレベルでHiレベル電圧は2.4Vから5.0Vの間となっています。画像をみると、ミスタードリラー2基板では、2.2Vくらいなので足りていないのですが、測定時につないでいる機器の影響を受けたのかもしれません。

普段、基板で遊ぶ時は自宅にあるSHARPのCZ-600DEというブラウン管モニタを使っています。これはアナログRGB対応モニタなのですが、垂直同期・水平同期が分離している信号しか扱えないので、アーケード基板のような複合同期信号の映像を映すことができません。そのため、複合同期信号を垂直同期信号と水平同期信号に分離しています。信号の分離には、LM1881NというICを使っています。秋月電気通商の通販ページにLM1881NのデータシートPDFがあり、これをみるとどのように映像信号が分離されるのかわかります。LM1881Nは複合同期信号を垂直同期信号と水平同期信号に分離するICと説明されていますし、私もそう思っていましたが、PDFをみると、コンポジット映像信号からコンポジット同期信号(複合同期信号)と垂直同期信号を取り出すICのようですね。

せっかくなので、LM1881Nで分離された2つの同期信号もみてみました。

LM1881N全体

赤い線が垂直同期信号、青い線が水平同期信号です。2つの信号レベル同じで重なってしまうので、垂直同期信号側のレンジを倍にしてあります。垂直同期信号を拡大したものがこちらです。

LM1881N VSYNC

よくみると、赤い線の垂直同期信号の開始タイミング(立ち下がり)と、元の複合同期信号に含まれる垂直同期信号の開始タイミングにズレがあるのがわかります。LM1881Nは複合同期信号内の垂直同期信号を検出してから、垂直同期信号を分離出力し始めるので、その検出時間分だけのズレがおきるのですね。この時間は水平映像信号の長さの半分になるので、LM1881Nを使うと走査線0.5本分の時間だけ垂直同期タイミングがズレることになりますが、ものすごく短い時間ですし、水平同期信号は変わらないのでモニタに出力される内容に変化はないはずです。
ちなみに、垂直同期信号の幅はLM1881Nのデータシートに記載されていて約230usとなっていますから、元の垂直同期信号の幅とは関係なく固定のようです。

同期信号と一緒にRedの映像信号もみてみました。本来、RGB映像信号はAC結合なのですが受け側に使う手元にコンデンサが無かったので波形をざっと眺める程度ということで。

Red映像信号

ミスタードリラー2は、テストモードからゲームの設定を変更できますが、設定の中に表示モードの変更というものがあり、インタレースとノンインタレースの切り替えが出来るようになっています。これまでの波形は全てノンインタレースのものでしたが、インタレース表示に切り替えると波形がどうなるのかみてみました。

インタレース表示

NTSCと同じように、フィールド毎に水平映像0.5本分だけタイミングがずれるのがわかります。ただ、垂直同期毎にトリガーをかけて連続してデータを取り込んでみると、このズレた信号が交互に出てこないことが頻繁に起きています。オシロのトリガーにひっかからない場合があるのかな、よくわかりません。

ノンインタレース時の水平同期期間は約63.553usでした。15.734KHzくらいです。水平同期期間を測るには手持ちのオシロの帯域幅の限界もあって、残念ながら細かいところまでは測定できません。

垂直同期期間はノンインタレース時が約16.715msでした。59.82Hzくらいでしょうか。インタレース表示に切り替えると垂直同期期間が変化して約16.682ms、約59.94Hzでした。
この59.82HzをGoogle検索してみると、PlayStation2エミュレータとして有名なPcsx2のソースコードがひっかかります。、これによると、PlayStation2のノンインタレース表示は59.82Hzとコメントされています。また、PlayStation2のインタレース表示時は59.94Hzになるようで、先ほどの測定結果と同じです。ミスタードリラー2基板はPlayStation互換のシステム基板でGPUには後期のPlayStation(9000)と同じCXD8561CQが使われているようですから、フレームレートからもハードの関係性がちょっとだけ見えてきますね。

映像信号を測る / PC-8801FA

2012年4月4日 水曜日

(前置き:※PC-8800シリーズはバリエーション豊富なので機種毎に値が違う可能性があります。マニュアルにタイミングチャートが記載されているのかもしれませんが所有していません。私はPC-8801について詳しくなく、細かい仕様はよくわかっていません)

PC-8801FAはアナログRGBがD-SUB15ピンとして出力されていて、垂直同期信号と水平同期信号が別々になっています。測定はV2MODE,CPU速度4MHz,本体背面にあるモニタ解像度切り替えスイッチは15KHzに設定しました。ディスクを入れずに電源投入してしばらくするとHow Many Files?の表示になるので、この状態で放置しての測定です。

まずは垂直同期期間です。
15KHz Vsync

垂直同期期間は約16.003ms、測定時の有効数字でみると16.00msでした。最初から不安になる数字です。というのも周波数で表記すると62.5Hzです。一般的な60Hzという数値よりも離れています。
Enri’s Home PAGE (PC-8001)さんのページでは、PC-8001の垂直走査周波数が60Hz、Diary on windさんのページではPC-8801は61.226Hzと表記されています。
60Hzだと想定しているものに対して2.5Hzの差があるとなると結構大きいです。1秒間ごとに2.5回だけ画面更新のズレが生じますから25秒後には1秒分の画面のズレが起きることになります。PC-8801は垂直同期割り込みがあるので、割り込みでタイミングを取っているソフトで影響が出ますね。
これが本体の個体差によるものなのか、8800シリーズの種別による違いなのか、私の測定ミスなのかはわかりません。

続いて水平同期期間です。
8801FA水平同期期間

約62.465usでした。16.01KHzくらいでしょうか。これだと水平走査周波数が15KHzというよりも16KHzになってしまうので、測定時の誤差によるもの、もしくは、先の垂直走査周波数の事も考えると、測定に用いた8801FA内の水晶発振器にズレが出ているのかもしれません。

同期信号は負論理でTTLレベルです。水平同期信号のパルス幅は4.48us、垂直同期信号のパルス幅は499.86μsでした。

水平同期信号と垂直同期信号を並べたものがこちらです。
8801FA水平垂直同期信号 8801FA水平垂直同期信号拡大

青いラインが垂直同期信号、赤いラインが水平同期信号です。最初の画像では、水平同期信号の電圧レンジを変えてあります。垂直同期信号の同期パルス部分を拡大したのが2枚目の画像です。
1回の垂直同期信号期間は、約8本分の映像信号の期間と同じなのですが、よくみると2つの同期信号の立ち下がりタイミングにズレがあり、約11.8usほどでした。

今回は同期信号だけでなく、映像信号もみてみました。ただ、手持ちのオシロが2chなのでRGBのいずれかと同期信号のどちらかしかみれませんから、Redと水同期信号の組み合わせです。映像信号の受け方がわからなかったので、とりあえず75Ωの抵抗を使っています。
BASICからpaint(0,0),2:console,,0を実行してファンクションキーを非表示にして画面を赤一色にしています。(カーソルはどうやって消すんだろう…)

8801FA赤色のみ

Redの映像信号に水平同期信号のノイズが乗ってしまっているのは、両信号のGNDをまとめてしまったからかもしれません(PC-8801のRGB映像信号にはRGBそれぞれにGNDがあります)。
Redの映像信号が最大になっている期間、つまり赤い映像が表示されている期間は44.59us、水平同期信号の立ち上がりから赤の表示開始までは9.067us、赤の表示終了から水平同期信号の立ち下がりまでは4.53usでした。水平同期信号のパルス幅4.48usを加えると一本分の水平期間で62.667usになります。先ほどの水平期間の測定値62.465usとはちょっと計算がずれてしまいましたが、62.667usは15.957KHzですから、なんとか水平周波数15KHzといえる値に収まります。先の16.01KHzとの差が気になるのですが、0.1us単位での誤差なので判断が難しいところです。もっと厳密に調べないとダメですね。

ついでといってはなんですが、赤一色の状態だけではなんですから、縦線を1ドット毎に描いてみました。赤と黒が交互に表示されている縞模様です。BASICでCLS3:FOR X=0 TO 639 STEP 2:LINE(X,0)-(x,199),2:NEXTを実行しています。8801 BASICの座標範囲が0-639なのか1-640なのか知らないのですが雰囲気で。

8801FA赤縞模様 8801FA赤縞模様拡大

1枚目の画像を拡大したものが2枚目で、赤の映像信号がアナログ的に時間変化しているのがわかります。

15KHzモードでの測定は以上ですが、PC-8801FAには、V1MODEへの切り替えスイッチ以外にCPUを8MHzで動作させるためのスイッチがあるので切り替えて測定してみたところ、2つのスイッチをどのように切り替えても映像同期信号に変化はありませんでした。

さて、PC-8801FAは背面の切り替えスイッチで映像信号を24KHzにすることが出来るので併せて測定してみました。ざっとまとめると、垂直同期期間が約18.05ms(55.4Hz)、垂直同期期間が約40.35us(24.78KHz)でした。
15KHzと24KHzでは垂直走査周波数が5Hzほど違うので垂直同期割り込みでタイミングをとっているゲームでは影響がありそうなのですが、どうしていたんだろう・・・。プログラム側から強制的に15KHzにすることが出来たのか、それとも24KHzだと速度が変わっちゃったりしたのでしょうか。

それから、PC-8801はI/Oポートの50H,51Hあたりを使ってCRTCを操作できるようです。これによって周波数が操作できるかもしれませんが、その辺の事は詳しくないので未調査です。

映像信号を測る / PC Engine DUO-R コンポジット信号編

2012年3月15日 木曜日

映像信号を測る / 初代メガドライブ コンポジット信号編に引き続き、今回はPC Engineです。CとEの間に-が入らない方です。

いつものように独自調査なので無保証です。測定に用いたPC EngineはDUO-Rで、RGB化改造を施しているため、その影響がコンポジット信号に出ている可能性があります。

測定値を出す前にこれまでの補足です。色々と映像信号について調べていて気になった情報があったのでリンクします。まず、映像タイムベース測定法によると…

カラーバーストの位相は1本ごと180度反転するのが正式です。(ファミコンは反転している)
メガドライブでは反転させると画面がぎらつく為、反転させずに設計されました。(PCエンジン、MSXも同様)その結果NEC製のデジタルテレビで色が出なくなりました。
サターンでは反転させています。

という記述があります。「カラーバーストの位相が反転する事自体は知っていて、気にしてこなかったのですが、反転させていないハードがあるとまでは考えていませんでした。その辺も見ておけばよかったですね。

また、PCE 互換機の開発メモの画面表示の詳細に興味深い情報があり、PC Eingineはラインによって黒の色味が違うようなのですね。表示されない領域の色の話なのですが、信号をよくみていないと気がつかない点です。
ゲーム機によって映像の黒レベルがどう違うのか(海外ゲーム機ではセットアップも変えてあるのか)は気になるところなので、機会があれば調べたいところです。ただ、そこまで調べるのも大変なので、今のところの方針は映像の周波数を重点的にみたいと思います。

更にもう一点。ゲーム機は色々な描画モードを持っています。モードの変更が映像信号にも出るでしょうから、ここでの測定値は常に一定ではないと思います。例えば、あるモードでは垂直周波数59.94Hzで動作しているけど、描画モードを変更したら59.8Hzになる、という可能性は充分にありえると思います。

さて本編。測定は、DUO-R起動後のSTART待ち画面と音楽CD再生画面、それからたまたま手元にあったラプラスの魔の名前入力画面の3つを何回か測定して平均値を出しています。
まずは水平映像信号です。

PCE水平映像信号

PCE水平映像信号

水平同期の期間は平均すると63.55μsで、15.73HzというNTSCの規定値です。ごくごくたまに、63.8μsみたいな値を拾うことがあり、その辺を入れて平均を出すと規定から大きく外れてしまうので、こういう測定は平均を求めるより、ばらつき具合の集計を取った方がいいのかな。

続いて垂直同期の期間です。一画面分の波形をみてもゴチャゴチャしてるだけなので画像はありません。16.71μsで、59.82Hzでした。59.94Hzからちょっと外れているように見えます。Googleで59.8Hzを検索してみたところ、PC EngineエミュレータのOotakeでは垂直同期を59.8Hzとしているという記述がありました。なんというこだわりっぷり。ステキです。
また、59.82Hzをキーワードに検索してみると、PS2のノンインタレース時の周波数だったり(インタレースだと59.94Hz)、NintendoDSの液晶表示の周波数だったりと興味深いです。NDSのGBAモードとGameBoyMicroで垂直同期が違うというのは始めて知りました。[参考:http://www.pat.hi-ho.ne.jp/sata68/200601.html#31]

59.94Hzと59.82Hzの差は0.12Hzです。59.94Hzの映像機器で59.82Hzのソフトを動かした場合、まぁ要するにエミュレータとかのその辺の事ですけど、1秒間に0.12フレームのズレが生じるということは約8.3秒毎に1フレのズレが生じるので、調整しないと音と合わなくなりますよね。

垂直同期信号周辺の拡大波形はこちら。

PCE 垂直同期信号

PCE 垂直同期信号


等価パルスと垂直同期信号に切り込みパルスがないのですが、ノンインタレース表示ではフィールドの識別は不要なので、無くても構わないのですね。

PC Engineの映像波形は部分的に拡大してもオーバーシュート/アンダーシュートが小さくてパッキリとした綺麗な波形でした(コンポジットなので映像が綺麗かどうかは別ですが)。

映像信号を測る / 初代メガドライブ コンポジット信号編

2012年3月13日 火曜日

メガドライブのコンポジット出力をデジタルオシロで測定してみました。いつものことですが、独自の研究によるものなので無保証ということで。メガドライブは世代によってハードウェアの構成に違いがあるそうです。私の手元の本体がどのバージョンなのかはわからないです。

測定はソニックザヘッジホッグのゲーム中画面を一時停止したものです。画面写真はこんな感じ。ソニックってゲーム中は画面に青い縁がついているんですね。気にしたことありませんでした。

ソニックザヘッジホッグデジカメ

まずは垂直映像信号です。

MD SONIC 水平映像

同期信号間の時間を何回か測って平均してみたところ、63.68μsでした。逆数を取ると15.70kHzです。NTSCの仕様とはちょっと違いますが1μ秒以下の差ですね。

続いて一画面分の映像信号です。

MDSONIC 垂直同期

画像は荒いですが、データ自体はそこそこ細かくサンプリングしています。垂直同期の間隔を何度か測定して平均してみたところ、16.689μsで59.92Hzでした。NTSCの59.94Hzからちょっとだけずれてるのかな?

変わっているところとしては、等価パルスにカラーバースト信号が乗っていました。等価パルスにカラーバースト信号を乗せる必要もなければ、むしろ乗せてしまって大丈夫なの?という感じはしますが、メガドラをつないで映らないテレビなんて聞いたことがないのでいいのでしょう。

MDSONIC カラーバースト信号

ところで、最初にソニックを実機で動かしている時の写真をアップしましたが、画面の縁に青い枠がついるんですよね。他のソフトを起動してみると黒だったり白だったり変化するのですが、メガドラってBGやスプライトの表示領域の外側に縁色を指定することができるんでしょうか?オーバースキャンエリアとして本来は映らない箇所なのかもしれませんが、これも映像信号としてオシロで確認できるんですよという例がこちらです。

MDSONIC最上位段ライン

MDSONIC最上位段ライン

画面上部に11本分?のベタな色の信号があることがわかります。本当に11本なのか気になったので、だったら11本の線が出ているのか走査線を数えてみればいいじゃん、というわけでメガドラをブラウン管テレビに接続してデジカメで画面を撮影してみました。ブラウン管だと走査線がちゃんとみえるんですよね。ビデオキャプチャ機器で画像として取り込む手もありますが、ブラウン管の方が変わった映像信号に対して融通が利くので便利です。

メガドラ画面上部走査線

メガドラ画面上部走査線

目がチカチカしますが数えてみると、縦方向に11個のドットが並んでいるのが確認できます。また、オシロの波形を観た時に①の箇所に謎の線が出ていて何かわからなかったのですが、この写真をみてもわかるように、右上にちょっとだけ青い線が出ているのです。メガドラのVDPはこの辺から描画し始めているのでしょうか。他のソフトでも右上にちょっとだけ縁色が出ていました。
ちなみに、画面右下はラインの途中で描画が止まっていて、その位置が画面上部の描画開始位置と一致していました。

メガドラ画面下部走査線

メガドラ画面下部走査線

もう一つオマケですが、画面左右の縁色がついている箇所も映像信号として確認できます。画面の上の方の水平描画1本分の映像信号です。

画面上部ライン1本分の映像信号

画面上部ライン1本分の映像信号

[追記] 縁の色について@onda_toさんから教えてもらいました。パレットのどこかの色が出るそうです。そのパレットを変更すると縁の色も変わるそうです。また、画面左下のオーバースキャンエリアあたりに色が変化し続けている箇所があるのですが、パレットがそのまま画面に表示されているそうです。
さらに追記で@naonori_msxさんからも情報を頂きました。

映像信号を測る / HDDレコーダーコンポジット信号編

2012年3月13日 火曜日

前回の“映像信号を測る / XBOX360コンポジット信号編”に引き続き、SONY製のHDDレコーダでカラーバー用DVDを再生している様子をデジタルオシロで測定してみました。

まずは垂直信号です。HDDレコーダのコンポジット出力を75Ωの抵抗ではさんだ箇所を測定しています。

HDDレコーダの水平同期

ライン1本分の描画時間を何回か計測した平均は63.555μs、15.734KHzで、お手本みたいな信号でした。

未だに疑問なのは電圧です。前回、XBOX360のコンポジット出力を測定した時は、0Vから1.0Vの間に収まっていたのですが、今回は約-0.3Vから約0.7Vの間でした。RS-170AのようなNTSC準拠であれば、この電圧範囲は納得なのですが、コンポジット出力の規定がどうなっているのかよくわからないんですよね。1Vp-pであれば、最大電圧はあまり重要ではないのかな?

続いて垂直同期信号の間隔をみてみます。サンプリング数の都合で荒くなります。

HDDレコーダの垂直同期

数回測定して平均を取ったところ、同期信号間の時間は16.68μsでした。逆数をとると59.94Hzという、NTSC仕様通りの綺麗な値になります。機材の扱いに慣れていないので、こんな測定方法でいいのかなぁと思っているのですが、ちゃんと読み取れるものですね。

PC-6001mkIIの映像って上側に寄ってる?

2012年3月12日 月曜日

PC-6001mkIIのビデオ出力端子からテレビに接続すると、表示領域(高さ200ドット分)が上に寄っているように感じます。接続先のテレビによって表示のされ方が違うようなのですが、私が所有しているテレビやハードディスクレコーダに接続した時、上下の黒い余白を比べると、若干ですが上に寄っているようです。

PC-6001mkII取扱説明書の資料7に詳細な画面タイミングが掲載されています。

PC-6001mkIIの画面タイミング

PC-6001mkIIのRGB出力は水平同期と垂直同期が分離しているので、それぞれの信号を取り出すのは簡単ですが、ビデオ出力では1つの信号線で2つの同期信号を正しく取り出せるように信号の流し方を工夫しなければなりません。その辺の説明はNTSCの解説書を読むかGoogle先生に聞くのがよいです。
このタイミングチャートをみると、垂直同期信号(V.SYNC)は3H、つまり水平映像3本分の長さになっています。ここだけみると、NTSCの垂直同期信号に似ていますが、それだけで同期がとれるものではありません。

まず、参考用にSONYのHDDレコーダーからカラーバーの映像を表示してみたものがこちらです。

HDDレコーダでカラーバー再生

NTSCをノンインタレースとしてみると水平解像度が262本(インタレースだと倍になります)です。厳密には0.5本目というのがありますが省略します。そのうちの20本(21本かも)はブランキング期間として画面には映らない信号になりますから、映像としてテレビに映るのは242本です。
DVDビデオはノンインタレースの場合、縦方向には240本の映像信号を持っているので、テレビ上での2本分は使われません。この2本の扱いはDVDプレイヤーによると思いますが、きっと240本の映像領域の上下に各1本分の黒い線を表示してると考えるのが妥当でしょう。
まとめると、DVDに含まれる映像が240本、未使用が2本、ブランキング期間20(21?)本で合計262本の走査線になります。
ブランキング期間20本には垂直方向の同期信号が含まれていて3本分です。また垂直同期信号の前後には各3本の等価パルスというのがあり、合計すると20本中の9本が同期信号として使われることになります。残りの11本は空き時間です。文字放送の情報が入ったり、コピーガード信号が入ったりします。
ブランキング期間20本のあとにテレビに映し出される映像信号が流れます。今回の例だとカラーバー映像です。図に赤い文字で15Hと書いてあるところからが映像信号で、1本目は余りの黒いラインだと思われます。その次の走査線からがカラーバー模様の信号です。信号の後ろの方は測定出来ていませんが、きっと240本分のカラーバー信号が並んでいて、そのあとに余った黒いラインが1本分だけあるはずです。
文字の説明ばかりで書いてる方もわけがわからなくなってきましたが、重要なのは「垂直同期信号から数えて15本目からテレビに映る映像が開始する」ということです。

さて本題のPC-6001mkIIのビデオ出力です。SCREEN3,2,2のあと、カラーコード15(黄色)で画面全体をPAINTした状態です。
mkIIビデオ出力信号

なんでしょうこれ、よくこれで同期がとれるなぁと思いますが、取扱説明書のタイミングチャートの通りです。3本分の同期信号のあと、30本分の空白時間があって、それから200本分の画面が描画されます。200本というのは、PC-6001mkIIの縦方向解像度200ドットからきています。この映像信号がテレビに入力されると、テレビは次のように解釈します。
3本分の垂直同期信号のあと、水平映像15本分を待ってから映像を表示し始めます(本来、この15本の先頭には3本分の等価パルスが必要ですが、PC-6001mkIIは等価パルスを出さないようです)。図の最上段と書かれているところから映像を表示し始めるということです。視覚的には最初の15本は真っ黒で、そのあと黄色のラインが表示されていきます。黄色のラインは200本あるはずですね。PC-6001mkII映像タイミングチャートと照らし合わせると、このあとは29本の空き水平ラインがあるはずです。

テレビの表示領域は242本で、PC-6001mkIIは200本分の表示ですから残り42Hです。最上位段の走査線位置から表示領域開始まで黒い映像が15本分があり、これが画面上部の余白領域になります。黒い場合は余黒とでもいうんでしょうか。
残りは42本-15本=「27本」で、これが画面下部の余白領域になります。比べると下の方が広いですね。これで画面上部の余白が15本、下部の余白が27本ですから、12本の差になります。12本、つまり12ドットですから、スクリーンモード1の文字1個分以上の高さに該当します。いまどきの液晶テレビだと縦方向解像度が広く引き延ばされますから、それだけ表示した時の差が広がっていきます。

まとめ

・・・という考え方で正しいと思うのですが、間違っていたらゴメンナサイということで。

さて、このようなPC-6001mkIIから出力される映像信号でよく同期がとれるなぁ思いますが、実際、私が所有しているPanasonicの液晶テレビではかなりの確率で同期が取れません。その様子をデジカメで納めたものがこちら。

mkII同期合わないよー


スクリーンモード3でカラーバーを描いてあるのですが、常に上へとスクロールしています。横方向にもうねうねしています。
画面の中央にある細くて深い黒色の帯の箇所が垂直同期信号に該当する箇所だと思われます。その前後の黒い箇所の高さ幅はほぼ同じで、これがタイミングチャートの余白部分30H,29Hかなと。この状態でしばらく放置しておくと同期が合うこともあります。
私が所有しているSONY製のHDDレコーダーでは一発で同期が合い、レコーダーからの映像出力を液晶テレビに入れると問題ないので、録画用途も兼ねてレコーダーを経由するようにしています。

ついでに補足しておくと、一般的な家庭用テレビではオーバースキャンにより、映像規格上の領域よりも表示領域が狭くなります。昔のブラウン管は隅っこの方が丸っこくて映像が伸びてしまうので、その箇所にテレビの枠を付けて隠していた・・・と聞いたことがありますが、ホントかどうかは知りません。その名残は今の液晶テレビにもあり、表示領域の縁の部分を画面外に表示するようになっています。Google検索キーワードとしては、「オーバースキャン」「アンダースキャン」です。パソコンで640×480ピクセルをフルに使い切った映像を作成して家庭用テレビ出力すると隅っこの方が表示されない事がありますが、これが原因です。

では、RGB出力だとどうなんだろう、やっぱり上寄りなんだろうか?というのが次の疑問ですが、専用モニタが手元にないため確認できないのでした。

映像信号を測る / XBOX360コンポジット信号編

2012年3月11日 日曜日

ゲーム機の映像同期信号ってよくわからなかったので、じゃあ調べてみればいいじゃんと思い、比較的安価なデジタルオシロスコープを購入したので測定してみました。オシロスコープの扱いに慣れてないのと、映像信号の仕組みがいまいち把握出来ていないので、「間違ってる!」という箇所があったらツッコミお願いします。

まず、Adobe Peremiere Proの素材にあるカラーバーを使って、Adobe EncodeでDVD VIDEO化しました。RGB映像信号を映像信号に置き換えるにはRGB値の範囲の扱いが厄介で、スーパーブラックだとか、0-255なのか16-235なのかとかありますが、その辺は機材から出力される映像信号を見て、その都度判断することにしました。

XBOX360のコンポジット映像信号(黄色ケーブル)をテレビに接続して、先ほど作成したDVD VIDEOをXBOX360で再生してみます。テレビから映像ケーブルを取り外し、映像信号の信号-GND間を75Ωの抵抗で繋げた箇所をデジタルオシロで測定してみました。なぜ75Ωの抵抗を入れたのかというと、実はよくわかっていません。色々な書籍を読むと、NTSCの受け側は75Ωの抵抗を入れると書いてあったので、じゃあ入れてみようかなと。実際に75Ωの抵抗を入れて測定すると映像信号の最大値が1Vに収まるので正しいような気がします。
ちなみになぜXBOX360なのかというと、XBOX360のD端子ケーブルはコンポジット映像端子とセットになっているからです。PS2/3のコンポジットケーブルは購入した時についてきますが、今時なら真っ先に処分するケーブルですよねー。あと、DVDプレイヤーというかハードディスクレコーダも手元にあるのですが、オシロのプローブの当て方をミスって壊しちゃったら悲しいので、ある意味、XBOX360は実験台にされたともいえます。

まずは、水平同期信号から。

XBOX360コンポジット水平映像信号

同期信号の電圧レベルはほぼ0Vで、輝度の高い黄色の映像信号は1Vでした。コンポジット映像信号の電圧幅は0-1Vになるようです。その他の水平同期信号の幅や走査線一本分幅はNTSCの規定値と同じでした。

続いて垂直同期信号ですが、XBOX360はインタレース表示を行うので、2種類のタイミングがあります。まずは最初のフィールドから。奇数ライン側。

XBOX360コンポジット垂直同期信号 奇数ライン

この辺の信号もNTSCの規定と同じでした。垂直同期信号は水平映像3本分の時間幅があり、その間に6本のパルスが含まれています。等価パルス後期間にあるパルスも6個あり、6個目のパルスのあとに次のラインの映像信号が出てくるのですが、その境目をみると奇数ラインなのか偶数ラインなのか判別できます。この画像のように、6個目のパルスの後に続けて次のラインの水平同期信号があるのが奇数側の映像です。

注目点は、等価パルス前期間よりも前にある映像信号です。前のフィールド、つまり1つ前の映像の最下段にあたる偶数ラインの映像信号なのですが、1ライン分の時間幅があることが確認できます(キャプチャ画像だと前の方の同期信号部分が切れてしまっていますが)。

続けて偶数側フィールドの垂直同期信号です。

XBOX360コンポジット垂直同期信号 偶数ライン

等価パルス前期間の前にある信号は、同じ映像の奇数側ラインの最下段の映像信号なのですが、これが0.5H分しかありません。つまり、ラインの途中で映像が途切れているのです。奇数側の最下段は画面の中央で走査をやめているのですね。資料によると「奇数側262本を表示したあとに0.5H分だけ水平走査をする」と書いてあるのですが、これを指しているようです。
また、等価パルス後期間の6個目のパルスの幅が奇数の時とは違います。0.5Hだけ長いので、ここをみることで奇数側なのか偶数側なのかを判別できます。そうすることで、偶数側は画面の中央部分から走査することになります。

こんな感じでXBOX360を壊すこともなく、インタレースなコンポジット信号を見ることができました。

[追記] さっそく調子に乗って他の機器の映像信号を調べてみたのですが、まず、電圧レベルが全然違いました・・・マイナスが普通なの?という感じで、この話はまだまだ続きます。