首页 文章

Libjpeg中的DCT矩阵在哪里?

提问于
浏览
1

在libjpeg中我无法找到8x8 DCT矩阵?如果我没有错,这个矩阵对于8x8块总是一个常量 . 它必须在第一行包含1 / sqrt(8)但这个矩阵在哪里?

2 回答

  • 0

    在实际的JPEG实现中,DCT矩阵通常被分解为其高斯范式 . 这给出了一系列矩阵乘法 . 然而,在正常形式中,这些仅涉及对角线上的操作和与对角线相邻的值 . 归一化矩阵中的大多数值都为零,因此您可以省略它们 .

    这将DCT转换为一系列8个并行操作 .

    本书描述了矩阵运算可以转换的几种方法:

    http://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=pd_bxgy_b_img_y

    本书描述了一种在理论上更有效但在实现中往往不是这样的张量方法

    http://www.amazon.com/JPEG-Compression-Standard-Multimedia-Standards/dp/0442012721/ref=pd_bxgy_b_img_y

  • 0

    它没有 . 或者它可能在一个鬼鬼祟祟的地方,但它并不重要 . DCT的真正实现不是那样工作的,它们是非常专业的代码片段,它们将所有常量硬编码到它们中,它们看起来就像矩阵乘法 . 从理论角度来看,将变换视为矩阵乘法有时是有用的,但它可以更有效地实现 .

    对于libjpeg中的DCT,请参阅文件jfdctflt.c(或其中一个朋友) .

相关问题