Matlab创建HDF5数据集-压缩

扶醉桌前 提交于 2020-01-27 09:16:01

概述

创建HDF5数据集必须先后使用h5create h5write命令
h5create官方链接
h5write官方链接
我创造的数据集大小是256x256x3x50000
每个256x256x3是RGB图片样本。

问题

如果在matlab里将RGB三维矩阵存成JPG,大小只有6KB
但是我把三维矩阵存入到HDF5中,大小竟达到200+KB
全部存取完大小达到200x50000=10GB,这对于我成万计的样本量是万万不能接受的。

解决

感谢链接的启发。

可以在h5create中加入压缩等级(0~9),采用gzip压缩。

h5create(filename,'/X',[3 256 256 Inf],'ChunkSize',[3 256 256 1],'Deflate',8);

这样单样本(算上其他附加标签)的大小就被压缩至9KB,达到期望大小。

解决完问题后才想起来,其实jpg也是采用了压缩算法才会把数据量变小的。如果h5create中未压缩,将会把样本中大量255值原封不动存入,自然会导致HDF5文件大小增大。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!