FPGA实现流程如下
1.编码预处理:上采样,去直流
2.变换:可选择RGB转YUV,使用5/3小波变换,最高支持水平5层分解和垂直2层分解。从源码看出官方曾经也试过13/7小波变换。我实际上板比较效果没有肉眼可见的提升。想来应该是使用了定点的13/7变换,导致效果一般。
3.量化:量化可选择均匀量化和死区量化,我使用的是均匀量化,因为据我分析均匀量化效果简单且效果更好
4:熵编码:分成4部分进行熵编码,分别是sigf,gcli,data,sign
最终资源占用如下
器件 | Slice LUT | Slice Reg | DSP | BRAM(36k) | 速度 |
XC7A100T-2 | 36.5K | 28K | 2 | 71.5 | 145M |
XC7K160T-2 | 38.7K | 28K | 2 | 71.5 | 220M |
XCZU9EG-2 | 36.8K | 27.8K | 2 | 71.5 | 310M |