24位RGB到12比特转换

问题描述 投票:0回答:1

我有一个640×480的图像,我需要显示的VGA。我要读通过MATLAB imread命令该图像,比转换该RGB imformation成二进制,比使用,在FPGA(Nexys 4的Artix 7板)的二进制数据,以显示在VGA图像。但问题是,VGA需要12位RGB和MATLAB在24位RGB读取图像。我怎么能压缩在12位RGB的形象?

colors rgb
1个回答
1
投票

你确定你有一个12位的VGA?通常为24位RGB装置,用于红8位,8为绿色和8为蓝色,这导致的2 ^ 24 = 16.8 MIO颜色分辨率

缩减色彩空间到12位将导致4096种颜色分辨率,这是现代显示器设备相当薄弱。

如果你真的想缩减为24至12位,这取决于你所要做的颜色编码。最常见的是使用会导致有点像映射三种颜色的MSB

RGB12 RGB24 = [23:20]&RGB24 [15:12] RGB24 [7:4]

编辑:刚才已经看到了Nexys原理,你真的有一个12位的VGA输出。在提到位映射应该是有效的。您可以使用VHDL做到这一点映射

...
signal RGB24 : std_logic_vector(23 downto 0);
signal RGB12 : std_logic_vector(11 downto 0);
...

RGB12 <= RGB24(23 downto 20) & RGB24(15 downto 12) & RGB24(7 downto 4);

© www.soinside.com 2019 - 2024. All rights reserved.