使用matlab读取HEVC帧

时间:2014-12-09 16:43:07

标签: matlab dns compression frames hevc

我想阅读HEVC压缩视频,并在压缩(编码)视频文件中提取帧,从运动矢量等帧中提取一些信息。

任何人都可以帮助我阅读压缩的HEVC视频文件,以及如何在Windows操作系统中使用matlab提取帧。

matlab中的VideoReader将读取H.264编码视频,但不读取H.265 / HEVC编码视频。

我从http://www.elecard.com/en/download/videos.html下载了几张HEVC压缩视频,并从这个网站下载了编解码工具包,我可以播放这些视频。

2 个答案:

答案 0 :(得分:1)

由于HEVC并非免版权使用费的软件,因此在MATLAB中没有HEVC / H.265编解码器的正式版本,这是技术巨人无需支付许可费用即可制作替代视频编码的原因。因此,如今,HEVC目前主要用于科学文献中。 但是,您可以使用this link中提供的HM参考软件在HEVC中对YUV格式的视频数据进行编码/解码。要进行编码,您需要在Windows计算机上安装Visual Studio。首先,打开命令提示符并键入:

TAppEncoderStatic.exe -c your_config_file.cfg -i your_video_data.yuv

构建项目后,您可以在/ bin文件夹中找到一些文件。然后,您应该使用cd命令将当前目录更改为/ bin文件夹,然后键入:

TAppDecoderStatic.exe -b str.bin -o dec.yuv

因此,将在/ bin文件夹中创建str.bin文件,该文件可以使用your_config_file.cfg或命令行选项进行重命名,软件手册中对此进行了详细说明。另外,您可以在/ cfg文件夹中找到良好的配置文件。要解码str.bin,只需键入:

{{1}}

请注意,dec.yuv是解码器中的解码输出视频数据。另外,您可以使用YUV viewer查看已解码的原始视频序列。此外,您可以找到一个好的数据集here

答案 1 :(得分:0)

AFAIK没有公共代码或库可以直接从MATLAB读取HEVC数据流。

当遇到同样的问题时,我修改the reference HEVC decoder以编写单独的CSV文件,因为它解码了HEVC视频。然后MATLAB可以读取CSV文件。

我从GitlHEVCAnalyzer借用了这种方法。请参阅TSysuAnalyzerOutput.cpp,其中作者在HEVC解码期间写入了许多不同的文本文件。然后分析仪读取文本文件。