Edit online

图片压缩

Edit online

图片压缩方式

为了减少存储所需要的空间和加快存储读取速度,针对不同的图片资源,ArtInChip 提供以下图片压缩算法支持:

  • 对裸数据进行压缩
  • 图片转换格式为 aicp

裸数据压缩

对于 PSRAM 不足、无法使用 Video Engine 或 CPU 进行图片解码的场景,LVGL 推荐使用数组存储裸图片数据。由于 ArtInChip 的 CPU 主频一般都比较高,可以使用 CPU 算力换取一部分存储空间,即把裸图片数据进行压缩,在使用时再解压显示。

压缩可使用 LVGL 自带的 LVGLImage.py 脚本完成,使用 RLE 压缩算法。该脚本可能需要安装一些依赖,使用以下命令并按提示完成安装即可:

python .\scripts\LVGLImage.py --ofmt C --cf RGB565 --compress RLE usb_240x240.png

aicp 图片格式介绍

注:
仅 V1.3.0 及以上版本的 SDK 支持 aicp 图片功能。

aicp 是 ArtInChip 开发的一款私有图片格式,它基于视觉感知理论,旨在缩小压缩后的图片大小,减少存储所需要的空间,加快存储读取速度。该格式图片不再是标准图片,需要用到 ArtInChip 专用的图片解码库进行解码,并且该解码库只能在 ArtInChip 的芯片上运行。

支持将以下格式转为 aicp :

  • JPEG :JPEG 图片转换为 aicp 后压缩率更高,并且适配所有硬件平台,例如 D21x、D13x、D12x 等。
  • PNG :PNG 图片带有 alpha 通道,仅 D125/D126 及以后的平台支持从 PNG 格式转换为 aicp 格式,转换后的 aicp 格式中可包含透明度通道。

转换方式

提供以下方式来进行图片格式转换:

  • UIBuilder:按照如下流程可使用 UIBuilder 工具把图片转换为 aicp 图片格式
    1. 点击资源 > 图片转换。
    2. 点击输出格式下拉菜单,选择所需的输出格式。
    3. 设置压缩质量在内的各项压缩参数。
    4. 点击尺寸后的选择框,可调整转换后图像的尺寸。
    5. 点击添加按钮,可添加单张图片或整个目录下的图片。
    6. 点击转换按钮,系统将在输出目录下生成转换后的图片文件。

    输出格式参数设置

    • JPG 格式参数设置
      • 输入格式:支持 png/jpg/bmp 三种格式。
      • 质量设置:数值范围为 1(最高质量)~ 31(最低质量),数值越小质量越高,默认值为 2。
      • 像素格式:可选 yuvj444p、yuvj422p、yuvj420p,默认设置为 yuvj444p。
    • PNG 格式参数设置
      • 输入格式:支持 png/jpg/bmp 三种格式。
      • 像素格式:可选 rgb32/rgb24(rgb32 为 32 位 RGB+Alpha 通道,rgb24 为 24 位 RGB),默认不设置此参数。
      • 压缩等级:可选范围 [0, 9],0 为无压缩最快,9 为最大压缩(最慢,文件最小),默认设置为 9。


    • AICP 格式参数设置
      • 输入格式:支持 jpg/png 格式,若数据源包含 alpha 通道,则 aicp 也会保留 alpha 分量。
      • 质量参数:可设置范围为 60(最低质量)~ 100(最高质量),数值越大质量越高。
  • artpic:aicp 私有图片格式的命令行转码工具,位于 UIBuilder 安装目录的 bin 子目录中。
    D:\ArtInChip\UIBuilder\bin>artpic.exe --help
    Unknown commandline flag: --help
    ArtPic transfer. Usage:
    artpic [paras] input_filename output_filename
    paras:
    -quality Q - Target visual quality, expressed as a ArtPic quality value(60~100, default is 85).

    示例:

    arpic.exe -quality 95 input.jpg output.aicp