CN112905851B - 一种自适应的Hilbert编码和解码方法 - Google Patents
一种自适应的Hilbert编码和解码方法 Download PDFInfo
- 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
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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编码和解码方法,属于图像存储,空间数据库索引等技术领域。
背景技术
空间填充曲线可将多维数据序列化为一维数据,便于多维数据在磁盘上的存储与索引,这种映射模式在影像压缩、行程编码形式的栅格数据表达、空间划分、空间查询、空间索引、计算几何中的启发式搜索等领域应用广泛;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。
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)
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)
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 |
-
2021
- 2021-03-01 CN CN202110225578.7A patent/CN112905851B/zh active Active
Patent Citations (7)
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)
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 |