网站建设中需求分析说明书国内平面设计公司
news/
2025/9/22 15:37:57/
文章来源:
网站建设中需求分析说明书,国内平面设计公司,工信部网站备案查询 验证码错误,腾讯网站建设的基本情况纠错码和压缩算法是同一枚硬币的两面。 两者都来自于对冗余的想法。 纠错码被视为向消息或文件中添加冗余的原则性方法。而压缩算法正好相反#xff0c;他们会从消息或文件中移除冗余。 压缩和纠错并不是彼此抵消的#xff0c;相反#xff0c;好的压缩算法会移除抵消冗余他们会从消息或文件中移除冗余。 压缩和纠错并不是彼此抵消的相反好的压缩算法会移除抵消冗余而纠错编码会增加另一种更高效的冗余。 因此首先压缩一条信息再往里面添加一些纠错码的做法十分常见。 下面分别介绍两者的具体内容 纠错码trick
如果使用正确的技巧即使是极端不可靠的通信频道也可以以极低的错误率传输数据。
1、重复技巧
要确保一些信息被正确传输你只需要重复几次该信息。
如果你的账户余额是5213.75美元但不幸的是网络不稳定每个数字都有20%的概率变成其他数字
通过运用重复技巧可以推测真正的余额假设你请求传输余额5次并收到如下反馈 只要我们增加重新传输的次数直到可靠性高到我们满意为止。
相反如果一个恶意实体故意干扰传输并选择制造某些错误重复技巧将变得不可靠。
并且在下载一个大型软件显然传输多次以确保正确性是不成熟的。
2、冗余技巧
基本原则不能只发送原始消息要发送一些多余的东西以增加可靠性这里我们讨论的是把原始消息转换成一条更加长的冗余消息原始消息会被删除。
还是以银行余额为例
如果你的账户余额是5213.75美元
我们用英语单词简单地拼出余额
five two one three point seven five
由于信道糟糕这条消息中约20%的字符会变成随机字符这条消息可能会变成
fiqe kwo one thrxp point sivpn fivq
如果我们告诉你对消息中的任何单个变化进行可靠侦测以及纠正变得颗星我们绝对可以猜出原始消息中的单词。
但是如果我告诉你367代表了一个数但其中一个数字被替换了你就没办法直道原始数字是多少了因为这条消息中没有冗余。
冗余和让消息变长有关消息的每一部分都应该符合某种已知模式。通过这种方法任何变化都能首先被识别然后被纠正。
冗余的工作机理消息由符号组成
要传输一条消息
1、首先要找出每个符号并将符号转译成对应的代码字。
2、然后将转换的消息通过不可靠信道发送。
3、当消息被接收时查看消息的每个部分检查其是否为有效的代码字。如果是有效的只需将其转换为相应的符号如果不是有效的代码字你就要找出它和哪个代码字最匹配 由理查德汉明于贝尔实验室发明的代码和我们相比最明显的区别就是将所有事情都通过0和1完成 在编码时每一组4位数字都加入了冗余由此产生了一个7位数的代码字。
解码时首先寻找完全匹配否则选择最接近匹配。这里我们不深究7位数代码字中的设计。
3、冗余和重复比较
通常用杂项(overhead)衡量纠错系统的成本。杂项就是为确保消息被正确接收而发送的多余信息。
重复技巧的杂项数量巨大因为你必须发送数份完整消息。
冗余技巧的杂项取决于使用的代码字的具体类型。
4、校验和技巧
上面的两个技巧都属于同时侦测和纠正数据中错误的方法。
还有一种思路可以先不管纠错而是将精力集中在侦测错误上。对于许多应用场景只侦测到一个错误就足够了然后请求再发送一份数据即可可以一直请求拷贝直到得到完全无误的拷贝我们称之为校验和技巧。
简单校验和将消息中的所有数字相加只保留结果的最后一位数作为简单校验和
例假设消息为 4 6 7 5 6所有数字之和4675628保留最后一位数因此这条消息的简单校验和是8.
在发送原始消息前将原始消息的校验和附加到消息末尾即可。别人在接收消息后就能再次计算校验和并和你发送的校验和比较看收到的消息是否正确。
缺点简单校验和最多只能在消息中侦测出一处错误如果有两个或者更多错误简单校验和可能就侦测不到了。 我们定义一种新的校验和阶梯校验和每个数都和该数字所在的位阶相乘每个数都比前一个数大一个位阶最后只保留最后一位数。
假如消息为4 6 7 5 6阶梯校验和计算
(1x4) (2x6)(3x7)(4x5)(5x6)87,保留最后一位数为7所以阶梯校验和为7 只要错误不超过两处你就能用这两种方法侦测到错误。
上面描述的校验和技巧只生成了两个校验和数字但真正的校验和通常会生成很长的数字。
重点是校验和的长度是固定的。对非常长的消息来说即使一个较大的校验和最终和消息本身相比也极小。(校验和长度越长侦测错误失败概率越小在现实中几乎不可能失败)
当存在恶意攻击而非糟糕信道时采用加密哈希函数的特定校验和效果较好。
5、定位技巧
此处介绍一种特殊的冗余技巧它能让你迅速定位一处错误我们称之为定位技巧。
假设消息有16个数字(如果有一条长消息将其打碎成16位数据的“块”并单独处理每块数据如果消息比16个数字短就用0把它补成16位数)
第一步重新排列消息中的16个数将其排列成一个从左往右、自上向下读的方框
4 8 3 7 5 4 3 6 2 2 5 6 3 9 9 7
重新排列为 计算每一行的简单校验和并添加在每行的右侧 计算每一列的简单校验和并添加在每列的底侧 重新排列所有数让其能以一次一个数的方式被存储或传输然后通过从左往右、自上而下的方式读数最后会得到如下24位数的消息
4 8 3 7 2 5 4 3 6 8 2 2 5 6 5 3 9 9 7 8 4 3 0 6
把数字放入一个5x5的方框中最后一行和最后一列都对应随原始消息一起被发送的校验和数字
接下来计算每一行每一列4个数的简单校验和在接收的校验和值旁边新建一行和一列
这里会出现两组校验和1个是你发送的1个是你接收的
如果它们都一样那么可以确定收到的消息很可能是正确的。那么出一个错误呢 我们可以很快定位出出错位置那么我们该如何纠正呢
我们只要用一个能让两个校验和都正确的数字替代出错的那个数字就可第二列校验和本应该是3但结果是8也就是说校验和要减去5,7-52。 将纠正后的原始16位数消息从5x5的框中取出忽略最后一行和最后一列从左往右从上往下取出
4 8 3 7 5 4 3 6 2 2 5 6 3 9 9 7
这种定位技巧我们称之为二维奇偶校验码奇偶校验码和简单校验和的意思一样。二维奇偶校验码在一些真正的计算机系统中也有运用但是并不如其他一些冗余技巧高效。
不过它很容易地具化并展现出不要求复杂数学的情况下在计算机系统中的流行代码背后发现并纠正错误。
数据压缩trick
数据压缩分为无损压缩和有损压缩
无损压缩
无损压缩需要了解的技巧
1、行程长度编码将重复的“行程”和行程的“长度”编码在一起
例如AAAAABCBCBCBCAAAADEFDEF可以被编码为5A、4BC、4A、2DEF
将23个字母压缩为只有11个字母的字符串。
主要问题数据中心重复的片段必须是相邻的不能有其他数据。
例如ABABAB编码很容易(3AB),但是ABXABYAB就行不通了。
2、同前技巧
基于行程长度编码的改进
例如下面这个数据
VJGDNQMYLH-KW-VJGDNQMYLH-ADXSGF-OVJG
DNQMYLH-ADXSGF-VJGDNQMYLH-EW-ADXSGF
忽略连字符首先识别数据中重复的数据块。
已知最开始12个字母没有重复部分但是接下来的10个字母VJGDNQMYLH与之前的有部分重合可以说back12,copy10(数回12个字母直至抄到第10个字母),接下来7个字母新出现不能压缩。后面的字母又是大的重复可以缩写。
我们缩写b代替backc代替copy指令可以被总结如下
VJGDNQMYLH-KW-b12c10-ADXSGF-O-b17c16-b16c10-EW-b18c6
下面一个例子
使用相同的技巧压缩FG-FG-FG-FG-FG-FG-FG-FG消息中有8次重复。可以使用FG-FG-FG-FGb8c8
更简略的写法FG-b2c14在口述最开始的两个字母之后我们有了FG然后收到b2c14指令抄完两个之后结果为FG-FG,持续抄写直到抄写到14个为止。
3、更短符号技巧
使用频率越高编码越短。
具体步骤
1、计算机使用同前技巧传输未经压缩的源文件让文件中绝大多数重读的数据由短得多的指令取代这些指令会返回并拷贝其他地方的数据
2、计算机检查传输后的文件选出经常出现的符号。随后计算机会创建出一张表格用短数字码代表经常用到的符号用更长的数字码代表极少用到的符号。
3、计算机会通过直接将文件翻译为2中的数字码再次传输文件。2中计算出的数字码表也会存储到文件中否则在后面不可能解码。
有损压缩
有损压缩需要了解的技巧
1、抛弃技巧以图像为例原图像为320 x 240,每两行或每两列像素就抛弃一行或一列结果得到解析度为160 x 120的新图像。 可以发现压缩后的图片重构之后的有较严重的压缩缺陷。
接下来讲解一下jpeg技术的基本原理
jpeg首先将整张图片划分为8 x 8 的小方块每个方块都被单独压缩在没有被压缩的情况下每个方块代表64个数字(假设为灰度图)如果这个方块符合某些已知模式如常数色(Constant Color)或渐变色(Smoothly Varying Color)的组合那么其大部分信息都可以被抛弃只需要存储每个模式的级别或量即可 参考【改变未来的九大算法】
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909497.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!