gpt4 book ai didi

java - 将代码从 DCT 更改为逆离散余弦变换?

转载 作者:行者123 更新时间:2023-12-02 10:21:45 26 4
gpt4 key购买 nike

对于一个项目,我必须演示 JPEG 压缩以及使用 DCTII 和 IDCT 的转换。我不知道如何实现这个公式。但我找到了一个网站,提供了Java代码和在线IDE进行测试。 https://ide.geeksforgeeks.org/FnC3bRJEAr在这里你可以看到代码。

formula for DCT formula for IDCT

(来自维基百科/JPEG 的公式)

那么,必须对代码进行哪些更改?

我尝试切换 for 循环和公式中的变量,但我得到的值肯定是错误的,其他尝试会导致错误消息。

最佳答案

DCT 和 IDCT 之间的唯一区别在于考虑系数的位置。

您应该将代码中的第 46 行替换为

sum = sum + ck*cl*dct1;

其中 ck 和 cl 的计算方式如第 24-34 行所示,但对于 k 和 l

并在第 49 行抑制 ci*cj

顺便说一句,这段 java 代码效率非常低。预先计算 Math.sqrt(2)、Math.sqrt(n) 并将余弦放入表格中,速度至少会快 3 倍。

关于java - 将代码从 DCT 更改为逆离散余弦变换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54295413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com