2016 - 2024

感恩一路有你

二进制序列化工具 dir数据类型?

浏览量:4638 时间:2023-04-04 07:33:51 作者:采采

dir数据类型?

一,弦

String是redis最基本的类型,你可以理解为和Memcached完全一样的类型,一个键对应一个值。

字符串类型是二进制安全的。表示redis可以包含任何数据的字符串。如jpg图片或序列化对象。

字符串类型是Redis最基本的数据类型,字符串类型的值最多可以存储512MB。

命令:设置和获取命令

第二,哈希

Redihash是keygtvalue对的集合。

Redihash是字符串类型的字段和值的映射表,hash特别适合存储对象。

hmset,HGET命令,HMSET设置两个fieldgtvalue对,HGET获取对应字段对应的值。

第三,名单

列表是一个简单的字符串列表,按照插入的顺序排序。您可以将元素添加到列表的头部(左侧)或尾部(右侧)。

列表最多可以存储232-1个元素(4294967295,每个列表可以存储超过40亿个)。

l脉冲设定值,l范围值。

第四,设置

redis集合是字符串的无序集合。集合是通过哈希表实现的。

将string元素添加到与key对应的set set中,并使用sadd命令。返回1表示成功,0表示已经存在于集合中,返回错误表示key对应的集合不存在。

使用smembers命令查看

集合中元素的唯一性,第二个插入的元素将被忽略。

一个集合的最大成员数是232-1(4294967295,每个集合可以存储超过40亿个成员)。

动词 (verb的缩写)zset

redis的zset和set一样,是string类型元素的集合,不允许有重复的成员。

不同之处在于,每个元素都与一个double类型的分数相关联。Redis通过分数将集合成员从小到大排序。zset的成员是唯一的,但是分数可以重复。

向集合中添加一个元素。如果集合中存在该元素,则更新相应的score: zaddkey scor

jpeg编码规则?

本文简要总结了JPEG基本系统的编码流程。

编码需要DCT、量化、Z串行化、系数编码(DC差分脉冲调制编码、DC系数中间格式计算、交流差分脉冲调制编码、交流系数中间格式计算)、熵编码,最后按照指定格式打包成为JPEG图片。

将图像分成若干个8×8的块后,对每个块进行离散余弦变换,目的是将图像块按频率分解,得到其频谱。

与傅立叶变换类似,DCT的目的是将图像分解成不同频率的基本分量的线性组合。

实际上,DCT是DFT的一种特殊形式,用来擦除虚(奇)部。因为实偶函数的DFT仍然是实偶函数,我们把时域函数相乘并延拓成偶函数,所以频域也变成了实偶函数。当然,存放时可以对折,消除冗余。

为什么需要DCT?对于每一个图像块,如果一定要丢弃,我们会尽可能多的保留低频成分,降低高频成分的分辨率。同时,高频分量通常很少,而DC分量虽然值很大,但相邻块之间差别很小。

因此,我们对低频分量采用较低的量化系数,对高频分量采用较高的量化系数。

所谓量化,就是将浮点值X(可能只以更高精度的整数表示形式存在)转换为步进整数值Y的过程,yround(x/q)中的q就是量化系数。

然后我们做Z序列化,按照Z的形状把二维矩阵展平成一个向量。

考虑到相邻块之间DC分量的微小差异,我们首先对DC分量和前一个块进行差分。这个过程称为差分脉冲调制编码。

现在向量中有大量的零,绝对值小的数出现的概率远大于绝对值大的数。

我们使用游程编码(RLE)将序列切割成0,0,…,0,x形式的几个片段,每个片段由y(≥0)个0和一个x( gt;0),表示为(y,len(x),x),其中len(x)是反码二进制表示中x的长度。这种三元组的表示称为中间格式。

(注:DC分量也包括在此图中,严格分开,RLE只考虑交流分量。)

现在考虑(y,l,x)三元组的编码。我们用一个字节的高4位和低4位分别存储两个uint4,Y和L,对这个字节进行霍夫曼编码。至于x这个小家伙,长度也是有记录的,直接写到二进制流里就行了。

需要指出的是,这里我们省略了一些特例。比如如何处理连续零的个数超过15,交流分量结束

分量 编码 元素 类型

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。