FPGA受託設計開発お受けします。

トップページ > プロダクト > Free IP ( HDTVエンコーダ )

このIPについて

すべてVHDLによって記述しています。特定のデバイスに依存したコードは含みませんので、どのFPGAでも特に問題なく合成可能だと思います(当然ですが、古いデバイスでは速度面で性能を満たさない場合はあります)。

このIPにご興味のある方は、ナビゲーションメニューの「お問合せ」をご参照の上、必要事項を記入してメールにてご連絡ください。FPGA受託設計開発サービスのご利用如何にかかわらず、ソースなどは基本的に無料で開示させて頂きます。もちろんカスタマイズ等のご用命は大歓迎です。

入力のディジタル映像信号フォーマット

ITU-Bt.1120に準拠したY, Pb/Pr 16bitディジタルビデオデータを、SMPTE274Mに準ずる1920x1080アナログ・スキャンニングHDインタレースビデオ信号(いわゆる1080iのD3出力)に変換するHDTVエンコーダを作ってみました。

リセット信号、基準クロック(74.25MHz or 74.25MHz/1001)、および輝度信号データ8bitならびに色差信号Pb/Pr多重データ8bitの合計16bitディジタルデータを入力とし、SMPTE274Mに規定される3値同期信号、ブランキングパルスを所定のタイミングで付加してY, Pb, Prそれぞれ8bitを74.25MHzのクロックレートで出力する回路です。
  入力のITU-Bt.1120準拠のディジタル信号は、ITU-Bt.601ライクなフォーマットであり、アクティブビデオ(有効領域)の開始期間、終了期間、およびVブランキングの領域などの情報を含んだディジタルデータで、本回路ではこれらのタイミングリファレンスを読み取って、基準となるH_counter, およびV_counterを駆動します。

入力ディジタル信号は、映像の1ライン毎に画像有効領域の開始を示すマーカーコード(SAV)と、終了点を示すマーカーコード(EAV)を含んでおり、本回路では1定の周期でこれらのコードを検出します。
  規格の約束事として、8bit(Y, Pb/Prでは16bit)システムの場合にこれらのマーカーコード以外には0xFF, 0を使用しないこととされており、したがってこれらの値が検出された箇所がマーカーの場所になります。

下表はEAV(End active video), SAV(Start active video)のワード構成を示しています。クロック毎に上から4ワード連続してコードが続きます。表のようにY信号、Pb/Pr信号のそれぞれが、マーカーの位置で固有の3bitデータであるFVHを持ちます。Fはフィールド0/1を、Vは垂直のブランキング期間か否かを、そしてHは水平ブランキング期間か否かを規定しています。したがって、検出したFVHからH_counterとV_counterを制御することによってタイミングリファレンスを得ています。



EAV, SAVのビット内容
ワード MSB  6   5   4   3   2   1  LSB
0 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
3 1 F V H P3 P2 P1 P0


本回路ではY信号データから得たFVHを使ってカウンタを制御しています。Pb/Pr信号データから得たFVHは使いません(最初から見ていません)。また、両信号データのP3-P0ビットもチェックしません。入力するディジタルデータに誤りがなく、かつ正しくラッチできれば (そもそも正しいデータが入ってきてそれを正しく受け取れるはずという前提) 問題は生じないはずであると考えます。場合によって、当該機器の開発中のデバッグ用途 (P板の伝送線路) などで、YとPb/Pr別々にP3-P0ビットを使って誤りの検出をしてCPUなどに割り込みをあげる、などという使い方はあると思われます。

以下、図1aはF, Vの値と垂直の各ラインとの関係を示します。また、図1bはライン番号(Vカウンタと同じ)と水平方向のタイミング関係を示します。

F,V各フラグの値と垂直の各ライン番号との関係

図1a

ライン番号と水平方向のタイミング関係

図1b


同期信号のタイミング設計

入力するディジタルデータ列を受けてH_counter, V_counterを制御します。図2は水平方向の同期信号タイミングとH_counterとの関係を表しており、図1bよりやや具体的なイメージとなります。
  同様に、図3はH_counterと同期信号(ブランキング期間)とのタイミング関係を示しています。

HDTV(1080i)信号区間の3値同期信号タイミング

図2

※クリックするとチャートが拡大します

HDTV(1080i)ブランキング区間の3値同期信号タイミング

図3

※クリックするとチャートが拡大します

(同期)信号のレベル設計

図4は信号期間、ならびに同期信号のレベルに関しての設定を表しています。本設計においては、8bitのデータを受け取って同期信号を付加して8bitのD/Aコンバータへと送り出す前提になっており、諧調に関してはやや不利な設定となっています。
  そこで、Yに対してはd'235をこえるオーバーシュート部分(IRE100超の部分)を圧縮しています。具体的には、入力がd'235までの場合は出力をd'254までに対応させますが、入力がd'236からd'254までの場合はd'255にクリップしています。ダイナミックレンジの広いカメラからの信号に対しては少し厳しいかもしれません。
  Yの入力に対しては0.8125倍に圧縮して同期信号を付加します。Pb/Pr入力に対しては、図5に記載するように、2の補数に変換した上で2倍オーバーサンプリングでYとレートをそろえ、0.796875倍に圧縮したのちに再びオフセットバイナリに戻して同期信号を付加します。なお、図5は処理の流れを説明するための図であり、タイミングチャートではありませんので時系列的なデータのクロックシフトは表現していません。

HDTV(1080i)HDTV(1080i)3値同期信号レベル

図4

信号処理の流れ

図5

※クリックするとチャートが拡大します


シリコン上での動作結果

ALTERAのCycloneII EP2C8Q208C8を対象に、QuartusIIを用いて論理合成、フィッティングを行いました。特に何も制約条件を課しませんでしたが、74.25MHzで楽々OKとなりました。動作検証用のハードウェアとして、有限会社ヒューマンデータ様のACM-014Aを使わせていただきました(図6)。構成は図7のとおりで、3ch DAC搭載のマザー基板は当方にて設計しました。


検証装置

図6: 検証装置


同一のシリコン上にBt.1120信号発生回路を構成し、本モジュールへ信号を入れたところ問題なく外部ディスプレーに画像が表示されました(輝度信号のランプと色信号のランプ)。

本IPの構成

図7 本IPの構成(主要なポート以外は記載を省略)


輝度信号のランプ

写真1: 輝度信号のランプ

色信号のランプ

写真2: 色信号のランプ