1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Akamai Cloud の Accelerated Compute Instances とは

Posted at

はじめに

image.png

Akamai Cloud では、トランスコーディングに最適化された仮想マシンとして、Accelerated Compute Instancesをリリースしました。
Accelerated Compute Instancesは、NETINT Quadra T1U Video Processing Unit(VPU)と搭載しており、ASICベースのメディアアクセラレータカードです。
このユニットによりCPUやGPUに比べて高速なエンコーディングが可能となり、コストパフォーマンスが高いインスタンスになります。

NETINT とは

NETINT Technologiesは、カナダを拠点とする半導体企業であり、主にビデオエンコーディングやAI画像処理向けのSoC(System on Chip)ソリューションを開発しているイノベーターです。同社は、独自のASIC(エンコーディング向け集積回路)技術を活用し、データセンターやクラウド向けに高効率なビデオ処理ユニットを提供しています。

NETINT Quadra T1U Video Processing Unit とは

image.png

NETINT Quadra T1Uは、データセンターやクラウド向けに設計された高密度・高効率なVideo Processing Unit(VPU)になります。主にリアルタイムのビデオエンコードやトランスコード用途で使われ、クラウド事業者ではAkamaiが初めて導入した製品でもあります。

特徴として、第2世代ASICビデオ処理ユニットであるCodensity G5 Chipを搭載しており、AV1、HEVC、H.264 のエンコーディングにも対応しています。このチップには独自の内蔵 AI 処理エンジンが組み込まれています。
このAI処理エンジンにより、シーン検出や背景除去、顔認識、物体検出などを行いながらのリアルタイム処理も可能となります。

image.png

項目 詳細
製品名 NETINT Quadra T1U
フォームファクター U.2 2.5インチ
インターフェース PCIe 4.0 x4
搭載チップ NETINT Codensity G5
消費電力 最大17W(フルロード時)
最大解像度 8K(10ビット HDR 対応)
エンコード対応 AVC/H.264, HEVC/H.264, AV1, YUV420, JPEG
デコード対応 AVC/H.264, HEVC/H.264, VP9, YUV420, JPEG
HDR対応 HDR10, HDR10+, HLG for H.264 & HEVC encode/decode
最大同時処理性能 32x 1080p30, 8x 4Kp30, 2x 8Kp30
ビットレート 64kbit/s to 700Mbit/s
AI推論性能 15 TOPS(INT8)
2Dビデオ処理機能 クロップ、パディング、スケーリング、オーバーレイ、YUV/RGB変換
ソフトウェア互換性 FFmpeg SDKs, GStreamer, LibXcoder API integration

CPU, GPU, VPUの比較

エンコーディングを行う際には従来のCPUやGPUが主に利用されてきましたが、VPUによりASIC(特定用途向け集積回路)ベースのハードウェアが新たな選択肢として浮上してきています。

NETINT社のフィールドアプリケーションエンジニアマネージャーであるKenneth Robinson氏は、2025年の業界シンポジウムにて、以下の3種のトランスコーディング技術を比較しました。

比較対象:

  • CPU:AMD EPYC 32コア搭載のサーバー
  • GPU:NVIDIA L4 x2枚搭載のサーバー
  • ASIC:NETINT Quadra T1U ×10枚搭載のサーバー

評価基準:

  1. 画質(VMAFスコア)
  2. スループット(出力ストリーム数)
  3. コスト(CAPEX/OPEX)
  4. 消費電力(W/ストリーム)

H.264 1080p のエンコーディング比較:

構成 サーバ価格 出力可能数 1ストリームあたりコスト
CPU (x264 Medium/VFast) $7,100 7 ストリーム $1014/ストリーム
GPU (NVIDIA L4 x2) $14,214 40 ストリーム $355/ストリーム
ASIC (Quadra T1U x10) $21,000 320 ストリーム $65/ストリーム

比較では、NETINT Quadra(VPU / ASICベース)は、画質、スループット、コスト、消費電力ともに優れた結果となっています。
QuadraはH.264およびHEVCいずれのコーデックでも、平均VMAFスコアが高く、視聴者の体感品質において優位性を示しています。
結果として、NETINTのVPUは、GPUやCPUを比較しても動画品質を落とすことなく、低単価で大量のエンコーディングを実行できることが比較から把握できます。

Accelerated Compute Instances

Akamai Cloud の Accelerated Compute Instances は、このコストパフォーマンスに優れたNETINT Quadra T1Uを搭載したインスタンスになり、執筆時時点では3種類のインスタンスを提供しています。
尚、対応するリージョンが限られておりますので、こちらからご確認ください。

image.png

インスタンスを起動する際の推奨OSとしては下記になります。

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 22.10

クイックスタート

Akamai Cloud上に構築したNETINT Quadra T1U VPU x1 Smallインスタンスにてffmpegを利用できるようにクイックスタートガイドを元にセットアップを行います。

Quick Start Guide

ffmpegのインストールに必要となるアセンブラをインストールします。

sudo apt-get install nasm yasm unzip -y

SDKが含まれているQuadraパッケージをダウンロードします。
執筆時時点での最新バージョンはv5.2.0になります。

wget https://releases.netint.com/quadra/L8Q6OW2GRMBRJWF/Quadra_V5.2.0.zip

ダウンロードしたzipを解凍します。

unzip Quadra_V5.2.0.zip
cd Quadra_V5.2.0

クイックインストーラーを起動します。

bash quadra_quick_installer.sh

セットアップウィザードが表示され、手順に従ってインストールを行います。

1)Setup Environment variables
3)Install OS prerequisite packages
4)Install NVMe CLI
5)Install Libxcoder
x)Install FFmpeg (お好みのFFmegのバージョンを選択します)
22)インストーラーを終了します

Choose an option:
1) Setup Environment variables                         7) Install FFmpeg-n3.1.1 (must install Libxcoder_quadra first)  13) Install FFmpeg-n4.4
2) Unlock CPU governor                                 8) Install FFmpeg-n3.4.2                                        14) Install FFmpeg-n5.0
3) Install OS prerequisite packages                    9) Install FFmpeg-n4.1.3                                        15) Install FFmpeg-n6.0
4) Install NVMe CLI                                   10) Install FFmpeg-n4.2.1                                        16) Install gstreamer-1.22.2
5) Install Libxcoder                                  11) Install FFmpeg-n4.3.1                                        17) Firmware Update
6) Install Libxcoder_quadra (for FFmpeg-n3.1.1 only)  12) Install FFmpeg-n4.3                                          18) Quit
#?

インストールされたFFmpegでハードウェアエンコーディングであるQuadraのコーデックが利用可能かを確認します。

root@localhost:~/Quadra_V5.2.0# ffmpeg -codecs -hide_banner | grep quadra
 DEV.L. av1                  Alliance for Open Media AV1 (encoders: av1_ni_quadra_enc)
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_ni_quadra_dec) (encoders: libx264 libx264rgb h264_ni_quadra_enc h264_v4l2m2m)
 DEV.L. hevc                 H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_v4l2m2m h265_ni_quadra_dec) (encoders: libx265 h265_ni_quadra_enc hevc_v4l2m2m)
 DEVIL. mjpeg                Motion JPEG (decoders: mjpeg jpeg_ni_quadra_dec) (encoders: mjpeg jpeg_ni_quadra_enc)
 D.V.L. vp9                  Google VP9 (decoders: vp9 vp9_v4l2m2m vp9_ni_quadra_dec)

ni_rsrc_mon コマンドを利用することにより、VPUの利用状況を確認することもできます。

  • 検出されたVPUの数
  • 温度と電力
  • ファームウェアとシリアル番号
  • デコーダー、エンコーダー、スケーラー、AIエンジンの使用状況
root@localhost:~/Quadra_V5.2.0# ni_rsrc_mon
**************************************************
1 devices retrieved from current pool at start up
Tue May 27 12:04:05 2025 up 00:00:00 v5206s5r3
INDEX    TEMP     POWER    FR       SN
0        45       5893mW   5206s5r1 Q1UA4FA11CC127-0875
Num decoders: 1
INDEX LOAD MODEL_LOAD INST MEM  SHARE_MEM P2P_MEM DEVICE
0     0    0          0    0    0         0       /dev/nvme0n1
Num encoders: 1
INDEX LOAD MODEL_LOAD INST MEM  SHARE_MEM P2P_MEM DEVICE
0     0    0          0    0    0         0       /dev/nvme0n1
Num scalers: 1
INDEX LOAD MODEL_LOAD INST MEM  SHARE_MEM P2P_MEM DEVICE
0     0    0          0    0    0         0       /dev/nvme0n1
Num AIs: 1
INDEX LOAD MODEL_LOAD INST MEM  SHARE_MEM P2P_MEM DEVICE
0     0    0          0    0    0         0       /dev/nvme0n1
**************************************************

以上でFFmpegのインストールは完了です。

FFmepgを利用したエンコーディングテスト

今回は、先程のベンチマークと一緒のKenneth Robinson氏が利用した、Netflixのオープンソースコンテンツを利用してVPUでエンコーディングテストを行います。

動画の仕様

Title : Meridian (2016)

  • UHD IMF
  • Zipped UHD VDM
  • UHD 4k 5994 HDR P3/PQ (mp4)
  • UHD VDM Image Sequence
  • Dolby Atmos Metadata File
  • Atmos BWAV ADM
  • TIFF Sequence
  • H264

FFmpegを利用してMeridian(2016)をNETINT Quadra を使用したH.264 から H.265トランスコードを実施します。

ffmpeg -y \
  -nostdin -hide_banner \
  -c:v h264_ni_quadra_dec -dec 0 \
  -i Meridian_UHD4k5994_HDR_P3PQ.mp4 \
  -vf scale=3840:2160 \
  -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc \
  -c:v h265_ni_quadra_enc -enc 0 \
  -xcoder-params intraQP=24:intraPeriod=120 \
  Meridian_UHD4k5994_HDR_P3PQ_encoded_x265_vpu.mp4
オプション 内容 解説
-y 上書き許可 既存の出力ファイルがあっても確認せずに上書き
-nostdin 入力無効化 標準入力の割り込み(qなど)を無効化
-hide_banner バナー非表示 FFmpeg起動時のバナー情報(バージョンなど)を非表示
-c:v h264_ni_quadra_dec デコーダ指定 NETINT Quadra専用のH.264ハードウェアデコーダ
-dec 0 デコーダID デコーダインスタンス0番を使用(複数カード対応時に使用)
-i Meridian_UHD4k5994_HDR_P3PQ.mp4 入力ファイル ソース映像ファイルを指定
-vf scale=3840:2160 映像スケーリング 解像度をUHD 4K (3840x2160) にリサイズ
-color_primaries bt2020 色度情報 広色域のBT.2020色度(HDR映像の標準)
-color_trc smpte2084 トランスファ特性 PQカーブ(HDR10で使われる)
-colorspace bt2020nc 色空間 非圧縮BT.2020色空間(ノンコンバージョン)
-c:v h265_ni_quadra_enc エンコーダ指定 NETINT Quadra専用のH.265ハードウェアエンコーダ
-enc 0 エンコーダID エンコーダインスタンス0番を使用
-xcoder-params intraQP=24:intraPeriod=120 エンコーダ設定 QP=24(画質指定)、GOP長=120(IDR間隔)
Meridian_UHD4k5994_HDR_P3PQ_encoded.265 出力ファイル エンコード後のHEVC(H.265)生ストリームファイル

ni_rsrc_monでエンコーディング中の状況を確認することができます。
出力からQuadraは現在4K 59fpsの映像を、平均約3.17Gbpsという非常に高いビットレートで安定してエンコードしており、これは4K 59.94fps HDRソース高品質な映像を安定してエンコーディングしていることがわかります。

root@localhost:~# ni_rsrc_mon -d
**************************************************
1 devices retrieved from current pool at start up
Tue May 27 13:31:08 2025 up 00:00:00 v5206s5r3
INDEX    TEMP     POWER    FR       SN
0        45       8577mW   5206s5r1 Q1UA4FA11CC127-0875
Num decoders: 1
INDEX AvgCost FrameRate IDR   InFrame OutFrame Width Height SID   DEVICE         NAMESPACE
0     13      59        18    3048    3044     3840  2160   8200  /dev/nvme0n1   /dev/nvme0n1
Num encoders: 1
INDEX AvgCost FrameRate IDR   UserIDR InFrame OutFrame BR         AvgBR      Width Height Format    SID   DEVICE         NAMESPACE
0     29      59        26    0       3036    3028     91568      3176463    3840  2160   YUV       5001  /dev/nvme0n1   /dev/nvme0n1
**************************************************

出力された動画ファイルをほぼ同条件でCPUエンコーディングした動画とVMAFの比較を実施しました。
VMAF(Video Multi-Method Assessment Fusion)は、Netflixが開発した映像品質評価指標で、人間の視覚に近いスコアを0〜100で算出します。
複数のアルゴリズム(PSNR・SSIMなど)を統合して、視聴者が感じる画質の劣化を数値化します。
主に映像圧縮後の品質評価やエンコーダ比較に使われます。

CPUにてエンコーディングした際のコマンド

ffmpeg -y \
  -nostdin -hide_banner \
  -threads 55 \
  -i Meridian_UHD4k5994_HDR_P3PQ.mp4 \
  -vf scale=3840:2160 \
  -c:v libx265 \
  -pix_fmt yuv420p \
  -x265-params "qp=27:keyint=120:min-keyint=120:no-scenecut=1" \
  -color_primaries bt2020 \
  -color_trc smpte2084 \               
  -colorspace bt2020nc \
  Meridian_UHD4k5994_HDR_P3PQ_encoded_x265_cpu.mp4

2つの出力結果のファイルを元動画とVMAFの比較を行います。

ffmpeg -i Meridian_UHD4k5994_HDR_P3PQ.mp4 \
       -i Meridian_UHD4k5994_HDR_P3PQ_encoded_x265_cpu.mp4 \
       -lavfi "[0:v]format=yuv420p[ref]; \
               [1:v]format=yuv420p[dist]; \
               [ref][dist]libvmaf=log_path=vmaf_cpu.json:log_fmt=json:n_threads=55" \
       -f null -

ffmpeg -i Meridian_UHD4k5994_HDR_P3PQ.mp4 \
       -i Meridian_UHD4k5994_HDR_P3PQ_encoded_x265_vpu.mp4 \
       -lavfi "[0:v]format=yuv420p[ref]; \
               [1:v]format=yuv420p[dist]; \
               [ref][dist]libvmaf=log_path=vmaf_vpu.json:log_fmt=json:n_threads=55" \
       -f null -

このグラフでは各フレーム単位でのVMAFスコアを比較していますが、VPUだからといってスコアが大きく劣化することはなく、ほぼ同等程度の品質でエンコーディングできていることがわかります。

output (8).png

まとめ

本ブログでは、Akamai CloudのAccelerated Compute Instancesに搭載されたNETINT Quadra T1U VPUを用いたトランスコーディング環境を紹介し、その性能と画質について実際に検証を行いました。

NETINT Quadra T1Uは、低コストかつ高性能なASICベースVPUであり、H.264 / HEVC / AV1のリアルタイムエンコードをサポートしています。

VPUエンコーディングはCPUエンコーディングと比較して、大幅なスループットと低コストを実現しつつ、画質(VMAFスコア)も同等水準を維持できることを確認することができました。

Akamai Cloudでの映像処理コストの最適化や、高効率なライブ配信/VoDエンコーディングの選択肢として、Accelerated Compute Instancesは非常に有効なソリューションです。

関連記事

アカマイ・テクノロジーズ合同会社の Qiita では、 Akamai Cloud 関連などの開発者向けの記事を掲載しております。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?