Matlab创建HDF5数据集-压缩

概述

创建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文件大小增大。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值