我想在java代码中读取Y(来自.mp4文件的连续帧的亮度数据)。 我怎么能做到这一点。如果我不必使用任何媒体库,那就太好了 ffmpeg / opencv。实际上我在.mp4文件上应用了以下简单的块效应算法。
1.首先将亮度梯度图像分割成32×32像素的块。 2.然后将每个块快速傅里叶变换到频域。 在此之后,我们测量了水平和垂直方向上谐波之和与所有交流分量之和的比值。这些比率可作为阻塞人工制品严重程度的指示。
关于代码样本的任何指针(fft,测量fft的谐波之和)
此致 Mayank
答案 0 :(得分:1)
“如果我不必像ffmpeg / opencv那样使用任何媒体库,那就太好了”这很好,但基本上不可能。视频是高度压缩的,就像一个zip文件,但更复杂。就像一个zip文件一样,如果不解压缩它就无法看到内部。要解压缩,我建议使用ffmpeg库中的libavformat / libavcodec。使用libswscale(也来自ffmpeg)将您的帧转换为YUV(如果您的编解码器使用不同的颜色空间)。和fftw进行分析。
祝你好运,这是一个很大的项目。