rigaya / VCEEnc

VCEによる高速エンコードの性能実験
https://rigaya34589.blog.fc2.com/blog-category-12.html
Other
227 stars 22 forks source link

VCEEnc

by rigaya

Build Windows Releases Build Linux Packages

日本語版はこちら>>

This software is meant to investigate performance and image quality of HW encoder (VCE) of AMD. There are 2 types of software developed, one is command line version that runs independently, and the nother is a output plug-in of Aviutl.

VCEEncC.exe … Command line version supporting transcoding.
VCEEnc.auo … Output plugin for Aviutl.

Downloads & update history

rigayaの日記兼メモ帳>>
github releases

Install

Install instructions for Windows and Linux.

Build

Build instructions for Windows and Linux

System Requirements

Windows

Windows 10/11 (x86 / x64)
Aviutl 1.00 or later (VCEEnc.auo)
Hardware which supports VCE
AMD GPU Radeon HD 7xxx or later
AMD APU Trinity (2nd Gen) or later

Linux

Debian/Ubuntu (VCEEncC)
It may be possible to run on other distributions (not tested).

VCEEnc required graphics driver version
VCEEnc 3.00 or later AMD driver 17.1.1 (16.50.2611) or later
VCEEnc 5.00 or later AMD driver 19.7.1 or later
VCEEnc 5.01 or later AMD driver 19.12.1 or later
VCEEnc 5.02 or later AMD driver 20.2.1 or later
VCEEnc 6.09 or later AMD driver 20.11.2 or later
VCEEnc 6.13 or later AMD driver 21.6.1 or later
VCEEnc 6.17 or later AMD driver 21.12.1 or later
VCEEnc 7.00 or later AMD driver 22.3.1 or later
VCEEnc 7.03 or later AMD driver 22.7.1 or later
VCEEnc 7.15 or later AMD driver 22.12.1 or later
VCEEnc 8.07 or later AMD driver 23.1.2 or later
VCEEnc 8.17 or later AMD driver 23.5.2 or later
VCEEnc 8.23 or later AMD driver 24.6.1 or later

Usage and options of VCEEncC

Option list and details of VCEEncC

Precautions for using VCEEnc

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

Main usable functions

Common to VCEEnc / VCEEncC

VCEEncC

VCEEnc.auo (Aviutl plugin)

VCEEnc.auo

Supported HW Encode Codecs

GPU Arch GPU Gen dGPU iGPU VCE/VCN Gen H.264 HEVC AV1
GCN Southern/Sea Islands HD7xxx, RX2xx VCE1, VCE2 8bit
Volcanic Islands RX3xx VCE3 8bit
Polaris RX4xx, RX5xx VCE3.4 8bit 8bit
Vega Vega VCE4 8bit 8bit
Vega RyzenAPU(2xxx-3xxx) VCN1 8bit 8bit
Vega RyzenAPU(4xxx-5xxx) VCN2 8bit 10bit
RDNA RDNA1 RX5xxx VCN2 8bit 10bit
RDNA2 RX6xxx* Zen4 APU VCN3 8bit 10bit
RDNA3 RX7xxx VCN4 8bit 10bit 10bit

Auto GPU selection in multi GPU envinronment

VCEEncC will automatically select a GPU depending on the options used, when there are multiple GPUs available which support VCE/VCN. --device option can be used to specify on which GPU to run manually.

  1. Select GPU which supports...
    Items below will be checked whether the GPU supports it or not

    • Codec, Profile, Level
    • Additionally, below items will be checked if specified
    • 10bit depth encoding
    • HW decode
  2. Prefer GPU which supports...

    • B frame support
  3. If there are multiple GPUs which suports all the items checked in 1. and 2., GPU below will be prefered.

    • GPU which has low Video Engine(VE) utilization
    • GPU which has low GPU core utilization

    The purpose of selecting GPU with lower VE/GPU ulitization is to assign tasks to mulitple GPUs and improve the throughput of the tasks.

    Please note that VE and GPU ulitization are check at the initialization pahse of the app, and there are delays in values taken. Therefore, it is likely that the multiple tasks started at the same time to run on the same GPU, and divided into multiple GPUs, even if the options are supported in every GPUs.

VCEEnc source code

About source code

Windows ... VC build

Character code: UTF-8-BOM
Line feed: CRLF
Indent: blank x4