编译安装x265
编译安装x265前需要获取相关软件包(x265-dev-sve.zip),编译安装过程中使用的安装目录、源代码目录和编译目录均可自定义,本文中给出的目录仅为示例。
- 请参见表2获取x265-dev-sve.zip软件包,上传到服务器“/home/sourcecode”目录并解压,并为目录拥有者添加读、写和可执行权限。
mkdir /home/sourcecode && chmod -R 700 /home/sourcecode && cd /home/sourcecode unzip x265-dev-sve.zip
- 创建安装目录。
mkdir -p /home/x265/install
- 创建源代码目录。
mkdir -p /home/x265/src
- 将源代码复制到创建好的源代码目录。
cp -r /home/sourcecode/x265-dev-sve/* /home/x265/src
- 创建编译目录并进入编译目录。
mkdir -p /home/x265/build && cd /home/x265/build
- 配置编译参数。相关参数的解释说明如表1所示。
cmake -S /home/x265/src/source/ -DCMAKE_BUILD_TYPE=Release -DENABLE_PIC=ON -DENABLE_ASSEMBLY=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_C_FLAGS=" $CMAKE_C_FLAGS -O3 -msve-vector-bits=256 -march=armv8.2-a+sve+f64mm -fPIC -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -ftrapv " -DCMAKE_CXX_FLAGS=" $CMAKE_CXX_FLAGS -O3 -msve-vector-bits=256 -march=armv8.2-a+sve+f64mm -fPIC -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -ftrapv " -DHIGH_BIT_DEPTH=off -DMAIN12=off -DENABLE_TESTS=on -DENABLE_SHARED=on -DENABLE_LIBNUMA=off -DCMAKE_INSTALL_PREFIX=/home/x265/install -DOPTIONAL_SVE_OPTIMIZE=on -DUSE_OPTIMAL_OPTIMIZE=on -DCMAKE_EXE_LINKER_FLAGS=" -pie -Wl,-z,relro,-z,now,-s " -DCMAKE_SHARED_LINKER_FLAGS=" -Wl,-z,relro,-z,now,-s "
表1 配置编译参数解释说明 参数
说明
-S /home/x265/src/source
指定源代码目录,即要进行构建的项目代码所在的目录。“/home/x265/src/source”仅为示例,可自定义。
-DCMAKE_BUILD_TYPE=Release
指定构建类型为Release,便于编译优化。
-DENABLE_PIC=ON
开启生成位置无关代码(Position Independent Code),便于动态链接。
-DENABLE_ASSEMBLY=ON
开启汇编优化,允许使用汇编代码来优化性能。
-DCMAKE_VERBOSE_MAKEFILE=ON
开启详细的Makefile输出。
-DCMAKE_C_FLAGS=" $CMAKE_C_FLAGS -O3 -msve-vector-bits=256 -march=armv8.2-a+sve+f64mm -fPIC -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -ftrapv "
指定C语言编译器的参数。
-DCMAKE_CXX_FLAGS=" $CMAKE_CXX_FLAGS -O3 -msve-vector-bits=256 -march=armv8.2-a+sve+f64mm -fPIC -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -ftrapv "
指定C++语言编译器的参数,参数解释与-DCMAKE_C_FLAGS类似。
-DHIGH_BIT_DEPTH=off
关闭高位深度支持,不使能10bit。
-DMAIN12=off
关闭Main12支持,不使能12bit。
-DENABLE_TESTS=on
开启测试构建,允许构建测试用例。
-DENABLE_SHARED=on
开启共享库构建。
-DENABLE_LIBNUMA=off
关闭NUMA支持库。
-DCMAKE_INSTALL_PREFIX=/home/x265/install
指定安装目录,即make install命令安装生成文件时要放置的位置。
“/home/x265/install/”仅为示例,可自定义。
-DOPTIONAL_SVE_OPTIMIZE=on
开启SVE选项。表示禁用一些在鲲鹏920 7280Z处理器上性能表现不好的算子。
-DUSE_OPTIMAL_OPTIMIZE=on
开启选择最优向量化优化实现。表示针对部分算子选择使用在鲲鹏920 7280Z处理器上性能最佳的向量化优化实现。
-DCMAKE_EXE_LINKER_FLAGS=" -pie -Wl,-z,relro,-z,now,-s "
安全编译选项:开启内存安全选项,避免代码注入等内存攻击。
-DCMAKE_SHARED_LINKER_FLAGS=" -Wl,-z,relro,-z,now,-s "
安全编译选项:开启内存安全选项,避免代码注入等内存攻击。
上述提供的编译参数均添加了安全编译选项,经实测对编码性能存在一定影响,性能优先的场景可考虑去除安全编译选项以获得更好的性能。
- 使用256个并行任务(线程)进行编译,可根据实际CPU核数选择。
make -j256
- 将生成的二进制文件和库文件安装到指定的安装路径中。
make install