QR码设计(2)之数据编码

转载请注明出处


1.1选择纠错级

对数据进行编码前,需要选择数据的校正级别。QR码使用的是Reed-Solomon纠错。它是在编码数据的基础上创建纠错码字(字节)。根据纠错码字来确定QR码识别器有没有正确读取数据,并且可以纠正这些错误。纠错等级一共有四种,分别为L、M、Q、H。每个等级纠错数据的能力也不一样,见Table1所示。

Table1

1.2确定数据的最小版本

每个版本所含有的信息量不同,版本越高,承载信息量就越大。在实际设计中,我们应该根据要显示的信息大小选择最小的版本。

1.3添加模式选择代码

各种模式代码如Table2所示

Table2

各种版本所对应的不同编码模式字符串长度转换二进制后位数见Table3所示。

Table3

1.5四种编码模式的编码过程

1.5.1数字模式编码

①从左往右(或从高位到低位)3位一组

②将每组十进制数转换为10位二进制数

③末尾数字不足3位,可能是1位/2位,将其分别转换为4bits/7bits。

Eg2.5.1字符串为4637856

4637856→463 785 6

463→0111001111         6->0110

Result: 0111001111 1100010001 0110

Eg2.5.1字符串为46378568

4637856→463785 68

463→011100111168→1000100

Result: 0111001111 1100010001 1000100

1.5.2字母数字模式编码

①从左往右,2位一组

②查Table

3.2-4得出每一字符所对应的数字将每组转换为45进制数(满足公式a*45+b,a:高位数,b:为低位数),然后再将其转换为11bits二进制

③如果右边剩下一个字符,查Table

3.2-4所得的数字将转换为6bits二进制数

注意:字母数字模式编码所支持的字符都在Table4中,小写英文字母是不支持的。

Table4

Eg2.5.3UTER:H

UTER:H→UT ER:H

UT→30*45+29→1379→10101100011

Result:10101100011 01010010001 11111001101

Eg2.5.4 UTER:H%

UTER:H%→UTER :H %

UT→30*45+29→1379→10101100011

%→39→100111

Result:10101100011 01010010001 11111001101 100111

1.5.3字节模式编码

查JIS8表可得出其8bits二进制数。JIS8表见附录三

1.5.4汉字模式编码,

①先查表Shift  JIS Kanji Code Table得汉字编码是在0x8140到0x9ffc范围内,还是0xe040到0xebbf范围内;

②汉字编码在0x8140到0x9ffc范围内,则汉字编码减去0x8140,如果汉字编码在0xe040到0xebbf范围内,则汉字代码减去0xc140;

③然后把前两位拿出来乘以0xC0,然后再加上后两位,最后转成13bit的编码。

1.6结束符和补齐符

1.6.1结束码

结束码是一种标志,标志着数据编码的完成。它是由0000标志的。紧跟在数据代码之后。数据编码区此时为:数据编码=模式选择代码+字符长度代码+数据代码+结束码(0000)。

凑8bits整(指凑足8bits整倍数):这是在数据编码编码之后的。是由一串0组成,具体在数据编码后添加多少个0,是由数据编码被8整除后所需要添加最少的0的个数。就是保证此时的数据编码是8的整数倍。

1.6.2补齐码

不同版本和不同纠错级,所容纳的比特数也不同,不同版本和不同纠错级所容纳的比特数见附录四。而补齐码就是在我们确定好QR码的版本和纠错级后,判断数据编码的比特数在此版本和纠错级下比特数是否相等。那么就补11101100  00010001进行填充,如果一次填充还不足的话,可循环再次填充。直到其与比特数相同

1.7小结

该节主要讲述了二维码的数据编码。在进行数据编码时,我们要准备好所选择的QR码版本,纠错级,编码模式,字符串字符个数,要编码的数据,结束码,凑8bits整,补齐码。可用以下公式表示:数据编码=编码模式+字符长度+编码的数据+结束码+凑8bits整+补齐码。

备注:文中的数据编码在不同位置所表示的不一样,留给读者自己体会。

1.8实例

首先,我个人不喜换看太多文字,相信有和我一样的。那么在此,我就数据编码举个例子,让新手可以快速入手。

例:对XIAOXIAOYU520进行数据编码。

分析:XIAOXIAOYU520这一字符串中有大写字母和数字两种类型,我们可选择字母数字编码模式和字节模式,再看看其字符串长度为13。在此我们选择Q纠错级进行编码,查看附录二的表可知,应选择版本1,Q,字母数字模式编码。V1字母数字模式字符串长度用9bits表示(见Table3)。

答:①模式选择:0010字符串长度:13→000001101

②XIAOXIAOYU520→XI AOXI AO YU 52 0

→11000001100 00111011010 11000001100 00111011010

11001000101 00011100011 000000

④模式选择+字符串长度+数据的编码+结束符

0010 00000110111000001100

00111011010 11000001100 00111011010 11001000101 000111000110000000000

⑤凑8bits整

0010000001101110 00001100 00111011 01011000 00110000 11101101 01100100 0101000111000110 00000000 00000000

⑥V1-Q能容纳13个数据字见附录四表,即104字节。

104-12×8=8即补偿码为11101100

⑦模式选择+字符串长度+数据的编码+结束符+凑8bits整+补偿码

0010000001101110 00001100 00111011 01011000 00110000 11101101 01100100 0101000111000110 00000000 00000000 11101100

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,865评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 月照高楼小巷明,左邻右舍好安宁。门前静坐摇香扇,树下熬茶填小令。 追过去,话光荣,不知不觉夜三更。天烧热浪该消去,...
    木貞ma阅读 267评论 3 5
  • 我在街边开了家酒馆,仅以故事换酒喝,听着往来痴情惆怅客说他们的故事。 一个身着青色衣袍相貌平凡的男子踏进店里随意找...
    春扶阅读 569评论 0 0
  • 一年一度的春节,一年一度的吐槽大会,特别对春晚。 春节联欢晚会越来越被更多的当代人不看好,以小品类节目为主要筛子,...
    VirtueYoung阅读 195评论 1 0