【问题标题】:Generating Huffman Tables for Motion JPEG on FPGA在 FPGA 上为 Motion JPEG 生成 Huffman 表
【发布时间】:2016-11-22 01:54:00
【问题描述】:

我正在开发一个使用标准quantisationhuffman tablesMJPEG Encoder 的FPGA 实现。

问题:

我们可以动态生成霍夫曼表吗?

我的意思是,一旦将帧作为输入,FPGA 中的块应该为frame 生成相应的huffman tables

block 可以放松一段时间,因为一些即将到来的帧将是相似的。

我已经经历过vitter algorithm(动态霍夫曼编码)。但我怀疑它的硬件效率。

如果我从周围的人或已经在 FPGA 上实现了这些东西的人那里获得更多想法,将会很有帮助。

类似这样的:

tables = huffmantables(frame)
// wait for some frames

提前致谢!!

【问题讨论】:

    标签: fpga huffman-code mjpeg


    【解决方案1】:

    我的建议是:不要。改用标准的霍夫曼表,它们可能不是最优的,但也不是那么糟糕。

    构建 Huffman 表是处理器的任务。除非存在对硬件友好的算法,否则使用软核微控制器构建 Huffman 表可能是最有效的实现方式。

    我建议你做一些测试,看看你是否真的需要它。您从使用最佳表格中获得了多少 dB 的 PSNR?或者还有多少压缩比?我发现标准表对于通用 MJPEG 来说已经足够好了,因此选择了较小的核心而不是复杂的最优核心。

    【讨论】:

    • 我一直在用标准表,压缩比不错。我阅读了一些研究论文,他们建议我们可以通过使用动态表将压缩率提高一倍。我还没有使用最佳表。根据您的建议,我将首先尝试optimised Huffman tables,然后检查compression ratio。我真的不喜欢为CrY 硬编码所有Huffman ROM's。标准数据不提供它为每个像素值分配的概率。如果您共享一些具有像素概率的资源,那将是一个非常大的帮助。我在哪里找不到它们。
    • 这取决于您编码的内容以及量化表。如果您正在编码暗图像,则 Y 值越低,概率越高。如果您有固定的利用率,只需使用示例视频进行分析。否则,我会使用 JPEG 或其他视频标准(如 MPEG2)的标准表。一些专业的视频格式有固定的 Huffman 表(如 DNxHD),它们工作得很好。你可以做得更好,但是,具有自适应熵编码的新格式可以做得更好,复杂性更低......只需确保在做之前真的值得!保持简单!
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多