2

我正在做一个项目,其中我有一个视频我将视频分成帧,然后将图像隐写术应用于帧并生成编码帧。然后将编码帧再次转换为视频。所有方法都成功应用,但唯一的问题是我得到的编码视频比原始视频大。我正在使用该movie2avi功能生成视频。

有人可以建议任何方法来生成与原始视频相比不是很大的视频吗?

4

2 回答 2

2

首先,如果您使用movie2avi的是 ,那么您只能选择有限的非常差的编解码器(压缩格式)。如果您有足够新的 Matlab 版本(我认为是 R2009b+),您应该改用VideoWriter该类。编解码器的选择仍然不是很好,但它们的质量要好得多。您没有说明您使用的是哪种编解码器(或操作系统),所以我不能推荐替代方案。

其次,即使在理想情况下,您也应该期望您的电影文件会随着您的操作而变大,除非您应用额外的压缩。添加隐写内容类似于添加噪声,因此您使数据更难压缩。在两者中movie2aviVideoWriter您都可以根据编解码器调整压缩级别或质量。此外,Linux 和 OS X 下的默认movie2avi编解码器不使用压缩,因此如果您没有更改它,文件将会很大。

如果VideoWriter不能满足您的需求(或者如果您的版本没有),您可以尝试我QTWriter在 GitHub 上的课程,该课程允许在 Matlab 中导出 QuickTime 电影。它的工作原理非常类似于VideoWriter,但允许您使用一些基于图像的编解码器创建高质量的 QuickTime 电影。不使用帧间压缩,PNG 和 TIFF 格式是无损的(这对您的隐写应用程序可能很重要),同时在对 Matlab 中经常生成的内容进行编码时非常有效。还有一种 JPEG 格式可能更适合一般图像。如果需要,可以将 QuickTime 文件转换为其他格式。您可以在此处阅读更多内容并查看示例,并在此处下载单个 M 文件

于 2013-08-13T15:05:54.367 回答
1

这完全取决于您要在原始视频中隐藏的内容。请记住,原始视频使用的压缩编解码器可以利用最小的帧间变化和其他各种东西,但是如果你尝试通过隐写术隐藏该视频中的某些内容,那么压缩算法就会变得更加困难这样做,这肯定会导致更大的文件。所以你必须小心你试图做的事情,以及你试图编码它的方式。

于 2013-08-13T11:19:38.250 回答