应用LZHUF算法对嵌入式针织系统控制数据压缩

2018-03-16 02:39朱耀麟刁先举张团善高术森
纺织学报 2018年3期
关键词:压缩算法花型织物

朱耀麟, 刁先举, 张团善, 高术森, 乔 辉

纺织CAD产生的数据是经过压缩的密文,如意大利的Lonati制版软件。织物数据量一般比较大,如丝袜机控制数据包含电动机、速度、圈循环、气阀、恒张力送纱器的执行动作信息以及花型数据等[1-3]。纺织CAD将控制数据通过压缩算法处理并以二进制文件的形式输出,嵌入式人机交互系统通过解压缩算法解析所有数据,具有节省数据传输时间与系统资源,提高系统实时性的优点。

目前,国内对无缝内衣机的花型及链条动作数据压缩的研究[4]采用结合私钥、随机数的加密算法,该算法占用内存空间小,可在一定程度上对数据进行压缩。提花圆机花型数据压缩有采用节约指令压缩存储重复的元素[5];也有针织系统控制数据压缩采用动态哈夫曼(Huffman)编码算法以及基于字典的(LZ)系列压缩算法[6-7],在数据传输过程中动态地进行解码,减少对数据的遍历,节省解压缩时间,但在压缩效率上并没有很大提高。

本文通过对压缩算法以及针织控制数据的研究,提出一种LZHUF算法对织物数据的压缩和对嵌入式人机交互系统的数据解压缩,以提高数据的解压缩效率,减少占用嵌入式人机交互系统的内存。

1 织物数据解压缩算法模型

针织控制系统主要包括纺织CAD、人机交互系统、实时控制系统[8-10]。纺织CAD可将织物实时控制数据以及花型数据转化为二进制文件,嵌入式人机交互系统将二进制文件解析成实时控制信号,下发给实时控制系统,完成整个织物的编织。整个系统工作如图1所示,其中KMP为学符串匹配算法。

图1 纺织数据解压缩算法模型Fig.1 Data compression algorithm model

2 算法应用步骤

2.1 LZHUF压缩算法思想

由于花型数据量大,如4路400针的丝袜机,1行选针数据占有200字节,并且袜机在1圈中的花纹颜色可能相同,即花型数据字符重复性强;同时出于安全性考虑,纺织CAD(如Lonati)一般将花型数据进行压缩处理[11-12]。

传统的织物数据压缩采用LZ系列的数据压缩算法,将已经输入的织物数据流的一部分作为字典,编码器为输入数据流开一个窗口,随着对字符串的编码不断地将窗口中的数据从右移至左,压缩效率不是很理想[13]。

LZSS算法是对基于滑动窗口缓存技术的LZ77算法的改进,其输出的标记序列不是固定的三元组。在算法中会设定一个匹配长度的阈值:当匹配长度小于阈值时,直接输出单个字符;反之输出偏移量,匹配长度。LZSS的编码是1字节的标志位,从低到高,如果bit=1,原样输出1字节,如果bit=0,读取2字节,偏移量和匹配长度保存在这2字节中。为增加滑动窗口的搜索效率,LZSS使用二叉查找树在滑动窗口中查找字符串。

Huffman编码是一种统计模型的压缩算法,即根据输入字符出现概率的高低输出非等长编码。在LZHUF算法中,还要对LZSS输出的字符进行Huffman编码,提高压缩效率。由于无法计算LZSS输出字符的概率,因此要采用动态Huffman编码,动态建立Huffman树,同时有新的字符输入时,更新符号的权值,并且更新符号在Huffman树中的位置。

LZHUF算法结合LZSS算法和动态Huffman压缩算法的优点,首先利用LZSS算法对织物控制数据进行压缩处理,再对输出的字符使用频率的高低进行动态Huffman编码,达到更好的压缩效果,同时也加强数据的安全性。织物花型数据信息及解压缩流程如图2、3所示。

图2 织物花型数据信息Fig.2 Fabric pattern data

2.2 提取织物控制数据中未解压的花型数据

在计算机上的CAD制版软件Lonati中设定编织的链条值以及花型数据,编译生成二进制CO文件,文件中包含织物控制数据以及压缩的花型数据。织物文件数据前512字节包括织物文件标识、速度、电动机、圈循环、花型等数据位置信息。Lonati制版软件生成的织物花型数据包括花型数据位置(Jacq)和花型数据(Dise),根据花型数据位置文件数据格式设计算法,可在花型数据文件中提取花型控制数据。而花型数据文件和花型数据位置文件是经过LZHUF压缩后的密文。织物文件(CO文件) 花型数据信息如图4所示。织物数据包含了花型数据和花型数据位置,并可读出该数据在织物数据文件中的位置。实验的一个关键点就是如何提取出织物文件(CO文件)中压缩的花型数据。图5示出查找花型数据步骤。通过KMP算法查找字符‘Dise’在织物文件中的位置,根据下式计算花型数据的位置以及大小:

Dpos=(Apos+3)×256+(Apos+4)

(1)

Dlen=(Apos+5)×256+(Apos+6)

(2)

式中:Apos为KMP算法返回的字符位置;Dpos为花型文件的位置;Dlen为花型数据的大小。

2.3 解压缩织物数据中的花型数据

通过U盘将纺织CAD生成的二进制文件拷贝到人机交互系统的Flash中,人机交互系统读取并显示CO文件,可实时检测U盘的插拔并实现U盘和机器互相拷贝文件,删除文件,激活文件(将该文件作为机器的工作文件,即机器编织该文件设计的织物)。用户可选择要激活的CO文件。系统调用解压缩算法,之后判断文件合法性,若文件合法,则通过KMP查找字符串,找到Dise数据(选针数据)和Jacq数据(花型数据位置)开始和结束位置,将Dise加密数据段读入输入缓冲区,将输入缓冲区的

指针传递到解压缩函数,进行数据解压缩。再执行读取文件大小,初始化动态Huffman树等初始化工作。在解压时不断更新Huffman树,直至解压完成所有字符。

最后,算法执行后会生成解压缩后的花型文件,该算法设定解压缩生成的文件为Dise解压缩后的文件(Dise.binD)和Jacq解压缩后的文件(Jacq.binD),解压前后对比如图6(b)所示,图6(a)示出织物花型位置数据解压缩前的数据信息。可见:织物花型位置数据解压缩后的数据信息,数据整齐规律;解压缩前数据杂乱无规律。将解压缩后的数据和Lonati制版软件设定的花型选针数据进行对比,可验证数据还原的无损性。人机交互系统通过调用织物数据提取算法将数据转化为特定数据格式的控制信号,并传输到实时控制系统,完成织物的编织。

图3 织物数据解压缩流程图Fig.3 Fabric data decompression flow chart

图4 织物花型数据信息Fig.4 Fabric pattern data

图5 查找花型数据步骤Fig.5 Step for searching

3 嵌入式针织系统中解压缩实验

3.1 实验平台介绍

实验硬件主控芯片采用S3C2416,运行主频为400 MHz,64 M DDR2 RAM,256 M NAND Flash;操作系统(OS)Linux3.6内核;基于Qt/E4.8.5的图形界面库。纺织CAD采用意大利的Lonati制版软件,实验平台如图7所示。

3.2 实验结果与分析

实验中,先通过Lonati制板软件制作5个二进制CO文件作为实验对象,并拷贝到人机交互系统中,通过LZHUF算法进行解压缩dise1、dise2、dise3、dise4、dise5对应5个CO文件压缩的花型数据文件;同理,dise.binD对应解压缩后的花型数据文件,

在人机交互系统中显示解压缩后的信息。表1示出解压缩前后的文件大小以及压缩率和压缩时间。通过解压缩后的dise和jacq文件,找出花型数据,和打版CAD中设置的花型对比,可证明数据解压缩的无损性。

图7 实验平台实物图Fig.7 Physical map of experiment platform

表1 解压缩前后文件对比Tab.1 Comparison of file sizes before and after decompression

4 结 论

在已有的嵌入式实验平台上,LZHUF算法对织物数据的压缩率相对于LZW算法提高5%以上,且压缩时间相差不大,均在毫秒级。LZHUF无损压缩算法具有压缩率高,算法易实现,可在内存空间和存储空间有限的嵌入式针织控制系统中运行,无损还原织物控制数据等优势,提高了针织控制系统的可靠性与稳定性,并且节省了嵌入式设备内存资源,提高了嵌入式针织设备人机交互系统的运行性能。同时适合纺织CAD中对织物数据的压缩,对设计纺织CAD软件的压缩算法有着重要的借鉴价值。

[1] 杨敏.Linux下针织纬编机通用人机交互系统设计[D].杭州:浙江大学,2013:12-20.

YANG Min.System for weft kniting machine based on Linux[D]. Hangzhou: Zhejiang University, 2013:12-20.

[2] 肖宏年,张建钢,吴晓光,等. 圆纬机电脑提花的花型数据准备[J].东华大学学报(自然科学版),2005(1): 101 -104.

XIAO Hongnian, ZHANG Jiangang, WU Xiaoguang, et al. Pattern data preparation of electronic jacquard circular knitting machine [J].Journal of Donghua University (Natural Science Edition),2005(1): 101-104.

[3] 高术森,张团善,乔辉,等.基于STM32的提花丝袜机电磁阀控制系统设计[J].西安工程大学学报,2017,31(5):645-651.

GAO Shusen,ZHANG Tuanshan,QIAO Hui,et al.Design of control system for solenoid valve of jacquard stocking machine based on STM 32[J]. Journal of Xi′an Polytechnic University, 2017, 31(5):645-651.

[4] 汝欣,史伟民,彭来湖,等.无缝针织内衣机的花型准备系统及数据安全[J].纺织学报,2016,37(11):130-135.

RU Xin,SHI Weimin,PENG Laihu,et al. Pattern preparation system of seamless under wear knitting machine and data security[J].Journal of Textile Research, 2016, 37(11):130-135.

[5] 胡旭东,揭由君,彭来湖.双面提花圆机花型准备系统的设计[J].纺织学报,2016,37(6):130-134.

HU Xudong, JIE Youjun, PENG Laihu.Design of pattern preparation system of double-faced jacquard circular kniting machine[J]. Journal of Textile Research,2016,37(6):130-134.

[6] 卢小杰.基于织造系统控制数据的无损压缩技术研究[D].杭州:浙江理工大学,2013:12-19.

LU Xiaojie.Study on lossless compressed technology based on weaving system control data[D]. Hangzhou: Zhejiang Sci-Tech University,2013:12-19.

[7] 唐世雄,沈炜,卢小杰.嵌入式织造系统无损压缩算法研究[J].工业控制计算机,2015,28(3):123-124.

TANG Shixiong, SHEN Wei, LU Xiaojie. Reasearch on lossless compression algorithm for embedded weaving system[J]. Industrial Control Computer, 2015,28(3):123-124.

[8] 朱艳. 针织圆机计算机辅助花样制作系统的研究[D].杭州: 浙江大学,2002: 52.

ZHU Yan.Research on computer aided pattern manufac-turing system of the circular knitting machine[D].Hangzhou:Zhejiang University, 2002:52.

[9] 杨楠楠,张团善,吕双庆,等.新型袜机选针器CAN系统硬件电路设计[J].西安工程大学学报,2015,29(2): 178-180.

YANG Nannan,ZHANG Tuanshan,LÜ Shuangqing,et al. Design of CAN system hardware circuit of new socks machines needle selector[J].Journal of Xi′an Polytechnic University,2015,29(2): 178-180.

[10] 吕双庆,张团善,胡秀芳,等.基于LPC4357的嵌入式电脑棉袜机控制系统设计[J].西安工程大学学报,2012,28(6):740-744.

LÜ Shuangqing,ZHANG Tuanshan,HU Xiufang, et al.Design of cotton socks system controlled by embedded computer based on LPC4357[J]. Journal of Xi′an Polytechnic University,2006,28(6):740-744.

[11] 翟志永.嵌入式全自动横机花型准备系统的研究[D].杭州: 浙江大学,2005: 34.

ZHAI Zhiyong.Research on the flower preparation system for embedded automatic flat knitting machine[D]. Hangzhou:Zhejiang University,2005:34.

[12] 罗冰洋,莫易敏,郭艳. 电脑横机花型准备系统的设计[J]. 纺织学报,2007,28(7):116-120.

LUO Bingyang, MO Yimin, GUO Yan. Design of pattern prepareation system of computerized flat knitting machine[J]. Journal of Textile Research,2007, 28(7): 116 -120.

[13] 蓝波. 一种改进的LZW 算法在图像编码中的应用[J].计算机工程与科学, 2006, 28(6):55-57.

LAN Bo. A modified LZW algorithm in application to image coding [J].Computer Engineering and Science, 2006,28(6):55-57.

猜你喜欢
压缩算法花型织物
无Sn-Pd活化法制备PANI/Cu导电织物
《纺织品织物折痕回复角的测定》正式发布
竹纤维织物抗菌研究进展
基于参数识别的轨道电路监测数据压缩算法研究
哥特式浪漫
基于Multisim的四花型流水灯控制电路的设计与仿真
一种基于嵌入式实时操作系统Vxworks下的数据压缩技术
PMU数据预处理及压缩算法
织物柔软剂的香气发展趋势
基于WinCE圆纬机花型数据处理系统设计