JEPG Encoder IP verilog设计及实现

总体介绍:
采用通用的常规 Verilog 代码编写,可用于任何 FPGA。 该内核不依赖任何专有 IP 内核,而是用 Verilog 编写了实现 JPEG 编码器所需的所有功能,代码完全独立。

编码器内核的输入是一条 24 位数据总线,红色像素、绿色像素和蓝色像素各有 8 位。 信号 "data_in "包含红色像素值(位数 [7:0])、绿色像素值(位数 [15:8])和蓝色像素值(位数 [23:16])。 每个时钟周期应该有 24 位新像素数据。 输入应从图像左上方的 8x8 块开始,从左上方的像素开始,向右,然后向下到第二行,等等。 在输入第一个 8x8 像素块后,至少需要延迟 13 个时钟周期才能输入下一个块。 延迟后,"使能 "信号应在一个时钟周期内变为低电平,然后在下一个时钟周期输入下一个 8x8 图形块时,"使能 "信号应变为高电平。 第二个 8x8 图像块的输入格式应与第一个图像块相同。 第二个 8x8 图形块将位于第一个图形块的右侧。 应从图像的左上方开始向右输入,直至到达图像的右边缘。 然后下移到第二行,直到图像的最后一行。 确保在每个块之间插入 13 个或更多时钟周期的延迟。 这是必要的,否则前一个程序块的计算将无法完成。

图像数据需要以完整的 8x8 块输入。 例如,如果图像是 90 x 90 像素,则需要将像素数据扩展到 96 x 96 像素。 这通常是通过在每一行或每一列的额外像素上重复边缘像素值来实现的。

输入最后一个 8x8 像素数据块时,在数据块的开头发出 "end_of_file_signal "信号。 这将让代码知道没有更多的数据块需要输入,剩余的比特将被输出,即使这些比特没有填满整组 32 比特。 如果最终的 JPEG 比特不

你可能感兴趣的:(D1:verilog设计,tcp/ip,fpga开发,网络协议)