VMAF 视频质量指标硬件加速器

Pulsar-VMAF 是一个固定功能硬件加速器,主要利用 Xilinx Alveo 卡为实现 VMAF 视频质量指标提供最高的计算效率。 它可用于优化编码阶梯和实时监控视频,以帮助保持所有帧的质量一致。

供应商: BLUEDOT

最新更新:2021 年 9 月 10 日

尺寸: 743 MB

容器版本: hubxilinx/bluedot_pulsar-vmaf-u50

试用或购买

获得评估或购买此产品的权利。


开始免费试用并运行以下应用示例。


部署选项

该应用是容器化的,可以在几分钟内轻松地在云中或本地运行。

本地
Alveo U50
查看/购买产品
  • Xilinx Runtime: 2020.2.10.15
  • 目标平台: xilinx_u50_gen3x16_xdma_201920_3
云服务
AWS
  • Xilinx Runtime: AWS AMI5
  • 目标平台:

 


开始评估

请按照部署方法进行操作。

Alveo U50

1.

获得评估访问密钥

从 Xilinx 应用商店创建并下载 cred.json 文件(https://appstore.xilinx.com/)。

  • 登录 Xilinx 应用商店门户网站
  • 点击 "Manage Account" 按钮,查看应享权限。
  • 点击左侧菜单上的 "Access Key" 链接
  • 点击 "Create an Access Key" 按钮。
  • 将生成的文件 "cred.json" 下载至 /tmp 目录

2.

主机设置

Xilinx Runtime (XRT) 主机应用在 Ubuntu 16.04 /18.04 和 CentOS 7.x. 上提供支持。支持sudo 访问时,请使用以下命令下载并运行安装脚本:

注:此流程假设您的系统中只安装了一张目标卡,并且它安装在插槽“0”中。


2.1 为 Xilinx 基础运行时克隆 GitHub 版本库

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git && cd Xilinx_Base_Runtime

2.2 运行主机设置脚本

    ./host_setup.sh -v 2020.2 -p alveo-u50

  • 请等待安装完成。在此期间,您可能需要按 [Y],才能继续进行主机设置。
  • 如果选择闪存 FPGA,则需要在安装完成后冷重启本地机,才能在 FPGA 上加载新映像。
  • 用于主机设置的脚本可用于设置其它版本的 XRT 和 shell。请查看 https://github.com/Xilinx/Xilinx_Base_Runtime,了解更多详情。

安装 Docker(如果尚未安装)

支持 sudo 访问时,请使用以下命令运行实用程序脚本来安装 docker。


2.3 转向 XXilinx_Base_Runtime 实用程序目录

    cd Xilinx_Base_Runtime/utilities

2.4 运行 Docker 安装脚本

    ./docker_install.sh

3.

应用执行

在终端窗口中输入以下命令以运行该应用程序:


3.1 通过 Xilinx_Base_Runtime 脚本设置环境变量

    source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

3.2 获取 Docker 映像

    docker pull hubxilinx/bluedot_pulsar-vmaf-u50

3.3 运行 Docker 映像

    docker run -v /tmp/cred.json:/app/cred.json -v /dev/shm:/data -w /app $XILINX_DOCKER_DEVICES hubxilinx/bluedot_pulsar-vmaf-u50 
 "-i 2160_dst.mp4 -vsync 0 -i 2160.mp4 -vsync 0 -lavfi libbdvmaf=model_path=vmaf_4k_v0.6.1.json:kernel_path=u50_binary.xclbin:coreno=1:log_path=/data/test.log -f null –”

命令参数描述:

  • -v /tmp/cred.json:/app/cred.json  - 映射本地cred.json dir : 容器目录
  • -v /dev/shm:/data -  映射本地目录:生成输出文件的容器目录
  • $XILINX_DOCKER_DEVICES  - 在主机设置脚本中设置的环境变量

4.

结果

每帧的 VMAF 在 "/dev/shm/test.log“ 中报告

    No     ,VMAF_SCORE,      ADM,      MPCD,      VIF0,     VIF1,     VIF2,     VIF3
       1, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       2, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       3, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       4, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       5, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       6, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       7, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       8, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
       9, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      10, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      11, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      12, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      13, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      14, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      15, 100.000000, 0.999393, -0.013368, 1.000000, 1.000000, 1.000000, 1.000000
      16,  97.566488, 0.989950,  0.016739, 0.966534, 0.971284, 0.966479, 0.956362
      17,  95.701617, 0.955964,  0.047799, 0.920853, 0.968059, 0.976636, 0.980954
      18,  91.206519, 0.915715,  0.047799, 0.888859, 0.950970, 0.964046, 0.972741
      19,  89.406490, 0.900099,  0.044391, 0.864948, 0.941914, 0.958319, 0.969590
      20,  87.550198, 0.884437,  0.044391, 0.851716, 0.933523, 0.950860, 0.964334
      21,  88.349822, 0.890306,  0.036409, 0.844602, 0.937484, 0.956597, 0.969954
      22,  87.973880, 0.902339,  0.036409, 0.831304, 0.921736, 0.936173, 0.943120
      23,  89.972499, 0.910653,  0.029094, 0.836976, 0.935244, 0.953273, 0.966493
AWS

1.

获取评估访问密钥(获取证书文件)

需要一个访问密钥来对用户进行身份验证,并根据其权限授予他们应用访问权。要获得您的帐户访问密钥,请按以下步骤操作:

  • 登录 Xilinx 应用商店门户网站
  • 点击 "Manage Account" 按钮,查看应享权限。
  • 点击左侧菜单上的 "Access Key" 链接
  • 点击 "Create an Access Key" 按钮。
  • 将生成的文件 "cred.json" 下载到 ABC 位置

注意:生成的访问密钥将启用您帐户中的所有权限。如果您还没有从以上“试用或购买”部分获得授权,必须在按照以下步骤生成访问密钥之前获得授权。


2.

创建 F1 实例

2.1 从社区映像“FPGA Dev AMI”的 f1.2xlarge 创建实例

  • 登录 AWS
  • 进入 https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LaunchInstanceWizard:
  • 搜索“FPGA”,然后选择 "FPGA Developer AMI"

2.2 选择 "f1.2xlarge" 作为实例类型

如果您想同时通过多个 ffmpeg 实例试用,可选择 f1.4xlarge 或 f1.16xlarge。

Pulsar-VMAF 可为每个器件提供两个内核。

点击页面最下面的“查看与启动”按钮。


2.3 启动一个 F1 示例

在“查看”路径上点击“启动按钮”

  

选择一个现有的密钥对,也可以创建一个新的密钥对,然后将其保存为 ssh 的 pem 文件,比如“aws.pem”。


2.4 登录该实例

    ```bash
ssh -i aws.pem centos@<public_ip_address>
```

您可在 EC2 控制台中找到实例的公共 IP 地址。


3.

设置

3.1 环境变量

    ```bash
git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git
source Xilinx_Base_Runtime/utilities/xilinx_aws_docker_setup.sh
```

3.2 安装软件包

**AWS FPGA**

    ```bash
git clone https://github.com/aws/aws-fpga.git
cd aws-fpga/
source vitis_runtime_setup.sh
cd ..
```

**Docker**

    ```bash
sudo Xilinx_Base_Runtime/utilities/docker_install.sh
```

4.

执行

4.1 使用 ffmpeg 参数执行 docker

    ```bash
sudo docker run -v /var/tmp:/var/tmp -v /opt:/opt -v /${HOME}/cred.json:/app/cred.json -v ${PWD}/data:/data -w /app $XILINX_AWS_DOCKER_DEVICES hubxilinx/bluedot_pulsar-vmaf-aws-f1:latest "-i 2160_dst.mp4 -vsync 0 -i 2160.mp4 -vsync 0 -lavfi libbdvmaf=model_path=vmaf_4k_v0.6.1.json:kernel_path=f1_binary.xclbin:log_path=/data/test.xml -f null -"

4.2 多个 ffmpeg 实例

要执行多个 ffmpeg 实例,只需运行 docker 命令行即可。

注:Pulsar-VMAF 可为一个器件提供两个内核。

运行第一个实例

    ```bash
sudo docker run -v /var/tmp:/var/tmp -v /opt:/opt -v /${HOME}/cred.json:/app/cred.json -v ${PWD}/data:/data -w /app $XILINX_AWS_DOCKER_DEVICES hubxilinx/bluedot_pulsar-vmaf-aws-f1:latest "-i 2160_dst.mp4 -vsync 0 -i 2160.mp4 -vsync 0 -lavfi libbdvmaf=model_path=vmaf_4k_v0.6.1.json:kernel_path=f1_binary.xclbin:log_path=/data/test_1.xml -f null -"
```

打开一个新的终端并运行第二个实例

    ```bash
sudo Xilinx_Base_Runtime/utilities/docker_install.sh

sudo docker run -v /var/tmp:/var/tmp -v /opt:/opt -v /${HOME}/cred.json:/app/cred.json -v ${PWD}/data:/data -w /app $XILINX_AWS_DOCKER_DEVICES hubxilinx/bluedot_pulsar-vmaf-aws-f1:latest "-i 2160_dst.mp4 -vsync 0 -i 2160.mp4 -vsync 0 -lavfi libbdvmaf=model_path=vmaf_4k_v0.6.1.json:kernel_path=f1_binary.xclbin:log_path=/data/test_2.xml -f null -"
```