使用简介

  • 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 错误
    1. 可能解决方案:卸载libnuma-dev,然后编译安装bpg,再重装libnuma-dev(但是我没成功,出现能调用bpgenc,bpgdec但是实际会卡住的的情况,输出0kb的.bpg文件),参考的某个stack overflow帖子。
    2. 可能解决方案:修改MakefileE文件中第180行为LIBS+=-lm -lpthread -lnuma。参考
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐