Amazon Web Services ブログ

AWS Elemental LiveがJPEG XSの導入で低レイテンシーかつ視覚的ロスレスなクラウドへの映像打ち上げを実現

JPEG XSの概要

ビデオの消費が増加し、コンテンツプロバイダーによる高品質コンテンツの提供が増加するにつれて、帯域幅の容量がますます重要になっています。放送設備での非圧縮ビデオ伝送について、従来のシリアルデジタルインターフェイス (SDI) インフラストラクチャから、インターネットプロトコル (IP) 技術に移行する放送局は、SMPTE ST 2110やSMPTE ST 2022-6など、米国映画テレビ技術協会 (SMPTE:Society of Motion Picture and Television Engineers) の規格に準拠します。ST2110については、Brian Bedardによるブログ、SMPTE ST 2110 blog (3部構成のうち第1部)をぜひご参照ください。

IP環境にすることにより、帯域幅の節約、運用コストの削減、データセンターの一元化が可能になります。しかし、SDIからIPへの移行にフォークリフト的なアプローチは使えません。つまり、SDIとIPがしばらく共存することになります。コンテンツプロバイダーが4K解像度(場合によっては8K解像度)への移行を推し進めるにつれて帯域幅の要件は拡大し、現在のインフラストラクチャへの負荷が高まってきています。同じ制限がクラウドへの集信にも当てはまります。このことから、エンコード/デコードのレイテンシーを最小限に抑えながら、ビデオ品質を維持する軽量圧縮が求められています。Amazon Web Services (AWS) が提供するAWS Elemental Liveは、イベントや24時間年中無休ストリームのライブビデオをオンプレミスでエンコードでき、まさに軽量圧縮を実現する機能を提供します。

ここでJPEG XSをご紹介します。JPEG XS(ISO/IEC 21122)は、視覚的にロスレスで複雑性が低い、低レイテンシーのビデオコーデックです。JPEG XSは、イントラフレームエンコーディングと固定圧縮率を使って視覚的にロスレスな品質を実現します。テストでは、ナチュラルビデオシーケンスについては、10:1の圧縮率まで視覚的ロスレスを実現しています。一方、コンピューター生成画像 (CGI) のビデオなど、一部のコンテンツでは、より低い圧縮率が必要になる場合があります。JPEG XSコーデックは、SMPTE ST 2110スイートにうまく適合する固定ビットレートを提供するため、圧縮ビデオ伝送をサポートするSMPTE ST 2110-22を利用した伝送が可能です。

JPEG XSは複雑性が低いため、メモリを増設する必要もなく、ハードウェアフットプリントを縮小できます。このコーデックはCPUベースとGPUベースのいずれのシステムで実行でき、並列性を利用してリアルタイム、またはリアルタイム以上の高速を実現できます。複雑性が低いおかげで消費電力をカット、エネルギーコストを削減できます。

JPEG XSは、非常に低いレイテンシーを実現します。このコーデックは、エンコードからデコードまでサブフレームのレイテンシーを謳っていますが、実際には、トランジット時間と途中のバッファリングもレイテンシーに加わります。社内テストでは、オンプレミスのAWS Elemental LiveからのJPEG XSをAWS Elemental MediaConnect(高品質なライブビデオ伝送サービス)にアウトプットし、オンプレミスのAWS Elemental Liveのインプットに戻してJPEG XSでデコードしました。テストでは、パス全体で1秒未満のレイテンシーが実証されました。このテストでは、AWS Direct Connect(お客様のオンプレミスとAWS間のプライベート接続を容易に確立するクラウドサービスソリューション)を使用して、クラウドとの双方向の専用ネットワークパスを用意しました。JPEG XSコーデックのビットレートが固定なため、そのビットストリームはIP配信と互換性があります。

JPEG XSの適用

JPEG XSは、非圧縮ビデオが使用されている場面であればどこでも使用できます。たとえば、バーチャルリアリティや拡張現実、自動運転車、車両ディスプレイ、医療処置、モバイルデバイスなど、低レイテンシーのアプリケーションに適しています。AWS Elemental Liveを使って、IPワークフローを介して新しい動画を開放することも可能です。放送設備のSMPTE ST 2110非圧縮環境でJPEG XSを使用し、イベントのリモート制作や、ライブビデオモニタリングの改善を行うこともできます。

AWSクラウドインフラストラクチャへの取り込み時に帯域幅の制約があるため、JPEG XSはハイブリッドなビデオワークフローに向いており、利用者がクラウドでのプレイアウトに移行する際のスループットの負担を軽減します。AWS Elemental LiveはAWS Elemental MediaConnectと連携し、非圧縮ビデオをクラウドに移動する上で必要な、低レイテンシーで視覚的ロスレスな架け橋となります。また、MediaConnectは、JPEG XSまたはAWS Cloud Digital Interface (AWS CDI) のアウトプットを提供するため、その後クラウドでの処理が可能です。AWS CDI は、AWS内で高品質な非圧縮ビデオを伝送するネットワークテクノロジーです。

AWS Elemental LiveとJPEG XS

AWS Elemental Liveに一連のJPEG XS機能がリリースされたことにより、AWSのお客様は、ISO/IEC 21122規格に準拠したインジェスト/デコード、アウトプット/エンコードが簡単にできるようになりました。エンコードおよびデコード機能はどちらもJPEG XS圧縮ビデオストリームの伝送をサポートしており、圧縮ビデオ伝送のSMPTE ST 2110-22規格に準拠しています。

AWS Elemental Liveは、SMPTE ST 2110、およびAdvanced Media Workflow Association (AMWA) のNetworked Media Open Specifications (NMOS) に対して総合的なサポートを提供しており、その内訳は次のとおりです。

AWS Elemental Live SMPTE ST 2110 サポート

  • 2110-10: システムのタイミングと定義
  • 2110-20: 非圧縮アクティブビデオ、SMPTE ST 2022-7のサポート
  • 2110-21: トラフィックシェーピングと配信のタイミング
  • 2110-22: 固定ビットレート圧縮ビデオ、SMPTE ST 2022-7のサポート
  • 2110-30: パルス符号変調 (PCM) デジタルオーディオ
  • 2110-31: Audio Engineering Society (AES) のトランスペアレント伝送
  • 211-40: SMPTE ST 291-1 アンシラリデータ

AWS Elemental Live NMOS サポート

  • AMWA-IS-04: 発見&登録
  • AMWA-IS-05: 接続管理

AWS Elemental Liveのイングレス (ingress) サポート

AWS Elemental Liveでは、SMPTE ST 2110-22に準拠したインジェストがサポートされています。SMPTE ST 2110-22は、共通の基準クロックを参照しながらIPネットワーク上で、固定ビットレートの圧縮ビデオをRTP(リアルタイムトランスポートプロトコル) に準拠して伝送するためのパラメータを規定します。AWS Elemental Liveは、SMPTE ST 2022-7に準拠したストリームのインジェストにも対応しており、復元力を高めています。

AWS Elemental Liveのイグレス (egress) サポート

AWS Elemental LiveのJPEG XSのエンコーディングを使用するには、25ギガビットイーサネット(GbE)インターフェイスを搭載したL800シリーズアプライアンスが必要です。AWS Elemental Liveバージョン2.21.3(一般公開)より、標準画質 (SD) と高精細画質 (HD) の解像度がサポートされています。AWS Elemental Liveでは、2:1から12:1までの圧縮率がサポートされています。12:1の圧縮率はクラウドへの集信において、最小の帯域幅に合わせた最大の密度を提供します。圧縮比が広い範囲で設定可能なため、JPEG XSコーデックの恩恵として帯域幅を節約しながらも、お客様が希望する主観的/客観的なビデオ品質レベルを実現しやすくなっています。AWS Elemental LiveのJPEG XSアウトプットはSMPTE ST 2110-22仕様に従って伝送されます。また、AWS Elemental LiveはSMPTE ST 2022-7準拠のストリームをアウトプットすることもできます。

JPEG XSをクラウドにアウトプットして戻すための具体的手順

ここから実際に手を動かしていきましょう。次の例では、クラウドへの集信を目的に、AWS Elemental LiveのJPEG XSエンコード済信号を、オンプレミスからAWS Elemental MediaConnectにアウトプットしていきます。次に、AWS Elemental MediaConnectのJPEG XSアウトプットをAWS Elemental Liveに戻して、インジェストと配信を行います。

AWS Elemental LiveとAWS Elemental MediaConnectは、同じAmazon Virtual Private Cloud (Amazon VPC)内に置く必要があります。Amazon VPCは、お客様が自身の仮想ネットワーク環境を完全にコントロールできるサービスです。AWS Direct Connectは、円滑なクラウドへのネットワークパスを提供します。AWS Elemental MediaConnectでは、JPEG XSのイングレスとアウトプットにSMPTE ST 2022-7が必要となります。次に、このワークロードの設定手順を説明します。

AWS Elemental Live JPEG XSエンコーディング

以下の手順に従ってAWS Elemental Liveイベントを作成し、JPEG XSエンコーディングをしたSMPTE ST 211-22をアウトプットしていきます。

  • SMPTE ST 2110 Output Groupを作成します
  • StreamタイプがVideoOutputを追加します
  • Video CodecJPEG XSを選択します

  • Advanced(詳細設定)から Compression Ratio(圧縮率)を設定します (1:12 で帯域幅を最も節約可)

  • Streamタイプが Audioの別のOutputを追加します
  • Audio CodecからPCMを選択します
  • 残りの設定はデフォルトを使用します

AWS Elemental MediaConnectでは、SMPTE ST 2022-7の冗長出力が必要になります。

  • AWS Elemental MediaConnectフローを設定した後で、Primary and Secondary Destinations (プライマリおよびセカンダリ送信先)の設定を行います
  • AWS Elemental Liveイベントが開始すると、SMPTE ST 2022-7仕様に従ったセッション記述プロトコル (SDP) ファイルがプログラムによって生成され、/opt/elemental_se/web/public/ ディレクトリ内のアプライアンス上に配置されます。

AWS Elemental MediaConnectによるJPEG XSのインジェスト

AWS Elemental MediaConnectへのJPEG XSインプットを設定するには、以下の手順に従います。

  • https://console.aws.amazon.com/mediaconnect/でAWS Elemental MediaConnectコンソールを開きます。
  • Flowsページで、Create Flow(フローの作成)を選択します。
  • Details(詳細)セクションのNameで、フローの名前を指定します。この名前は、このフローのAmazon Resource Name(ARN)の一部に使われます。
  • Availability Zoneで、VPCサブネットが存在するアベイラビリティゾーンを選択します。
  • SourceセクションのSource typeで、「VPC source」を選択します。
  • Nameで、ソースの名前を指定します。この値は、AWS Elemental MediaConnectコンソールでのみ表示される識別子です。
  • VPC interfaceのセクションに進みます。
  • フローに接続するVPCごとに、次の操作を行います。
    • Add VPC Interface(VPCインターフェイスを追加)を選択します。
      • Nameで、VPCインターフェイスの名前を指定します。VPCインターフェイスの名前は、フロー内で一意である必要があります。ここでは「VPCa」と呼びます。
      • Typeで、VPCaには「EFA」、VPCbには「ENA」を選択します。
      • Role ARNに、AWS Elemental MediaConnectを、信頼できるサービスとして設定した際に作成したロールのARNを指定します。
      • VPCで、使用するVPCの識別子を選択します。
      • Subnetでは、VPC構成を設定するにあたり、AWS Elemental MediaConnectが使用するVPCサブネットを選択します。複数選択できますが、最低でも1つは選択する必要があります。
      • Security groupsでは、VPC構成を設定するにあたり、AWS Elemental MediaConnectが使用するVPCセキュリティーグループを指定します。最低でも1つのセキュリティーグループを選択する必要があります。
    • 別のVPCインターフェイスを追加し、名前を指定します。 ここでは「VPCb」と呼びます。同じ手順を繰り返して、VPCインターフェイスの設定を完了します。

  • 次に、メディアストリームを作成します。
    • Media streamsセクションで、Add media stream(メディアストリームの追加)を選択します。
    • Nameフィールドに、フロー内の他のメディアストリームと区別できるよう、わかりやすく具体的な名前を指定します。
    • Description(説明)に、このメディアストリームの使用目的が分かる説明を加えます。
    • Stream IDには、メディアストリームの一意の識別子を指定します。
    • Advanced options(詳細オプション)を選択すると、ストリームのタイプに応じて追加オプションが表示されます。
    • Stream typeで「Video」を選択します。
    • Media clock rateはストリームのサンプルレートで、90000に設定されます。この値の単位はキロヘルツ(kHz)です。
    • Video format(ビデオ形式)では、ビデオの解像度を指定します。
    • Exact framerateで、ビデオのフレームレートを指定します。 この値は、1秒あたりのフレーム数で表します。
    • Colorimetry(カラーメトリー)で、ビデオ内の色の表現に使用された形式を指定します。
    • Scan modeでは、受信ビデオのスキャンに使用された方式を指定します。
      • 受信ビデオが インターレースされている場合(480iや1080iなど)は、「Interlace」を選択します。
      • 受信ビデオがプログレッシブの場合(720pまたは1080pなど)は、「Progressive」を選択します。
      • 受信ビデオがPSF(プログレッシブセグメントフレーム)の場合(1080psfなど)は、「Progressive segmented frame」(PSF)を選択します。
    • TCSでは、ビデオで使用された伝送特性システム(TCS)を指定します。
    • Range(範囲)では、ビデオのエンコード範囲を指定します。
    • PARには、ビデオのピクセルアクセス比率(PAR)を指定します。
    • Add media stream(メディアストリームの追加)を選択します。

  • 次に、オーディオを追加します。
    • Add media stream(メディアストリームの追加)を選択します。
    • Nameフィールドに、フロー内の他のメディアストリームと区別できるよう、わかりやすく具体的な名前を指定します。
    • Description(説明)に、このメディアストリームの使用目的が分かる説明を加えます。
    • Stream IDには、メディアストリームの一意の識別子を指定します。
    • Advanced options(詳細オプション)を選択すると、ストリームのタイプに応じて追加オプションが表示されます。
    • Stream typeで「Audio」を選択します。
    • Media clock rateのデフォルト値は48000 kHで、AWS Elemental Liveの設定と一致させます。
    • Add media stream(メディアストリームの追加)を選択します。

    • Sourcesのセクションまで、上にスクロールして戻します。
    • Protocolで、「ST 2110 with JPEG XS」を選択します。
    • Max sync buffer(同期バッファ最大値)で、AWS Elemental MediaConnectが受信ソースデータの同期に使用するバッファのサイズを指定します。この値の単位は、ミリ秒 (ms) です。
    • VPC interface name 1で、VPCaをソースとして選択します。
    • VPC interface name 2で、VPCbをソースとして選択します。VPCインターフェイスの1と2の間に優先順位はありません。
    • ソースの一部として使用するメディアストリームごとに、次の操作を行います。
      • Media stream nameで、メディアストリームの名前を選択します。
      • Encoding nameでは、デフォルト値をそのまま使用します。
        • アンシラリデータストリームの場合、エンコード名はsmpte291です。
        • オーディオストリームの場合、エンコード名はpcmです。
        • ビデオの場合、エンコード名はjxsvです。
      • Inbound portで、フローが受信コンテンツをリッスン(listen)するポートを指定します。この値は、2077、2088以外であれば、1024~65535の範囲で指定できます(2077と2088は他のプロトコル用に予約されています)。

  • Create Flow(フローを作成)ボタンをクリックします。
  • 次に、Sourcesの下で、Input Configurations(インプット設定)までスクロールダウンし、2つのVPCのIPアドレスを確認しておきます。
  • ここで、AWS Elemental LiveのOutput Configuration(アウトプット設定)に戻ります。2つのVPC IPをPrimary DestinationおよびSecondary Destination(第1および第2送信先)に指定してアップデートします。
    • アウトプットには必ず25 GbEインターフェイスを使用してください。

  • AWS Elemental MediaConnectのフローをStartし、AWS Elemental Liveイベントを開始します。

これで、クラウドにJPEG XSビデオが取り込まれました。AWS Elemental MediaConnectを使用すると、AWS CDIをAWS Elemental MediaLive(ブロードキャストグレードのライブビデオ処理サービス)に、またはAWS CDIをサポートする任意のサードパーティのプレイアウトシステムに取り込むことができます。

MediaConnectからJPEG XSをアウトプットすることも可能です。クラウドから発信されるプレイアウトシステムがある場合、AWS Elemental Liveを使って信号をオンプレミスへ戻すことができます。先ほど作成したMediaConnectフローを使用して、この機能について解説します。

AWS Elemental MediaConnect JPEG XSアウトプット

AWS Elemental MediaConnectからのアウトプットを作成するには、以下の手順に従います。

  • MediaConnect FlowOutputタブを選択します。
  • Nameフィールドに、フロー内の他のアウトプットと区別できるよう、わかりやすく具体的な名前を指定します。
  • Protocolで、「ST 2110 with JPEG XS」を選択します。
  • VPC Interface 1で、ドロップダウンメニューから「VPCa」を選択します。
  • VPC Interface 2で、ドロップダウンメニューから「VPCb」を選択します。
  • Destination IP addresses(宛先IPアドレス)にAWS Elemental Liveの25 GbE冗長インターフェイスのIPアドレスを指定します。

  • Media Stream Configuration(メディアストリーム設定)まで下にスクロールし、Add Media Stream Configuration(メディアストリーム設定の追加)を選択します。
  • Media Stream Nameで目的のVideo Media Streamを選択します。
  • Destination Port(宛先ポート)を指定します。この例では5001を使用します。
  • Add Media Stream Configuration(メディアストリーム設定の追加)を選択します。ここでオーディオを追加します。
  • Media Stream Nameで目的のAudio Media Streamを選択します。
  • Destination Port(宛先ポート)を指定します。この例では5002を使用します。ポートは一意である必要があります。
  • Save(保存)ボタンをクリックします。

  • SDPの作成には、GitHubで入手可能な、sdp_converter.pyというAWS Elemental MediaConnectのツールを使用します。
    • sdp_converter.pyのスクリプトは、AWS Elemental MediaConnectのJSON形式のデータを、SMPTE ST 2110-20/-22/-30/-31/-40規格に準拠したSDPファイルに変換します。その際、AWS Elemental MediaConnectストリームデータをカプセル化するJSONファイルをインジェストします。

AWS Elemental LiveによるJPEG XSデコーディング

以下の手順に従って、JPEG XSでデコーディングされたSMPTE ST 2110-22を入力するAWS Elemental Liveイベントを作成します。

  • 次のソースについて、SDP LocationMedia IndexInterfaceの値を指定します。
    • Video SDP Location(必須)
    • Audio SDP Location(必須)
    • Ancillary(アンシラリ)SDP Location(任意)

  • NMOSを使用している場合は、NMOS Controlのボックスにチェックを入れます。
  • Video Stream InterfaceAudio Stream Interfaceを入力します。SMPTE ST 2022-7のインジェストには、「eth4」および「eth5」のインターフェイスを使用します。

  • 注意:解像度とフレームレートのサポートは、任意のSDIインターフェイスの解像度とフレームレートのサポートの制限を受けます。
  • 必要なアウトプットタイプを作成し、 Startをクリックします。

これでビデオ/オーディオがオンプレミスに戻されました。目的に応じて処理・配信できます。

まとめ

この記事では解像度とフレームレートがより高くなることによってインフラストラクチャに負荷がかかることについて説明しました。このため、視覚的にロスレスで、複雑性の低い、低レイテンシーのコーデックが必要となります。JPEG XSはこれらの条件を満たし、IPで非圧縮ビデオが使用されるあらゆる場面において優れたソリューションとなります。JPEG XSを使用すると、多くのワークフローを充実させることができます。

AWS Elemental LiveとAWS Elemental MediaConnectを使うと、リモートプロダクションやクラウドプレイアウト、クラウド処理のためにAWSのクラウドへ集信する必要のあるSMPTE ST 2110準拠のワークフローが、より容易に実現できます。Elemental LiveとMediaConnectは、クラウドからオンプレミスへの集信も可能にします。こちらの詳細については、MediaConnectのドキュメントをご参照ください。

さらに情報が必要な場合には、AWS Elemental Liveのドキュメント、Working with SMPTE ST 2110をご覧ください。JPEG XSが開放するビデオワークフローにおいて、お客様と共に取り組めることを楽しみにしています。


参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)

AWSのメディアチームの問い合わせ先: awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。

翻訳は BD山口、SA長澤が担当しました。原文はこちらをご覧ください。