Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
66
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

16台プロジェクター同期投影 -AMD Radeon Pro Wx9100で4K5枚を同期出力

目的

1つのPCからフレーム同期した4Kを4画面分+制御画面1枚:合計5面の4K映像を出力したい。4K1枚から、4つのFullHD映像を分岐投影するので、合計16台のプロジェクターを同期投影することが可能になる。

image.png

この記事の続編です。
https://qiita.com/shks/items/580640b95f37ea42b2de

関連展示が2020年3月15日までやっています。
本システムを使った、映像・展示に関するワークショップが2020年3月14日にオンライン開催されます。(内容は本システムに加えて幾何・色彩キャリブレーション・Visual効果制作などの内容です。)

image.png

既存手法の問題点と方針

  • Nvidia系のGPUでは、HDMI / DP出力ポート4つまでなので、全てを使用してしまうと制御用画面が使えなくなってしまう。
  • 制御画面出力用にCPU統合側グラフィックを経由するとパフォーマンスに影響が出る可能性があるので、単一のGPUで完結させたい。
  • Quadro GPU x 2 + NVIDIA Quadro Sync II で複数GPUを構成して、DPポートを8個まで増設することができるがコストアップになる。かつ、複数GPUでのパフォーマンス検証が必要。欲しいのは5個・・

よって、5つ以上の映像出力ポートを持ち、4K( 3840 x 2160, 60Hz )を出力できるGPUが欲しい。

経緯

たまたま、TwitterのタイムラインにAMD RadeonGPUの広告が出る。よく見るとminiDPポートが5つ並んでいる。すごいなTwitter広告。

さらに、調べるとAMD Radeon Pro Wx9100では、miniDPポートが6つ並んでいる。事前調査の後、AMD Radeon Pro Wx9100を採用し、4K5枚を同期出力(4K4枚を同期出力 + 1枚制御用)を実現したので、下記に手順を記録します。

image.png

AMD Radeon Pro Wx9100で4K5出力するための手順

環境:

  • Radeon Pro Driver version: 19.Q4.1
  • GPU AMD Radeon Pro Wx9100
  • Windows 10 image.png

ディスプレイ設定とRadeon Pro設定と、Radeon Pro詳細設定を用いる
デスクトップ画面上で、右クリックメニューでGPU設定が表示される。
image.png

システム構成の概要

image.png

AMD Radeon Pro Wx9100 GPUから4つのHA5-4K (1本の4K HDMIを4つのFullHD SDI へ変換する)へ接続。かつ、制御用の4Kディスプレイも接続する。
4K x 4つの映像(8K映像)はPC内部のTouchDesigner内で生成されて、ディスプレイアウトとして送出される。

1. EDIDエミュレーション

AMD Radeon Pro GPUでは、EDIDエミュレーション機能が提供されています。

EDID(Extended Display Identification Data)は、ディスプレイやプロジェクターなどの表示機器の情報や対応するデータ形式などが記述された機器固有の識別データです。映像機器がGPUに接続された時、GPUシステム側がEDIDをもとに(基本的には)対応する最大解像度の映像を送出します。参考

複数ディスプレイ装置を用いたシステムを構築する際、接続されたディスプレイがどのような配置になるかは、接続した後に確認する必要がある。さらに、問題となるのが何らかの原因でディスプレイが認識されなかった場合、ディスプレイID / 配置設定が崩れることで正しい映像出力が行えなくなります。

これらは、1つのディスプレイ装置が抜けただけでも、接続している他のディスプレイ機器もEDIDの情報の再取得やIDのふり直しが起きるため、そのリカバリー作業もディスプレイIDの確認作業も時間がかかるため致命的なエラーとなってしまいます。

EDIDエミュレーションは、例えば、現在接続している表示ポート(HDMI / Display Port)に接続されている表示機器のEDIDをエミュレーション(仮想的に保持)します。これにより、たとえ接続されている表示機器が抜けたとしても、その表示機器が接続されている状態として取り扱い、ディスプレイ配置設定やIDを保持し続けることができます。

AMD Radeon Pro GPUのEDIDエミュレーション手順

  1. 全てのディスプレイを接続する。
  2. Radeon Pro設定 > ディスプレイのタブを開き、「すべてのディスプレイをエミュレート」

個別の映像機器ごとにエミュレートする際には、個別のポートの「…」からEmulateを設定。全体をエミュレートした後に、制御用ディスプレイを変更するために、一つだけエミュレートを解除することも可能。(remove)

image.png

ここまでで、AMD Radeon Pro Wx9100に、HA5-4Kが4つと制御用のディスプレイ1つが接続された状態になります。ここまでで、4K5枚を出力することは出来ていますが、このままだとフレーム同期が実現出来ません。(少なくとも、我々の環境では)

次に、HA5-4Kが4つ対して出力をしている4K4枚を仮想的な1枚のディスプレイとして認識させます。マルチディスプレイを仮想的な1つのディスプレイとして認識される( NVIDIAにおける Mosaic™ )AMD GPUの機能として、Eyefinityがあります。

2. AMD Radeon Pro Eyefinity設定

まずは最初のディスプレイ状態を確認します。Windows標準のディスプレイ設定でディスプレイの順序を所望の配置に設定しておきます。

image.png

次にRadeon Pro設定→AMD Eyefinity「高度なセットアップ」に移ります。

image.png

image.png

まずは、[Select Layout]でディスプレイレイアウトを指定する。

image.png

今回は、5枚のうち4枚を横に長いディスプレイとして認識させるので、 Select layout で[4x1]を選択

image.png

ここの画面で、4x1のレイアウトに、どのディスプレイをアサインするのかを指定する。配置が完了したら、Creat AMD Eyefinity Configurationで設定を作成開始

image.png

ここまでくると連結完了。ディスプレイ出力状態が変化する。

3. 画面連結状態の確認

ここで設定されて、1つの4K(ディスプレイ)を4つのHA5-4K出力が仮想的な一つの画面になる。
image.png

通常の使用方法であれば、ここまで仮想的なディスプレイ環境構築が完了する。

しかし、Eyefinity適応後、ディスプレイ解像度16382 x2160になっていて、4 x (1920 x 2 )の解像度ではないため、HA5-4K側で認識されない。かつ、初期状態では、「 (4 x (1920x2) ) x 2160つまり、15360 x 2160」選択肢も表示されない。

4. 連結画面の解像度を変える

RadeonPro詳細設定→Eyefinityデスクトップ解像度のカスタマイズ
再度、デスクトップメニューから、次はRadeonPro詳細設定を開く。
image.png

RadeonPro詳細設定→Eyefinityデスクトップ解像度のカスタマイズを開き、カスタム解像度で、15360 x 2160を指定する。

image.png

自分の環境ではこれだけではまだ、解像度は反映されず、windowsのOS側のディスプレイ設定で指定する。15360 x 2160が指定できるようになっている。

image.png

(それでもうまくいなか無い時)
RadeonPro詳細設定から、Eyefinityディスプレイグループを再度有効にする。Windowsディスプレイだけでうまくいくときと、行かない時がある。反映されない場合には、RadeonPro詳細設定から、Eyefinityディスプレイグループを再度有効にする

5.TouchDesignerからの映像出力

本システムは、TouchDesignerをジオメトリー変換・色変換・映像生成に使用しています。TouchDesignerからの映像の出力は通常通りのwindow COMPを用いて、上記で作成したEyefinityディスプレイを出力先に指定して映像を出します。

image.png

image.png

Conclusion

16台のFullHDプロジェクターを同期出力するために、AMD Radeon Pro Wx9100で4K4枚をEyefinityディスプレイ機能で同期出力し、さらに4K1枚制御用ディスプレイを確保したシステムを構成しました。
AMD Radeon ProのEDIDエミュレート機能は致命的ショーストップを防ぐ意味でもかなり心強い機能でした。

本件は、@satoruhiga とともに取り組んだ内容になります。
いつか誰かの役に立ちますように。

Appendix 1

こちらのシステムを使用した展示が、こちらで2020年3月15日まで行われています。
また、本システムを含めた展示技術に関するワークショップが2020年3月14日にオンラインで行われます。オンラにワークショップでは実際に、ワークショップ参加者が送ってくれたプログラム・映像を、本システムから投影してその様子を配信します。

image.png

Appendix 2

4K映像から、4つのFull HD - SDIへ分割送出してくれるHA5-4Kは長期稼働の熱対策のために、ヒートシンクを貼りファンで挟むことによって冷却。現状仕込み期間を含めて50日24時間稼働させても問題なく稼働。

image.png

image.png

プロジェクター配置の様子

image.png

Reference

Shunichi Kasahara, Satoru Higa, and Akihiro Komori. 2019. Fragment shadow: generating fragmented shadows with multi-projectors geometry and color calibration. In ACM SIGGRAPH 2019 Studio (SIGGRAPH ’19). Association for Computing Machinery, New York, NY, USA, Article 6, 1–2. DOI:https://doi.org/10.1145/3306306.3328003

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
66
Help us understand the problem. What are the problem?