本ブログは英語版のVideo Series 30 – Understanding Interlaced Videoを翻訳したものです。
インターレース ビデオとプログレッシブ ビデオの違いについて
以前にビデオ シリーズを読んだことがあるなら、「ビデオ初心者シリーズ 16: VTC IP を使用したビデオ タイミングについて」の記事で、プログレッシブ ビデオとインターレース ビデオについて触れたことを覚えていてくださるかもしれません。違いについては後ほどのビデオ シリーズにて説明すると述べたので、今回はこの違いについて説明します。
それでは、プログレッシブ ビデオとインターレース ビデオについて説明します。
プログレッシブ ビデオ (またはノンインターレース) は、ビデオのデフォルト設定です。プログレッシブ ビデオでは、フレームごとにすべてのライン (走行線) のすべてのピクセル値が送信されます。
帯域幅を抑えたい場合は、インターレース ビデオを使用できます。インターレース ビデオでは、半分のラインだけが送信されます。たとえば、あるフレームの奇数ラインのみが転送された後、次のフレームの偶数ラインのみが送信されます。
インターレース ビデオでは、ラインの半分を含んだフレームをフィールドと呼びます。
インターレースのフィールドを作成するために各フレームの半分のラインを送信することを、走査線の間引きと呼びます。ただし、この方法では、色または強度に垂直方向の急激な遷移がある場合にちらつきが発生することがあります。
より優れた方法とされる垂直フィルターでは、複数のプログレッシブ フレームを使用してインターレース フィールドが作成されます。
たとえば、2 つの連続するフレームの最初のラインの平均値を使用して、フィールドの最初のラインを作成できます。
AXI4-Stream でインターレース コンテンツを転送する方法
AXI4-Stream インターフェイスでは、インターレース コンテンツの送信はプログレッシブ コンテンツの送信と類似しています。tuser 信号はフィールドの最初のピクセルに対してアサートされ、tLast 信号はフィールドの最後のピクセルに対してアサートされます。
唯一の違いは fid 信号です。この信号はプログレッシブ ビデオには必要ありません。プログレッシブ ビデオでは 0 に接続する必要があります。fid 信号は、奇数または偶数のフィールドが現在送信されているかどうかを示すために使用されます。このため、この信号はフィールドごとに切り替わります。
インターレース コンテンツをプログレッシブ コンテンツに変換
一部のアプリケーションでは、インターレース ビデオ データをプログレッシブ ビデオに変換する必要があります。この操作は、デインターレースと呼ばれます。
ザイリンクス デバイスでは、Video Processing Subsystem (VPSS) IP を使用してインターレース ビデオをプログレッシブ ビデオに変換できます。
ザイリンクス VPSS IP を使用したデインターレースの例
添付のサンプル デザインでは、Video Processing Subsystem IP がスケーラー専用として設定されています。
このデザインは、「ビデオ シリーズ 28: カラー スペース コンバーター モードでの VPSS IP の使用」に基づいています。
Vivado 2019.1 では、ザイリンクスの Test Pattern Generator を使用してインターレース コンテンツを生成できます。これをインターレース ソースとして使用しています。
ビデオ シリーズ 28 デザインと比較した際のハードウェアの変更
この例では、VPSS をデインターレース専用に設定するために若干の変更を加えただけです (ビデオ シリーズ 28 の例では、カラースペース コンバーターが設定されていました)。
ビデオ シリーズ 28 のアプリケーションと比較した際のソフトウェアの変更
ビデオ シリーズ 28 のアプリケーションと比較したとき、若干の変更をアプリケーションに加える必要があります。
XVidC_ColorFormat colorFmtIn = XVIDC_CSF_YCRCB_422;
app_hdmi_conf_tpg(&tpg_inst, Height/2, Width, colorFmtIn, XTPG_BKGND_COLOR_BARS);
app_hdmi_conf_tpg_interlaced(&tpg_inst, 1);
StreamIn.IsInterlaced = 1;
XVprocSs_SetFrameBufBaseaddr(&VprocInst,0x10600000);
デザインの生成
・Windows メニューで次を実行します。
[スタート] → [すべてのプログラム] → [Xilinx Design Tools] → [Xilinx Software Command Line Tool 2019.1] をクリックします。
・コマンド ラインで次を実行します。
xsct コマンドを使用します (SDK 2019.1 用の環境変数を設定する必要があります。)
8. xsct で cd コマンドを使用して XVES_0030/sw に移動します。
9. source create_SW_proj.tcl コマンドを使用します。
10. SDK を開き、XVES_0030/sw/sdk_workspace をワークスペースとして選択します。
このビデオ シリーズ エントリはいかがでしたか?
ビデオ シリーズについて
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.