RGB565转成RGB888的问题
本书第253页问题如上图所示,这三行是RGB565转成RGB888格式的代码。
【RGB565的定义】
din是16位位宽的数据,表示的是RGB565的值,其中din表示的是RED;din表示的是GREEN;din表示的是BLUE。其根据,可以参考OV7670摄像头的数据手册,关于图像传输时序那一节内容。
【RGB888如何转成RGB565】
RGB888是指分别使用8位来表示R、G、B分量。一般情况下分别取其高位来转成RGB565,这样做就相当于保留了细节信息(高频成份),丢失了一些背景(低位表示背景,变化不大的内容)。
【RGB565如何转成RGB888】
我们获取到的RGB565,要转成RGB888,一般是RGB888转成RGB565的逆过程。但注意的是,RGB888转成给RGB565丢弃掉的数据,是已经找不回来的。所以RGB565转成RGB888的低位数据,只能按设计者的意图补回来。例如可以全补0(补黑色);也可以全补1(补白色);还可以补已有数据的低位,如本例中RED分量,补的是低位din,其本意是低位尽可能接近原来的颜色(有没有用,取决地环境)。
本书采用的是补原来数据的低位,很随意的一个设计,没有过多地考虑,读者不必过多地解读。
页:
[1]