问题标签 [dct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7483 浏览

python - 如何使用opencv在python中获取图像的dct

我一直在试图找出一种获取图像 DCT 的方法。得到图像并进行一堆过滤后,我想计算 DCT。以下是代码片段:

我一直在尝试使用此处给出的描述,但没有成功。当我尝试类似:

我收到如下错误:

从错误中我可以理解的是,输入不是 32 位浮点数而是 8 位。我如何转换它并将其作为 32 位浮点数传递?我不确定这个问题。我会很感激你的帮助。如何获得 DCT?我对 openCV 和 python 很陌生。我在同一主题上搜索了其他 2/3 线程,但没有用。

0 投票
4 回答
14411 浏览

fft - 为什么 DCT 变换在视频/图像压缩中优于其他变换

我介绍了如何在图像和视频压缩标准中使用 DCT(离散余弦变换)。

但为什么仅 DCT 优于 dft 或 dst 等其他变换?

0 投票
1 回答
731 浏览

java - Java中的离散余弦变换库

Java中是否有一个以对数时间计算DCT的DCT库?我读到 DCT 可以用 FFT 算法计算,所以 dct 也应该有一个对数时间算法。

0 投票
2 回答
1488 浏览

vhdl - 使用 VHDL 的离散余弦变换

我正在使用 VHDL 进行离散余弦变换。我正在尝试将 VHDL 代码从整数转换为标准逻辑向量。我应用了一些我在网上和教科书中阅读的技术,但没有奏效。下面是我尝试转换的代码。我希望输入长度为 8 位,输出长度为 12 位。谢谢。

这是我在阅读了一些书后尝试过的,但我一直在出错。

0 投票
1 回答
617 浏览

c++ - 为什么 Loffler 版本的 Foward DCT 的这种实现不起作用?

我正在尝试实现 Loeffler 的 1D DCT 版本,但没有任何结果......我按照流程图中显示的操作链进行操作,但图像变为白色 :( 我做错了什么?

示意图:

LOEFFLER 制作的 1D DCT 8

编码:

包括

Lena 的 pic 64 x 64 像素的结果:

0 投票
1 回答
1421 浏览

opencv - FFTW fftwf_plan_r2r_2d() 与 FFTW_REDFT01 等效

我正在尝试移植使用 FFTW 的代码以使用 KissFFT。
代码使用fftwf_plan_r2r_2d()withFFTW_REDFT01

KissFFT 中的等效调用是什么?

如果这个调用 (with FFTW_REDFT01) 等效于 DCT,我可以只使用直接 DCT 变换,例如OpenCVcv::dct吗?
是否需要进行一些输入数据修改,例如反射和对称化?

0 投票
0 回答
1673 浏览

c# - 离散余弦变换 C#

我制作了一个可以在 C# 中执行 DCT 的程序。

这是我的代码:

这部分是为了得到c[0,0] DCT:

而这部分是为了得到平均Image DC DCT系数:

问题出在主程序中。我想计算这个等式中的指数:x = exp(- ((miuN - miu)^2)),但我的程序总是返回 0。

这是主程序中的代码:

谁能帮我解决这个问题?谢谢!

0 投票
1 回答
6050 浏览

compression - 如何将 YUV422(子采样)转换为 YUV?

我正在为每一帧使用 JPEG 压缩技术编写视频编解码器。到目前为止,我已经对 YUV、DCT 和量化 DCT(编码和解码)进行了编码。我也已经编码了 YUV422 编码,但我不明白如何进行逆向(解码)。

为了计算每个像素的 YUV,我使用了以下等式:

编码:

解码:

这个方程做得很完美。

现在要进行子采样编码,我将图像编码为 YUV,计算 2 个相邻像素的总和,然后将结果除以 2。结果是为 2 个像素设置的。

前任 :

为简单起见,我将采用 0 到 255 之间的像素值(不使用 RGB 分量)。

就在下面:2个具有相同结果的示例。

如果我将这个方程应用于我的 YUV 图像的所有像素,我会得到一个新图像,但这次是在 YUV422 子采样中编码的。

所以我想知道如何从 YUV422 图像中取回 YUV 图像。我上面的例子表明,不可能取回原始的 YUV 图像,因为有很多组合会导致相同的结果(此处为 10)。但是,我认为有一种方法可以获得、给予或获取一些相同的原始 YUV 像素值。有人可以帮助我吗?我真的迷路了。非常感谢您的帮助。

0 投票
1 回答
986 浏览

math - 什么是“八法”?

在研究这份关于JPEG 演变的文档时,我在上述文档的第 7.3 节中遇到了“八定律”。

尽管通过 SmartScale 扩展引入了从 1 到 16 的其他块大小,超出了原始 JPEG 标准中的固定大小 8,但事实仍然是块大小 8 仍将是默认值,并且所有其他大小的 DCT参考标准 8x8 DCT 进行缩放。

“<strong>八法则”解释了为什么尺寸 8 是 DCT 尺寸的正确默认值和参考值。

我的问题是

这个“八法则”究竟是什么?

  • 从历史上看,是否有一项研究评估了样本中的大量图像以得出8x8图像块包含足够的冗余数据以支持使用 DCT 的压缩技术的结论?随着 8M(4Kx4K)等非常大的图像尺寸迅速成为大多数数字图像/视频的标准,这种假设仍然有效吗?

  • 将宏块限制为 8x8 的另一个历史原因是较大宏块的计算量过高的图像数据大小。对于现代超标量架构(例如 CUDA),该限制不再适用。

之前存在类似的问题- 1、23但他们都不关心这个神秘的基本“八定律”的任何细节/链接/参考。


1. 原始研究的参考/摘录/细节将受到高度赞赏,因为我想用具有非常大尺寸图像的现代数据集重复它,以测试 8x8 宏块的有效性是最佳的。

2. 如果最近进行了类似的研究,也欢迎参考。

3. 我明白SmartScale有争议。没有任何明显的潜在好处1,它充其量只能与 jpeg 标准的其他向后兼容扩展2相媲美。我的目标是了解选择 8x8 作为 DCT 块大小(在 jpeg 图像压缩标准中)的原始原因是否仍然相关,因此我需要知道八的法则是什么。

0 投票
0 回答
930 浏览

image - 我在 matlab 中使用 DCT2D 的图像压缩代码出错

我正在尝试修复一个已经存在的程序,但总是有这个错误“ ==> DCT1 在 254 decm_eq BIN2DEC = ([I_runco​​de (a, b) code (1 + m * (c_indx-1).M * c_indx) DEC2BIN (0 bpp_diff)])。 “我不知道该怎么做。请帮我