CN112905851A - 一种自适应的Hilbert编码和解码方法 - Google Patents

一种自适应的Hilbert编码和解码方法 Download PDF

Info

Publication number
CN112905851A
CN112905851A CN202110225578.7A CN202110225578A CN112905851A CN 112905851 A CN112905851 A CN 112905851A CN 202110225578 A CN202110225578 A CN 202110225578A CN 112905851 A CN112905851 A CN 112905851A
Authority
CN
China
Prior art keywords
order
state
hilbert
coding
value
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
Application number
CN202110225578.7A
Other languages
English (en)
Other versions
CN112905851B (zh
Inventor
贾连印
王维晨
卫守林
丁家满
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN202110225578.7A priority Critical patent/CN112905851B/zh
Publication of CN112905851A publication Critical patent/CN112905851A/zh
Application granted granted Critical
Publication of CN112905851B publication Critical patent/CN112905851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种自适应的Hilbert编码和解码方法,属于空间数据库索引技术领域。本发明包括Hilbert曲线状态视图构建阶段,构建编码状态视图,用于实现编码值和坐标之间的映射、及其到下一阶状态的映射;Hilbert编码阶段:根据输入数据的不同,自适应的选择不同的编码策略。对于输入坐标前部连续0超过特定阈值r的情形,采用跳过输入数据前部特定阶的策略,否则采用逐阶迭代编码的策略。对于输入坐标前部为较少的连续0开头的情况时,采用逐阶迭代编码的方式,计算Hilbert编码。本发明通过引入高效掩码操作、首1检测等技术,可避免对特定序列的迭代查表操作,可同时很好的适应均匀分布和偏斜分布的情形,具有较高的效率。

Description

一种自适应的Hilbert编码和解码方法
技术领域
本发明涉及一种自适应的Hilbert编码和解码方法,属于图像存储,空间数据库索引等技术领域。
背景技术
空间填充曲线可将多维数据序列化为一维数据,便于多维数据在磁盘上的存储与索引,这种映射模式在影像压缩、行程编码形式的栅格数据表达、空间划分、空间查询、空间索引、计算几何中的启发式搜索等领域应用广泛;1980年,Peano第一个提出了空间填充曲线,希尔伯特推广了它的存在,并给出了其一般化的生成方法;空间排列码(SpatialOrdering Code)以连续整数与空间填充曲线实体集元素建立起一一对应的可逆对应关系,奠定了空间填充曲线相关算法的基础。目前,应用最广泛的空间排列方法包括Morton码、Gray码及Hilbert码。经大量应用验证,Hilbert空间排列码具有最好的空间聚集及空间连续性。
Hilbert曲线的算法主要包括递归算法和迭代算法两大类;其中迭代的算法是目前研究的热点,例如Doug Moore的基于位运算符的多维非递归算法、李邵俊的基于状态视图的快速Hilbert编码算法等。
发明内容
现有编码方法多未考虑不同类型的输入数据对编码效率的影响,其对不同的数据编码效率近似相同,本发明提供一种自适应的Hilbert编码和解码方法,针对不同输入数据,选择不同编码策略,可同时很好地适应均匀和偏斜分布的场景,解决上述技术问题。
本发明的技术方案是:一种自适应的Hilbert编码和解码方法,包括:
Step1、Hilbert曲线状态视图构建阶段:构建一阶物理坐标和一阶编码值的状态视图QZ和一阶物理坐标到下一阶状态的状态视图QS。
Step2、编码阶段;给定包含X和Y坐标的二维位置点Q(X,Y)和阶数m,计算点Q的Hilbert编码Z。
所述Step1具体为:
Step1.1:一阶Hilbert曲线将整个空间分成左下、左上、右上、右下共4个格元,其对应的一阶物理坐标XiYi分别为0、1、3、2。
一阶Hilbert曲线开口向下、左、上、右的4种基本状态对应的状态值分别为0、1、2、3。
Step1.2:4种状态下,状态视图QZ中一阶物理坐标0、1、3、2分别对应下一阶编码:
状态0时对应编码为0、1、2、3;
状态1时对应编码为0、3、2、1;
状态2时对应编码为2、3、0、1;
状态3时对应编码为2、1、0、3。
Step1.3:4种状态下,状态视图QS中一阶物理坐标0、1、3、2分别对应下一阶状态:
状态0时对应下一阶状态为1、0、0、3;
状态1时对应下一阶状态为0、2、1、1;
状态2时对应下一阶状态为2、1、3、2;
状态3时对应下一阶状态为3、3、2、0。
所述Step2具体为:
Step2.1、初始化:
给定点Q(X,Y)和阶数m,其中X=(xm-1xm-2.....x1x0)2,Y=(ym-1ym-2.......y1y0)2,其中xi和yi分别表示X和Y的第m-i阶的值,设初始Hilbert编码值Z=0,初始状态第1阶状态T1=0。
Step2.2、参数引入:
引入阈值参数r,表示输入数据前部为0的阶数,设置max为X和Y的最大值,掩码变量mask=1<<m-r。
Step2.3、策略选择:
若max大于等于mask,表明前r阶不全为0,则采用逐阶迭代编码的策略。
若max小于mask,则表示输入横纵坐标前部r阶均为0,故采用跳过前部为0的阶的策略。
Step2.4、逐阶迭代编码策略,具体为:
Step2.4.1:根据初始状态第1阶状态T1=0,i从1循环到m执行Step2.4.2和Step2.4.3,循环结束时的Z值即为所求编码。
Step2.4.2:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i]。
Step2.4.3:设置Z=Z<<2|Zi
Step2.5、跳过前部为0阶的策略,具体为:
Step2.5.1、首1检测阶段:
检测max中位左侧第一个为1的位置n。
Step2.5.2、跳过编码阶段:
置Z=Zpartial=0,Zpartial表示前m-n-1阶的部分编码值。
置第m-n阶的当前状态等于0,m-n-1为偶数,或等于1,m-n-1为奇数。
Step2.5.3:根据初始状态第m-n阶的状态Tm-n,i从m-n循环到m执行Step2.5.4和Step2.5.5,循环结束时的Z值即为所求编码。
Step2.5.4:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i]。
Step2.5.5:设置Z=Z<<2|Zi
本发明的有益效果是:本发明提出结合态视图和迭代算法的自适应Hilbert编码算法,根据输入的不同坐标选择迭代编码策略和跳过前部为0阶的策略。迭代编码策略适合均匀分布的数据,跳过前部为0阶的策略则在偏斜分布下效率更高。因此而通过自适应的Hilbert编码算法,可同时很好地适应均匀和偏斜分布的场景。
附图说明
图1是本发明的步骤流程图;
图2是本发明4种状态下1阶Hilbert曲线物理位置和编码值对应关系图;
图3是本发明二阶Hilbert曲线图;
图4是本发明三阶Hilbert曲线图。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
实施例1:如图1-4所示,一种自适应的Hilbert编码和解码方法,包括Hilbert曲线状态视图构建阶段和编码阶段。
Hilbert曲线状态视图构建阶段:构建编码状态视图,用于实现编码值和坐标之间的映射、及其到下一阶状态的映射。Hilbert编码阶段:根据输入数据的不同,自适应的选择不同的编码策略。对于输入坐标前部连续0超过特定阈值r的情形,采用跳过输入数据前部特定阶的策略,否则采用逐阶迭代编码的策略。对于输入坐标前部为较少的连续0开头的情况时,采用逐阶迭代编码的方式,计算Hilbert编码。
Hilbert曲线状态视图构建阶段具体为:
Step1.1:如图2所示,一阶Hilbert曲线将整个空间分成左下、左上、右上、右下共4个格元,其对应的一阶物理坐标XiYi分别为0、1、3、2。
一阶Hilbert曲线开口向下、左、上、右的4种基本状态对应的状态值分别为0、1、2、3。
Step1.2:如图2所示,4种状态下,状态视图QZ中一阶物理坐标0、1、3、2分别对应下一阶编码:
状态0时对应编码为0、1、2、3;
状态1时对应编码为0、3、2、1;
状态2时对应编码为2、3、0、1;
状态3时对应编码为2、1、0、3。
Step1.3:如图2所示,4种状态下,状态视图QS中一阶物理坐标0、1、3、2分别对应下一阶状态:
状态0时对应下一阶状态为1、0、0、3;
状态1时对应下一阶状态为0、2、1、1;
状态2时对应下一阶状态为2、1、3、2;
状态3时对应下一阶状态为3、3、2、0。
编码阶段具体为:
Step2.1:初始化;
给定点Q(X,Y)和阶数m,其中X=(xm-1xm-2.....x1x0)2,Y=(ym-1ym-2.......y1y0)2,其中xi和yi分别表示X和Y的第m-i阶的值,设初始Hilbert编码值Z=0,初始状态第1阶状态T1=0。
示例:给定点Q(9,3),阶数m=6,其中X=(001001)2,Y=(000011)2,x3表示x第3阶的值为1,y3表示y第3阶的值为0,Z=0,T1=0。
Step2.2:参数引入;
引入阈值参数r,表示输入数据前部为0的阶数,设置max为X和Y的最大值,掩码变量mask=1<<m-r。
示例:r=2,mask=10000,比较x和y的最大值得出max=001001。
Step2.3:策略选择;
若max大于等于mask,表明前r阶不全为0,则采用逐阶迭代编码的策略。
若max小于mask,则表示输入横纵坐标前部r阶均为0,故采用跳过前部为0的阶的策略。
示例:由max=001001,mask=10000,可得max小于mask,故采用跳过前部为0的阶的策略。
Step2.4:逐阶迭代编码策略,具体为:
Step2.4.1:根据初始状态第1阶状态T1=0,i从1循环到m执行Step2.4.2和Step2.4.3,循环结束时的Z值即为所求编码。
Step2.4.2:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i]。
Step2.4.3:设置Z=Z<<2|Zi
Step2.5:跳过前部为0阶的策略,具体为:
Step2.5.1:首1检测阶段;
检测max中位左侧第一个为1的位置n。
Step2.5.2:跳过编码阶段;
置Z=Zpartial=0,Zpartial表示前m-n-1阶的部分编码值。
置第m-n阶的当前状态等于0(m-n-1为偶数)或1(m-n-1为奇数)。
示例:直接确定Q的前2阶的部分编码值Zpartial=0,第3阶的所处状态为0。
Step2.5.3:根据初始状态第m-n阶的状态Tm-n,i从m-n循环到m执行Step2.5.4和Step2.5.5,循环结束时的Z值即为所求编码。
Step2.5.4:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i]。
Step2.5.5:设置Z=Z<<2|Zi
示例:第3阶的物理坐标为(1,0),T3=0,查找QZ表,对应的编码值Z3=11,计算得Z=000011;查找QS表,得T4=3,重复上述步骤,第4阶的物理坐标为(0,0),对应的编码值Z4=10,计算得Z=00001110;T5=3,第5阶的物理坐标为(0,1),对应的编码值Z5=01,计算得Z=0000111001;T6=3,第6阶的物理坐标为(1,1),对应的编码值Z6=00,得到点Q最终Hilbert编码Z=000011100100。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (3)

1.一种自适应的Hilbert编码和解码方法,其特征在于:
Step1:Hilbert曲线状态视图构建阶段;
构建一阶物理坐标和一阶编码值的状态视图QZ和一阶物理坐标到下一阶状态的状态视图QS;
Step2:编码阶段;
给定包含X和Y坐标的二维位置点Q(X,Y)和阶数m,计算点Q的Hilbert编码Z。
2.根据权利要求1所述的自适应的Hilbert编码和解码方法,其特征在于所述Step1具体为:
Step1.1:一阶Hilbert曲线将整个空间分成左下、左上、右上、右下共4个格元,其对应的一阶物理坐标XiYi分别为0、1、3、2;
一阶Hilbert曲线开口向下、左、上、右的4种基本状态对应的状态值分别为0、1、2、3;
Step1.2:4种状态下,状态视图QZ中一阶物理坐标0、1、3、2分别对应下一阶编码:
状态0时对应编码为0、1、2、3;
状态1时对应编码为0、3、2、1;
状态2时对应编码为2、3、0、1;
状态3时对应编码为2、1、0、3;
Step1.3:4种状态下,状态视图QS中一阶物理坐标0、1、3、2分别对应下一阶状态:
状态0时对应下一阶状态为1、0、0、3;
状态1时对应下一阶状态为0、2、1、1;
状态2时对应下一阶状态为2、1、3、2;
状态3时对应下一阶状态为3、3、2、0。
3.根据权利要求1所述的自适应的Hilbert编码和解码方法,其特征在于所述Step2具体为:
Step2.1:初始化;
给定点Q(X,Y)和阶数m,其中X=(xm-1xm-2.....x1x0)2,Y=(ym-1ym-2.......y1y0)2,其中xi和yi分别表示X和Y的第m-i阶的值,设初始Hilbert编码值Z=0,初始状态第1阶状态T1=0;
Step2.2:参数引入;
引入阈值参数r,表示输入数据前部为0的阶数,设置max为X和Y的最大值,掩码变量mask=1<<m-r;
Step2.3:策略选择;
若max大于等于mask,表明前r阶不全为0,则采用逐阶迭代编码的策略;
若max小于mask,则表示输入横纵坐标前部r阶均为0,故采用跳过前部为0的阶的策略;
Step2.4:逐阶迭代编码策略,具体为:
Step2.4.1:根据初始状态第1阶状态T1=0,i从1循环到m执行Step2.4.2和Step2.4.3,循环结束时的Z值即为所求编码;
Step2.4.2:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i];
Step2.4.3:设置Z=Z<<2|Zi
Step2.5:跳过前部为0阶的策略,具体为:
Step2.5.1:首1检测阶段;
检测max中位左侧第一个为1的位置n;
Step2.5.2:跳过编码阶段;
置Z=Zpartial=0,Zpartial表示前m-n-1阶的部分编码值;
置第m-n阶的当前状态等于0,m-n-1为偶数,或等于1,m-n-1为奇数;
Step2.5.3:根据初始状态第m-n阶的状态Tm-n,i从m-n循环到m执行Step2.5.4和Step2.5.5,循环结束时的Z值即为所求编码;
Step2.5.4:给定xm-i和ym-i,Ti,查找QZ表,获取第i阶的编码值Zi=QZ[Ti][xm-i][ym-i],查找QS表,获取第i+1的状态Ti+1=QS[Ti][xm-i][ym-i];
Step2.5.5:设置Z=Z<<2|Zi
CN202110225578.7A 2021-03-01 2021-03-01 一种自适应的Hilbert编码和解码方法 Active CN112905851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110225578.7A CN112905851B (zh) 2021-03-01 2021-03-01 一种自适应的Hilbert编码和解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110225578.7A CN112905851B (zh) 2021-03-01 2021-03-01 一种自适应的Hilbert编码和解码方法

Publications (2)

Publication Number Publication Date
CN112905851A true CN112905851A (zh) 2021-06-04
CN112905851B CN112905851B (zh) 2023-06-27

Family

ID=76108225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110225578.7A Active CN112905851B (zh) 2021-03-01 2021-03-01 一种自适应的Hilbert编码和解码方法

Country Status (1)

Country Link
CN (1) CN112905851B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455624A (zh) * 2013-09-16 2013-12-18 湖北文理学院 一种轻量级全球多维遥感影像网络地图服务实现方法
US20150046411A1 (en) * 2013-08-08 2015-02-12 Sap Ag Managing and Querying Spatial Point Data in Column Stores
CN107708797A (zh) * 2015-06-11 2018-02-16 Med-El电气医疗器械有限公司 切换听力植入物编码策略
US20180309970A1 (en) * 2017-04-20 2018-10-25 Wisconsin Alumni Research Foundation Systems, methods and, media for encoding and decoding signals used in time of flight imaging
CN108780129A (zh) * 2016-02-12 2018-11-09 耶鲁大学 用于控制量子系统的技术及相关系统和方法
CN110457317A (zh) * 2019-07-23 2019-11-15 昆明理工大学 一种基于状态视图的Hilbert曲线编码和解码方法
CN110489606A (zh) * 2019-07-31 2019-11-22 云南师范大学 一种分组Hilbert编码和解码方法
CN110489605A (zh) * 2019-07-31 2019-11-22 云南师范大学 一种数据偏斜分布下的Hilbert编码和解码方法
CN111914043A (zh) * 2020-05-29 2020-11-10 淘宝(中国)软件有限公司 时空数据编码方法及装置、存储介质、计算设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046411A1 (en) * 2013-08-08 2015-02-12 Sap Ag Managing and Querying Spatial Point Data in Column Stores
CN103455624A (zh) * 2013-09-16 2013-12-18 湖北文理学院 一种轻量级全球多维遥感影像网络地图服务实现方法
CN107708797A (zh) * 2015-06-11 2018-02-16 Med-El电气医疗器械有限公司 切换听力植入物编码策略
CN108780129A (zh) * 2016-02-12 2018-11-09 耶鲁大学 用于控制量子系统的技术及相关系统和方法
US20180309970A1 (en) * 2017-04-20 2018-10-25 Wisconsin Alumni Research Foundation Systems, methods and, media for encoding and decoding signals used in time of flight imaging
CN110457317A (zh) * 2019-07-23 2019-11-15 昆明理工大学 一种基于状态视图的Hilbert曲线编码和解码方法
CN110489606A (zh) * 2019-07-31 2019-11-22 云南师范大学 一种分组Hilbert编码和解码方法
CN110489605A (zh) * 2019-07-31 2019-11-22 云南师范大学 一种数据偏斜分布下的Hilbert编码和解码方法
CN111914043A (zh) * 2020-05-29 2020-11-10 淘宝(中国)软件有限公司 时空数据编码方法及装置、存储介质、计算设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾连印 等: "基于状态视图的高效Hilbert编码和解码算法", 《电子与信息学报》, vol. 42, no. 6, pages 1494 - 1499 *

Also Published As

Publication number Publication date
CN112905851B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
Tang et al. Adaptive CU split decision with pooling-variable CNN for VVC intra encoding
Du et al. Fast and memory-efficient network towards efficient image super-resolution
CN110457317B (zh) 一种基于状态视图的Hilbert曲线编码和解码方法
Cao et al. Fast automatic multilevel thresholding method
JP5221666B2 (ja) イメージ信号の圧縮方法及び装置
CN110503656A (zh) 一种超像素分割方法及相关设备
CN110489605B (zh) 一种数据偏斜分布下的Hilbert编码和解码方法
US20230237705A1 (en) Methods for level partition of point cloud, and decoder
US5751365A (en) Motion compensated inter-frame prediction method and apparatus using motion vector interpolation with adaptive representation point addition
Yazdani et al. Color quantization using modified artificial fish swarm algorithm
CN1719900A (zh) 选择编码模式的方法和设备
CN112905851A (zh) 一种自适应的Hilbert编码和解码方法
CN110489606B (zh) 一种分组Hilbert编码和解码方法
CN117035106B (zh) 量子潮流计算修正方程的分阶计算方法、系统和存储介质
Mohamed et al. Speeding up fractal image compression by genetic algorithms
CN116824232A (zh) 一种数据填充式的深度神经网络图像分类模型对抗训练方法
CN116433690A (zh) 一种基于灰狼与粒子群协同优化算法的Otsu阈值分割方法
CN113946844A (zh) 一种基于格理论的最小失真信息隐藏方法、系统及介质
CN109189996B (zh) 基于k2-mdd的大规模图的最大公共连通子图匹配方法
CN109460394B (zh) 一种多级文档条目追踪矩阵的简化方法
CN110956670A (zh) 一种基于深度偏移的多模式自适应z值压缩算法
CN105389852B (zh) 基于QTM双向扫描的球面Voronoi图生成方法
CN117409326B (zh) 基于自适应加权损失和对抗干扰器的遥感异常检测方法
CN113612992B (zh) 一种针对avs3硬件编码器的快速帧内编码单元的编码方法
CN110377642B (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