(57)【要約】【課題】データの相対サイズ（幅、高さ）とアスペクト比を維持しながら、階層構造と全ての階層内のデータを一画面にレイアウトする。【解決手段】それぞれ重み付けされたデータをフォルダに収納して二分木構造に対応させ、末端ノード（データ）の面積から、階層構造の深さ優先順に沿って、データを収納したフォルダの重み付けを計算して一画面上にスペースを配分し、末端ノードは、親ノードに配分されたスペース内で、相対サイズとアスペクト比を維持しながら、フォルダのスペース内にレイアウトし、データを表示するスケールをフォルダ間で統一する。【選択図】図１
2010244337.tif 000002
【特許請求の範囲】
【請求項１】
データを相対サイズとアスペクト比を持った画像ブロックとして表し、階層化されたフォルダに収納して一画面内に表示させる画像ブロックレイアウト方法であって、
複数の前記データをグループ化して収納した前記フォルダについて、それぞれの重み付けを算出するステップと、
前記フォルダに対し、前記重み付けに応じて、一画面内に占める領域を配分するステップと、
前記フォルダを階層に対応して格納するレイアウトパターンを取得するステップと、
前記レイアウトパターンに、前記画像ブロックをレイアウトするステップと、
前記画像ブロックの相対サイズとアスペクト比を維持しつつ、階層の異なる前記フォルダ間で各画像ブロックのスケールを統一するステップと、
を有することを特徴とする画像ブロッククレイアウト方法。
【請求項２】
前記レイアウトパターンを取得するステップは、
前記フォルダを格納する複数のレイアウトパターンを用意するステップと、
前記レイアウトパターンにしたがって前記フォルダを配置した場合、前記レイアウトパターンのそれぞれについて前記画像ブロックの面積占有率を計算し、面積占有率が最大であるレイアウトパターンを選出して前記レイアウトパターンに前記フォルダを当て嵌めるステップと、
を有することを特徴とする請求項１記載の画像ブロックレイアウト方法。
【請求項３】
前記データは、対応する前記画像ブロックの占有する面積で重み付けされることを特徴とする請求項１記載の画像ブロックレイアウト方法。
【請求項４】
前記フォルダに対して領域を配分するステップでは、前記画像ブロックのアスペクト比は、反映させないことを特徴とする請求項１記載の画像ブロックレイアウト方法。
【請求項５】
前記データは、二分木構造の末端ノードであって、親ノードに配分された領域内で、相対サイズとアスペクト比を維持しつつ、レイアウトされることを特徴とする請求項１記載の画像ブロックレイアウト方法。
【請求項６】
前記領域の配分は、二分木構造の根ノードから末端ノード（葉ノード）まで、順次、各ノードに対して領域を配分し、兄弟関係にあるノードは、重み付けの高い順で配置し、領域を上下方向に分割するか、水平方向に分割するかの基準は、レイアウトされるノードが正方形に近くなる方向で分割することを特徴とする請求項５記載の画像ブロックレイアウト方法。
【請求項７】
相対サイズとアスペクト比を持ったデータを階層化されたフォルダに収納して記憶した記憶手段と、前記記憶手段に接続されたブロックレイアウト生成手段と、前記ブロックレイアウト生成手段に接続された出力手段とを有する画像ブロックレイアウトシステムであって、
前記ブロックレイアウト生成手段は、データを画像ブロックとして表し、複数の前記データをグループ化して収納した前記フォルダについて、それぞれの重み付けを算出し、前記フォルダに対し、前記重み付けに応じて、一画面内に占める領域を配分して、前記フォルダを階層に対応して格納するレイアウトを決定し、前記画像ブロックの相対サイズとアスペクト比を維持しつつ、階層の異なる前記フォルダ間で各画像ブロックのスケールを統一して生成される画像データを出力装置に表示させることを特徴とする画像ブロックレイアウトシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ブロックレイアウト方法及びそのシステムに係り、特に階層化されたブロックを一画面上にレイアウトする画像ブロックレイアウト方法及び画像ブロックレイアウトシステムに関する。
【背景技術】
【０００２】
複数のデータを理解しやすくするために、クラスタリングや階層構造化することが行われている。従来、階層化したデータの取り扱い方は、（１）階層構造だけを視覚化する、（２）階層構造無しのデータを一画面に視覚化する、（３）階層構造とデータを同時に視覚化してデータも小さくする、に大別される。
【０００３】
データを階層構造（ツリー構造）のままで視覚化する技術として、ノードの相互関係を線で結び付けるSpace treeやTree mapがよく知られている。Space treeでは、個々のノードに付随する情報はテキストで表わすか、別の画面で確認することになる。Tree mapでは、同じ階層のノードはウエイト（重み付け）に応じて面積を配分し、下の階層のデータをさらに上の階層に配分された面積の中に、各ノードのウエイトに応じて面積を配分するものである(例えば、非特許文献１参照。）。また、階層構造のデータの取り扱いに関しても提案がなされている（例えば、特許文献１、特許文献２参照。）。
【０００４】
前者は、グループを分けて、オブジェクトを配置するシステムである。グループ領域に含まれるオブジェクト数Ｎに対して、Ｎ＝Ｎ１×Ｎ２を満たす２つの整数の組合せ（Ｎ１，Ｎ２）を全て抽出し、各縦横比候補のうち、グループ領域内の画像データの縦横比と最も近い縦横比候補を選択するものである。
【０００５】
後者は、階層構造の各データをアイコンとして表示するもので、階層構造に従い、各データのアイコンを再帰的に入れ子構造となるように二次元平面に配置してデータ全体を一画面上に表示するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１４２０９２号公報
【特許文献２】特開２００８−２９９３６３号公報
【非特許文献】
【０００７】
【非特許文献１】Ben Shneiderman “Treemaps for space-constrained visualization of hierarchies”[online] Started Dec. 26th, 1998, last updated June 17th, 2008 by Catherine Plaisant [retrieved on 2009-02-16], Retrieved from the Internet :<URL:http://www.cs.umd.edu/hcil/treemap-history/>
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記した従来技術では、データの階層構造それ自体が重要な意味をもつが、その階層構造を、個々のデータと一緒に一画面上に視覚化することは難しかった。
【０００９】
また、取り扱うデータ数が多くなれば、データ処理のパフォーマンスがボトルネックになっていた。
【００１０】
さらに、データをグループ分けして別々に視覚化しても、データのスケールに違いがあれば、一画面に表示させても、サイズで示される重要性を比較することができない、という問題があった。  そこで、本発明は、上記した問題に鑑みてなされたもので、データの相対サイズ（幅、高さ）とアスペクト比を維持しながら、階層構造と全ての階層内のデータを一画面にレイアウトする画像ブロックレイアウト方法および画像ブロックレイアウトシステムを提供するものである。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、データを相対サイズとアスペクト比を持った画像ブロックとして表し、階層化されたフォルダに収納して一画面内に表示させる画像ブロックレイアウト方法であって、複数の前記データをグループ化して収納した前記フォルダについて、それぞれの重み付けを算出するステップと、前記フォルダに対し、前記重み付けに応じて、一画面内に占める領域を配分するステップと、前記フォルダを階層に対応して格納するレイアウトパターンを取得するステップと、前記レイアウトパターンに、前記画像ブロックをレイアウトするステップと、前記画像ブロックの相対サイズとアスペクト比を維持しつつ、階層の異なる前記フォルダ間で各画像ブロックのスケールを統一するステップと、を有することを特徴とする画像ブロッククレイアウト方法画像ブロックレイアウト方法が提供される。
【００１２】
また、本発明の別の一態様によれば、相対サイズとアスペクト比を持ったデータを階層化されたフォルダに収納して記憶した記憶手段と、前記記憶手段に接続されたブロックレイアウト生成手段と、前記ブロックレイアウト生成手段に接続された出力手段とを有する画像ブロックレイアウトシステムであって、前記ブロックレイアウト生成手段は、データを画像ブロックとして表し、複数の前記データをグループ化して収納した前記フォルダについて、それぞれの重み付けを算出し、前記フォルダに対し、前記重み付けに応じて、一画面内に占める領域を配分して、前記フォルダを階層に対応して格納するレイアウトを決定し、前記画像ブロックの相対サイズとアスペクト比を維持しつつ、階層の異なる前記フォルダ間で各画像ブロックのスケールを統一して生成される画像データを出力装置に表示させることを特徴とする画像ブロックレイアウトシステムが提供される。
【発明の効果】
【００１３】
本発明によれば、データ全体の階層を視覚化すると同時に、同じ階層内に大きさの異なる複数のブロックで表わされるデータを、相対サイズとアスペクト比を維持しながら表示できるので、階層間やデータ同士の比較が容易になる。また、階層に沿ったグループ分けを行うことにより、大量のデータを視覚しやすい。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る画像ブロックレイアウトシステムの構成例を示すブロック図である。
【図２】画像ブロックを階層化してレイアウトする処理のアウトラインを示すフローチャートである。
【図３】階層構造の例を説明する図である。
【図４】写真集を例にとって階層構造を説明する図である。
【図５】データのウエイトの積み上げについて説明する図である。
【図６】データのウエイトの積み上げについて説明する図である。
【図７】squarified treemapによるスペースの配分を説明する図である。
【図８】階層構造の写真集に対するスペース配分を説明する図である。
【図９】スケールの差を説明する図である。
【図１０】ノードを水平方向に分割し、スケールを統一する例を説明する図である。
【図１１】ノードを上下方向に分割し、スケールを統一する例を説明する図である。
【図１２】スケールを統一する処理の流れを示すフローチャートである。
【図１３】スケールを統一する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１６】
本発明は、所定の画像表示領域内（例えば、携帯電話機の液晶ディスプレイ）に、複数の画像ブロックを、データの相対サイズ（幅、高さ）とアスペクト比を維持しながら、階層構造と全ての階層内のデータを一画面にレイアウトするものである。図1は、本発明の実施形態に係る画像ブロックのレイアウトシステムの構成例を示すブロック図である。図１に示すように、ブロックレイアウトシステム１は、ブロックレイアウト生成装置１０と、ブロックレイアウト生成装置１０に接続された記憶装置２０と、ブロックレイアウト生成装置１０に接続された出力装置３０とを備えている。ブロックレイアウト生成装置１０、記憶装置２０、出力装置３０は必ずしもそれぞれ別の装置でなくともよい。例えば、ブロックレイアウト生成装置１０、記憶装置２０はパーソナルコンピュータ、出力装置３０はパーソナルコンピュータに接続されたモニタとすることができる。
【００１７】
記憶装置２０は、ブロックを生成する元となる複数のデータを記憶保持しており、それらのデータをブロックレイアウト生成装置１０に出力する機能を有する。記憶装置２０は、例えば、ＨＤＤレコーダ、ＤＶＤプレーヤ、ハードディスク記憶装置などである。ここで、「データ」は静止画像でも動画でもよく、静止画には、文書作成ソフトウエアで作成された電子文書も含まれる。
【００１８】
出力装置３０は、ブロックレイアウト生成装置１０が出力したレイアウト後のブロックをユーザが画像として視認可能な内容で出力する装置である。例えば、液晶ディスプレイ装置、プリンタ装置、携帯電話機などである。
【００１９】
ブロックレイアウト生成装置１０は、記憶装置２０から入力されたデータから、複数のブロックを生成し、各ブロックの大きさができる限り大きくなるようにブロックのレイアウトを決定し、各ブロック間の隙間が小さくなるように各ブロックサイズを調整したレイアウトデータを出力装置３０に出力する。
【００２０】
ブロックレイアウト生成装置１０は、演算処理装置（ＣＰＵ）４０、主メモリ（ＲＡＭ）５０、読出し専用メモリ（ＲＯＭ）６０、入力装置（例えば、キーボード、操作パネルなど）７０、必要な場合にはハードディスク装置等の外部記憶装置（図示しない）を具備している。例えば、コンピュータ、ワークステーションなどの情報処理装置、或いは家電製品に搭載可能なマイクロコンピュータなどである。演算処理装置（ＣＰＵ）４０、主メモリ（ＲＡＭ）５０、読出し専用メモリ（ＲＯＭ）６０、及び入力装置７０はバス８０を介して互いにデータの受け渡しが可能に接続されている。また、バス８０にはグラフィック・ボード９０が接続されており、グラフィック・ボード９０は、ＣＰＵ４０からの制御に従ってレイアウトを表示させるため、例えば、ビットマップ形式の画像データを生成する。また、演算処理装置（ＣＰＵ）４０、主メモリ（ＲＡＭ）５０、読出し専用メモリ（ＲＯＭ）６０によって演算部１５を構成する。演算部１５は、後述する序列データ生成部１０１，ブロック生成部１０２，レイアウト生成部１０３として機能する。
【００２１】
ＲＯＭ６０、若しくは外部記憶装置（図示しない）などに、情報処理装置をブロックレイアウト生成装置１０として機能させるためのプログラム、又はレイアウト生成方法をコンピュータに実行させるためのプログラムが記憶されており、このプログラムを主メモリ上に載せ、ＣＰＵがこれを実行することによりブロックレイアウト生成装置１０が実現され、若しくはレイアウト生成方法が実行される。
【００２２】
次に、以上のように構成された画像レイアウトシステムによるレイアウト生成について説明する。  
まず、図２により、本実施形態に係る複数の画像ブロックを階層化してレイアウトする処理のアウトラインについて説明し、その後、各処理について詳述する。
【００２３】
図２に示すように、まず、それぞれサイズとアスペクト比を持ち、重み付けされた複数のデータを準備する（ステップＳ２０１）。データは、ブロック(矩形）として表示されるとともに、階層化されたフォルダに収納されている。尚、いくつかのデータは、一つのグループとしてまとめられていてもよい。次いで、末端ノード（葉ノード）であるデータの重み付け（ウエイト)から、階層構造の深さ優先順に沿ってフォルダのウエイトを順次計算する（ステップＳ２０２）。それぞれのデータの重み付け（ウエイト）は、データの面積で示されるので、フォルダに収納されるデータによって、そのフォルダの重み付け（ウエイト)が決まってくることになる。次に、フォルダに対して、ウエイト（面積で示される）だけを考慮して、例えば、squarified treemapなどの方法により、一画面上に占める領域（スペース）を配分する（ステップＳ２０３）。
【００２４】
次に、末端ノードであるデータを、フォルダに配分されたスペース内で、相対サイズとアスペクト比を維持しながら、レイアウトする（ステップＳ２０４）。階層間で異なっているデータを表示するスケールを統一する（ステップＳ２０５）。詳しくは、フォルダの二分木を深さ優先順に、アスペクト比を維持ながら、スケールの大きい方のブロックサイズを減少し、スケールの小さい方のブロックサイズを増加して、スケールが同じになるように調整するものである。次に、レイアウト結果を出力し、画面上に表示する（ステップＳ２０６）。
【００２５】
（階層構造）
一般的に、データの階層構造は以下の２方式により決定される。
【００２６】
（１）  データを分類・整理するためにフォルダに入れ、フォルダを階層化することによる階層構造
（２）  各データを、一定のルールのもとで分析することにより、階層構造を作成
図３に階層構造の一例を示す。図３において、複数のデータがフォルダに収納されている。また、データは一つの纏まりとしてグループを形成することもできる。フォルダは階層化されており、ここでの階層構造では、グループ内にフォルダは含まない。
【００２７】
図３をさらに具体化して説明する。図４は、写真集を例にとって階層構造を説明する図である。ここでは、個人が撮影した写真をハードディスク上で、ツリー構造（＝階層構造）で分類している。図４において、“ｊｐｇ”の拡張子の付いたデータはそれぞれ分類され、楕円線で囲まれた一つの纏まりとして、一つのグループとなっている。各データは、それぞれ相対サイズとアスペクト比を持っている。一つのデータの纏まりは、例えば、「横浜花火大会」）と名づけたフォルダに収納されている。それぞれのデータが、ツリー構造の末端ノードとなっている。（二分木構造）
本発明において、複数のデータを一画面上にレイアウトして表示するために、個々のデータに付随する情報あるいは指標を矩形にマッピングする。マッピングされた矩形をブロックと定義している。例えば、データが画像の場合、ブロックは画像を拡大あるいは縮小した状態で表示される。データを収納するフォルダは、ブロックを含む領域（スペース）として表わされる。
【００２８】
一般に、大きく表示されたデータは見る者に注目されやすい。そこで、本発明では、大きな重み付けがされたデータ、換言すれば、重要なものを画面上に大きく表示する。つまり、矩形で表されるブロックのサイズ（辺の長さ、高さ）を重要度に正比例して拡大あるいは縮小する。本発明において、重要度は、特に限定されたものではなく、例えば、画像の場合、ユーザが自分の興味のある画像に対して重要度を高く設定することができ、その重要度は、ブロックの相対サイズ及びアスペクト比に反映される。したがって、各ブロックのサイズ及びアスペクト比は同じとは限らない。また、データは階層化されたフォルダに収納されるが、重要度の高いデータを多く含むフォルダもまた、重要度が高いといえることになる。
【００２９】
本発明においては、階層化されたフォルダの配置を二分木構造に対応させる。ここでの二分木構造は、全てのノードが子ノードを持たない末端ノード（葉ノード）であるか、二つの子ノードを持つ全二分木である。レイアウトを二分木（テンプレート）に抽象化し、ノード（フォルダ）を一つずつ二分木に追加して、ノードを増やすたびに画面にフォルダの占有する面積（スペース）を画面の総面積に対する比率が最大になる子二分木を発見する。この処理を繰り返して、全てのフォルダを追加し終わった時点で得られた二分木に対応する画面レイアウトを最適レイアウトとするものである。
【００３０】
（データのウエイトの積み上げ）
次に、図５、図６によって、データのウエイトの積み上げについて説明する。図５で示すように、各グループ毎に、ウエイトを積算する。一つのグループに属する個々のデータは、それぞれ固有のウエイトを持っている。したがって、ウエイトの大きな、換言すれば、大きな重み付けがされたデータを多く含むグループは、ウエイトの小さなデータから成るグループよりもウエイトが大きい。図６に示す写真集を例にとる。図６において、「田中の写真集」が根ノード（root node）であり、「２００７年度」および「２００８年度」がそれぞれ親ノードであり、「ヨーロッパ旅行」が子ノードであり、「バンクーバー見学」、「横浜花火大会」、「京都旅行」などが末端ノードである。末端ノードのウエイトは、グループ内の全ての画像の重要度（＝面積）の和となる。同様に、親ノードのウエイトは子ノードのウエイトの和である。
【００３１】
（スペースの配分・レイアウト）
各フォルダは、それぞれ収納しているデータの重み付けを反映した面積で示されるウエイトによって、一画面上に占めるスペースが配分される。ここでのスペース配分では、フォルダに収納されるデータのアスペクト比は考慮しない。スペースの配分は、例えば、図７に示す、squarified treemapなどの手法を利用することができる。squarified treemapでは、二分木構造の根ノード（root node）から末端ノード（葉ノード）まで、順次、各ノードに対してスペースを配分する。この場合、兄弟関係にあるノードは、ウエイトの高い順で配置する。また、スペースを上下方向に分割するか、水平方向に分割するかの基準は、現在配置するノードを正方形に近い方で分割する。
【００３２】
このようなルールに基づいて、図４に示した階層構造の写真集に対してスペース配分を行った場合を、図８に示す。図８（ａ）の二分木構造は、図８（ｅ）のように、スペース配分される。
【００３３】
続いて、それぞれのフォルダに対して配分されたスペース内に、フォルダに収納されているデータをブロックとしてレイアウトする。本発明にあっては、一つのノード（ブロック）を二分木（例えば、Ｌ（ｉ）,初期Ｌ（０）＝ＮＵＬＬ）に追加する際に、サイズ調整付き評価関数が最大となる二分木(Ｌ（ｉ＋１））を選ぶ。この処理を(ｉ＝０，・・・，Ｎ−１)で繰り返す。全てのブロックを追加し終わった時点で、得られた二分木(Ｌ（Ｎ），Ｎはブロック数)に対応する画面レイアウトを、最適レイアウトとするものである。
【００３４】
二分木の深さ優先順によるノードの探索は、根ノードから出来るだけ遠くの末端ノードから探索を開始し、その後はバックトラックして、既に探索したノードの子である最も近くのノードまで戻るように、探索する。
【００３５】
（スケールについて）
大量のデータを一画面上で視覚化する際、全てのデータの俯瞰、データ同士の比較、個々のデータの詳細の確認などが、簡単にかつ直観的に行えるのが望ましい。データ同士の比較では、データの重要度を反映させたサイズの設定により、データの相対的な重要度を確認することができる。一方、ブロック化されたデータは、あるスケール（尺度）のもとで表示される。
【００３６】
スケールは、ブロックを表示する場合の拡大率あるいは縮小率であり、一画面上に表示されるブロック間では、同じスケールのもとで表示されていなければ、ブロック(データ）間の相対的な重要度の比較ができない。そこで、同一画面上に表示される全てのデータについては、同じスケールにする、すなわち、スケールの統一が必要である。
【００３７】
（スケールの差）
次に、図９により、スケール（尺度）の差について説明する。上記したように、squarified treemap では、ノードのウエイトに応じて、スペースを配分する。ここで、図９に示すように、ｒをスケール、ｒＮ１をノード（ブロック）Ｎ１のスケールとすると、スケールに差がなければ、以下の関係にある。
【数１】
2010244337.tif 000003
しかし、実際には、図９に示すように、ノード（ブロック）をすっぽりと包み込む最小の箱であるバウンディングボックス（Bounding Box) 以外の空きスペースがそれぞれ違うため、
【数２】
2010244337.tif 000004
に差が生じている。ここで、ＢＢＮ１は、ノードＮ１のBounding Box を表わしている。
尚、ブロック間の隙間量が少ない場合には、それにより生じる差は考慮しないこととする。
【００３８】
このように、ノード（ブロック）Ｎ２内のスケールとノード（ブロック）Ｎ１，Ｎ３のスケールが異なっている場合には、各ブロックの重要度は面積で示されていることから、一画面上に表示されていても、重要度の比較ができない。
【００３９】
（スケールの統一）
次に、スケールの統一について、ノードの分割方向に場合分けして説明する。
【００４０】
(１）図１０に示すように、水平方向に分割された二つの子ノードのスケールを統一する場合である。各ノードのスケールをｒ１，ｒ２とし、スケールの変動率をΔｒ１，Δｒ２とすると、図１０からも明らかなように、以下の関係式が成立する。
【００４１】
（Ｎ１の幅減少量＝Ｎ２の幅増加量）
【数３】
2010244337.tif 000005
（スケールが同じとなるように調整する）
【数４】
2010244337.tif 000006
これら、連立方程式の解は、次のようになる。
【数５】
2010244337.tif 000007
したがって、スケールを統一するための調整係数は、次式で表される。
【数６】
2010244337.tif 000008
【００４２】
(２）図１１に示すように、上下方向に分割された二つの子ノードのスケールを統一する場合である。各ノードのスケールをｒ１，ｒ２とし、スケールの変動率をΔｒ１，Δｒ２とすると、図１１からも明らかなように、以下の関係式が成立する。
【００４３】
（Ｎ１の高さ減少量＝Ｎ２の高さ増加量）
【数７】
2010244337.tif 000009
（スケールが同じとなるように調整する）
【数８】
2010244337.tif 000010
これら、連立方程式の解は、次のようになる。
【数９】
2010244337.tif 000011
したがって、スケールを統一するための調整係数は、次式で表される。
【数１０】
2010244337.tif 000012
【００４４】
図１２により、上述した、スケールの統一をソフトウエア処理で実現する場合の処理の流れについて説明する。  
図１２に示すように、まず、初期状態をスタックＳに記録する（ステップＳ１２０１）。次に、スタックＳが空か否か判定する（ステップＳ１２０２）。空でなければ、ステップ先頭を取り出し、レジスタＮｏｄｅに書き込む（ステップＳ１２０３）。空であれば、後述する図１３に示すフローに移る。
【００４５】
次に、子ノードが空か否か判定する（ステップＳ１２０４）。空であればステップＳ１２０２に移り、空でなければBB（Bounding Box ）とスケールを算出する（ステップＳ１２０５）。次いで、調整係数ａ１, ａ２を算出する（ステップＳ１２０６）。次いで、調整係数ａ１, ａ２を子ノードに記憶し（ステップＳ１２０７）、ステップＳ１２０２に戻る。
【００４６】
図１３により、スタックＳが空の場合の処理の流れについて説明する。  
図１３に示すように、まず、初期状態をキューＱに記録する（ステップＳ１３０１）。次に、キューＱが空か否か判定する（ステップＳ１３０２）。空であれば終了し、空でなければ、キューＱから先頭要素を取り出し、レジスタＮｏｄｅに書き込む（ステップＳ１３０３）。次に、Ｎｏｄｅの子ノードが空か否か判定する（ステップＳ１３０４）。空でなければ、Ｎｏｄｅの調整係数をａ、子ノード１の調整係数をａ１、子ノード２の調整係数をａ２に設定する（ステップＳ１３０５）。次いで、ｗをノードの幅としたとき、ａ１＊ｗをａ１とし、ａ２＊ｗをａ２に設定して（ステップＳ１３０６）、ステップＳ１３０２に戻る。Ｎｏｄｅの子ノードが空であれば、Ｎｏｄｅ内全てのデータをＮｏｄｅの調整係数aで拡大／縮小し（ステップＳ１３０７）、ステップＳ１３０２に戻る。
【００４７】
本実施形態によれば、フォルダによって階層化されたデータについて、相対サイズとアスペクト比を維持しながらなるべき大きく一画面上に、表示する最適レイアウトを得ることができる。
【００４８】
フォルダ間でスケールを統一させるので、面積で表わされるデータの重要性をデータ同士で比較することができる。また、データをフォルダに分けて階層構造とすることにより、階層なしの場合に比べて、最適レイアウトを得るまでの計算量が少なくなる。
【００４９】
なお、本発明は上記の実施形態のそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５０】
１０…ブロックレイアウト生成装置、２０…記憶装置、３０…出力装置、４０…演算処理装置、５０…主メモリ、６０…読出し専用メモリ、７０…入力装置。
【図１】
2010244337.tif 000013
【図２】
2010244337.tif 000014
【図３】
2010244337.tif 000015
【図４】
2010244337.tif 000016
【図５】
2010244337.tif 000017
【図６】
2010244337.tif 000018
【図８】
2010244337.tif 000019
【図１０】
2010244337.tif 000020
【図１１】
2010244337.tif 000021
【図１２】
2010244337.tif 000022
【図１３】
2010244337.tif 000023
【図７】
2010244337.tif 000024
【図９】
2010244337.tif 000025