鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

编译安装x265

编译安装x265前需要获取相关软件包(x265-dev-sve.zip),编译安装过程中使用的安装目录、源代码目录和编译目录均可自定义,本文中给出的目录仅为示例。

  1. 请参见表2获取x265-dev-sve.zip软件包,上传到服务器“/home/sourcecode”目录并解压,并为目录拥有者添加读、写和可执行权限。
    mkdir /home/sourcecode && chmod -R 700 /home/sourcecode && cd /home/sourcecode
    unzip x265-dev-sve.zip
  2. 创建安装目录。
    mkdir -p /home/x265/install
  3. 创建源代码目录。
    mkdir -p /home/x265/src
  4. 将源代码复制到创建好的源代码目录。
    cp -r /home/sourcecode/x265-dev-sve/* /home/x265/src 
  5. 创建编译目录并进入编译目录。
    mkdir -p /home/x265/build && cd /home/x265/build
  6. 配置编译参数。相关参数的解释说明如表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语言编译器的参数。

    • -O3表示启用最高级别的优化。
    • -msve-vector-bits=256指定Arm SVE位宽为256位。
    • -march=armv8.2-a+sve+f64mm指定Arm架构版本,同时开启SVE支持和浮点64位数学操作。

      安全编译选项:

    • -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 "

    指定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 "

    安全编译选项:开启内存安全选项,避免代码注入等内存攻击。

    上述提供的编译参数均添加了安全编译选项,经实测对编码性能存在一定影响,性能优先的场景可考虑去除安全编译选项以获得更好的性能。

  7. 使用256个并行任务(线程)进行编译,可根据实际CPU核数选择。
    make -j256
  8. 将生成的二进制文件和库文件安装到指定的安装路径中。
    make install