dct相关内容

我正在寻找一种用于矩阵 [NxM] 的快速 DCT 和 IDCT 的简单算法

我正在寻找一种简单的算法来执行快速 DCT(类型 2) 的任意大小 [NxM] 矩阵,以及逆变换算法 IDCT(也称为 DCT 类型 3). 我需要一个 DCT-2D 算法,但即使是 DCT-1D 算法也足够好,因为我可以使用 DCT-1D 来实现 DCT-2D(和 IDCT-1D 来实现 IDCT-2D). PHP 代码更可取,但任何足够清晰的算法都可以. 当矩阵大小超过 [2 ..
发布时间:2021-12-06 20:04:48 其他开发

Scipy:生成 NxN 离散余弦矩阵

使用 scipy,是否有一种简单的方法可以模拟 MATLAB 的 dctmtx 函数的行为,该函数为某些给定的 N 返回一个 NxN DCT 矩阵?有 scipy.fftpack.dctn 但这仅适用于 DCT.如果我不想使用除 scipy 之外的其他依赖项,我是否必须从头开始实现? 解决方案 DCT 是一种线性变换,因此获得变换矩阵的一种方法是将其应用于单位矩阵.这是我找到长度为 8 的 ..
发布时间:2021-07-16 20:53:28 Python

尝试实现dct 8 * 8矩阵的逆

我设法计算出8 * 8矩阵的dct,但在进行逆运算时遇到了麻烦。谁能看一下这段代码,然后告诉我我现在在做什么。我应该获得与以前完全相同的值,但即时通讯获得不同的值。我正在读取一个csv文件的输入,然后将其放到另一个csv文件中。它在c void idct_func(float inMatrix [8] [8]){ double idct, Cu, 总和, Cv; int ..
发布时间:2020-06-11 18:40:14 其他开发

Scipy的ftpack dct和idct

假设您使用dct函数,然后不对数据进行任何操作并使用反变换;反转后的数据与预先转换后的数据不一样吗?为什么浮点问题?是报告的问题还是正常行为? 在[21]中:a = [1.2、3.4、5.1, 2.3,4.5] 在[22]中:b = dct(a) 在[23]中:b Out [23]:array([33 。,-4.98384545,-4.5,-5.971707,4.5]) 在 ..
发布时间:2020-06-11 18:40:11 Python

JPEG保存到ios照片库后,DCT系数发生了变化

将JPEG图像保存到iOS照片库时有一个奇怪的变化。我不知道我做错了什么。 我正在使用libjpeg-turbo访问JPEG图像,然后修改图像的DCT系数。修改后的图像(仅在DCT中,仅此而已)保存在照片库中。但是,打开保存的图像后,DCT系数与上一步中更改的有所不同。 详细地,让我解释一下我如何添加+1每个DCT。我正在使用libjpeg库的“ example.c”中的标准过程: ..
发布时间:2020-06-11 18:40:09 移动开发

在Scipy中,为什么idct(dct(a))不等于a?

我正在尝试使用python实现JPEG压缩。当我尝试对tiff图像应用DCT,量化,IDCT处理时,我发现scipy.fftpack.dct / idct很奇怪。 由于只有一维scty包中的dct / idct,我是用二维dct 来完成的。 从scipy导入numpy作为np 。 fftpack import dct,idct def dct2(block): 返回dct(d ..
发布时间:2020-06-11 18:40:05 Python

为什么在视频/图像压缩中DCT变换比其他变换更受青睐

我介绍了如何在图像和视频压缩标准中使用DCT(离散余弦变换)。 但是,为什么仅DCT比dft或dst等其他转换更受青睐? 解决方案 因为 cos(0)为1,因此第一个(第0个)DCT-II的系数是要转换的值的平均值。这使得每个8x8块的第一个系数代表其组成像素的平均色调,这显然是一个很好的开始。随后的系数增加了更多的细节,从逐渐渐变的梯度开始,一直延伸到越来越复杂的图案,而且恰好碰巧 ..
发布时间:2020-06-11 18:40:00 其他开发

如何在R中执行*快速* DCT(离散余弦变换)?

使用Rprof揭示了dtt包中的dct是运行缓慢的R代码中的主要犯罪者。将它交换到stats包中的fft中(这不是相同的转换,但是应该花费相同的时间来计算),我的运行时间大大提高了。实际上,我的Rprof行中的2/3以前是dct调用,而切换后只有3条约600条是fft调用。 dtt软件包不使用快速离散傅立叶变换完成吗?如果是这样,是否有一个包含一个包装? (我知道可以将数据加倍,然后从这些f ..
发布时间:2020-06-11 18:39:56 其他开发

等效于FFTW_REDFT01的FFTW fftwf_plan_r2r_2d()

我正在尝试移植使用FFTW的代码以使用KissFFT. 该代码使用 与FFTW_REDFT01 . KissFFT中的等效调用是什么? 如果此调用(使用FFTW_REDFT01)等效于DCT,我是否可以直接使用直接DCT转换,例如例如 OpenCV cv::dct ? 我需要做一些输入数据修改,例如反射和对称化吗? 解决方案 回答我自己的问题... 借助这些 要回答这个问 ..
发布时间:2020-05-20 20:38:18 其他开发

DCT仅使用整数

我需要实现DCT转换,但我不能使用float或double类型。互联网上有很多实现,但它们都使用浮动。 有没有人知道任何DCT整数来源? PS我需要它来实现颜色布局描述符。 解决方案 我发现了一篇描述基于整数的DCT和IDCT 这里并在Matlab中给出了一个实现。 他使用的代码在GitHub上,可用这里。 我使用的方法是bink_dct_B2.m。这会计算缩放的1 ..
发布时间:2018-08-06 21:00:18 其他开发

将float转换为整数

如何缩放以及通过哪个因子将dctmtx系数从float缩放到以下整数值: float dctmtx: ((0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536), (0.4904 0.4157 0.2778 0.0975 -0.0975 -0.2778 -0.4157 -0.4904) ( 0.4619 0.1913 -0.19 ..
发布时间:2018-07-31 07:58:06 其他开发

在灰度png图像中存储较大值的影响是什么?

我正在尝试在java中块大小为8X8的图像上执行DCT。在第一个块上执行DCT后,我得到第一个值为“372”。 在整个图像上执行DCT后,我将值写入PNG灰度图像。图像内的值自动更改。 灰度图像不会存储大于255的值。大于255的值会发生什么(例如,372)? 解决方案 您在丢失信息后无法获取原始图像,因此您需要: 执行DCT或者什么 找到 min,max 整个图像中的值 更 ..
发布时间:2018-07-30 17:55:39 Java开发

使用blockproc或im2col在图像上重叠滑动窗口?

我必须将 dct2 应用于我的图片的小窗口,最好是使用重叠窗口。 我发现Matlab中有两个函数可以实现 blockproc 和 im2col 。我也很难理解,并希望得到一些澄清。 blockproc 可以用来实现我的功能使用 BorderSize 和 TrimBorder 参数滑动窗口。 B = blockproc(A,[64,64],fun,'BorderSize',[5, ..
发布时间:2018-07-24 15:18:03 其他开发

解压缩在中间停止,输出文件填充零(黑色PIXELS)?

我试图对bmp(位图)文件应用DCT(离散余弦变换)压缩。我有一个C文件,我运行在Turbo C ++。这不是真正的压缩,但我想实现DCT和IDCT。代码如下: / * 要压缩的图像是bmp,24 bpp和 ,名称为“college4.bmp”,尺寸为200 * 160,即25 * 20-8 * 8块 o / p是college2.dat 格式:8位有符号整数,从0,0开始, 8,8 ..
发布时间:2016-12-25 13:00:29 其他开发

DCT压缩 - 块大小,选择系数

我想了解块大小的效果,以及在DCT压缩中选择系数的最佳策略。 基本上我想问一下我在这里写的: 让我们假设最原始的压缩。制作图像块。在每个博客上执行DCT,并清除一些系数。 根据我的理解,块越小越好。 较小的块意味着像素更相关,因此DCT谱中的能量更“紧凑”。应该在快速变化的图像(高频率)中更加强调。 让我们把一定百分比的系数清零,什么会得到最好的图像质量,小块还是大块?例如, ..
发布时间:2016-12-25 13:00:18 其他开发

视频压缩:什么是离散余弦变换?

我实现了一种称为离散余弦变换的图像/视频变换技术。这种技术用于MPEG视频编码。我根据以下网址提出的想法来计算我的算法: http://vsr.informatik.tu-chemnitz.de/~jan/MPEG/HTML/mpeg_tech.html 现在我可以转换黑白图像的8x8部分,例如: 0140 0124 0124 0132 0130 0139 0102 0088 ..
发布时间:2016-12-25 12:52:32 其他开发

为什么JPEG压缩通过8x8块处理图像?

为什么JPEG压缩使用8x8块处理图像,而不是对整个图像应用离散余弦变换? 解决方案 8 X 8经过多次实验与其他尺寸的选择。 实验的结论是: 1.任何尺寸大于8 X 8的矩阵更难以进行数学运算(如变换等)不支持硬件或需要更长的时间。 2.任何大小小于8 X 8的矩阵都没有足够的信息来与管道一起继续。 阅读,我的博客, http://nboddula.blogspot.co ..
发布时间:2016-12-25 12:22:37 其他开发

离散余弦变换DCT实现Ç

林试图向前推行和逆离散余弦变换(DCT)C中的code是通过DCT()函数来transorm像素的变换矩阵的单个输入块,然后返回到原来的通过IDCT()函数的像素值。请参阅所附code。我的输出形成IDCT是244,116,244,116等来自IDCT值的外观,它并不像我的程序正在连续值..有人能帮助我,给我的是什么结果我的想法应该是每一个功能之后的期待呢?在IDCT后,很显然,我应该得到preT ..
发布时间:2016-08-21 19:59:20 C/C++