CN110008781A - 一种二维多帧调制解调方法 - Google Patents
一种二维多帧调制解调方法 Download PDFInfo
- Publication number
- CN110008781A CN110008781A CN201910320008.9A CN201910320008A CN110008781A CN 110008781 A CN110008781 A CN 110008781A CN 201910320008 A CN201910320008 A CN 201910320008A CN 110008781 A CN110008781 A CN 110008781A
- Authority
- CN
- China
- Prior art keywords
- frame
- modulation
- data
- module
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
Abstract
本发明涉及图形编码技术领域,具体为一种二维多帧调制解调方法,包括以下步骤:编码步骤,编码模块将输入数据编码为多个数据帧构成的帧序列,每个数据帧包含多个数据位;调制步骤,调制模块将编码步骤生成的数据帧按照预设规则顺序逐帧调制为调制阵列各单元的工作状态,并将该帧对应的所有调制单元的工作状态保持固定时长;调制步骤包括:单帧调制步骤:根据数据帧中的各个数据位控制对应的调制单元的工作状态来调制数据帧;延时切换步骤:调制当前数据帧并保持各调制单元工作状态一个固定时长,切换下一个数据帧进行调制。本发明提供的一种二维多帧调制解调方法,能够以低廉的价格实现图形码的电子显示,满足用户动态变更图形码的需求。
Description
技术领域
本发明涉及图形编码技术领域,具体为一种二维多帧调制解调方法。
背景技术
图形编码是指将一定容量的信息按设定的规则转化为图形排列,即信息图形化。目前应用最为广泛的图像编码是条形码和二维码,随着互联网技术的发展,二维码的使用越来越广泛,例如在支付交易钱款、社交软件中添加好友等场合都有重要应用。
有些场景下,用户是有二维码动态变化的需求的,比如需要对不同的人显示不同的二维码,又或者出于安全考虑需要更换二维码等。打印在纸上的二维码存在无法动态变更以及夜间使用不方便的问题,为此就只能使用电子显示屏来显示二维码,但是电子显示屏的成本远比一张纸高的多,尤其是二维码承载较多的信息时,需要更高的分辨率的显示屏来进行显示,成本就会更高,同时也要提高扫描设备的分辨率,才能确保扫描识别的准确度,进一步增加扫描设备的成本,如果在分辨率较差的设备上就会存在扫描识别准确率降低的问题,不利于这种显示方式的推广。
发明内容
本发明意在提供一种二维多帧调制解调方法,能够以低廉的价格实现图形码的电子显示,满足用户动态变更图形码的需求。
为了解决上述技术问题,本申请提供如下技术方案:
一种二维多帧调制解调方法,包括:
编码步骤:编码模块根据输入数据生成多个数据帧构成的帧序列,每个数据帧包含多个数据位;
调制步骤:调制模块将编码步骤生成的数据帧顺序逐帧进行调制并保持固定时长;
调制步骤具体包括:
单帧调制步骤:调制模块根据当前数据帧中的各个数据位控制对应的调制单元的工作状态;
延时切换步骤:调制模块保持各调制单元当前的工作状态一个固定时长,然后调制下一个数据帧。
本发明技术方案中,通过编码步骤,将待调制的数据编码为多个数据帧构成的帧序列,并通过调制步骤进行动态的顺序逐帧调制,进而降低了单帧数据量,降低了图形码显示所需的分辨率,进而可以采用如LED阵列、段式液晶屏等价格低廉的产品来进行显示,相比于现在使用液晶屏来显示二维码、条码等,本申请提出的使用多帧阵列调制并显示图形码的方式,可以极大的降低电子图形码的设备成本,有利于以电子方式显示的图形码的推广,并且,虽然采用多帧的方式看似增加了扫描识别的工作量,但是由于单帧数据量更小,且采用如LED阵列等方式来进行调制,调制单元间距可以设置较宽泛,可以有效的提高识别度,增加容错率,降低扫描识别设备的成本,可以提高扫描识别过程的效率,而二维码则必须要有大量的数据冗余以确保识别度,尤其是在数据容量较大时,如果扫描设备分辨率较低则会导致识别率和识别速度的降低,所以本申请的方案相比现有二维码的识别速度和效率不仅不会降低,反而会有所提升。二维码承载数据量的提升,意味着显示设备成本提升,扫描设备成本提升,扫描时间成本提升以及扫描识别率降低等,就会导致低精度设备无法扫描和使用,而本申请技术方案中,承载数据量的提升,只需要增加数据帧的数量即可,只会增加一些扫描时间而对单帧的显示和识别效率没有任何影响。并且,当调制模块采用自发光设备时,如LED阵列时,可以方面用户在夜晚展示和使用,另一方面,由于各个调制单元的显示状态切换的速度较快,各个LED灯珠在人眼里保持常开状态,可以为用户提供照明,方便用户夜间工作。
进一步,所述编码步骤包括以下步骤:
步骤一:编码模块将输入数据分为多个数据分组;
步骤二:编码模块将每个数据分组格式化为完整的数据帧。
进一步,编码模块将每帧数据位的特定位分别作为标志位、载荷位、校验位,所述标志位用于存储帧信息,所述载荷位用于存储输入数据的数据分组或配置信息,所述校验位用于存储所属数据帧的校验信息,所述调制单元包括标志单元和载荷单元,所述标志单元用于调制标志位,所述载荷单元用于调制载荷位和校验位;单帧调制步骤具体包括以下步骤:
步骤一:调制模块将当前帧的标志位调制为标志单元的工作状态;
步骤二:调制模块将当前帧的载荷位和校验位调制为载荷单元的工作状态。
进一步,所述帧信息为帧的类型信息,所述数据帧包括前导帧和载荷帧,所述前导帧的载荷位存储载荷帧的配置信息,前导帧编码步骤包括:
步骤一:编码模块根据前导帧的类型生成标志位;
步骤二:编码模块根据当前调制模式的配置信息生成载荷位;
步骤四:编码模块将标志位、载荷位组合生成前导帧。
在前导帧中存储解调相关的配置信息,方便识别和解析载荷帧。
进一步,所述前导帧包含校验位,前导帧编码步骤的步骤二和步骤四之间还包括:
步骤三:编码模块计算生成当前帧的校验位;
步骤四中,编码模块将标志位、载荷位和校验位组合生成前导帧。
进一步,所述载荷帧的载荷位存储输入数据的数据分组,所述载荷帧包含校验位,载荷帧的生成步骤具体包括:
步骤一:编码模块根据载荷帧的类型来生成标志位;
步骤二:编码模块根据当前帧对应的数据分组生成载荷位;步骤三:编码模块计算当前帧的校验位;
步骤四:编码模块将标志位、载荷位和校验位组合生成载荷帧。
校验位可以方便扫描识别时对数据进行校验,发现扫描或识别错误。
进一步,编码步骤的步骤二中包括:
差分转换步骤:按照以下公式进行转换:E1=A1 xor A0,En=En-1 xor An,A1至An表示原数据帧编码,E1至En表示差分转换后的数据帧编码,xor为异或操作,A0为系统预设帧编码。
通过异或操作,实现差分编码,可以降低外部环境带来的影响。
进一步,编码模块将每帧数据位的特定位分别作为载荷位、校验位,所述载荷位用于存储输入数据的数据分组或配置信息,所述校验位用于存储所属数据帧的校验信息;单帧调制步骤具体包括:
单帧调制步骤:将当前帧的载荷位和校验位调制为阵列各载荷单元的工作状态。
进一步,所述数据帧的编码步骤包括:
步骤一:编码模块根据当前帧对应的数据分组生成载荷位;
步骤二:编码模块计算当前帧的校验位;
步骤三:编码模块将载荷位和校验位组合生成数据帧。
进一步,所述数据帧的校验位生成方法是奇校验或偶校验。
进一步,还包括解调步骤,所述解调步骤具体包括:
扫描步骤,解调模块对调制模块的调制信号进行扫描,并生成扫描图像,扫描模块的每帧扫描时长小于等于每帧调制时长的二分之一;
图像处理步骤,解调模块对扫描图像序列进行图像处理;
数据解析步骤,解调模块对处理后的图像进行逐帧解析,得到调制模块所调制的数据信息。
进一步,扫描模块每帧扫描时长为每帧调制时长的所述N为大于2的正整数;所述图像处理步骤包括:
图像分组步骤,解调模块将扫描图像从零开始依次编号,并计算编号除以N的余数,把余数相同的扫描图像分配到一个序列组中,得到N个序列组;
序列组选取步骤,解调模块按照预设的选优算法从N个序列组中选取一个作为最优组。
进一步,所述选优算法具体包括以下步骤:
步骤一:提取每个扫描图像中每个调制单元的信号强度值,计算扫描图像内的该调制单元信号强度最大值Lmax和最小值Lmin;
步骤二:对于扫描图像中的每一个调制单元,按照公式Delta=Min((Lmax-L)2,(Lmin-L)2)来计算信号强度偏差Delta,公式中L为该调制单元的信号强度值,Min(a,b)为取a、b最小值函数;
步骤三:对于每一个序列组,计算序列组中所有的调制单元的信号强度偏差值Delta的和,即可得到该序列组的评价值;
步骤四:选取评价值最小的序列组作为最优组。通过从N组中取一组最优的扫描图像,可以提高识别效果。
进一步,所述数据解析步骤包括:
前导帧识别步骤,解调模块根据标志位识别序列组中的前导帧的扫描图像并根据前导帧的数据位获取调制模式信息;
载荷帧提取步骤,解调模块将相邻的两个前导帧的扫描图像之间的数据帧的扫描图像提取出来;
数据提取步骤,解调模块对扫描图像逐张进行数据位的识别,得到各帧载荷位和校验位数据;
数据校验步骤,解调模块根据得到的每帧校验位对每帧的载荷位进行校验;
数据拼接步骤,各帧数据校验成功后,将各帧的载荷位拼接为输入数据。
通过前导帧识别数据的开始和结尾,并从前导帧中获取调制模式信息,然后对相邻两个前导帧之间的数据帧的图像进行逐张的识别,最后进行数据的拼接,完成数据解析和提取的过程。
附图说明
图1为本发明一种二维多帧调制解调方法实施例中编码步骤的流程图;
图2为本发明一种二维多帧调制解调方法实施例中解调步骤的流程图;
图3为本发明一种二维多帧调制解调方法实施例中使用的调制解调系统的逻辑框图;
图4为本发明一种二维多帧调制解调方法实施例中调制模块的各个调制单元的编号示意图;
图5为本发明一种二维多帧调制解调方法实施例中普通模式时调制模块显示状态示意图;
图6为本发明一种二维多帧调制解调方法实施例中差分模式时调制模块显示状态示意图;
图7为本发明一种二维多帧调制解调系统实施例二中调制模块阵列显示状态示意图;
图8为本发明一种二维多帧调制解调系统实施例三中调制模块阵列显示状态示意图;
图9为本发明一种二维多帧调制解调系统实施例四中调制模块的数据位编号示意图;
图10为本发明一种二维多帧调制解调系统实施例四中调制模块的阵列显示状态示意图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例一
本实施例公开的一种二维多帧调制解调方法使用时,基于以下的调制解调系统,该系统如图3所示,包括编码模块、调制模块以及解调模块。
其中,编码模块将待调制的数据编码成多个数据帧构成的帧序列,每个数据帧包括多个数据位。数据位包括载荷位,校验位和标志位。数据帧分为前导帧和载荷帧,标志位用于存储帧信息,本实施例中,帧信息为帧的类型信息,包括前导帧类型、奇数帧类型和偶数帧类型。载荷位用于存储数据信息或配置信息,为了对数据位存储的内容进行校验,数据帧包含校验位,本实施例中,前导帧的数据位存储的是配置信息,该配置信息包括数据帧的调制模式信息。
本实施例中,编码模块包括前导帧生成模块和载荷帧生成模块:前导帧生成模块根据配置信息生成前导帧;载荷帧生成模块包括数据分组模块、校验位生成模块、帧类型生成模块和组合模块。数据分组模块用于根据数据帧的数据位宽把待调制的数据信息分为多个数据分组;校验位生成模块根据当前帧的数据生成校验位;帧类型生成模块根据当前数据帧的在序列中顺序生成帧的类型信息;组合模块将帧类型信息、数据分组、校验位组合即形成一个完整的载荷帧。
调制模块用于接收编码模块生成的数据帧并按照预设的调制时长逐帧调制,调制模块包括多个调制单元,调制单元与数据位对应关系固定,调制模块根据数据位控制对应的调制单元的显示状态。调制单元包括标志单元和载荷单元,标志单元用于调制标志位,载荷单元用于调制载荷位和校验位。
本实施例中,调制单元成采用发光器件且呈二维阵列分布。在本申请的其他实施例中,调制单元也可以采用其他分布方式如单行分布、环形分布,星形分布等;并且调制单元也可以采用不发光器件,如段式液晶屏。
解调模块包括扫描模块、图像处理模块、数据解析模块。扫描模块用于对调制阵列的显示状态进行扫描,并生成扫描图像,扫描模块的每帧扫描时长小于等于每帧调制时长的二分之一;图像处理模块用于对扫描图像进行图像处理;数据解析模块用于对处理后的图像进行逐帧解析,得到调制阵列调制的数据信息。
扫描模块的每帧扫描时长为每帧调制时长的N为大于2的正整数。图像处理模块包括分组模块和序列组选取模块。分组模块用于将扫描图像从零开始依次编号,并计算编号除以N的余数,把余数相同的扫描图像分配到一个序列组中,得到N个序列组;序列组选取模块用于按照预设的算法从N个序列组中选取一个作为最优组。
数据解析模块包括前导帧识别模块、数据提取模块、数据校验模块、数据拼接模块。前导帧识别模块用于根据标志位识别序列组中的前导帧对应的扫描图像并根据数据位获取调制模式信息;数据提取模块用于对相邻的两个前导帧之间的图像逐张进行数据位的识别,得到数据分组和校验数据;数据校验模块用于根据校验数据对每帧数据进行校验;数据拼接模块用于将解析得到的数据分组拼接生成数据信息。
如图1所示,本实施例的一种二维多帧调制解调方法包括以下步骤:
编码步骤,编码模块将待调制的数据编码为多个数据帧构成的帧序列,每个数据帧包含多个数据位;
调制步骤,调制模块将编码步骤生成的数据帧按照预设的调制时长逐帧进行显示;
解调步骤,解调模块根据调制阵列显示的内容进行解调得到调制模块传输的数据信息。
具体的,数据位包括载荷位、校验位和标志位;标志位用于存储帧信息;载荷位用于存储数据信息或配置信息。调制单元包括标志单元和载荷单元,标志单元调制标志位,载荷单元调制载荷位和校验位。数据帧包括前导帧和载荷帧。标志位为帧的类型信息,包括前导帧类型,载荷帧的奇数帧和载荷帧的偶数帧。前导帧的载荷位存储的是数据帧的调制模式信息;载荷帧的数据位还包含载荷位和校验位,载荷位存储待调制数据分组,校验位存储其所在帧数据位的校验信息。本实施例中,数据位为二进制数据值,调制单元用于通过启闭两种状态来调制数据位,调制模式包括普通模式和差分模式,普通模式时,数据单元的启闭状态与数据值的对应关系固定不变,差分模式时,数据单元的启闭状态与前一帧相异则表示一个数据值,相同则表示另一个数据值。
编码步骤具体包括前导帧生成步骤和载荷帧生成步骤,前导帧生成步骤具体包括:
步骤一:编码模块根据前导帧的类型生成标志位;
步骤二:编码模块根据当前调制模式的配置信息生成载荷位;
步骤三:编码模块计算生成当前帧的校验位;
步骤四:编码模块将标志位、载荷位和校验位组合生成前导帧。
载荷帧生成步骤具体包括:
数据分组步骤,调制模块根据每个载荷帧承载的数据位宽将待调制的数据分为多个数据分组,并对每个数据分组执行单帧生成步骤;
单帧生成步骤,调制模块根据数据分组和调制模式的配置,生成一帧载荷帧。
单帧生成步骤具体包括:
步骤一:调制模块生成载荷帧的标志位;
步骤二:调制模块根据调制模式的配置生成当前帧的载荷位;
步骤三:调制模块根据当前帧各数据位生成校验位;
步骤四:调制模块将标志位、载荷位、校验位组合生成载荷帧。
调制步骤具体包括:
单帧调制步骤:调制模块根据数据帧中的各个数据位控制对应的调制单元的显示状态来调制一个数据帧;
延时切换步骤:调制模块保持当前调制阵列的各单元状态一个固定时长,然后调制下一个数据帧。
单帧调制步骤具体包括以下步骤:
步骤一:调制模块获取当前帧数据,计算当前帧的标志位和载荷位;
步骤二:标志单元调制当前帧标志位;
步骤三:载荷单元调制当前帧载荷位和校验位。
如图2所示,解调步骤具体包括:
扫描步骤,解调模块对调制模块显示的内容进行扫描,并生成扫描图像,扫描模块的每帧扫描时长小于等于每帧显示时长的二分之一,且扫描时长为显示时长的其中N为大于2的正整数;
图像处理步骤,解调模块对扫描图像进行图像处理;
数据解析步骤,解调模块对处理后的图像进行逐帧解析,得到调制模块所展示的数据信息。
图像处理步骤包括:
图像分组步骤,解调模块将扫描图像从零开始依次编号,并计算编号除以N的余数,把余数相同的扫描图像分配到一个序列组中,得到N个序列组;
序列组选取步骤,解调模块按照预设的选优算法从N个序列组中选取一个作为最优组。
本实施例中,选优算法具体包括以下步骤:
步骤一:提取每个扫描图像中每个调制单元的信号强度值,找到扫描图像内的信号强度最大值Lmax和最小值Lmin;
步骤二:对于扫描图像中的每一个调制单元,按照公式Delta=Min((Lmax-L)2,(Lmin-L)2)来计算信号强度偏差Delta,公式中L为调制单元的信号强度值,Min(a,b)为取a、b最小值函数;
步骤三:对于每一个序列组,计算序列组中所有的调制单元的信号强度偏差值Delta的和,即可得到该序列组的评价值;
步骤四:选取评价值最小的序列组作为最优组。
数据解析步骤包括:
前导帧识别步骤,解调模块根据标志位识别序列组中的前导帧的扫描图像并根据前导帧的数据位获取调制模式信息;
载荷帧提取步骤,解调模块将相邻的两个前导帧的扫描图像之间的数据帧的扫描图像提取出来;
数据提取步骤,解调模块对扫描图像逐张进行数据位的识别,得到数据分组和校验数据;
数据校验步骤,解调模块根据校验数据对每帧数据进行校验;
数据拼接步骤,将数据分组拼接生成数据信息。
本实施例中,N取2,进而可以得到两个序列组,序列组选取模块选取最优组时,首先提取每个扫描图像中每个调制单元的信号强度值,设每帧图像中调制单元信号强度的最大和最小值分别为Lmax和Lmin,对于扫描图像中的每一个调制单元,按照以下公式Delta=Min((Lmax-L)2,(Lmin-L)2)来计算信号强度偏差Delta:公式中L为调制单元的信号强度值。分别计算两个序列组中各帧各单元Delta之和,选择Delta的和最小的序列组作为最优组。
本实施例中,调制模块采用3行3列的LED阵列,调制单元等间距矩形排布于同一显示平面上,调制单元采用单色LED灯珠,且数据位为二进制数据值,灯珠用于通过亮和灭两种状态来调制数据位。调制模式包括普通模式和差分模式:普通模式时,灯珠的亮灭状态与数据值的对应关系固定不变,本实施例中,亮表示二进制1,灭表示二进制0;差分模式时,数据单元的亮灭状态与前一帧相异则表示一个数据值,相同则表示另一个数据值。具体到本实施例中,灯珠的亮灭状态与前一帧相异则表示二进制1,相同则表示二进制0。LED阵列循环顺序显示前导帧和各载荷帧,前导帧作为帧序列开始和结束的标志。
一、编码及调制
为叙述方便,调制单元以d1-d9来表示,具体如图4所示,本实施例中,四个角的调制单元d1、d3、d7、d9为标志单元,用于调制标志位,只有左上和右下的d3、d7灯珠亮表示载荷帧的奇数帧,只有左下和右上的d1、d9灯珠亮表示载荷帧的偶数帧。d1、d3、d7、d9四个灯珠全亮表示该帧为前导帧。即四个标志位全为1则表示为前导帧类型,仅d3、d7灯珠亮则表示为载荷帧奇数帧类型,仅d1、d9灯珠亮则表示为载荷帧偶数帧。
d2、d4、d5、d6,d8为载荷单元,用于调制载荷位和校验位。本实施例中采用偶校验的方式,即d2、d4、d5、d6对应的数据位取1的个数为偶数,则d8对应的数据位为0,否则为1。前导帧的载荷位d2、d4、d5、d6对应(0010)2则表示为普通模式,校验位即d8对应的数据位为1;前导帧的d2、d4、d5、d6对应(1010)2则表述为差分模式,校验位即d8对应的数据位位为0。
本实施例的调制模块一帧可以调制4bit的数据,以二进制数据(11110011)2为例,载荷帧生成模块将数据编码为两帧,如果待编码的数据不是二进制的则首先转化为二进制后再进行分组。本实施例的载荷帧需要2帧,奇数帧载荷位为该数据的高4位,即(1111)2,校验位为0;偶数帧载荷位为该数据的低4位,即(0011)2,校验位为0。编码模块对该数据编码后生成的数据帧共有3帧,1帧前导帧和2帧载荷帧。
如果以普通模式编码,前导帧数据位为(101010111)2,则载荷帧的数据位依次为:(110111001)2,(001011100)2;对应的LED阵列的显示情况如图5所示,*表示LED灯珠处于点亮状态,否则表示熄灭。
如果以差分模式编码,前导帧数据位为(111010101)2,则载荷帧的数据位依次为:(001101100)2,(100110001)2。其中奇数载荷帧的载荷单元对应数据位的计算方式为前一数据帧即前导帧载荷单元对应数据位和本身的对应数据位异或,即(10100)2xor(11110)2;偶数载荷帧的载荷单元对应数据位的计算方式为前一数据帧即前一载荷帧载荷单元对应数据位和本身的对应数据位异或,即(01010)2xor(00110)2;xor表示二进制异或运算;对应的LED阵列的显示情况如图6所示。
二.扫描及解调
用LED显示单元构成的调制模块,每2Δt时间调制一帧图像。扫描系统每Δt时间生成一张调制阵列的调制信号的灰度图像。
将得到的灰度图按生成顺序编号为A1,B1,A2,B2,…An,Bn。A1…An为一个扫描序列,B1…Bn为另一扫描序列。
计算所有灰度图中调制阵列的每个单元的亮度值。本实施例中,采用调制单元对应的部分像素在Lab颜色模型下的L值的平均值作为该调制单元的亮度值。
设每帧图像中某个调制单元亮度的最大和最小值分别为Lmax,Lmin,设该单元的亮度为L,计算每个单元的亮度偏差,其中Min(a,b)为取a、b最小值函数:
Delta=Min((Lmax-L)2,(Lmin-L)2)
分别计算AB两个序列中各帧各单元Delta之和,选择Delta小的作为优选序列进行后续解调。假设为A序列,先对A序列中单元亮度进行1、0二值化处理:单元亮度L小于所在帧(Lmax+Lmin)/2,其对应数据位为0,否则为1。再识别A序列中前导帧,即找到d1、d3、d7、d9对应数据位全为1的帧,根据校验位校验其数据位,校验通过再根据该帧d2、d4、d5、d6对应的数据位得到载荷帧的调制方法,然后按照序列具体调制方法解调数据;校验未通过则需要重新扫描。
如果是普通的调制方法,依次提取各载荷帧的校验位,校验其所属帧数据位,若有错误则解调失败,需要重新扫描;否则依次拼接各帧的载荷位即可还原调制前的输入数据。
如果是差分的调制方法,先对各帧二值化后对应的数据位做异或运算,设各帧对应数据位分别为S1,S2…Sn;则D1=S1 xor S0,Dn=Sn xor Sn-1,其中S0为前导帧对应的数据位;然后根据Dn中的校验位校验其数据,若有错误则解调失败,需要重新扫描;否则依次拼接D1-Dn中的载荷位即可还原调制前的输入数据。
三、本实施例技术方案的有益效果
1.利用多帧二维阵列调制数据。
2.利用相邻帧差分调制数据。
3.利用二维阵列的4个角作为同步标识。
4.前导帧中包含调制方法标识。
5.利用大于等于每帧调制频率2倍的成像频率获得连续扫描图像,并进行解调。
四、效果验证
由于本方法降低了对二维阵列分辨率的要求,使得基于廉价发光体构造二维信息识别装置变得可行。由于阵列稀疏及差分调制,成像识别度高,扫描系统可以比传统二维码工作频率更高。以目前8M像素的手机摄像头计算,其连拍能力在3张/秒以上。本方法的识别度只需0.1M像素分辨率的图像,连拍能力换算为240张/秒以上。按上述3行3列的二维阵列调制,调制32字节数据需要65帧,每帧显示20毫秒,不足2秒即可完成扫描。而构造这样的阵列只需要9个发光器件。
同时,由于解调模块是基于调制单元前后状态变化,而不是基于调制单元信号强度的阈值解调数据,系统对室外环境的适应性更好。
实施例二
本实施例与实施例一的区别在于,本实施例中,帧的类型信息包括前导帧和载荷帧,载荷帧不再区分奇数帧和偶数帧;前导帧的数据位为预设的固定数据,本实施例中全部为1,前导帧和载荷帧的标志位全部为1,以使得对应的调制单元处于常亮状态;载荷帧默认采用差分调制模式,具体的,每帧的数据位,为实际要传输的数据与和前一帧对应的数据位进行异或而生成;数据位包括载荷位和校验位。校验位根据所属帧的数据位计算生成:当调制单元状态的变化约定为1时,采用奇校验;当调制单元状态变化约定为0时,数据位的个数为奇数采用奇校验,数据位个数为偶数采用偶校验。本实施例中,校验位采用奇校验方式。校验位对应的调制单元由调制系统和解调系统自行约定。
本实施例中,仍然以3行3列的二维LED阵列为例,需要说明的是,对于其他形式的二维阵列本申请的方案仍然适用,例如5行5列、3行6列、3行8列阵列等,灯珠的亮灭状态与前一帧相异则表示二进制1,相同则表示二进制0。
调制单元设为d1-d9,具体如图4所示。d1,d3,d7,d9位于二维阵列4角,本实施例中,一直处于常亮状态,以便于扫描设备定位阵列边缘;d8对应校验位,校验方式为奇校验。d2、d4、d5、d6用于调制载荷位数据,对应载荷位。
为了调制二进制数据(11110011)2,本实施例中需编码三帧数据帧,将数据从低位到高位调制发送,*表示点亮,-表示没有点亮。如图7所示。首先为前导帧:本实施例中,前导帧其所有数据位为1,灯珠全部点亮;然后为载荷帧的第一帧,其载荷位为(0011)2,其校验位为1,而(00111)2与(11111)2的异或结果为(11000)2,因此载荷帧的第一帧对应的调制状态中,d2、d4、d5、d6、d8的状态依次为亮、亮、灭、灭、灭。载荷帧的第二帧载荷位为(1111)2,其校验位为1,而(11111)2与(11000)2的异或结果为(00111)2,因此载荷帧第二帧对应的调制单元状态,d2、d4、d5、d6、d8的状态依次为灭、灭、亮、亮、亮。
在扫描和解调步骤中,得到图像序列后,首先寻找数据位全部为1的帧图像,该图像则为前导帧,两帧前导帧之间的图像则为载荷帧图像,然后逐帧进行数据解调,根据上述的差分调制方式,各帧数据按照公式D1=S1 xor(11111)2,D2=S2 xor D1,D3=S3 xorD2,…,Dn=Sn xor Dn-1来解析。D1、D2…Dn为各帧的解析数据,n为该序列中数据帧的总数,xor表示异或运算,S1、S2…Sn表示各帧扫描图像按照显示状态以亮为1、以灭为0直接得到的数据。
本实施例的技术方案的有益效果为:
1.利用相邻帧数据差分调制方法,使系统无需对单元状态表示0或1进行约定,只需对单元状态变化表示0或1进行约定。
2.由每一帧的校验位来确保相邻帧之间一定有调制单元的状态变化,以发光阵列整体的状态变化表征数据帧同步时钟。对比单个调制单元的曼彻斯特编码方式,同样的调制带宽条件下,本实施例调制单元的工作频率的降低一倍。
3.d1、d3、d7、d9四角单元常亮提供了调制阵列的边界标志,便于扫描装置识别。
实施例三
本实施例与实施例一的区别在于,本实施例中,数据帧数据位分为载荷位和校验位,无标志位,载荷位用于存储输入数据的数据分组或配置信息,校验位用于存储所属数据帧的校验信息;数据帧无前导帧类型,对应的,调制单元也不再设置标志单元,单帧调制步骤只需载荷单元调制载荷位和校验位。
编码步骤中将魔数进行编码作为输入数据的编码的开始和结束标志。
编码步骤中编码模块会对数据帧进行差分转换,具体是:设原数据帧编码为A1…An,差分转换后的数据帧编码为E1…En,则用转换公式E1=A1 xor A0,和En=En-1 xorAn,进行转换,xor为异或操作,A0为系统预设帧。
本实施例中,仍然以3行3列的二维LED阵列为例,需要说明的是,对于其他形式的二维阵列本实施例的方案仍然适用,例如5行5列、3行6列、3行8列阵列等,灯珠的亮灭状态与前一帧相异则表示二进制1,相同则表示二进制0。
如图4所示,调制单元设为d1-d9,本实施例中,d1-d9均为载荷单元,无标志单元。阵列以灯珠亮调制1,不亮调制0。d5单元对应校验位,其他单元对应载荷位。编码时每数据帧包括8bit载荷位,1bit校验位,校验方式为奇校验。
仍以输入数据(00000001)2为例,首先通过配置信息约定以0xffff作为魔数(MagicNumber),编码魔数需要2个数据帧,设为A1、A2,其9位数据位均为(111111111)2;编码输入数据需要1个数据帧,设为A3,其9位数据位为(000000011)2。差分转换后的数据帧设为E1-E3,具体为E1=A0 xor A1,E2=E1 xor A2,E3=E2 xor A3。A0为系统预设帧,本实施例中,A0取调制阵列调制本次数据前最后的工作状态对应的数据位。在本申请的其他实施例中,A0也可以通过配置信息指定,魔数也可以为其他数值。
假设A0对应的d1-d9的数据位为(100010001)2,则3帧编码对应的调制阵列工作状态如图8所示。
具体计算过程:E1=(100010001)2xor(111111111)2=(011101110)2;E2=(011101110)2xor(111111111)2=(100010001)2;E3=(100010001)2xor(000000011)2=(100010010)2。
本实施例的技术方案相比以上实施例的有益效果为:
1.调制阵列全为载荷单元,提高了调制带宽;
2.利用上述编码方式,虽然魔数是特定的,但调制时其对应的调制单元的状态和上一数据帧的编码相关,并不固定。从而避免了调制单元,尤其是标志单元相对其他单元工作不均衡的现象。
实施例四
本实施例与实施例一的区别在于,本实施例中,调制单元采用红蓝两色LED灯珠,调制单元通过灯珠红蓝两个色彩分量的亮灭调制数据,通过每个色彩分量调制1bit数据,每个灯珠可调制2bit数据。调制模式信息包括普通模式和差分模式:普通模式时,LED灯珠的色彩分量处于熄灭状态时,则其调制的数据位为0,LED灯珠的色彩分量处于点亮状态时,其调制的数据位为1;差分模式时,LED灯珠色彩分量的亮灭状态与前一帧相同,则其调制的数据位为0,与前一帧不同,则其调制的数据位为1。
本实施例与实施例一的区别在于,本实施例中,数据帧数据位分为载荷位和校验位,无标志位,载荷位用于存储输入数据的数据分组或配置信息,校验位用于存储所属数据帧的校验信息;数据帧无前导帧类型,对应的,调制单元也不再设置标志单元,单帧调制步骤只需载荷单元调制载荷位和校验位。
编码步骤中将魔数进行编码作为输入数据编码的开始和结束标志。
编码步骤中编码模块会对数据帧进行差分转换,具体是:设原数据帧为A1…An,,转换得到数据帧为E1…En,,则用转换公式E1=A1 xor A0,和En=En-1 xor An,进行转换,xor为异或操作,A0为系统预设帧。
调制单元设为d1-d9,本实施例中,d1-d9均为载荷单元,无标志单元。调制单元的各颜色分量调制数据帧的不同的数据位,为叙述方便,以T1-T18来表示,调制单元dn对应的数据位为T2n-1和T2n,T2n-1由红色分量调制,T2n由蓝色分量调制,n为正整数。具体如图9所示。本实施例中,每数据帧包含16bit数据分组,2bit校验位,其中T9为T1-T8的校验位,T10为T11-T18的校验位,校验方式均为奇校验。
以输入数据(10000000)2和(00000001)2为例,首先通过配置信息约定以0xffff作为魔数,将其编码为1个数据帧,设为A1,其18位数据位为(111111111111111111)2。输入数据编码为1个数据帧,设为A2,其18位数据位为(100000000000000001)2。差分转化后为2帧,设为E1、E2,具体为E1=A0 xor A1,E2=E1 xor A2。A0为系统预设帧,本实施例中,A0取调制阵列调制本次数据前最后的工作状态对应的数据位。在本申请的其他实施例中,A0也可以通过配置信息指定,魔数也可以为其他数值。
假设A0对应的18位的数据位为(000000001111111111)2,则两帧编码对应的调制阵列工作状态如图10所示。具体计算过程:E1=(000000001 111111111)2xor(111111111111111111)2=(111111110 000000000)2;E2=(111111110 000000000)2xor(100000000 000000001)2=(011111110 000000001)2。
本实施例的解调步骤中,扫描模块需要对红蓝两颜色分量同时扫描,形成两组灰度图序列。各自完成图像处理和数据解析后,再将数据位按照T1-T18的顺序进行组合并校验,从而得到输入数据。
本实施例的技术方案相比以上实施例的有益效果为:调制单元同时通过多个子信道调制数据,提高了调制带宽。
以上所述仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,如本实施例仅仅以二进制进行举例,对于其他进制,如八进制、十进制、十六进制等也是适用的;又如对调制单元状态0,1表示的约定,以及对差分调制0,1的约定可由具体实施情况确定。数据校验方式,校验位的位置可由具体实施情况确定。前导帧、奇偶帧标识的约定可由具体实施情况确定。前导帧是否包含调制数据可由具体实施情况确定。扫描图像每帧成像时间在不大于每帧显示时间二分之一的情况下,可由具体实施情况确定。解调涉及的图像处理步骤可由具体实施情况确定。这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (14)
1.一种二维多帧调制解调方法,其特征在于:包括:
编码步骤:编码模块根据输入数据生成多个数据帧构成的帧序列,每个数据帧包含多个数据位;
调制步骤:调制模块将编码步骤生成的数据帧顺序逐帧进行调制并保持固定时长;
调制步骤具体包括:
单帧调制步骤:调制模块根据当前数据帧中的各个数据位控制对应的调制单元的工作状态;
延时切换步骤:调制模块保持各调制单元当前的工作状态一个固定时长,然后调制下一个数据帧。
2.根据权利要求1所述的一种二维多帧调制解调方法,其特征在于:编码步骤包括以下步骤:
步骤一:编码模块将输入数据分为多个数据分组;
步骤二:编码模块将每个数据分组格式化为完整的数据帧。
3.根据权利要求2所述的一种二维多帧调制解调方法,其特征在于:编码模块将每帧数据位的特定位分别作为标志位、载荷位、校验位,所述标志位用于存储帧信息,所述载荷位用于存储输入数据的数据分组或配置信息,所述校验位用于存储所属数据帧的校验信息,所述调制单元包括标志单元和载荷单元,所述标志单元用于调制标志位,所述载荷单元用于调制载荷位和校验位;单帧调制步骤具体包括以下步骤:
步骤一:调制模块将当前帧的标志位调制为标志单元的工作状态;
步骤二:调制模块将当前帧的载荷位和校验位调制为载荷单元的工作状态。
4.根据权利要求3所述的一种二维多帧调制解调方法,其特征在于:所述帧信息为帧的类型信息,所述数据帧包括前导帧和载荷帧,所述前导帧的载荷位存储载荷帧的配置信息,前导帧编码步骤包括:
步骤一:编码模块根据前导帧的类型生成标志位;
步骤二:编码模块根据当前调制模式的配置信息生成载荷位;
步骤四:编码模块将标志位、载荷位组合生成前导帧。
5.根据权利要求4所述的一种二维多帧调制解调方法,其特征在于:所述前导帧包含校验位,前导帧编码步骤的步骤二和步骤四之间还包括:
步骤三:编码模块计算生成当前帧的校验位;
步骤四中,编码模块将标志位、载荷位和校验位组合生成前导帧。
6.根据权利要求5所述的一种二维多帧调制解调方法,其特征在于:所述载荷帧的载荷位存储输入数据的数据分组,所述载荷帧包含校验位,载荷帧的生成步骤具体包括:
步骤一:编码模块根据载荷帧的类型来生成标志位;
步骤二:编码模块根据当前帧对应的数据分组生成载荷位;
步骤三:编码模块为当前帧计算校验位;
步骤四:编码模块将标志位、载荷位和校验位组合生成载荷帧。
7.根据权利要求2所述的一种二维多帧调制解调方法,其特征在于:编码步骤的步骤二中包括:
差分转换步骤:按照以下公式进行转换:E1=A1 xor A0,En=En-1 xor An,A1至An表示原数据帧编码,E1至En表示差分转换后的数据帧编码,xor为异或操作,A0为系统预设帧编码。
8.根据权利要求7所述的一种二维多帧调制解调方法,其特征在于:编码模块将每帧数据位的特定位分别作为载荷位、校验位,所述载荷位用于存储输入数据的数据分组或配置信息,所述校验位用于存储所属数据帧的校验信息;单帧调制步骤具体包括:
单帧调制步骤:将当前帧的载荷位和校验位调制为阵列各调制单元的工作状态。
9.根据权利要求8所述的一种二维多帧调制解调方法,其特征在于:所述数据帧的编码步骤包括:
步骤一:编码模块根据当前帧对应的数据分组生成载荷位;
步骤二:编码模块计算当前帧的校验位;
步骤三:编码模块将载荷位和校验位组合生成数据帧。
10.根据权利要求9所述的一种二维多帧调制解调方法,其特征在于:所述数据帧的校验位生成方法是奇校验或偶校验。
11.根据权利要求6或10所述的一种二维多帧调制解调方法,其特征在于:还包括解调步骤,所述解调步骤具体包括:
扫描步骤,解调模块对调制模块的调制信号进行扫描,并生成扫描图像,扫描模块的每帧扫描时长小于等于每帧调制时长的二分之一;
图像处理步骤,解调模块对扫描图像序列进行图像处理;
数据解析步骤,解调模块对处理后的图像进行逐帧解析,得到调制模块所调制的数据信息。
12.根据权利要求11所述的一种二维多帧调制解调方法,其特征在于:扫描模块每帧扫描时长为每帧调制时长的所述N为大于2的正整数;所述图像处理步骤包括:
图像分组步骤,解调模块将扫描图像从零开始依次编号,并计算编号除以N的余数,把余数相同的扫描图像分配到一个序列组中,得到N个序列组;
序列组选取步骤,解调模块按照预设的选优算法从N个序列组中选取一个作为最优组。
13.根据权利要求12所述的一种二维多帧调制解调方法,其特征在于:所述选优算法具体包括以下步骤:
步骤一:提取每个扫描图像中每个调制单元的信号强度值,计算扫描图像内的该调制单元信号强度最大值Lmax和最小值Lmin;
步骤二:对于扫描图像中的每一个调制单元,按照公式Delta=Min((Lmax-L)2,(Lmin-L)2)来计算信号强度偏差Delta,公式中L为该调制单元的信号强度值,Min(a,b)为取a、b最小值函数;
步骤三:对于每一个序列组,计算序列组中所有的调制单元的信号强度偏差值Delta的和,即可得到该序列组的评价值;
步骤四:选取评价值最小的序列组作为最优组。
14.根据权利要求13所述的一种二维多帧调制解调方法,其特征在于:所述数据解析步骤包括:
前导帧识别步骤,解调模块根据标志位识别序列组中的前导帧的扫描图像并根据前导帧的数据位获取调制模式信息;
载荷帧提取步骤,解调模块将相邻的两个前导帧的扫描图像之间的数据帧的扫描图像提取出来;
数据提取步骤,解调模块对扫描图像逐张进行数据位的识别,得到各帧载荷位和校验位;
数据校验步骤,解调模块根据得到的每帧校验位对每帧的载荷位进行校验;
数据拼接步骤,各帧数据校验成功后,将各帧的载荷位拼接为输入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320008.9A CN110008781B (zh) | 2019-04-19 | 2019-04-19 | 一种二维多帧调制解调方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910320008.9A CN110008781B (zh) | 2019-04-19 | 2019-04-19 | 一种二维多帧调制解调方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008781A true CN110008781A (zh) | 2019-07-12 |
CN110008781B CN110008781B (zh) | 2022-06-03 |
Family
ID=67173245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910320008.9A Active CN110008781B (zh) | 2019-04-19 | 2019-04-19 | 一种二维多帧调制解调方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008781B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163655A (zh) * | 2020-09-30 | 2021-01-01 | 上海麦广互娱文化传媒股份有限公司 | 一种动态隐式二维码及其生成和检测方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090028448A1 (en) * | 2007-07-27 | 2009-01-29 | Hewlett-Packard Development Company, L.P. | Method of Generating a Sequence of Display Frames For Display on a Display Device |
CN103632180A (zh) * | 2012-08-27 | 2014-03-12 | 上海博路信息技术有限公司 | 一种动态电子条码 |
CN104463631A (zh) * | 2014-06-22 | 2015-03-25 | 广州市沃希信息科技有限公司 | 一种基于二维码的广告展示方法、系统及移动终端 |
US20170235989A1 (en) * | 2014-10-15 | 2017-08-17 | Toppan Tdk Label Co., Ltd. | Method and device for generating two-dimensional barcode, program, two-dimensional barcode, and method and device for reading two-dimensional barcode |
CN107992780A (zh) * | 2017-10-31 | 2018-05-04 | 维沃移动通信有限公司 | 一种编码识别方法及移动终端 |
CN109086851A (zh) * | 2018-08-28 | 2018-12-25 | 梁庆生 | 动态二维码 |
-
2019
- 2019-04-19 CN CN201910320008.9A patent/CN110008781B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090028448A1 (en) * | 2007-07-27 | 2009-01-29 | Hewlett-Packard Development Company, L.P. | Method of Generating a Sequence of Display Frames For Display on a Display Device |
CN103632180A (zh) * | 2012-08-27 | 2014-03-12 | 上海博路信息技术有限公司 | 一种动态电子条码 |
CN104463631A (zh) * | 2014-06-22 | 2015-03-25 | 广州市沃希信息科技有限公司 | 一种基于二维码的广告展示方法、系统及移动终端 |
US20170235989A1 (en) * | 2014-10-15 | 2017-08-17 | Toppan Tdk Label Co., Ltd. | Method and device for generating two-dimensional barcode, program, two-dimensional barcode, and method and device for reading two-dimensional barcode |
CN107992780A (zh) * | 2017-10-31 | 2018-05-04 | 维沃移动通信有限公司 | 一种编码识别方法及移动终端 |
CN109086851A (zh) * | 2018-08-28 | 2018-12-25 | 梁庆生 | 动态二维码 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112163655A (zh) * | 2020-09-30 | 2021-01-01 | 上海麦广互娱文化传媒股份有限公司 | 一种动态隐式二维码及其生成和检测方法及设备 |
CN112163655B (zh) * | 2020-09-30 | 2021-05-07 | 上海麦广互娱文化传媒股份有限公司 | 一种动态隐式二维码及其生成和检测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110008781B (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100527205C (zh) | 亮度调整装置及其方法 | |
CN100495199C (zh) | 显示装置和显示方法以及投影式显示装置 | |
CN101872589B (zh) | 用于计算与视频图像关联的误差度量的方法、设备和系统 | |
CN104885382B (zh) | 可视光通信信号显示方法以及显示装置 | |
US20060071076A1 (en) | Display apparatus, communication system, and communication method | |
CN107210815A (zh) | 用于提供光学编码信息的系统和方法 | |
KR20170038468A (ko) | 컬러 qr코드를 생성하고 인식하는 방법 및 시스템 | |
CN106372556A (zh) | 一种光标签的识别方法 | |
CN1984281A (zh) | 产生照明特征数据的方法和装置 | |
CN104871452A (zh) | 显示方法 | |
CN107209929A (zh) | 用于对高动态范围图像进行处理的方法和装置 | |
CN108962126A (zh) | 一种显示面板驱动方法、驱动系统及包含其的显示装置 | |
TW201031131A (en) | Illuminant apparatus and method to tracing the target | |
CN104081753A (zh) | 不闪式彩色可见光通信系统 | |
CN104575405B (zh) | 一种调节显示装置背光亮度的方法、显示装置 | |
JP2012137770A (ja) | コンテンツ適応ディスプレイによってデバイスにおける電力消費を低減するシステム及び方法 | |
WO2021068795A1 (zh) | 图像显示方法、图像识别方法、装置、介质、设备及系统 | |
CN110533117A (zh) | 图像比对方法、装置、设备和存储介质 | |
CN110008781A (zh) | 一种二维多帧调制解调方法 | |
US11195486B2 (en) | Driving device and driving method thereof | |
CN108962132B (zh) | Led显示装置及其主控制器和控制方法 | |
CN111262628B (zh) | 光通信系统及其方法 | |
CN110033070A (zh) | 一种二维多帧调制解调系统 | |
KR102568759B1 (ko) | 신호 환경을 고려한 2d 컬러 코드 광학 무선 통신 방법 및 장치 | |
CN109041371B (zh) | 路灯的照明控制方法、装置、基于光通信的信息获得方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |