我正在使用FPGA开展图像处理项目,但是我遇到了导入原始图像的问题。在VHDL中将压缩图像文件(.png或.jpeg)转换为3D RGB数组的最佳方法是什么?我打算在Zynq板上运行它,因此无论是软件还是硬件解决方案都能正常工作。
答案 0 :(得分:1)
最佳取决于您的约束条件。您想要最小的努力还是最高的性能?
如果您在Zynq上运行Linux并且不太关心性能,则可以使用Python Imaging Library打开文件并提取RGB像素值数组。我有一个测试平台,可以在这里为OpenCores JPEG编码器执行此操作:https://github.com/chiggs/oc_jpegencode/blob/master/tb/test_jpeg_top.py
如果你不想运行Python,那么你需要做更多的工作。请参阅this question关于如何从C打开PNG / JPG的答案。
显然,您需要考虑如何将数组传输到PL结构或从PL结构传输数组。如果你的PL中有一个DMA控制器,那将是最好的机制。将RGB阵列提取到存储器区域,然后告诉PL中的DMA控制器将阵列拉入块RAM,然后VHDL可以处理它。