Tag: dct

我正在寻找一个简单的快速algorithmDCT和IDCTmatrix

我正在寻找一种简单的algorithm来执行任意大小的matrix[NxM]的快速DCT (types2)以及用于逆变换IDCT (也称为DCTtypes3)的algorithm。 我需要一个DCT-2Dalgorithm,但即使是一个DCT-1Dalgorithm也足够好,因为我可以使用DCT-1D来实现DCT-2D(和IDCT-1D来实现IDCT-2D)。 PHP代码是可取的,但任何足够清晰的algorithm都可以。 当前matrix大小大于[200×200]的我用于实现DCT / IDCT的PHP脚本非常慢。 我正在跳跃寻找一种方法来在不到20秒的时间内完成[4000×4000]的DCT。 有谁知道如何做到这一点?

从编码的图像和video中提取DCT系数

有没有一种方法可以很容易地从编码图像和video中提取DCT系数(和量化参数)? 任何解码器软件必须使用它们来解码块DCT编码的图像和video。 所以我很确定解码器知道他们是什么。 有没有办法让他们知道谁在使用解码器? 我正在实施直接在DCT域中工作的一些video质量评估algorithm。 目前,我的大部分代码都使用OpenCV,如果有人知道使用该框架的解决scheme,那将是非常棒的。 我不介意使用其他库(可能是libjpeg,但似乎只用于静止图像),但我主要关心的是做尽可能less的格式特定的工作(我不想重新发明轮子和写我自己的解码器)。 我希望能够打开OpenCV可以打开的任何video/图像(H.264,MPEG,JPEG等),如果是块DCT编码,则可以获得DCT系数。 在最坏的情况下,我知道我可以编写我自己的块DCT代码,通过它运行解压缩的帧/图像,然后我会回到DCT域。 这不是一个优雅的解决scheme,我希望我能做得更好。 目前,我使用相当常见的OpenCV样板打开图像: IplImage *image = cvLoadImage(filename); // Run quality assessment metric 我用于video的代码同样微不足道: CvCapture *capture = cvCaptureFromAVI(filename); while (cvGrabFrame(capture)) { IplImage *frame = cvRetrieveFrame(capture); // Run quality assessment metric on frame } cvReleaseCapture(&capture); 在这两种情况下,我得到一个BGR格式的3通道IplImage 。 有什么办法可以得到DCT系数吗?