CN103500223A - 一种面向移动用户的矢量地图数据压缩方法 - Google Patents
一种面向移动用户的矢量地图数据压缩方法 Download PDFInfo
- Publication number
- CN103500223A CN103500223A CN201310491681.1A CN201310491681A CN103500223A CN 103500223 A CN103500223 A CN 103500223A CN 201310491681 A CN201310491681 A CN 201310491681A CN 103500223 A CN103500223 A CN 103500223A
- Authority
- CN
- China
- Prior art keywords
- data
- point
- max
- ordinate
- compression
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013144 data compression Methods 0.000 title claims abstract description 20
- 238000007906 compression Methods 0.000 claims abstract description 22
- 230000006835 compression Effects 0.000 claims abstract description 22
- 230000003321 amplification Effects 0.000 claims description 11
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 11
- 230000014759 maintenance of location Effects 0.000 claims description 8
- 238000007667 floating Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Instructional Devices (AREA)
Abstract
本发明公开了一种面向移动用户的矢量地图数据压缩方法,首先利用矢量数据压缩方法有效地去除冗余数据点,获得精简的线状数据,在其基础上对精简后的线状数据进行坐标平移,并放大各数据点的坐标值,进而强制转换各数据点的数据类型由double型为int32型,实现二次压缩。本方法充分结合移动用户需求特点,在移动用户接受的精度范围内,最大限度地提高矢量地图数据压缩率,有效地减少无线网络在数据传输时的负荷,节约移动终端存储空间。本方法在移动地理信息服务的矢量地图数据压缩中应用前景广阔。
Description
技术领域
本发明涉及空间数据处理与表达领域,特别是涉及一种面向移动用户的矢量地图数据压缩方法。
背景技术
移动地理信息服务是移动位置服务的延伸,是高速移动互联网技术与地理空间信息技术相结合的产物,它以移动通信技术为承载平台,通过移动终端为广大移动用户提供各种信息类业务(如旅游、天气、交通、问路、黄页、广告)、娱乐类业务、车辆调度业务、跟踪类业务和急救类业务等基于位置的空间信息服务,因此移动地理信息服务被全球许多移动运营商和咨询机构视为是下一代移动网络的核心业务。相对于普通PC,移动终端是指借助无线网络技术接入网络的具有有限计算资源的设备。在利用移动地理信息服务时,移动用户不仅受到无线网络带宽窄和稳定性差的限制,也受到移动设备存储空间小、显示屏小且分辨率低和CPU计算能力弱的限制,从而对大量空间数据的存储、传输、显示和分析造成困难。因此,必须对空间数据进行压缩处理,使得移动空间数据尽可能的简洁,空间数据的压缩显得尤为重要。
当前移动空间信息服务中的基础地图数据以道路、行政区划、房屋、公交站点等点状、线状及面状矢量数据构成。对移动空间信息服务中的空间数据压缩,主要是对其中的矢量数据的压缩。由于点状图形要素可以看成是特殊的线状图形要素,面状图形要素的基础也是线状图形要素,需要由一条或多条线状图形要素围成。因此,线状图形要素的压缩就成为矢量数据压缩中最重要的问题。一般而言,矢量数据压缩是从组成曲线的点集合A中抽取一个子集B,用这个子集B在一定的精度范围内尽可能地反映原数据集合A,而这个子集B的点数应尽可能少。
当前矢量数据压缩方法主要有距离控制类方法(如垂距限值法和曲线数据压缩方法,曲线数据压缩方法通常也称Douglas-Peucker方法)、角度控制类方法(如角度限值法)以及基于小波技术的压缩方法等,这些方法主要针对传统有线网络中的空间数据压缩,对压缩精度要求较高。在移动空间信息服务中,则对数据压缩的精度要求较低,而对压缩的数据量要求尽可能的小。然而,由于受到移动终端屏幕尺寸、分辨率和存储空间的限制,现有的矢量数据压缩方法不能很好地满足移动空间信息服务中对数据压缩的要求。
发明内容
本发明所要解决的技术问题是针对上述现有技术提供一种能有效提高数据压缩率的面向移动用户的矢量地图数据压缩方法。
本发明解决上述技术问题所采用的技术方案为:一种面向移动用户的矢量地图数据压缩方法,包括如下步骤:
步骤1:利用矢量数据压缩方法去除矢量地图数据中的冗余数据点,获得精简的线状数据,线状数据的坐标值为double型数据,double型参数为双精度浮点型参数;
步骤2:在步骤1得到的精简后的线状数据基础上,对剩下的数据点进行坐标轴平移:
(2-1)、分别比较剩下数据点的横坐标和纵坐标,得到横坐标的最小值Xmin和纵坐标的最小值Ymin;
(2-2)、以Xmin作为坐标轴在x轴方向的平移距离,Ymin作为坐标轴在y轴方向的平移距离,并以点(Xmin,Ymin)作为坐标原点,建立新的坐标系;
(2-3)、计算剩下数据点平移至新坐标系后的新坐标,在该线状数据中新建两个double型参数分别记录偏移量Xmin和Ymin,用于解压缩;
步骤3:在步骤2得到的平移后的线状数据基础上,对各数据点的新坐标值进行放大处理:
比较各数据点平移后的新横坐标值X和新纵坐标值Y,得到横坐标的最大值Xmax和纵坐标的最大值Ymax,将Xmax乘以10m,补足其为九位数,再将其他数据点的新横坐标值X均乘以10m,同理将Ymax乘以10n,补足其为九位数,再将其他数据点的新纵坐标值Y均乘以10n;在该线状数据中新建两个int32型参数并分别记录放大量m和n,用于解压缩,其中m和n均为正整数,int32型参数为32位整数型参数;
步骤4:将步骤3中得到的放大后的线状数据点的坐标类型由double型强制转换为int32型;
步骤5:将偏移量Xmin和Ymin,放大量m和n,以及步骤4得到的int32型数据点集合,合并记录为压缩后的矢量地图数据。
作为优选,所述步骤1中矢量数据压缩方法为Douglas-Peucker方法,该方法包括以下步骤:
(1-1)、确定矢量地图数据曲线的始点和终点,顺序将矢量地图数据中从始点到终点的所有数据点输入数据源,同时确定误差允许范围dmax;
(1-2)、计算经过始点和终点的直线方程y=kx+b,计算始点和终点之间各个点到直线y=kx+b的距离,选取离直线y=kx+b距离最大的点P,得最大距离hmax,其中k为直线的斜率,b为直线在纵坐标轴上的截距;
(1-3)、如果hmax<dmax,则删除始点和终点之间的数据点,以直线y=kx+b代替整条弧线;如果hmax3dmax,则P为保留点,利用同样的方法对始点与P点之间的曲线、P与终点之间的曲线上的数据点进行检测,以确定下一批保留点,依此方法循环进行,直至两端点之间曲线上的数据点与两端点连线的距离最大值小于dmax为止。
与现有技术相比,本发明的优点在于:通过本发明提供的方法进行面向移动用户的矢量地图数据压缩,不仅可以有效地减少无线网络在数据传输时的负荷,节约移动终端的存储空间,而且为将移动地理信息服务扩展到3G移动终端上提供了更加广泛的发挥空间,促进了空间信息共享的广度和深度。
附图说明
图1为本发明实施例中面向移动用户的矢量地图数据压缩方法的流程图;
图2为本发明实施例中Douglas-Peucker方法的流程图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提供的面向移动用户的矢量地图数据压缩方法,包括如下步骤:
步骤1:利用矢量数据压缩方法去除矢量地图数据中的冗余数据点,获得精简的线状数据,线状数据的坐标值为double型数据,double型参数为双精度浮点型参数;
步骤2:在步骤1得到的精简后的线状数据基础上,对剩下的数据点进行坐标轴平移:
(2-1)、分别比较剩下数据点的横坐标和纵坐标,得到横坐标的最小值Xmin和纵坐标的最小值Ymin;
(2-2)、以Xmin作为坐标轴在x轴方向的平移距离,Ymin作为坐标轴在y轴方向的平移距离,并以点(Xmin,Ymin)作为坐标原点,建立新的坐标系;
(2-3)、计算剩下数据点平移至新坐标系后的新坐标,在该线状数据中新建两个double型参数分别记录偏移量Xmin和Ymin,用于解压缩;
步骤3:在步骤2得到的平移后的线状数据基础上,对各数据点的新坐标值进行放大处理:
比较各数据点平移后的新横坐标值X和新纵坐标值Y,得到横坐标的最大值Xmax和纵坐标的最大值Ymax,将Xmax乘以10m,补足其为九位数,再将其他数据点的新横坐标值X均乘以10m,同理将Ymax乘以10n,补足其为九位数,再将其他数据点的新纵坐标值Y均乘以10n;在该线状数据中新建两个int32型参数并分别记录放大量m和n,用于解压缩,其中m和n均为正整数,int32型参数为32位整数型参数;
步骤4:将步骤3中得到的放大后的线状数据点的坐标类型由double型强制转换为int32型;
步骤5:将偏移量Xmin和Ymin,放大量m和n,以及步骤4得到的int32型数据点集合,合并记录为压缩后的矢量地图数据。
作为本发明方法的改进,在步骤1矢量数据压缩方法优选Douglas-Peucker方法进行数据压缩,该方法包括以下步骤:
(1-1)、确定矢量地图数据曲线的始点和终点,顺序将矢量地图数据中从始点到终点的所有数据点输入数据源,同时确定误差允许范围dmax;
(1-2)、计算经过始点和终点的直线方程y=kx+b,计算始点和终点之间各个点到直线y=kx+b的距离,选取离直线y=kx+b距离最大的点P,得最大距离hmax,其中k为直线的斜率,b为直线在纵坐标轴上的截距;
(1-3)、如果hmax<dmax,则删除始点和终点之间的数据点,以直线y=kx+b代替整条弧线;如果hmax3dmax,则P为保留点,利用同样的方法对始点与P点之间的曲线、P与终点之间的曲线上的数据点进行检测,以确定下一批保留点,依此方法循环进行,直至两端点之间曲线上的数据点与两端点连线的距离最大值小于dmax为止。
由于面状图形要素的基础是线状图形要素,面状图形要素可以看成是由一条或多条线状图形要素围成,因此,以下结合一条含96个数据点的面状数据对本发明中的面向移动用户的矢量地图数据压缩方法作进一步说明。
步骤1:利用已有的矢量数据压缩方法去除冗余数据点,获得精简的线状数据,本实施例中优选Douglas-Peucker方法对矢量数据进行压缩:
(1)、按顺序依次读入曲线的始点P1(636037.847235,3313442.795090)到终点P96(636037.843345,3313442.789755)的96个数据点,同时设定误差允许范围dmax为0.5;
(2)、计算经过始点P1和终点P96的直线方程为y=1.371465x+2441139.148932;依次计算数据点P2至P95到该直线的距离,选取与该直线距离最大的点P,得最大距离hmax;
(3)、如果hmax<0.5,则删除始点P1和终点P96之间的数据点,以(2)中所得直线y=1.371465x+2441139.148932代替整条弧线;如果hmax30.5,则P为保留点,利用同样的方法对始点P1与P之间的曲线、P与终点P96之间的曲线上的数据点进行检测,以确定下一批保留点,依此方法循环进行,直至两端点之间曲线上的数据点与两端点连线的距离最大值小于0.5为止;由此得到精简后的28个数据点,记录这28个数据点的横坐标值和纵坐标值分别为dataX(double[])和dataY(double[]);
步骤2:在步骤1得到的精简后的线状数据基础上,对剩余数据点进行坐标轴平移:
(1)、分别比较剩余28个数据点的横坐标和纵坐标,得到横坐标最小值Xmin为635889.373510,纵坐标最小值Ymin为3313138.687620;
(2)、以635889.373510作为坐标轴x轴方向平移距离,3313138.687620作为坐标轴y轴方向平移距离,并以点(635889.373510,3313138.687620)作为坐标轴原点,建立新的坐标系;
(3)、依次计算28个数据点在该新坐标系中的坐标值,记录其新坐标值数据为dataX1(double[])和dataY1(double[]);
步骤3:在步骤2得到的平移后的线状数据基础上,对各数据点的坐标值进行放大处理:
(1)、比较步骤2中各数据点平移后的横坐标值dataX1(double[])和纵坐标值dataY1(double[]),得横坐标的最大值Xmax为205.900290,纵坐标的最大值Ymax为304.107470;
(2)、对横坐标的最大值205.900290乘以106补足其为九位数,对纵坐标的最大值304.107470乘以106补足其为九位数,则m为6,n为6;
(3)、对步骤2中各数据点的横坐标值dataX1(double[])和纵坐标值dataY1(double[])分别乘以106,记录放大后28个数据点的横坐标值和纵坐标值分别为dataX2(double[])和dataY2(double[]);
步骤4:将步骤3中得到的放大后的线状数据点的横坐标值dataX2(double[])和纵坐标值dataY2(double[])由double型强制转换为int32型dataFX(int32[])和dataFY(int32[]),从而减少数据占用的存储空间;
步骤5:将偏移量635889.373510和3313138.687620,放大量6和6,以及步骤4得到的int32型数据点集合,合并记录到压缩后矢量地图数据文件中,从而实现对矢量地图数据的压缩,该面状数据的压缩率为83.85%。
Claims (2)
1.一种面向移动用户的矢量地图数据压缩方法,其特征在于,包括如下步骤:
步骤1:利用矢量数据压缩方法去除矢量地图数据中的冗余数据点,获得精简的线状数据,线状数据的坐标值为double型数据,double型参数为双精度浮点型参数;
步骤2:在步骤1得到的精简后的线状数据基础上,对剩下的数据点进行坐标轴平移:
(2-1)、分别比较剩下数据点的横坐标和纵坐标,得到横坐标的最小值Xmin和纵坐标的最小值Ymin;
(2-2)、以Xmin作为坐标轴在x轴方向的平移距离,Ymin作为坐标轴在y轴方向的平移距离,并以点(Xmin,Ymin)作为坐标原点,建立新的坐标系;
(2-3)、计算剩下数据点平移至新坐标系后的新坐标,在该线状数据中新建两个double型参数分别记录偏移量Xmin和Ymin,用于解压缩;
步骤3:在步骤2得到的平移后的线状数据基础上,对各数据点的新坐标值进行放大处理:
比较各数据点平移后的新横坐标值X和新纵坐标值Y,得到横坐标的最大值Xmax和纵坐标的最大值Ymax,将Xmax乘以10m,补足其为九位数,再将其他数据点的新横坐标值X均乘以10m,同理将Ymax乘以10n,补足其为九位数,再将其他数据点的新纵坐标值Y均乘以10n;在该线状数据中新建两个int32型参数并分别记录放大量m和n,用于解压缩,其中m和n均为正整数,int32型参数为32位整数型参数;
步骤4:将步骤3中得到的放大后的线状数据点的坐标类型由double型强制转换为int32型;
步骤5:将偏移量Xmin和Ymin,放大量m和n,以及步骤4得到的int32型数据点集合,合并记录为压缩后的矢量地图数据。
2.根据权利要求1所述的面向移动用户的矢量地图数据压缩方法,其特征在于,所述步骤1中矢量数据压缩方法为Douglas-Peucker方法,该方法包括以下步骤:
(1-1)、确定矢量地图数据曲线的始点和终点,顺序将矢量地图数据中从始点到终点的所有数据点输入数据源,同时确定误差允许范围dmax;
(1-2)、计算经过始点和终点的直线方程y=kx+b,计算始点和终点之间各个点到直线y=kx+b的距离,选取离直线y=kx+b距离最大的点P,得最大距离hmax,其中k为直线的斜率,b为直线在纵坐标轴上的截距;
(1-3)、如果hmax<dmax,则删除始点和终点之间的数据点,以直线y=kx+b代替整条弧线;如果hmax3dmax,则P为保留点,利用同样的方法对始点与P点之间的曲线、P与终点之间的曲线上的数据点进行检测,以确定下一批保留点,依此方法循环进行,直至两端点之间曲线上的数据点与两端点连线的距离最大值小于dmax为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491681.1A CN103500223B (zh) | 2013-10-17 | 2013-10-17 | 一种面向移动用户的矢量地图数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491681.1A CN103500223B (zh) | 2013-10-17 | 2013-10-17 | 一种面向移动用户的矢量地图数据压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103500223A true CN103500223A (zh) | 2014-01-08 |
CN103500223B CN103500223B (zh) | 2017-12-01 |
Family
ID=49865434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310491681.1A Expired - Fee Related CN103500223B (zh) | 2013-10-17 | 2013-10-17 | 一种面向移动用户的矢量地图数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103500223B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267281A (zh) * | 2014-09-25 | 2015-01-07 | 国家电网公司 | 一种分布式低压配电网状态监测数据压缩方法 |
CN107180033A (zh) * | 2016-03-09 | 2017-09-19 | 高德软件有限公司 | 一种电子地图数据存储方法及装置 |
CN110995849A (zh) * | 2019-12-11 | 2020-04-10 | 鲁东大学 | 一种矢量数据位置信息的传输与存储方法 |
CN111325220A (zh) * | 2020-02-17 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 图像生成方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN101561819A (zh) * | 2009-03-05 | 2009-10-21 | 中国测绘科学研究院 | 一种矢量数据精简与压缩方法以及相应的解压缩方法 |
-
2013
- 2013-10-17 CN CN201310491681.1A patent/CN103500223B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN101561819A (zh) * | 2009-03-05 | 2009-10-21 | 中国测绘科学研究院 | 一种矢量数据精简与压缩方法以及相应的解压缩方法 |
Non-Patent Citations (2)
Title |
---|
张佐理: "一种抗压缩的矢量地图水印算法", 《计算机工程》 * |
李琦 等: "WebGIS中的地理关系数据库模型研究", 《中国图像图形学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267281A (zh) * | 2014-09-25 | 2015-01-07 | 国家电网公司 | 一种分布式低压配电网状态监测数据压缩方法 |
CN104267281B (zh) * | 2014-09-25 | 2017-03-15 | 国家电网公司 | 一种分布式低压配电网状态监测数据压缩方法 |
CN107180033A (zh) * | 2016-03-09 | 2017-09-19 | 高德软件有限公司 | 一种电子地图数据存储方法及装置 |
CN110995849A (zh) * | 2019-12-11 | 2020-04-10 | 鲁东大学 | 一种矢量数据位置信息的传输与存储方法 |
CN110995849B (zh) * | 2019-12-11 | 2022-04-19 | 鲁东大学 | 一种矢量数据位置信息的传输与存储方法 |
CN111325220A (zh) * | 2020-02-17 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 图像生成方法、装置、设备及存储介质 |
CN111325220B (zh) * | 2020-02-17 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 图像生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103500223B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552989B2 (en) | Point cloud attribute compression method based on KD tree and optimized graph transformation | |
CN104239617A (zh) | 热力图的展现方法及装置 | |
CN103500223A (zh) | 一种面向移动用户的矢量地图数据压缩方法 | |
CN105139449A (zh) | 一种基于三维网格细分和编码的三维模型压缩方法 | |
CN103187978A (zh) | 一种矢量地图数据压缩及解压缩的方法和装置 | |
CN102938901B (zh) | 无线网络资源优化配置的方法和装置 | |
CN103425669B (zh) | 号段及归属地的编码方法和系统、归属地查询方法和系统 | |
Chen et al. | Compression of GPS trajectories | |
CN104732574A (zh) | 一种角色游戏的压缩装置及装置 | |
CN102571939A (zh) | 一种跨平台通信方法及系统 | |
CN104539723A (zh) | 一种基于景区特征点定位的虚拟导游系统 | |
CN104239453A (zh) | 数据处理方法及装置 | |
CN102469112B (zh) | 位置跟踪实现方法、装置及系统 | |
CN105631000B (zh) | 基于移动终端位置特征信息的终端缓存的数据压缩方法 | |
CN102611483A (zh) | 服务终端、无线数据传输系统及方法 | |
CN106599460A (zh) | 一种基于电力gis的可视化应用实现方法 | |
CN104021121A (zh) | 一种文本数据压缩方法、装置及服务器 | |
CN103458032B (zh) | 一种空间数据访问规律动态统计及信息压缩的方法及系统 | |
CN101510375B (zh) | 电子地图数据文件的处理方法 | |
CN112948517B (zh) | 区域位置标定方法、装置及电子设备 | |
CN111522899B (zh) | 一种三维矢量数据高压缩比的并行压缩方法及装置 | |
CN104899311A (zh) | WebGIS矢量数据高效传输方法 | |
Haifeng et al. | Design and implementation of location service based on signal strength difference | |
CN104657476A (zh) | 联机分析处理的方法及系统 | |
CN110928977A (zh) | 语音信息的分享方法、系统、可读存储介质、服务端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171201 |