v-nova-tile

V-Nova LCEVC XSA – 吞吐量和质量提升的视频编码器

V-Nova LCEVC采用独特的视频编码方式“MPEG-5 Part 2 LCEVC (Low-complexity enhancement video coding)”,可显著提升任何标准编解码器的质量和吞吐量,如 AVC/H.264、HEVC、VP8、VP9 和 AV1 等。

供应商:V-Nova

更新日期:2021 年 3 月 22 日

大小: 1 GB

容器版本

Alveo U50 vnova_lcevc_xsa_onprem_gpl_u50_20201:3.1.0.2
Alveo U200 vnova_lcevc_xsa_onprem_gpl_u200_20201:3.1.0.1
Alveo U250 vnova_lcevc_xsa_onprem_gpl_u250_20201:3.1.0.1

试用或购买

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


您可免费试用以下示例应用。

查看和购买此应用的可用定价计划。


部署选项

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

本地
Alveo U50
查看 & 购买产品
  • Xilinx Runtime: 202010.2.6.655
  •   目标平台: xilinx_u50_gen3x16_xdma_201920_3
Alveo U200
查看 & 购买产品
  • Xilinx Runtime: 202010.2.6.655
  • 目标平台: xdma-201830.2
Alveo U250
查看 & 购买产品
  • Xilinx Runtime: 202010.2.6.655
  • 目标平台: xdma-201830.2

开始评估

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

Alveo U200/U250/U50

1.

获取账户访问密钥

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

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

注:生成的访问密钥将启用您帐户中的所有权限。如果您还没有从以上 "TRY OR BUY" 部分获取授权,请先获取授权,然后按照以下步骤生成访问密钥。


2.

主机设置

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


2.1 为 Xilinx Base Runtime 克隆 GitHub 版本库

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

2.2 运行主机设置脚本

    ./host_setup.sh -v 2020.1 -p alveo-u50
./host_setup.sh -v 2020.1 -p alveo-u200
./host_setup.sh -v 2020.1 -p alveo-u250

  • 请等待安装完成。在此期间,您可能需要按 [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 映像 (U50/U200/U250)

    docker pull xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u50_20201_3.1.0.2
docker pull xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u200_20201_3.1.0.11
docker pull xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u250_20201_3.1.0.1

3.3 Ffmpeg 发行版

GPL 许可:

FFmpeg 是一系列库和工具,用于处理多媒体内容,如音频、视频、字幕及相关元数据等。LCEVC-XSA 的 FFmpeg 发行版是 GPL 许可的,相应的 Linux 二进制文件和库可从 联系 V-Nova 下载。


3.4 运行 Docker 映像(基本模式)

注:

请确保“path-to-ffmpeg-dir” 包含 ffmpeg_lcevc 可执行文件,然后继续。

请确保“path-to-cred.json”包含 cred.json 文件,然后继续。

3.4.1.U50

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u50_20201_3.1.0.2 x265 3840 2160 8000 1 1

3.4.2.U200

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u200_20201_3.1.0.1 x265 3840 2160 8000 1 1

3.4.2.U250

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u250_20201_3.1.0.1 x265 3840 2160 8000 1 1



命令参数描述:

  • -v “path-to-cred.json”:/vnova_lcevc/cred.json:Z — 映射本地 cred.json 文件:container cred.json 文件
  • -v /dev/shm:/io:Z - 映射本地目录 : 输入/输出文件的容器目录
  • $XILINX_DOCKER_DEVICES - 由主机设置脚本设置的环境变量
  • -it --rm — 在交互模式下运行 Docker,并在执行完成后删除容器(按‘q’键可退出执行)
  • Docker 运行.........[codec] [width] [height] [bitrate] [use-lcevc-flag] [loop]
  • codec options => [x264, x265, qsv_h264, qsv_hevc, vp8, vp9, av1]
  • e.g .docker run ...... x265 3840 2160 8000 1 -1 [loop input file indefinitely] 

3.5 运行 Docker 映像(高级模式)

注:

请确保“path-to-ffmpeg-dir” 包含 ffmpeg_lcevc 可执行文件,然后继续。

请确保“path-to-cred.json”包含 cred.json 文件,然后继续。

请确保 /dev/shm 包含您输入的视频 “some-video-file.yuv”,然后继续。

3.5.1.U50

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u50_20201_3.1.0.2 -y -s 3840x2160 -pix_fmt yuv420p -vcodec rawvideo -r 60 -stream_loop 1 -i /io/<some-video-file.yuv> -c:v lcevc_hevc -base_encoder x265 -eil_params "accel_type=xilinx_xma;encoding_transform_type=dd;api_mode=asynchronous;baseEncType=x265;encoding_upsample=stergy;rate_control_mode=adaptiveratio;rc_bucket_duration_ms=4000;rc_bitrate_max_base_prop=0.875;rc_bitrate_base_prop=0.875;encoding_downsample_luma=lanczos3;encoding_downsample_chroma=larea3;rc_max_pcrf=35;rc_pcrf_base_prop=0.8;rc_pcrf_gop_length=120;rc_pcrf_min_bitrate=2000;rc_pcrf_base_rc_mode=cbr;encoding_step_width_loq_1_min=32767;bframes=3;preset=medium;encoding_mode=enhanced;residual_mode_priority_enabled=0;temporal_sw_modifier=-2;temporal_use_priority_map=0;temporal_cq_sw_multiplier=0;temporal_use_new_cost=0;temporal_use_temporal_type=0;encoding_adaptive_deadzone_enabled=1;lcevc_tune=disabled" -b:v 8000k -vsync 0 "/io/lcevc_x265_fpga.ts"

3.5.2.U200

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u200_20201_3.1.0.1 -y -s 3840x2160 -pix_fmt yuv420p -vcodec rawvideo -r 60 -stream_loop 1 -i /io/<some-video-file.yuv> -c:v lcevc_hevc -base_encoder x265 -eil_params "accel_type=xilinx_xma;encoding_transform_type=dd;api_mode=asynchronous;baseEncType=x265;encoding_upsample=stergy;rate_control_mode=adaptiveratio;rc_bucket_duration_ms=4000;rc_bitrate_max_base_prop=0.875;rc_bitrate_base_prop=0.875;encoding_downsample_luma=lanczos3;encoding_downsample_chroma=larea3;rc_max_pcrf=35;rc_pcrf_base_prop=0.8;rc_pcrf_gop_length=120;rc_pcrf_min_bitrate=2000;rc_pcrf_base_rc_mode=cbr;encoding_step_width_loq_1_min=32767;bframes=3;preset=medium;encoding_mode=enhanced;residual_mode_priority_enabled=0;temporal_sw_modifier=-2;temporal_use_priority_map=0;temporal_cq_sw_multiplier=0;temporal_use_new_cost=0;temporal_use_temporal_type=0;encoding_adaptive_deadzone_enabled=1;lcevc_tune=disabled" -b:v 8000k -vsync 0 "/io/lcevc_x265_fpga.ts"

3.5.3.U250

    docker run -it --rm $XILINX_DOCKER_DEVICES -v <path-to-ffmpeg-dir>:/ffmpeg_dist:Z -v /dev/shm:/io:Z -v <path-to-cred.json>:/vnova_lcevc/cred.json:Z xilinxpartners/vnova_lcevc_xsa_onprem_gpl:alveo_u250_20201_3.1.0.1 -y -s 3840x2160 -pix_fmt yuv420p -vcodec rawvideo -r 60 -stream_loop 1 -i /io/<some-video-file.yuv> -c:v lcevc_hevc -base_encoder x265 -eil_params "accel_type=xilinx_xma;encoding_transform_type=dd;api_mode=asynchronous;baseEncType=x265;encoding_upsample=stergy;rate_control_mode=adaptiveratio;rc_bucket_duration_ms=4000;rc_bitrate_max_base_prop=0.875;rc_bitrate_base_prop=0.875;encoding_downsample_luma=lanczos3;encoding_downsample_chroma=larea3;rc_max_pcrf=35;rc_pcrf_base_prop=0.8;rc_pcrf_gop_length=120;rc_pcrf_min_bitrate=2000;rc_pcrf_base_rc_mode=cbr;encoding_step_width_loq_1_min=32767;bframes=3;preset=medium;encoding_mode=enhanced;residual_mode_priority_enabled=0;temporal_sw_modifier=-2;temporal_use_priority_map=0;temporal_cq_sw_multiplier=0;temporal_use_new_cost=0;temporal_use_temporal_type=0;encoding_adaptive_deadzone_enabled=1;lcevc_tune=disabled" -b:v 8000k -vsync 0 "/io/lcevc_x265_fpga.ts"

命令参数描述:

  • -v :/vnova_lcevc/cred.json:Z — 映射本地 cred.json 文件:container cred.json 文件
  • -v /dev/shm:/io:Z - 映射本地目录 : 输入/输出文件的容器目录
  • $XILINX_DOCKER_DEVICES - 由主机设置脚本设置的环境变量
  • -it --rm — 在交互模式下运行 Docker,并在执行完成后删除容器(按‘q’键可退出执行)
  • -y — 在不询问的情况下,覆盖输出文件
  • -s WxH - 输入分辨率
  • -pix_fmt - 输入文件的像素格式 (yuv420p)
  • -c:v codec — Ffmpeg 用于编码的 FFmpeg LCEVC 插件(选项有:lcevc_h264、lcevc_hevc、lcevc_vp8、lcevc_vp9 和 lcevc_av1,其使用基本编解码器指定 LCEVC)
  • -base_encoder codec — 主机驱动程序基本编码器插件(选项有 x264、x265、qsv_h264、qsv_hevc、vpx 和 av1)
  • -baseEncType codec — FPGA 特定变量(选项有 x264、x265、vpx 和 av1)而且必须匹配上面指定的编解码器 [e.g -c:v lcevc_h264 -base_encoder qsv_h264 -eil_params “baseEncType=x264”]。所有这三个变量在定义上应该是一致的。
  • -Stream_loop — 指定在编码期间通过输入文件循环的次数,设为 -1,表示无限
  • -i — 要编码的输入文件的位置
  • -eil_params "params" — 用于定义 LCEVC 编码器特定参数的前缀选项
  • preset=value - eil_params 目标质量,选项有很慢、慢、中等速度、快、很快、超快 [仅限 x264、x265 和 QSV 编解码器]
  • quality=value - eil_params 目标质量,选项有最佳、好、实时 [仅限 VP8、VP9、AV1(‘最佳’选项不支持 AV1)]
  • -b:v  - 指定编码比特率,例如 4500k 将以 4.5mbps 的速率编码
注:请参阅用户指南,了解对 LCEVC 参数的更多说明

4.

结果

工作完成后,“lcevc_x265_fpga.ts”4K 编码示例会出现“/dev/shm”中。 你可以在 Microsoft Windows 10 上使用 LCEVC 解码器来显示(仅 H.264 和 HEVC)。 对于 VPx 或 AV1,请联系 V-Nova。 您需要安装这两个应用:

  • HEVC 扩展 app:

https://www.microsoft.com/en-us/store/p/hevc-video-extension/9n4wgh0z6vhq

  • V-Nova LCEVC Decoder

https://www.microsoft.com/store/productId/9N9C2Z21XHL9

在基本模式下运行时:

  • 将您的文件复制/硬链接至 "/dev/shm/input.yuv"
  • 注:基本模式假设输入文件名为 ‘input.yuv’

在高级模式下运行时:

  • 将您的视频文件复制 / 硬链接到“/dev/shm/”下
  • 然后使用 -i 选项(即“-i /io/”)通过命令行指定