量化补偿与量化压缩

  学习博客:http://lhtao31.blog.163.com/blog/static/2972647020103814044158/

  最近在学习调试摄像头,配置OV7670摄像头采集到的数据是RGB565,移植别人的代码,从ZYNQ移植到Basys3,VGA输出引脚需要又RGB565转到RGB444,我采用分别取RGB565三分量高位的方法,最终显示输出,视频图像会变得更模糊,这是由于在转换的时候去掉低位会损失精度。而OV7670的图像采集效果也是不怎么样,所以后面会尝试配置OV7725,追求完美,达到更好的显示效果。查询了很多资料后,知道了这是什么原因,下面我自己查阅的资料整理一下,以后查询起来方便。

1 /* vga_red   <= frame_pixel[15:11];
2 vga_green <= frame_pixel[10:5];
3 vga_blue  <= frame_pixel[4:0]; */
4 vga_red   <= frame_pixel[15:12];
5 vga_green <= frame_pixel[10:7];
6 vga_blue  <= frame_pixel[4:1];

量化压缩与量化补偿

量化压缩

24bit RGB888 -> 16bit RGB565 的转换

24ibt RGB888 {R7 R6 R5 R4 R3 R2 R1 R0} {G7 G6 G5 G4 G3 G2 G1 G0} {B7 B6 B5 B4 B3 B2 B1 B0}

16bit RGB565 {R7 R6 R5 R4 R3} {G7 G6 G5 G4 G3 G2} {B7 B6 B5 B4 B3}

量化位数从8bit到5bit或6bit,取原8bit的高位,量化上做了压缩,却损失了精度。

量化补偿

16bit RGB565 -> 24bit RGB888 的转换

16bit RGB565 {R4 R3 R2 R1 R0}{G5 G4 G3 G2 G1 G0}{B4 B3 B2 B1 B0}

24ibt RGB888 {R4 R3 R2 R1 R0 0 0 0 }{G5 G4 G3 G2 G1 G0 0 0 }{B4 B3 B2 B1 B0 0 0 0}

24ibt RGB888 {R4 R3 R2 R1 R0 R2 R1 R0}{ G5 G4 G3 G2 G1 G0 G1 G0}{ B4 B3 B2 B1 B0 B2 B1 B0}

第二行的 24bit RGB888 数据为转换后,未进行补偿的数据,在精度上会有损失

 24bit RGB888 数据为经过量化补偿的数据,对低位做了量化补偿

总结

量化压缩的方法:三个字——取高位

量化补偿的方法

  1. 将原数据填充至高位

  2. 对于低位,用原始数据的低位进行补偿

  3. 如果仍然有未填充的位,继续使用原始数据的低位进行循环补偿

循环补偿的概念

8bit RGB332 -> 24bit RGB888 的转换

8bit RGB332{ R2 R1 R0} { G2 G1 G0} { B1 B0}

24bit RGB888 { R2 R1 R0 0 0 0 0 0 }{ G2 G1 G0 0 0 0 0 0} { B1 B0 0 0 0 0 0 0}

24bit RGB888 { R2 R1 R0 R2 R1 R0 0 0 }{ G2 G1 G0 G2 G1 G0 0 0 }{ B1 B0 B1 B0 0 0 0 0}

24bit RGB888 { R2 R1 R0 R2 R1 R0 R2 R1} { G2 G1 G0 G2 G1 G0 G2 G1} { B1 B0 B1 B0 B1 B0 0 0}

24bit RGB888 { R2 R1 R0 R2 R1 R0 R2 R1 }{ G2 G1 G0 G2 G1 G0 G2 G1 }{ B1 B0 B1 B0 B1 B0 B1 B0}

从如上转化可以看出,B分量进行了四轮补偿

  进行这样的补偿,在做色彩格式转化的时候,能够明显的改善色彩效果,减少精度上的损失。

  有时候,回过头来,会感谢自己,当初苦逼写的这些博客没白写!

  记得之前玩过两周Arduino,调试出了,实时采集重力传感器的数据到贝壳物联显示,还好我及时做了一些笔记,以至于现在想用Arduino+FPGA做个项目的时候,很快就能上手调试了,所以,很感谢自己当时苦逼的写博客做笔记!

 

转载请注明出处:NingHeChuan(宁河川)

个人微信订阅号:开源FPGANingHeChuan

如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/7530878.html

posted @ 2017-09-16 12:38  NingHeChuan  阅读(2131)  评论(0编辑  收藏  举报