I.S.X

製品紹介

DisplayPort DSC対応

DSCの必要性

ここ最近、Displayの表示レートが上がっています。4k解像度であっても120Hz以上の表示が可能なDisplayが増えています。

DSCはVESAが規格化しました。

8.1GbpsのDisplayPortの速度を使用しても、Blankingを狭めて4k 120Hzが限界です。これ以上の表示レートが欲しい場合にDSC (Display Stream Compression)の出番があります。

real time圧縮で帯域を1/3に出来るため、5.4Gbps 4laneでも240Hzに対応可能です。

今回は、DisplayPortでDSC画像を送信する回路をiM1671に追加しました。圧縮済みDSC画像のファイルを送信する機能を実装しました。(DSC圧縮回路の追加ではありません。DisplayPortのDSCへの対応です。)

DSC画像は、VESAが配布しているDSCのSample Codeで作成可能です。

DSCの構造

図1 水平4分割、垂直にも分割したSlice

DSCでは図1のように画像を分割します。垂直方向にも分割が行われます。分割した、それぞれの画像をSliceと呼びます。圧縮はSlice内で行います。Sliceは独立しているため、並列して圧縮動作が行えます。並列動作すれば回路の動作周波数を下げることができます。

データ伝送で、伝送エラーが発生するとDSC画像伸張時にエラーになり、画像を戻せなくなります。無圧縮の場合は伝送エラーの画素のみがノイズになりますが、圧縮画像ではSlice全体にノイズが広がります。影響範囲が画面全体に広がらないように垂直方向にもSliceを分割して使用します。(ノイズを減らすために、FECという誤り訂正の規格がありますが、これはDSCとは別規格なので、又の機会に記述します)

DisplayPortでDSC画像を送る

DisplayPortでDSC画像を送付する場合、以下の機能が必要になります。

  • PPS(Picture Parameter Set)をSDP(Secondly Data Packet)で送信する。
    PPSはDSC画像のSlice構造、Chunk size, 圧縮algorithmのparameterを含む128byteのデータです。画像を伸張するときに使用します。
    VESAのDSC圧縮プログラムで画像圧縮すると、HeaderにPPSを含んだ画像データを出力します。iM1671はDSC fileのHeaderからPPSを取り出して送信します。

  • 画像送信時に、SliceのChunkごとにEOC(End of Chunk) flagを挿入する。
    水平方向に複数のSliceがある場合、EOCを入れて境界が分かるようにします。MIPI DSIなどでは不要なDisplayPort特有の仕様です。図2を参照し下さい。

  • DPCDの操作。
    Sink側のDSCを有効にするなどの設定を行います。Sink側をDSCモードに切り替えます。

  • VB-IDのCompression Flagを1にする。
    行の先頭のBS(Blank Start)の直後に送るVB-IDの圧縮Flagを有効にします。
図2 毎行のSliceの終わりにEOCを挿入する。4sliceの場合はEOCを4回挿入。

iM1671での実機動作

図3 iM1671とDSC対応MonitorによるDSC画像

DisplayPortでDSC画像を表示したとき写真を図3に示します。

4k144Hzを5.4Gbps 4laneで送信しています。

図4は水平方向4slice, 垂直16lines/sliceの場合。

図5は水平方向8slice, 垂直16 lines/sliceの場合。

それぞれのDSC画像データの同じ場所にノイズを入れて表示したときの写真です。

データ誤りにより、画像ノイズがsliceの終わりまで続きます。4sliceより8sliceのほうが、画像のノイズ範囲が小さいです。垂直方向はSliceの境界でノイズが止まります。

結論と今後

DSC画像をDisplayPort経由で送信して表示可能になりました。

現状は、予め用意されたDSC画像を表示しています。今後は任意の表示が可能になるように改良する予定です。

現時点ではiM1671の標準機能ではありません。DSC画像表示に興味がある方、連絡をお待ちしています。

      

pagetop