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

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

Info

Publication number
CN112905851B
CN112905851B CN202110225578.7A CN202110225578A CN112905851B CN 112905851 B CN112905851 B CN 112905851B CN 202110225578 A CN202110225578 A CN 202110225578A CN 112905851 B CN112905851 B CN 112905851B
Authority
CN
China
Prior art keywords
order
state
coding
hilbert
states
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.)
Active
Application number
CN202110225578.7A
Other languages
English (en)
Other versions
CN112905851A (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 (2)

1.一种自适应的Hilbert编码和解码方法,其特征在于:
Step1:Hilbert曲线状态视图构建阶段;
构建一阶物理坐标和一阶编码值的状态视图QZ和一阶物理坐标到下一阶状态的状态视图QS;
Step2:编码阶段;
给定包含X和Y坐标的二维位置点Q(X,Y)和阶数m,计算点Q的Hilbert编码Z;
所述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-1为偶数, 置第m-n阶的当前状态为0, 若m-n-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
2.根据权利要求1所述的自适应的Hilbert编码和解码方法,其特征在于所述Step1具体为:
Step1.1:一阶Hilbert曲线将整个空间分成左下、左上、右上、右下共4个格元,其对应的一阶物理坐标分别为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。
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 CN112905851A (zh) 2021-06-04
CN112905851B true 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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 耶鲁大学 用于控制量子系统的技术及相关系统和方法
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 淘宝(中国)软件有限公司 时空数据编码方法及装置、存储介质、计算设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929501B2 (en) * 2013-08-08 2021-02-23 Sap Se Managing and querying spatial point data in column stores
US10645367B2 (en) * 2017-04-20 2020-05-05 Wisconsin Alumni Research Foundation Systems, methods, and media for encoding and decoding signals used in time of flight imaging

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 耶鲁大学 用于控制量子系统的技术及相关系统和方法
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编码和解码算法;贾连印 等;《电子与信息学报》;第42卷(第6期);第1494-1499段 *

Also Published As

Publication number Publication date
CN112905851A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
EP3595181B1 (en) Predictor-copy coding mode for coding of point clouds
Kahl et al. Practical global optimization for multiview geometry
US6757433B1 (en) Object-based quad-tree mesh motion compensation method using greedy algorithm
CN110457317B (zh) 一种基于状态视图的Hilbert曲线编码和解码方法
CN105120185A (zh) 一种视频图像抠像方法与装置
Cao et al. Fast automatic multilevel thresholding method
CN1719900B (zh) 选择编码模式的方法和设备
CN112905851B (zh) 一种自适应的Hilbert编码和解码方法
US8300015B2 (en) Method of detecting the movement of an entity equipped with an image sensor and device for implementing same
JP2011502390A (ja) イメージ信号の圧縮方法及び装置
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
CN110489605B (zh) 一种数据偏斜分布下的Hilbert编码和解码方法
Morton et al. A comparison of flux limited difference methods and characteristic Galerkin methods for shock modelling
CN110807526A (zh) 一种用于量子态转化的量子逻辑门获取方法及装置
CN110827299A (zh) 一种基于哈里斯鹰优化算法的图像分割方法
Mohamed et al. Speeding up fractal image compression by genetic algorithms
CN101212681A (zh) 一种快速运动搜索方法
CN112865811B (zh) 基于渐进扩展和环分类排序评估准则的ldpc码构造方法
CN109189996B (zh) 基于k2-mdd的大规模图的最大公共连通子图匹配方法
US8179967B2 (en) Method and device for detecting movement of an entity provided with an image sensor
US20130173225A1 (en) Method for sampling mesh models and apparatus for sampling mesh models
CN112634327A (zh) 基于YOLOv4模型的跟踪方法
CN110956670A (zh) 一种基于深度偏移的多模式自适应z值压缩算法
CN105389852B (zh) 基于QTM双向扫描的球面Voronoi图生成方法

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