构造布局平衡的带标记映像树的方法和系统的制作方法

文档序号:6558231阅读:188来源:国知局
专利名称:构造布局平衡的带标记映像树的方法和系统的制作方法
技术领域
本发明涉及数据可视化领域,具体地,涉及构造布局平衡的带标记映像树(labeled-treemap)的方法和系统。
背景技术
随着信息技术的发展,在不断涌现出的包括论坛、邮件列表、商务组织图表、内容管理分类及产品分类等各种与数据库相关的应用中,都会出现各种具有层次结构的数据。层次结构,也称作树结构,是多个数据节点的集合,其中每一个节点都具有单个父节点、零到多个子节点(根节点除外,其没有父节点)。
已提出有多种对层次结构数据进行可视化的方法,例如列表(listing)、略图(outline)、树形图(tree)、锥形树(cone tree)、双曲线树图(hyperbolictree)、映像树(treemap)等。在这些方法当中,映像树已成为用于可视化层次结构数据的重要方法。
映像树由Brian Johnson和Ben Shneiderman首先在20世纪90年代期间提出,在Brian Johnson和Ben Shneiderman的文章“Tree-mapASpace-Filling Approach to the Visualization of Hierarchical InformationStructures”(Proc.IEEE Visualization’91,IEEE,Piscataway,NJ(1991),284-291)中对映像树的概念进行了详细介绍。映像树是用于在有限的空间内可视化层次结构数据的方法,其使用大小和颜色信息来表现叶子节点的属性。映像树使用户能够对比出树结构中不同深度的节点和子树,从而帮助他们识别出该树结构的整体结构信息。
映像树在可视化大型层次结构数据集方面非常有效,其将显示区域划分为代表层次结构的矩形(节点的相应区域)的嵌套序列,其中这些矩形的面积与该层次结构数据集中的某一量(例如权值)相对应。图1示出了映像树的一个例子。
对于映像树应用来说,用于在映像树中计算矩形的布局的方法是相当重要的。已有几种映像树布局方法被提出。但是,现有的这些映像树布局方法在处理带标记的映像树方面所达到的效果并不理想。带标记映像树与传统的映像树的不同之处在于,在带标记的映像树中,对应于每一个非叶子节点的矩形中存在着用于其名称和边框上的部分空间。利用标记,这种新的映像树能够有效地使用户找到其目标数据,这对于传统的映像树来说是一个极大的改进。
但是,相对于传统的映像树来说,带标记的映像树在其构造过程中引入了更大的复杂度。在构造带标记的映像树时,由于标记和边框需要占用原本属于相应节点的空间,而现有的映像树布局方法又无法在进行构造之前确定出各标记和边框所需占用的空间,因此只能在构造过程中对于指定区域边划分出节点区域、边划分出标记和边框区域。从而,可能会出现这样的情况两个非叶子节点的权值相等的,因此传统的方法会划分出两个面积相等的矩形给这两个节点,这里我们假设矩形的长和宽是不等的,其中一个矩形的长边是x轴方向,而另外一个矩形的短边是x轴方向。由于标记所占的高度是相同的,因此前一个矩形的标记区域所占的面积就大一些,剩余分给其他孩子节点的空间就会比另外一个矩形的小。这就导致了所生成的映像树中并非所有节点的区域大小均与其权值相对应,从而使得映射树的布局不平衡。在最坏的情况下,甚至可能会出现这样的情况,即利用这些现有映像树布局方法对指定区域划分到最后不再有多余的空间来布置剩余的权值较小的叶子节点,从而使该叶子节点在所构造的映像树中不可见。
因此,需要设计出一种新的构造布局平衡的带标记映像树的方法,来解决这些问题。

发明内容
本发明正是鉴于上述现有技术中的问题提出的,其目的在于提供构造布局平衡的带标记映像树的方法和系统,以使所构造的带标记映像树中各叶子节点所占的区域面积与该节点的权值相对应,并避免出现叶子节点在映像树中不可见的情况。
根据本发明的一个方面,提供了一种构造布局平衡的带标记映像树的方法,包括根据指定叶子节点的权值以及指定映像树区域,确定叶子节点的可能密度范围,其中所述密度是指叶子节点在单位权值上所占的区域的面积;在上述可能密度范围中寻找一能够被满足的密度以及满足该密度的带标记映像树,其中所述能够被满足的密度是指对于该密度至少存在这样一个带标记映像树,即在该带标记映像树中每一个叶子节点所占的区域面积至少为该节点的权值与该密度之积;以及将上述带标记映像树呈现在指定屏幕区域上。
优选地,上述寻找步骤进一步包括在上述可能密度范围中寻找能够被满足的最大密度以及满足该最大密度的带标记映像树。
优选地,上述寻找步骤进一步包括在上述可能密度范围内选择一密度;根据上述层次结构,对上述指定映像树区域尝试对于构造带标记映像树来说可能的分割方式;判断上述可能的分割方式是否能够构造出满足上述密度的带标记映像树;若能够构造出满足上述密度的带标记映像树,则利用能够构造满足该密度的分割方式构造出带标记映像树,且该密度和该带标记映像树为寻找结果,否则继续在该可能密度范围内进行寻找。
优选地,上述寻找步骤进一步包括利用查找法循环进行以下步骤在上述可能密度范围内选择一密度;根据上述层次结构,对上述指定映像树区域尝试对于构造带标记映像树来说可能的分割方式;判断上述可能的分割方式是否能够构造出满足上述密度的带标记映像树;若能够构造出满足上述密度的带标记映像树,则确定该密度能够被满足并继续在该可能密度范围内向上界方向进行查找,否则继续在该可能密度范围内向下界方向进行查找,直到该可能密度范围内不存在下一可选密度时为止;以及将完成查找时最后一次判断能够被满足的密度确定为上述密度中能够被满足的最大值,并利用能够构造出满足该密度的带标记映像树的分割方式构造带标记映像树。
优选地,上述判断步骤进一步包括对于上述可能的分割方式中的每一种通过使其中划分给每一个叶子节点的实际区域的面积除以该节点权值,而计算出每一个叶子节点的实际密度;将上述每一个叶子节点的实际密度与上述选定密度进行比较;以及若所有叶子节点的实际密度均大于或等于该选定密度,则确定该分割方式能够构造出满足该选定密度的带标记映像树。
优选地,上述判断步骤进一步包括对于上述可能的分割方式中的每一种,若比较出其中某一个叶子节点的实际密度小于上述选定密度时,则不继续进行对其他叶子节点的实际密度的比较。
根据本发明的另一个方面,提供了一种构造布局平衡的带标记映像树的系统,包括密度范围确定模块,其根据指定叶子节点的权值以及指定映像树区域,确定叶子节点的可能密度的范围,其中所述密度是指叶子节点在单位权值上所占的区域的面积;密度带标记映像树计算模块,其在上述密度范围确定模块所确定的可能密度范围中寻找一能够被满足的密度以及满足该密度的带标记映像树,其中所述能够被满足的密度是指对于该密度至少存在这样一个带标记映像树,即在该带标记映像树中每一个叶子节点所占的区域面积至少为该节点的权值与该密度之积;以及呈现模块,其将上述密度/带标记映像树计算模块所确定的带标记映像树呈现在指定屏幕区域上。
优选地,上述密度/带标记映像树计算模块在上述密度范围确定模块所确定的可能密度范围中寻找能够被满足的最大密度以及满足该最大密度的带标记映像树。
本发明所提供的方案能够与任何现有的映像树布局方法相结合。本发明通过在带标记映像树中引入密度这一概念并在可能的密度范围内查找能够被满足的密度及其相应的带标记映像树布局,不仅确保所构造的带标记映像树中各叶子节点所占的区域面积与其权值大致相对应,并且能够避免出现叶子节点在映像树中不可见的现象。此外,在根据本发明的优选实施例中,通过在可能的密度范围内查找能够被满足的最大密度及其相应的带标记映像树布局,能够确保所构造的带标记映像树的最佳平衡布局。因此,本发明解决了带标记的映像树因标记和边框需要占用原本属于数据集中相应权值的空间,因而现有的映像树布局方法无法使各节点的区域面积与其权值相对应的问题。


相信通过以下结合附图对本发明具体实施方式
的说明,能够使人们更好地了解本发明上述的特点、优点和目的。
图1示出了传统的映像树的一个例子;图2示出了用于可视化硬盘驱动器上的文件层次结构的带标记映像树的一个例子;图3示出了带标记的映像树的另一个例子;图4用于对带标记的映像树的布局进行说明;图5示出了带标记的映像树的另一个例子;图6示出了根据本发明实施例的构造布局平衡的映像树的方法的流程图;图7示出了利用本发明的构造布局平衡的映像树的方法所构造出的映像树的一个例子;以及图8示出了根据本发明实施例的构造布局平衡的映像树的系统的框图。
具体实施例方式
为了有助于对本发明的完全理解,在对本发明的各个优选实施例进行描述之前,首先对映像树的概念进行简要介绍。
传统的映像树以填空的方式将层次结构信息映射为矩形的2D显示,并将显示空间划分为代表树结构的矩形的嵌套序列。具体地,映像树将指定的映像树区域划分为代表层次结构中的顶层节点的一组区域,然后对其中的每一个所划分的区域递归进行划分。此外,在进行划分时,映像树依据各节点的权值来决定划分给其的区域大小。也就是说,层次结构中包含更多重要信息的部分可以被分配更多的显示空间,而相对不重要的部分可以被分配较少的显示空间。在映像树中,将层次结构中的同属关系映射为矩形区域的除边界外互不相交关系,而将父子关系映射为矩形区域的包含关系。图1示出了传统的映像树的一个例子。
下面给出在Brian Johnson和Ben Shneiderman的文章“Tree-mapA Space-Filling Approach to the Visualization of Hierarchical InformationStructures”中描述的描绘传统映像树的算法,作为参考<pre listing-type="program-listing">  DrawTree()  { doneSize=0;   PaintDisplayRectangle();   switch(myOrientation){   case HORIZONTAL:   startSide=myBounds.left;   case VERTICAL:   startSide=myBounds.top;  }  if(myNodeType==Internal){  ForEach(childNode)Do{   childNode=SetBounds(startSide,doneSize,myOrientation);   childNode->SetVisual();   childNode->DrawTree();  }}}  SetBounds(startSide,doneSize,parentOrientation);   {doneSize=doneSize+mySize;   switch(parentOrientation){   case HORIZONTAL:  myOrientation=VERTICAL;</pre><pre listing-type="program-listing">   endSide=parentWidth+doneSize/parentSize;   SetMyRect(startSide+offSet,ParentBounds.top+offset,   ParentBounds.left+endSide-offSet,ParentBounds.bottom-offSet);   StartSide=parentBounds.left+endSide;   case VERTICAL:   myOrientation=HORIZONTAL;   endSide=parentHeight+doneSize/parentSize;   SetThisRect(parentBounds.left+offSet,startSide+offSet,   parentBounds.right-offSet,parentBounds.top+endSide-offSet);   startSide=parentBounds.top+endSide;  }}</pre>目前,存在着在传统映像树的基础上衍生出来的多种映像树。带标记映像树便是其中之一。
图2示出了用于可视化硬盘驱动器上的文件层次结构的带标记映像树的一个例子,其中的间隙颜色与文件的日期信息相对应,边框则代表目录。利用这样的布局方式,无需利用过多的文字描述,便能够使观看者获得对整个层次结构及其内容的概观。
图3示出了带标记映像树的另一个例子。如图3所示,该映像树所呈现的树结构的根节点名为“Tree”,其具有四个子节点,分别名为“1”、“2”、“3”和“4”,且这些子节点又具有其各自的子节点。在该映像树中,子节点的命名遵循着书籍的各章节的编号习惯。此外,在图3中省略了叶子节点的名称。
图4是带标记映像树的布局说明图。如图4所示,在带标记的映像树中,边框、间隙、间隔等要占去原本属于层次结构中相应节点的矩形区域中的一部分空间。其中,边框用于分割不同的节点区域,而间隙则用于显示节点的名称、标题等。但是,现有的映像树布局算法一般都是针对于传统映像树的。对于带标记的映像树,由于这些现有映像树布局算法无法使各个矩形区域的面积很好地与相应的权值相对应,从而从这些现有算法所生成的映像树中很难准确地识别出所要呈现的层次结构信息。甚至可能存在这样的情况,即这些现有映像树布局算法在构造带标记映像树的过程中可能会使某个节点对应于高和宽小于零的无意义的矩形区域,从而在所生成的映像树中不可见。
图5便示出了这样的一个映像树。在图5中,由于子节点“3.3”和子节点“4.5.1”对应于高和宽小于零的无意义的矩形区域,从而从该映像树中消失。并且,通过观察可以看出,在该映像树中,叶子节点所占的区域面积并不很好地与它们的权值相对应。
为此,本发明提出一种构造布局平衡的带标记映像树的方法。
在对本发明的方法进行详细描述之前,首先对本发明所引入的两个概念进行定义叶子节点的密度ρ指叶子节点在单位权值上在带标记映像树中所占的区域面积;映像树满足密度ρ对于带标记映像树中的每一个叶子节点,如果其具有权值wi,且其至少占有ρ×wi大小的区域面积,则该带标记映像树满足该密度ρ。
下面就结合附图对本发明的构造布局平衡的带标记映像树的方法进行详细的说明。
图6示出了根据本发明实施例的构造布局平衡的带标记映像树的方法的流程图。
如图6所示,首先在步骤605,确定叶子节点的可能密度的范围。在该步骤中,在确定叶子节点的可能密度的范围之前,首先要获得关于指定层次结构的信息以及用于可视化该层次结构的指定映像树区域的信息。其中,关于指定层次结构的信息可包括各节点的权值、名称、内容等,而关于指定映像树区域的信息可包括指定区域的大小、位置等。
需要说明的是,映像树是针对加权树的可视化技术。在加权树中,每一个节点都与一个权值相关联。并且,加权树满足这样的性质每一个非叶子节点的权值是其所有子节点的权值之和。
此外,如上面所定义的,叶子节点的密度是叶子节点在单位权值上在带标记映像树中所占的区域面积,叶子节点的密度越大,边框、间隔和间隙等在映像树中所占的空间就越小。
根据这样的性质,可以很容易地确定叶子节点的可能密度的范围。在本实施例中,将叶子节点的可能密度的范围的下界定为零,将上界定为指定区域的面积被指定层次结构中所有叶子节点的权值之和除之后所得到的值。在实际实现中,可以使该指定区域的面积被根节点的权值除来得到该上界。
此外,应该理解,本领域的技术人员可以实现其他的密度范围确定方式。例如,不将下界定为零,而是取零与上界之间的某一个值。总之,任何能够确定密度的大体范围的方式都是允许的。
接着,下面的过程是从该可能密度的范围中找出能够被满足的最大密度,进而找出与该最大密度对应的布局平衡的带标记映像树的过程。需要说明的是,在本实施例中,下面过程的目的在于找出指定层次结构的节点在相应的带标记映像树中能够具有的密度的最临近(最大)上界,以及能够满足该最大上界的带标记映像树,即本发明的最佳密度和带标记映像树。但是,在其他实施例中,也可以不找出这样的最大密度,而仅找出能够被满足的密度及其相应的带标记映像树即可,这同样能够实现本发明的目的。
首先,在步骤610,从可能密度的范围中选择一个密度值。该步骤是根据二分查找法来进行的。在初次执行时,该步骤根据二分查找法从该密度范围中选择中间的密度值。在以后每次执行时,该步骤依据判断结果在该密度范围内向上界方向或下界方向根据二分查找法确定查找范围,进而选择查找范围中的中间密度值。
接着,在步骤615,根据上述层次结构,对指定矩形区域尝试对于构造该层次结构的带标记映像树来说可能的分割方式。其中,上述的矩形区域不仅指根节点的相应区域,而且是指与指定层次结构中任一非叶子节点对应的区域。并且,上述的分割方式不仅包括对节点区域的分割,而且还包括对边框、间隙、间隔等区域的分割。
该步骤的目的在于提供候选的分割方式,以从中确定哪种分割方式能够构造出满足步骤610中选定的密度值的带标记映像树。如上面所定义的,满足是指带标记映像树中所有叶子节点占有的区域面积至少为该节点的权值与该密度的乘积。也就是说,带标记映像树中各叶子节点所占的区域面积应与其权值大致对应。
然后,在步骤620,对于当前所尝试的可能分割方式,通过将其中划分给每一个叶子节点的实际区域的面积与该节点权值相除,而计算出在该分割方式下每一个叶子节点的实际密度。
在步骤625,判断当前的分割方式下是否所有叶子节点的实际密度均大于等于在步骤610中选出的密度值。如果是,则前进到步骤630。需要说明的是,如果通过判断得知某一个叶子节点的实际密度比选定密度值小时,无需再继续对其他叶子节点的实际密度进行比较判断便可结束此步骤。这一步骤利用的是上述的满足的定义。
接着,在步骤630,确定当前的选定密度值能够被当前分割方式所满足,也就是当前的分割方式能够构造出满足该密度值的带标记映像树。这是根据上述满足的定义而作出的确定。此外,针对被确定能够被满足的密度值,无需再进行其他分割方式的尝试,而继续进行下面的步骤,以节省处理时间。
在步骤635,判断上述可能密度的范围内是否还存在其他密度值可供选择。也就是说,这一步骤利用二分查找法的定义,判断二分查找的范围是否缩小到不存在其他的密度值。如果存在,则前进到步骤640。
在步骤640,将下一次查找的方向确定为向上进行查找。也就是确定下一次在可能密度的范围中大于当前选定密度值的范围内继续进行查找。在利用二分查找法的情况下,下一次进行二分查找的范围为在上一个被满足的密度值与当前被选定的密度值之间的范围内继续进行。这是利用二分查找法的定义来确定的。
需要说明的是,此步骤的依据是以下事实1.给定加权树和一组映像树,如果其中存在满足密度ρ的映像树,则对于每一个ρ’<ρ,也存在满足ρ’的映像树;2.给定加权树和一组映像树,如果其中不存在满足密度ρ的映像树,则对于每一个ρ’>ρ,也不存在满足ρ’的映像树。
以上事实说明了满足的单调性。根据以上两个事实,可以断定如果存在某个大于0的密度值能够被映像树满足,则肯定存在能够被满足的密度值的上界,即最佳密度值。
因此,对于可能密度的范围内小于当前选定密度的密度值来说,如果当前选定密度被满足,则无需在小于该选定密度值的范围内继续进行查找,而只需在大于该选定密度值的范围内继续查找能够被满足的密度值即可,以便最终找到这样的能够被满足的密度值中的最大值,这便是本发明所要寻找的最佳密度。
在步骤640将下一次查找的方向确定为向上进行查找并确定了新的可能密度范围之后,继续执行步骤610及其后续步骤。
现在回到步骤635,如果不存在其他的密度值可供选择,则在步骤645,将当前被满足的选定密度值确定为所寻找的最佳密度,也就是能够被满足的最大密度,而将当前的分割方式确定为能够构造出最佳带标记映像树的分割方式。
相反,如果在步骤625中并非所有叶子节点的实际密度均大于等于所选出的密度值,则在步骤650,确定当前分割方式不能构造出满足所选出的密度的带标记映像树。
接着,在步骤655,判断对于上述指定映像树区域是否还存在其他的分割方式。如果存在,则前进到步骤615,尝试其他可能的分割方式,否则前进到步骤660。
在步骤660,判断上述可能密度的范围内是否还存在其他密度值可供选择。也就是说,这一步骤利用二分查找法的定义,判断二分查找的范围是否缩小到不存在其他的密度值。如果存在,则前进到步骤665。
在步骤665,将下一次查找的方向确定为向下进行查找。也就是确定下一次在可能密度的范围中小于当前选定密度值的范围内进行查找。在利用二分查找法的情况下,下一次进行二分查找的范围为在上一个被满足的密度值与当前被选定的密度值之间的范围内继续进行。这也是利用二分查找法的定义来确定的。
如上所述,此步骤的依据是以下事实1.给定加权树和一组映像树,如果其中存在满足密度ρ的映像树,则对于每一个ρ’<ρ,也存在满足ρ’的映像树;2.给定加权树和一组映像树,如果其中不存在满足密度ρ的映像树,则对于每一个ρ’>ρ,也不存在满足ρ’的映像树。
因此,对于可能密度的范围内大于当前选定密度的密度值来说,如果当前选定密度不被满足,则无需在大于该选定密度值的范围内继续进行查找,而只需在小于该选定密度值的范围内继续查找能够被满足的密度值即可,以便最终找到能够被满足的密度值中的最大值。
同样,在步骤665将下一次查找的方向确定为向下进行查找并确定了新的可能密度范围之后,继续执行步骤610及其后续步骤。
现在回到步骤660,如果不存在其他的密度值可供选择,则在步骤670,将上一次被满足的密度值确定为所寻找的最佳密度,也就是能够被满足的最大密度,而将满足此密度的分割方式确定为能够构造出最佳带标记映像树的分割方式。
接着,在步骤675,利用在步骤645或步骤670中确定的分割方式构造出相应的带标记映像树。该步骤可以利用任何现有的映像树布局算法来实现。存在多种可用的现有映像树布局算法,诸如分割算法(splitalgorithm)等。
在步骤680,呈现带标记映像树。在该步骤中,将步骤675所构造出的带标记映像树作为上述层次结构的最佳映像树呈现在指定屏幕区域上。该步骤也是利用现有的映像树描绘方法来实现的,在此省略其具体描述。
以这种方式,在本实施例中,对于每一个被选出的密度实例,都试图确定是否存在满足该密度的带标记映像树,以便找出能够被满足的最佳密度及其相应的最佳带标记映像树。
以上是对本实施例的构造布局平衡的带标记映像树的方法的详细描述。需要说明的是,以上的实施例仅是示例性,在不背离本发明的主旨的情况下,可以增加或删除某些步骤,或将其中的某些步骤结合在一起进行。此外,在本实施例中,是利用二分查找法来寻找最佳密度的,但是,只要能够达到本发明的目的,任何其他的查找方法都是允许的,都处于本发明的保护范围之内。
下面给出本发明与最常用的映像树布局算法,即分割算法,相互结合的具体实现。
给定密度ρ和同属节点集合A和矩形区域R,用来回答ρ是否能够被满足的算法Calc(A,R)描述如下。其中R°代表如图4所示的R的内部矩形区域。
1.如果A仅包含一个非叶子节点u,则返回Calc(B,R°),其中B是u的子节点集合;2.如果A仅包含一个叶子节点u,则利用R°计算其每单位权值上所占的区域面积的实际密度值,如果该值小于ρ,则将u映射到R并返回true,否则返回false;3.将节点集合A分割为权值大致相等的两部分A1和A2;4.对于R°的长边尝试所有可能的分割方式,以将R°分割为两个子矩形区域R1和R2。
a)递归调用Calc(A1,R1)和Calc(A2,R2);b)如果均返回true,则返回true;5.返回false。
图7示出了利用本发明的构造布局平衡的带标记映像树的方法所生成的带标记映像树的一个例子。需要说明的是,图7中的带标记映像树所呈现的层次结构与图5中利用现有映像树布局方法所生成的带标记映像树所呈现的层次结构是相同的。但是,通过对比可以看出,在本发明所构造的带标记映像树中,子节点“3.3”和子节点“4.5.1”均显示了出来。
因此,在利用本发明的方法构造的带标记映像树中,叶子节点所占的区域面积与其权值大致相对应,并且不会出现叶子节点在所构造的带标记映像树中不可见的情况。
在同一发明构思下,本发明提出一种构造布局平衡的带标记映像树的系统。下面结合附图对该构造布局平衡的带标记映像树的系统进行详细说明。
图8示出了根据本发明实施例的构造布局平衡的带标记映像树的系统的框图。如图8所示,本实施例的构造布局平衡的带标记映像树的系统80包括接口模块81、密度范围确定模块82、密度/带标记映像树计算模块83以及呈现模块84。
接口模块81从外部获得关于指定叶子节点的权值和用于可视化该层次结构的指定映像树区域的信息。其中关于指定层次结构的信息可包括各节点的权值、名称、内容等,而关于指定映像树区域的信息可包括指定区域的大小、位置等。
密度范围确定模块82根据从接口模块81获得的指定层次结构以及指定映像树区域的信息,确定叶子节点的可能密度的范围。在本实施例中,密度范围确定模块82将可能密度的范围的下界定为0,将上界定为指定映像树区域的面积被该层次结构中所有叶子节点的权值之和除之后所得到的值。在加权树中,由于根节点的权值等于其所有叶子节点的权值之和,所以可以使指定映像树区域的面积被根节点的权值除来得到该上界。
密度/带标记映像树计算模块83从密度范围确定模块所确定的可能密度的范围中找出能够被满足的最大密度以及具有满足该最大密度的布局的带标记映像树。
如图8所示,密度/带标记映像树计算模块83进一步包括查找模块831、分割尝试模块832、满足判断模块833、决策模块834和映像树构造模块835。
查找模块831利用二分查找法每次从密度范围确定模块82所确定的可能密度的范围内选择一密度值,并传送给满足判断模块833。此外,在该可能的密度范围内不存在下一密度值可选择时,查找模块831将这一情况通知给决策模块834。
分割尝试模块832根据上述层次结构,对指定矩形区域尝试对于构造该层次结构的带标记映像树来说可能的分割方式。该可能的分割方式不仅包括对节点区域的分割,而且还包括对边框、间隙、间隔等区域的分割。需要说明的是,分割尝试模块832需要尝试多种不同的分割方式,以便提供多种候选的分割方式,以从中确定哪种分割方式能够构造出满足选定的密度值的带标记映像树。
满足判断模块833判断分割尝试模块832所尝试的可能的分割方式能否构造出满足查找模块831所选定的密度值的带标记映像树。如图8所示,满足判断模块833进一步包括实际密度计算模块8331和比较模块8332。
实际密度计算模块8331对于分割尝试模块832所尝试的可能分割方式中的每一种,通过将其中划分给每一个叶子节点的实际区域面积与该节点权值相除,而计算出每一叶子节点的实际密度。
比较模块8332对于上述可能的分割方式中的每一种,通过将其中每一个叶子节点的实际密度与查找模块831所选定的密度值进行比较,而判断当前的分割方式下是否所有叶子节点的实际密度均大于等于所选出的密度值。如果是,则确定当前的分割方式能够构造出满足该密度值的带标记映像树,并将该结果及当前分割方式的信息通知给决策模块834。
决策模块834根据满足判断模块833的结果,作出决策。具体地,如果分割尝试模块832所尝试的分割方式中存在能够构造出满足上述密度值的带标记映像树的分割方式,则确定该选定密度能够被满足,并通知查找模块831继续向上界方向进行查找;否则,确定该密度不被满足,并通知查找模块831继续向下界方向进行查找。此外,当接收到查找模块831传送来的在可能密度的范围内不存在下一密度值可选择的通知时,决策模块834将最后一次判断能够被满足的密度值确定为最佳密度,并以满足该最佳密度值的分割方式通知映像树构造模块835。
映像树构造模块835根据决策模块834所确定的分割方式,在上述指定映像树区域内构造出与上述层次结构相应的带标记映像树。需要说明的是,映像树构造模块835可利用现有的映像树布局算法,例如分割算法,来实现。
此外,对于查找模块831来说,当决策模块834指示其向上界方向进行查找时,其在可能密度的范围中大于当前选定密度值的范围内进行查找;当决策模块834指示其向下界方向进行查找时,查找模块831在可能密度的范围中小于当前选定密度值的范围内进行查找。
其中,上述查找模块831完成对整个上述可能密度的范围的查找时最后一次判断能够被满足的密度值就是上述可能密度的范围中能够被满足的最大密度,也就是上面所说的最佳密度,而满足该最大密度的分割方式所构造出的带标记映像树就是本发明所要寻找的最佳带标记映像树。
接着,呈现模块84将密度/带标记映像树计算模块83所找出的带标记映像树作为上述层次结构的最佳带标记映像树呈现在指定屏幕区域上。
以上是对本发明的构造布局平衡的带标记映像树的系统的详细描述。如熟悉该技术领域的人员可以看到的那样,本发明可以体现为方法、系统和/或计算机程序产品。因此,本发明可以呈现为完全硬件实施形式、完全软件实施形式或者软件和硬件组合实施形式。此外,本发明可以呈现为在计算机可用存储媒体上的计算机程序产品,该存储媒体具有体现在媒体上的计算机可用程序代码。任何适当的计算机可读媒体都可以使用,包括硬盘、CD-ROM、光存储设备或磁存储设备。此外,可以理解,方框图和/或流程图中的每个方框以及方框图和流程图中的一些方框的组合可以用一些计算机程序指令实现。这些计算机程序指令可以提供给一通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生一机器,使得这些指令通过计算机或其他可编程数据处理设备的处理器的执行创建用于实现在方框图和/或流程图内或者方框内所指定的功能的装置。
以上虽然通过一些示例性的实施例对本发明的构造布局平衡的带标记映像树的方法和系统进行了详细的描述,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。
权利要求
1.一种构造布局平衡的带标记映像树的方法,包括根据指定叶子节点的权值以及指定映像树区域,确定叶子节点的可能密度范围,其中所述密度是指叶子节点在单位权值上所占的区域的面积;在上述可能密度范围中寻找一能够被满足的密度以及满足该密度的带标记映像树,其中所述能够被满足的密度是指对于该密度至少存在这样一个带标记映像树,即在该带标记映像树中每一个叶子节点所占的区域面积至少为该节点的权值与该密度之积;以及将上述带标记映像树呈现在指定屏幕区域上。
2.根据权利要求1所述的构造布局平衡的带标记映像树的方法,其中上述确定步骤进一步包括将上述可能密度的范围的下界定为零,将上界定为上述指定映像树区域的面积被上述层次结构中所有叶子节点的权值之和除之后所得到的值。
3.根据权利要求1所述的构造布局平衡的带标记映像树的方法,上述寻找步骤进一步包括在上述可能密度范围中寻找能够被满足的最大密度以及满足该最大密度的带标记映像树。
4.根据权利要求1所述的构造布局平衡的带标记映像树的方法,其中上述寻找步骤进一步包括在上述可能密度范围内选择一密度;根据上述层次结构,对上述指定映像树区域尝试对于构造带标记映像树来说可能的分割方式;判断上述可能的分割方式是否能够构造出满足上述密度的带标记映像树;若能够构造出满足上述密度的带标记映像树,则利用该分割方式构造出带标记映像树,且该密度和该带标记映像树为寻找结果,否则继续在该可能密度范围内进行寻找。
5.根据权利要求3所述的构造布局平衡的带标记映像树的方法,其中上述寻找步骤进一步包括利用查找法循环进行以下步骤在上述可能密度范围内选择一密度;根据上述层次结构,对上述指定映像树区域尝试对于构造带标记映像树来说可能的分割方式;判断上述可能的分割方式是否能够构造出满足上述密度的带标记映像树;若能够构造出满足上述密度的带标记映像树,则确定该密度能够被满足并继续在该可能密度范围内向上界方向进行查找,否则继续在该可能密度的范围内向下界方向进行查找,直到该可能密度范围内不存在下一可选密度时为止;以及将完成查找时最后一次判断能够被满足的密度确定为上述可能密度范围中能够被满足的最大密度,并利用能够构造出满足该密度的带标记映像树的分割方式构造带标记映像树。
6.根据权利要求5所述的构造布局平衡的带标记映像树的方法,其中上述查找法为二分查找法。
7.根据权利要求4或5所述的构造布局平衡的带标记映像树的方法,其中上述判断步骤进一步包括对于上述可能的分割方式中的每一种通过使其中划分给每一个叶子节点的实际区域的面积除以该节点权值,而计算出每一个叶子节点的实际密度;将上述每一个叶子节点的实际密度与上述选定密度进行比较;以及若所有叶子节点的实际密度均大于或等于该选定密度,则确定该分制方式能够构造出满足该选定密度的带标记映像树。
8.根据权利要求7所述的构造布局平衡的带标记映像树的方法,其中上述判断步骤进一步包括对于上述可能的分割方式中的每一种,若比较出其中某一个叶子节点的实际密度小于上述选定密度时,则不再继续进行对其他叶子节点的实际密度的比较。
9.根据权利要求4或5所述的构造布局平衡的带标记映像树的方法,其中上述构造带标记映像树的步骤是利用分割算法(split algorithm)实现的。
10.根据权利要求4或5所述的构造布局平衡的带标记映像树的方法,其中上述尝试可能的分割方式的步骤与上述判断该可能的分割方式是否能够构造出满足上述密度的带标记映像树的步骤结合在一起同时进行。
11.一种构造布局平衡的带标记映像树的系统,包括密度范围确定模块,其根据指定叶子节点的权值以及指定映像树区域,确定叶子节点的可能密度范围,其中所述密度是指叶子节点在单位权值上所占的区域的面积;密度/带标记映像树计算模块,其在上述密度范围确定模块所确定的可能密度范围中寻找一能够被满足的密度以及具有满足该密度的带标记映像树,其中所述能够被满足的密度是指对于该密度至少存在这样一个带标记映像树,即在该带标记映像树中每一个叶子节点所占的区域面积至少为该节点的权值与该密度之积;以及呈现模块,其将上述密度/带标记映像树计算模块所确定的带标记映像树呈现在指定屏幕区域上。
12.根据权利要求11所述的构造布局平衡的带标记映像树的系统,其中上述密度范围确定模块将上述可能密度的范围的下界定为零,将上界定为上述指定映像树区域的面积被上述层次结构中所有叶子节点的权值之和除之后所得到的值。
13.根据权利要求11所述的构造布局平衡的带标记映像树的系统,其中上述密度/带标记映像树计算模块在上述密度范围确定模块所确定的可能密度范围中寻找能够被满足的最大密度以及满足该最大密度的带标记映像树。
14.根据权利要求11所述的构造布局平衡的带标记映像树的系统,其中上述密度/带标记映像树计算模块进一步包括查找模块,其每次从上述可能密度范围内选择一密度;分割尝试模块,其根据上述层次结构,对上述指定映象树区域尝试对于构造带标记映像树来说可能的分割方式;满足判断模块,其判断上述分割尝试模块所尝试的可能的分割方式能否构造出满足上述查找模块所选定的密度的带标记映像树;决策模块,其根据上述满足判断模块的判断结果,若上述可能的分割方式能够构造出满足上述密度的带标记映像树,则以满足该密度的分割方式通知映像树构造模块,否则,通知上述查找模块继续进行查找;以及映像树构造模块,其根据上述决策模块所确定的分割方式,在上述指定映像树区域内构造出与上述层次结构相应的带标记映像树。
15.根据权利要求13所述的构造布局平衡的带标记映像树的系统,其中上述密度/带标记映像树计算模块进一步包括查找模块,其利用查找法每次从上述可能密度范围内选择一密度,直到对该可能密度范围的全部完成查找;分割尝试模块,其在上述查找模块选择一密度之后,根据上述层次结构,对上述指定映象树区域尝试对于构造带标记映像树来说可能的分割方式;满足判断模块,其判断上述分割尝试模块所尝试的可能的分割方式能否构造出满足上述查找模块所选定的密度的带标记映像树;决策模块,其根据上述满足判断模块的判断结果,若上述可能的分割方式能够构造出满足上述密度的带标记映像树,则确定该密度能够被满足,并通知上述查找模块继续向上界方向进行查找,否则,通知其继续向下界方向进行查找,并且当上述查找模块对上述可能密度的范围的全部完成查找时,将最后一次判断能够被满足的密度确定为上述可能密度范围中能够被满足的最大密度,并以满足该密度的分割方式通知映像树构造模块;以及映像树构造模块,其根据上述决策模块所确定的分割方式,在上述指定映像树区域内构造出与上述层次结构相应的带标记映像树。
16.根据权利要求14或15所述的构造布局平衡的带标记映像树的系统,其中上述满足判断模块进一步包括实际密度计算模块,其对于上述可能的分割方式中的每一种,通过使其中划分给每一个叶子节点的实际区域的面积除以该节点权值,而计算出每一个叶子节点的实际密度;以及比较模块,其对于上述可能的分割方式中的每一种,将其中每一个叶子节点的实际密度与上述查找模块所选定的密度进行比较,若所有叶子节点的实际密度均大于该选定密度,则确定该分割方式能够构造出满足该选定密度的带标记映像树,并将关于该结果及该分割方式的信息通知给上述决策模块。
17.根据权利要求15所述的构造布局平衡的带标记映像树的系统,其中上述查找模块所利用的查找法为二分查找法。
18.一种计算机程序产品,所述计算机程序产品包括体现在一计算机可读存储媒体内的用于执行根据上述权利要求1-10的构造布局平衡的带标记映像树的方法中任何一个方法的计算机可读代码。
全文摘要
本发明提供一种构造布局平衡的带标记映像树的方法和系统。该方法包括根据指定叶子节点的权值以及指定映像树区域,确定叶子节点的可能密度范围,其中所述密度是指叶子节点在单位权值上所占的区域的面积;在上述可能密度范围中寻找一能够被满足的密度以及满足该密度的带标记映像树,其中所述能够被满足的密度是指对于该密度至少存在这样一个带标记映像树,即在该带标记映像树中每一个叶子节点所占的区域面积至少为该节点的权值与该密度之积;以及将上述带标记映像树呈现在指定屏幕区域上。本发明通过将密度这一概念引入到带标记映像树中,确保所构造的映像树中各节点所占的区域面积与其权值大致相对应,并且避免出现叶子节点在映像树中不可见的情况。
文档编号G06F17/30GK101063969SQ20061007609
公开日2007年10月31日 申请日期2006年4月27日 优先权日2006年4月27日
发明者吕昊, 刘世霞, M·瓦滕伯格, 马希俊 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1