文章目录
- 使用简介
- 安装依赖
- 编译安装BPG
使用简介
- CompressAI的github仓库中Usage-Evaluation给出了传统编解码器的使用帮助,但是并未给出详细的使用方法。本文旨在进行总结使用方法。下图是传统编解码器相关代码的存放地点,其中codecs为各种编解码器类的定义模块module,被__main__调用。
- 各个编解码器的输入参数的要求在codecs中可以找到,数据集路径参数是必须的。
# 要注意的是
# 在通过python -m script运行脚本的时候,不需要加上后缀
python -m __main__ jpeg
- 在跑.bpg的时候,你会发现需要自己显式给出encoder和decoder的路径。而bpg的linux编解码器需要在这里可以找到,源码的编译须知在README中可以看到需要安装yasm和SDL。
在安装的时候有个需要注意的地方,如果你和我一样是通过登录用户的方式连接服务器,那么在进行如下python包安装的时候需要在自己的用户目录下安装,而不是对所有用户生效(权限不够)。
安装依赖
yasm下载链接,参考链接。sdl-image
# 这里我是自己下载的tar.gz压缩包然后上传到服务器
# wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
# ./configure --prefix=$HOME/yasm-1.3.0 #使用该命令配置yasm的安装路径为用户目录下的bin目录:
./configure
make && make install
echo 'export PATH="$HOME/yasm-1.3.0:$PATH"' >> ~/.bashrc
source ~/.bashrc# 验证
yasm --version# 安装sdl-image1.2
sudo apt-get install libsdl-image1.2-dev
编译安装BPG
在链接下载bpg的linux的源码。然后进行解压安装。其中README文件中给出了一系列注意事项。
tar xvf libbpg-0.9.8
cd libbpg-0.9.8
sudo make -j # 重新make之前需要sudo make clean命令
sudo make install # 可能会提示关于numa的undefined 错误
- 关于numa的undefined 错误
- 可能解决方案:卸载libnuma-dev,然后编译安装bpg,再重装libnuma-dev(但是我没成功,出现能调用bpgenc,bpgdec但是实际会卡住的的情况,输出0kb的.bpg文件),参考的某个stack overflow帖子。
- 可能解决方案:修改MakefileE文件中第180行为LIBS+=-lm -lpthread -lnuma。参考