まとめ
この記事では、 Nukeのスキャンラインベースの画像アーキテクチャが画像データの処理と読み取りに関してどのように機能するか、ネットワーク経由でファイルを読み取るときにこれがパフォーマンスにどのように影響するか、またNukeのローカリゼーション機能を利用してパフォーマンスを向上させる方法について説明します。
詳細情報
ネットワークからの読み取り
EXR画像の読み取りと圧縮タイプ
ローカリゼーション
さらなる支援
詳細情報
Nukeはスキャンライン画像合成システムです。つまり、画像の端に達するまで、一度に1ライン分のピクセルを処理・読み込みます。これらのスキャンラインは、NDKプラグイン開発用語では行と呼ばれます。
例えば、ビューアが640x480解像度の画像を表示する場合、ビューアはそれを480行に分割し、一度に1行ずつ要求し、必要な処理を適用して表示します。フルアパーチャのスーパー4K画像(4096x3112)を表示する場合は、3112行の要求が発生します。
スキャンラインレンダリングには2つの大きな利点があります。まず、画像を行サイズのチャンクで処理するため、画像全体を同時にコンピュータのメモリに格納する必要がないため、 Nukeほぼ無制限の画像サイズを処理できます。次に、可視ピクセルの処理回数が最小限に抑えられます。この動作は、 Nukeマシンリソースを最大限に活用できるように、スケーラブルなパフォーマンスを実現するように設計されています。
Nukeのアーキテクチャに関する詳細情報と、Viewer がデータを読み取る方法の詳細な説明については、NDK 開発者ガイドを参照してください。
Nuke 13.2以降、トップダウン方式によるレンダリングが可能になりました。この機能では、グラフ内の入力データを必要としないすべてのノードを最初にレンダリングすることで、スクリプトの出力を高速化できます。トップダウン方式の詳細な方法については、以下の情報をご覧ください。 トップダウンレンダリング
ネットワークからの読み取り
Nukeのスキャンライン アーキテクチャがファイルを読み込む方法は、ネットワーク経由でファイルを読み取るときのパフォーマンスに影響を及ぼす可能性があります。
画像は、入出力(I/O)ファイルアクセス要求を通じてソースファイルから要求元アプリケーション(Nuke)にデータが取得され、読み取られます。ソース画像が要求を送信したマシンのローカルにある場合、特に高速ストレージがあれば、I/O要求は迅速に処理されます。しかし、ソース画像がネットワークストレージシステム上にある場合、ネットワークの読み取り/書き込み速度と帯域幅によって、ファイル読み取りパフォーマンスに遅延が生じる可能性があります。例えば、4K(4096x3112)画像をネットワークからNukeに読み込むには、3112回のネットワークアクセス要求が必要です。ネットワークファイルI/O要求の数はネットワーク帯域幅の影響を受ける可能性があり、各要求はネットワークの読み取り/書き込み速度の影響を受けます。
注意:画像データを取得するために大量の小さな読み取りサイズを処理する際に適切に拡張できないネットワーク ストレージ システムを使用している場合、 Nukeが必要とする多数のファイル I/O 要求がネットワーク帯域幅によって制限されるため、ネットワーク遅延が発生する可能性があります。
この記事に記載されている手順に従って、ネットワークストレージシステムの読み取り/書き込み速度をテストできます: Q100296: ネットワーク速度を確認する方法
ローカリゼーション機能を使用すると、ネットワーク上のフッテージを操作する際のNukeのインタラクティブパフォーマンスを向上させることができます。詳細は以下をご覧ください。
EXR画像の読み取りと圧縮タイプ
EXR画像タイプは上記のルールの例外です。Nuke Nuke画像タイプをスキャンラインとして読み取り、一度に1行ずつ処理します。EXR画像の圧縮率によって、 Nukeスキャンラインに個別にロードする前に一度に展開する必要があるデータ量が決まります。ZIP(1)は、 Nukeスキャンラインに直接展開できるため、デフォルトで最も高速な読み書き圧縮方式です。これは、大きなデータチャンクを解凍してから読み込みを開始するのではなく、スキャンラインに直接展開できるためです。ただし、非圧縮ファイルはZIP(1)よりも高速に読み込まれます。
EXR画像の特定の圧縮オプションでは、 Nuke 1スキャンラインずつではなく、より大きなチャンク単位で読み込みます。以下の圧縮オプションは、64スキャンラインのブロック単位で解釈・読み込みされるため、画像へのアクセスが全体的に削減されます: ZIP (16)、PIZ、PXR24、B44、B44A。
Nuke使用する EXR 圧縮タイプのリストは、 Nukeのオンライン ドキュメントに記載されています。
入力画像全体を取得するためのネットワークアクセスが懸念される場合は、上記のいずれかで圧縮されたEXRデータを使用すると、全体的なネットワークアクセスを最小限に抑えることができます。ただし、これは使用するネットワークストレージシステムの読み取り/書き込み速度に依存しており、高解像度を扱う場合は依然として速度が低下する可能性があります。
ローカリゼーション
ネットワーク経由でファイルを読み取ることによるパフォーマンスの低下に対処する 1 つの方法は、 Nukeのローカリゼーション機能を使用して、 Nuke GUI セッションでのファイル I/O を高速化し、ネットワークの相互作用を減らすことです。
ローカリゼーションを有効にすると、 Nukeスクリプトが読み込んだイメージのローカル キャッシュを保存します。ローカル キャッシュを作成するためにコピーされたファイルは、最初にネットワークの場所からスキャンラインとして読み込まれますが、その後は、 Nuke GUI でスクリプトを操作するときに、元のネットワーク ファイルではなく、ローカル バージョンが使用されます。
Nukeスクリプト内でネットワーク ファイルへの参照を保持するため、スクリプトが別のユーザーまたはレンダリング ファームに送信されたときにそれらのファイルが見つかります。ただし、スクリプトを操作するときに、ネットワーク経由でイメージ データを繰り返し読み込むために多数の小さなファイル I/O 要求を使用しないようにすることで、ネットワークへの負担を軽減します。
ファイルとメディアのローカライズに関する詳細は、次のリンクにあるオンライン ヘルプで参照できます。
Nuke : パフォーマンス向上のためのファイルのローカライズ
さらなる支援
この記事で概説した提案を行った後も、ファイルの読み取りと書き込みでパフォーマンスの問題が引き続き発生する場合は、サポート チケットを開いて、発生している問題とこれまでに行ったトラブルシューティング手順をお知らせください。
サポート チケットを開く方法の詳細については、 「Q100064: サポート チケットの発行方法」の記事を参照してください。
リアルタイム再生に問題がある場合は、この記事の情報を確認してください: Q100297: Nuke Studio / Hieroで再生の問題を特定する方法
私たちはそれを聞いて申し訳ございません
理由をお聞かせください