Windows下实现BPG压缩以及解压缩(包含python批量处理图片)

本文介绍了BPG这种高质量、高效能的图像格式,旨在替代JPEG。文章详细讲解了如何在Windows下使用bpg-0.9.8-win64.zip工具进行编码和解码,包括速度、位深度等参数设置,并提供了批量处理图片的方法,适用于需要优化图像质量和大小的场景。
摘要由CSDN通过智能技术生成

介绍

BPG(Better Portable Graphics)是一种新的图像格式。 其目的是在质量或文件大小成问题时替换JPEG图像格式。 它的主要优点是:

  1. 压缩比高。 对于类似的质量,文件比JPEG小得多。
  2. 大多数Web浏览器都支持小型Javascript解码器(gzip压缩大小:56 KB)。
  3. 基于HEVC开放视频压缩标准的子集。
  4. 支持与JPEG(灰度,YCbCr 4:2:0,4:2:2,4:4:4)相同的色度格式,以减少转换过程中的损耗。 支持Alpha通道。 还支持RGB,YCgCo和CMYK颜色空间。
  5. 本机支持每通道8至14位,以获得更高的动态范围。
  6. 支持无损压缩。
  7. 可以包括各种元数据(例如EXIF,ICC配置文件,XMP)。
  8. 动画支持。

下载

以下存档包含bpgenc,bpgdec和bpgview命令行实用程序(对于Linux)和关联的libbpg库(读取存档中的README文件)的源代码。 它还包括Javascript解码器的源代码:libbpg-0.9.8.tar.gz
Windows的二进制分发(仅限64位):bpg-0.9.8-win64.zip

以下链接可以下载上述两个工具:

非官方的Github镜像。https://github.com/mirrorer/libbpg
对于Mac用户,可以在libbpg Homebrew 公式中使用BPG实用程序。

参数介绍(可直接使用工具**bpg-0.9.8-win64.zip** )

1. 编码
bpgenc -m 9 -b 8 -q 48 input.png -o output.bpg   # -m 控制速度 -b 控制位深度 -q 控制图像质量 -o 输出图像

BPG命令行编码器是'bpgenc'。它需要JPEG或PNG图像作为输入。有以下几个参数

  • 速度:默认情况下,bpgenc使用x265。你可以编译很多更慢但更高效的JCTVC编码器,并使用’-ejctvc’选项选择它。使用x265,您可以使用'-m'选项选择编码速度(1 =快速,但图像较大,9 =较慢但图像较小)。

  • 位深度:默认位深度为8.您可以将其增加到10('-b 10&#

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
首先,需要安装bpg编解码器。可以在官方网站(https://bellard.org/bpg/)下载并安装,也可以使用Linux系统自带的包管理器进行安装。 然后,使用Python中的subprocess模块来调用bpg编解码器进行图像压缩解压缩。 下面是一个实现不同PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)对应BPP(Bits Per Pixel,每像素比特数)的示例代码: ```python import subprocess # 图像路径 input_image = "input.png" # PSNR列表(单位:分贝) psnr_list = [30, 35, 40, 45, 50] # 遍历PSNR列表,进行压缩解压缩 for psnr in psnr_list: # 压缩命令 compress_cmd = f"bpgenc -q {psnr} -o output_{psnr}.bpg {input_image}" subprocess.run(compress_cmd, shell=True) # 解压命令 decompress_cmd = f"bpgdec output_{psnr}.bpg -o output_{psnr}.png" subprocess.run(decompress_cmd, shell=True) # 计算BPP compressed_size = os.path.getsize(f"output_{psnr}.bpg") image_size = os.path.getsize(input_image) bpp = compressed_size * 8 / image_size print(f"PSNR={psnr}dB, BPP={bpp:.2f}") ``` 上述代码中,首先定义了要压缩的输入图像路径和PSNR列表。然后,遍历PSNR列表,分别进行压缩解压缩,并计算对应的BPP。最后,输出PSNR和BPP的对应结果。 需要注意的是,bpg编解码器的压缩质量可以通过-q参数来控制,其值越大,压缩质量越高,图像质量越好,但压缩率也越低。因此,在实际使用中需要根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值