PIC AVR 工作室->TopPage->AVRの工作->カラー化の野望

カラー化の野望 ~千石群雄伝~

これまでのあらすじ

時は千石時代

各国で海千山千の武将達がしのぎを削る、まさに千石時代。一人の武将が苦悩していた…。

「うーん、我が国で採れたこの「スプライト」。白と黒だけで味気が無い…。もう少し艶やかな色に出来ないものか?

武将の名は”猫山タマ虎”。この物語は猫山タマ虎がスプライトの多色化に苦悩する記録である。

第一章

信号の取り決めに悩む

猫山タマ虎は悩んでいた。
「NTSCコンポジット信号でカラーのスプライトを映せないものか?こんな武装で他国から 攻め込まれたら一巻の終わりじゃ!」

そこへ具申する軍師秋月半兵衛
「殿。コンポジット信号を白黒からカラーにするには、カラーバースト信号とカラーサブキャリア信号の 2つが必要になるそうです。カラーバースト信号とサブキャリア信号をこれまでの白黒出力に加える必要があるそうですぞ。」

「よし、早速検討してみようぞ」

猫山タマ虎は検討に入った。

「うーん。水平ブランキング期間のバックポーチにバースト信号を入れて、輝度信号にサブキャリア信号を重畳すれば映像に色が付くのか! ふむふむ。ではバースト信号とサブキャリア信号は、具体的にどうやって作ればいいのじゃ?」

「周波数3.58MHzの正弦波を然るべき電圧で振幅させて、それを輝度信号に足せばいいそうです。そして、厳密な正弦波じゃなくても 周波数が出ていれば良いとのこと。然るに、出力ピンの電圧を適当な抵抗で分圧して、プラス→ゼロ→マイナス→ゼロ、の4つの電圧を順に 出力させればokですぞ。」

「うむ。では、どうやってその周期をつくればよいのじゃ?」

「AVRのクロックに14.318MHzの発振子を使って、1クロック毎プラス→ゼロ→マイナス→ゼロと出力パターンを 切り替えれば良うございます。」

「なるほど。4パターン=4クロックで3.58MHzの正弦波信号になるのじゃな。バースト信号にしても、ドット描画にしても、 必要な時間だけ繰り返せばよいという訳か?」

「御意。」

「ほう、バースト信号は簡単そうじゃな。では輝度信号に重畳させるサブキャリア信号はどうじゃ?白黒は20MHzで1ドット 6クロックだったから、14.318MHzならざっくりした計算では1ドット4クロック程度で正方形に近くなるであろう。 例えば横方向100ドット表示するなら400クロックか?いや、それでは横一列全部が同じ色になってしまう…。 何色のドットを表示すべきか逐次ビデオRAMから読み出す必要があろう。いくらAVRが32個のレジスタを持っているとはいえ、 さすがに1ライン分のカラードット情報すべてをレジスタに格納しておくことも出来んじゃろ。とすれば、やはり各ドットとドットの合間に SRAMからの読み出しの処理が必要となるな…。」

「御意」

「うーむ、とするとそのドットとドットの隙間には一体誰がサブキャリア信号を出力するのじゃ?プラス、ゼロ、マイナスの3つの 出力ビットパターンをSRAMから読み出す命令だけでも最低2×3=6クロック以上必要じゃ!1ドット表示するクロック数よりも ドット間の隙間の方が広いではないか!これでは色付きのドットの右側に、ねずみ色の無意味なバーが表示されてしまうぞ!」

「……殿、申し訳ありません。そこまでは考えておりませんでした…。」

「バカもん!そこへなおれ!打ち首じゃ!  …打ち首はかわいそうだから口の周りに山芋を塗りつけて痒くしてくれるわ!」

「殿、それだけはご勘弁を…。次回までに新たな方法を考えておきますから…。」

突撃、S端子

後日…

「カラーコンポジット信号が複雑怪奇な処理を要するのは、元々RGB3つだった信号を1本に重畳してしまっていることに 原因があるんじゃな?」

「はい。ではY/C分離のS端子ではどうでしょう?」

「よし、ではS端子の国に攻め込むとしようぞ!」

~猫山タマ虎の部隊は、”足立区を除くS端子”の國に攻め込んだ。

「半兵衛!S端子の規格はどのようになっておる? S端子のYは輝度、つまり白黒信号と同じじゃな?ではCは何じゃ?」

「名前どおりカラー成分の信号にございます。カラーコンポジット信号から輝度信号を取り除いたものです。別名サブキャリア信号です。 よって、輝度信号にサブキャリアを足し合わせるとそのままカラーコンポジット信号になります。」

「すると、そのサブキャリア信号というのは例のあの3.58MHzの正弦波か?バカもん!それは作れんと言ったろうに。」

「ははっ…。申し訳ありません、城に帰って山芋頂きます…」

猫山タマ虎の部隊はいいところ無く自国に敗走した。

昔ながらのアレなら…

「殿。サブキャリアが無い信号といえば、真っ先に思いつくのはRGBですぞ。」

「RGBはダメじゃ。今のテレビには21ピンマルチ入力など付いておらんぞ。15KHzのRGBなど時代の遺物じゃ!」

「うーん、それではコンポーネントならいかがでしょう?Y-Cr-Cbの3信号を使い、サブキャリア信号は不要です。」

「あぁ、あのプロ用機器で使用している、あの「輝度」「赤色差」「青色差」の3つの信号じゃな?家庭用テレビで使えるのか?」

「はっ。民生用にはコネクタ形状の違いだけで「D端子」というのがあります。コンポーネントとD端子は形状の 違いだけなので、D端子付きテレビへは変換ケーブル経由で接続すれば表示可能です。日本で売られているテレビにはほとんど D端子が付いております。ですがD端子は日本独自の規格。欧米ではコンポーネントが用いられているようです。 D端子を半田付けするのは大変そうなので、RCA形状のコネクタで出力しておいて、テレビへはコンポーネント-D端子変換ケーブル で接続するとうい作戦はいかがでしょう…。変換ケーブル自体は家電屋さんで普通に手に入ると思いますが、千石なら650円で 売ってます。」

「うーむ、なるほど。…ときにD端子とコンポーネントは本当に物理的な違いだけなのか?」

「厳密には、D端子には拡張仕様が取り込まれております。画面の縦横比を制御する信号です。」

「縦横比を通常の4:3で使う場合においては考慮する必要がないじゃろう。よしよし。で、将来性はどうじゃ?表示器を 作っても映すテレビが無いのでは話にならんぞ。」

「目下なんともいえない微妙な状態です。放送用のコンポジット信号を生成する前段階、つまり映像編集現場ではコンポーネント信号を使わざるを 得ませんので、現在のテレビ放送が続く限りは生き残る規格かと。しかしコンポジット信号自体が地デジの終了で消滅していく可能性もあります。」

「そうか。しかしそうは言っても、地デジが開始されたからと言って今まで市場に出回ったDVDボックスなどが急に使えなくなるって ことはないじゃろ。そんなことになったら、暴動が起こるぞ!」

「は。確かに。既存のソフトが今後何十年も残りつづけることを考えると、信号自体が使えなくなることは当面無いでしょうな。 ただ、デジタル放送が本格化すると民生機も業務機器もデジタル信号がメインになっていくということは気にしておく必要がございましょう。 実際、米国では既に新規発売する機器にHDCP機能搭載のHDMI端子が付いていないと販売が許可されないという話です。」

「うむ、でもそれはコンポーネント端子を搭載してはいけないということを指しているわけではないじゃろ。」

「それに、HDCP信号を含む映像を非対応機器に無理矢理接続すると、その映像はD1相当に強制劣化されるらしいです。 つまり、このD1とは先に話したD端子やコンポジットで扱う信号そのもの。我々が作ろうとしている480i、すなわち 15KHzのコンポーネント信号そのものですぞ。気になるのは、録画・キャプチャーできる機器が限られる点かと。」

「うーん、規格自体はなんとなくしぶとく生き残る気がするな。録画がネックか…まぁ表示ができないわけではないし、 いざとなればデジカメやデジカムでも撮れない事は無いじゃろ。よいよい。では、コンポーネント信号の方針で 検討をしてみようぞ。コンポーネント信号の仕様を詳しく調べて参れ!」

「はっ!」

第二章

古文書よりコンポーネント信号を紐解く

「殿! 古文書を調査した結果の現状をPDFに纏めました!」

まとめ資料(クリックするとPDFファイルを開きます)

「大儀であった。して、このまとめ資料はどのようにしらべたのか?」

「はっ。ご説明申し上げます。RGB信号をコンポジットのYCbCR信号に変換するための情報を纏めた資料です。 ネットで色々調べましたところ、RGBからコンポーネントへの変換式は色々有るのですが、コンポーネント信号と 一口に申しましても、今回所望の様なコンポーネント端子にかかる電圧値の話なのか、それともコンピュータ内で扱う 輝度信号の値なのか、その他色々前提条件によって諸説いろいろあるようで、どの式を以って変換したらよいのやら、という 状況でした。」

「ふむ。」

「しかも、各サイトではその前提が述べられぬまま、式だけがいきなり表記されているという状況です。式はあれども使い方不明…。 で、それらをできるだけ多角的に考察しました結果、やはりCQ出版の 「ビデオ信号の基礎とその操作法」と、 wikipediaの情報それぞれを元に計算してみたところ同じ結果が得られたので、これで大体合っているかと思うのですが…。」

「なるほど。前提事項が色々あってネット上の情報は混沌としているのか。わかった。では、内容を説明してくれ。」

「は。まずPDFの(1)ですが、一般的なデジタルRGB(8色)を表現するための論理値を纏めたものです。 マイコンからRGB信号を出力し、その電圧を演算によってコンポーネント信号のレベルに変換しようという作戦です。」

「ほう。」

「それを、「ビデオ信号の基礎とその操作法」の計算式を元に、YCbCr信号への変換を行った結果が(2)です。 この数値は足し引きだけでRGBに戻すことが出来る数値です。すなわち、一般的にコンピュータ内での演算で扱っている コンポーネント信号の数値そのものというわけです。」

「ふむ。ではこの式を用いればRGBからコンポーネント信号の電圧が算出できるのか?」

「いえ。この式で求まるのはあくまでコンピュータ内部で扱う際の数値です。表をご覧頂けばお分かりの通り、Y、Cb、Crそれぞれの 閾値がバラバラとなるので、このままアナログ電圧として電線上を伝送してしまうと、各信号線が受けるノイズの相対量が マチマチになってしまいます。」

「なるほど…。ではどうすれば?」

「各信号線を通る電圧の閾値をそろえる必要があるわけです。具体的にはY信号は0~0.7Vのレンジに、CbとCr信号は -0.35~+0.35のレンジに調整し、各信号とも電圧の閾値を0.7Vppにそろえます。その結果が(3)の式です。」

「なるほど。この表上の数値が各色の電圧値ということじゃな?」

「御意。さらに、この(3)式は入力が0か1の論理値を前提にしているので、実際は入力値を0Vか5Vの実電圧に換算する必要があります。 さらに、シンクロ信号についても電圧に換算して加味する必要があります。それを加味し、マイコンの出力電圧をYCbCr信号の電圧に 変換するのが(7)及び(8)の式です。そして、この求まった数値をwikipediaの情報と比較したのが(4)です。」

「では、(7)と(8)の違いは?」

「(7)と(8)ではシンクロ信号の論理値が正負逆になっております。使用するオペアンプの増幅率や周辺回路、 使用するプログラムの都合によって、作りやすいほうのどちらを選択しても構いません。」

「なるほどな。これだけ整理されていれば実回路に落とすのはそれほど難しくはないだろう。計算は面倒じゃろうだけど…。 時に、これって抵抗を使った分圧で何とか実現できないかのう?」

「マッチする抵抗値を探すのが極めて困難でしょうね。なにしろ最大電圧0.7Vと最小電圧0.08Vと比が約10倍もあり、 受像機側でそれをRGBに戻す時には加減算するので、ある程度正確な電圧にしておかないと加減算時に誤差が拡大 する恐れがあります。発色が大幅に狂う恐れが…。そして、白黒信号なら輝度1ビット+シンクロ1ビットの計2ビットなので シンプルですが、RGB+シンクロでは4ビットとなり、抵抗の組合せが複雑すぎてどうなることやら…」

「うむ。ではひとまずオペアンプを使って実現することを最優先にして、抵抗の分圧による方法は老後の余生で考えるとしよう。」

計算式を元にオペアンプ周りの回路を設計する

「以上で理論上の計算式は明らかになったわけじゃな。ではマイコンの出力ピンの電圧をカラーコンポーネント信号に 変換するにはどうすればよいのじゃ?」

「は。まずは資料に纏めましたのでこちらをご覧ください。」

まとめ資料、その2(クリックするとPDFファイルを開きます)

「前回の資料に、5ページ目から15ページ目までを追記いたしました。」

「ふむふむ。Y信号、Cb信号、Cr信号それぞれを出力するための回路図と、使用する抵抗値の計算じゃな?」

「は。5V動作のマイコンの出力ピンからオペアンプを通して、然るべき電圧の出力を行うための計算結果です。 回路図上の各抵抗値についてひとまず理論値を計算し、それを実際に店頭に並んでいる抵抗値にフィットするよう 合成抵抗の組合せを選ぶまでのまとめ資料です。」

「では、内容を解説してくれ。」

「は。」

… 続く …