はじめに
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 とは
NETINT Quadra T1Uは、データセンターやクラウド向けに設計された高密度・高効率なVideo Processing Unit(VPU)になります。主にリアルタイムのビデオエンコードやトランスコード用途で使われ、クラウド事業者ではAkamaiが初めて導入した製品でもあります。
特徴として、第2世代ASICビデオ処理ユニットであるCodensity G5 Chipを搭載しており、AV1、HEVC、H.264 のエンコーディングにも対応しています。このチップには独自の内蔵 AI 処理エンジンが組み込まれています。
このAI処理エンジンにより、シーン検出や背景除去、顔認識、物体検出などを行いながらのリアルタイム処理も可能となります。
項目 | 詳細 |
---|---|
製品名 | 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枚搭載のサーバー
評価基準:
- 画質(VMAFスコア)
- スループット(出力ストリーム数)
- コスト(CAPEX/OPEX)
- 消費電力(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種類のインスタンスを提供しています。
尚、対応するリージョンが限られておりますので、こちらからご確認ください。
インスタンスを起動する際の推奨OSとしては下記になります。
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 22.10
クイックスタート
Akamai Cloud上に構築したNETINT Quadra T1U VPU x1 Smallインスタンスにてffmpegを利用できるようにクイックスタートガイドを元にセットアップを行います。
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だからといってスコアが大きく劣化することはなく、ほぼ同等程度の品質でエンコーディングできていることがわかります。
まとめ
本ブログでは、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 関連などの開発者向けの記事を掲載しております。