小安派摆件
前言
不知道有多少人和笔者一样,被一首“萝莉摇”洗脑过?打开短视频总会看到这首BGM和MV的二创。
于是笔者萌生了制作一个相关摆件的想法,这些就用小安派来做个“萝莉摇”摆件,让洗脑来的更彻底!
01
视频演示
02
相关教程
起初由于微控制器单元(MCU)的内存限制以及误把mjpeg编码器看成了解码器的原因,只实现了一个基础版本
https://www.bilibili.com/video/BV16e411k7Fc
这个版本没有视频压缩功能,且图像分辨率相当低,仅为60x70像素。之后通过研究写了一个基于RLE和帧间差分的视频压缩。
图像分辨率:150x175,RGB565
压缩前:19425000
压缩后:3296167(16.97%)
和7z、xz等无损压缩还有很大差距,但是胜在解压简单,执行快速,只需要几行代码就可以解压缩。
03
相关代码
github:
https://github.com/feilongfl/aipi-eyes-loli
04
踩坑记录
LVGL高速刷新图片问题
LVGL在高速刷新图片上有些性能问题,直接使用lcd_draw_picture_blocking会好很多。
图像清晰度及色彩
帧间差分是后一图像减去前一图像,反了的话图像会有残影(如下图,图为视频播放截图)。
差分算法还有一定的改进空间,比如为像素色彩加上一个阈值,过滤相似颜色,这样作为有损压缩,对于视频应该也是可以接受的。
对于彩色图像,整体执行rle效果不佳,因为主体部分色彩连续相同的概率不大,但是对于背景纯色压缩效果极好,因此仅对于背景色进行rle压缩。
因为人物动作主要在中间部分,所以主体部分通过帧间差分后会产生较多的被删除区域,针对这些区域做rle也会有不错的效果。
目前算法针对背景色和帧间差分存储了16bit长的行程信息,后续采用varint可能会更优。
芯片存储
芯片的flash是8M,但是bsp默认是4m。william hill官网 找到了相关说明:
https://bbs.ai-thinker.com/forum ... 003&highlight=flash
但是bsp默认size是4m,于是应用patch修改。
这样可以方便存下更多视频。
全部0条评论
快来发表一下你的评论吧 !