説明

画像処理方法、画像処理装置、プログラムおよび記憶媒体

【課題】複数ページに亘るコンテンツの各ページに対する適切なレイアウトを自動生成可能とする。
【解決手段】配置領域に対するコンテンツの配置の際に、例えばFFDHを用いて最密充填レイアウトを生成する。生成された最密充填レイアウトにおいて、ページを跨いで配置されるコンテンツが発生した場合、当該コンテンツを含む、高さが左端のコンテンツの高さで定義され、配置領域の幅を持つブロックを次以降のページに移動させて、コンテンツがページで分断される事態を解消する。ブロック単位で処理を行うことで、複数ページに亘るコンテンツの各ページに対するレイアウトを容易に自動生成することができる。また、ブロック内でコンテンツを移動させてもページ数が増えることがなく、より高い自由度でページレイアウトを生成することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツのページレイアウトを自動的に生成する画像処理方法、画像処理装置、プログラムおよび記憶媒体に関する。
【背景技術】
【0002】
従来より、レイアウトに関する技術が研究、開発されており、集積回路のレイアウトやクロックレイアウトなど多方面で応用されている。こういったレイアウト技術は、テキストやイメージで構成された複数のコンテンツを紙面上に配置する場合にも適用することができる。
【0003】
特許文献1には、各コンテンツデータをそれぞれ1つの矩形領域と対応させ、ドキュメントページ内において各矩形領域のサイズに応じて自動的にレイアウトを決定する方法が開示されている。特許文献1によれば、コンテンツデータに対応する矩形をグリッド状のレイアウト領域に配置し、その後、最適化アルゴリズムなどを用いてコンテンツ同士の重複を除去する。特許文献1では、さらに、レイアウト領域上の各グリッドに定義された重みに基づきレイアウトを最適化することで、コンテンツの中央寄せなども可能としている。
【0004】
ところで、例えば半導体回路などのレイアウトを決定する場面では、如何に効率的な配置を行うかが非常に重要であり、そのための様々な手法が研究されている。同様の手法は、紙面レイアウトにも適用可能である。すなわち、半導体回路のレイアウト決定手法を紙面レイアウトに適用することで、ロール紙の先端から複数の例えば画像コンテンツを並べる際、配置する領域に対応するロールの長さがなるべく小さくなるようにレイアウトを決定する事ができる。
【0005】
レイアウトの効率性を重視したレイアウト手法として、特許文献2では、コンテンツを紙面に対して効率良く割り付けて印刷する技術が開示されている。特許文献2によれば、印刷対象コンテンツを異なる配置で印刷可能領域に割り付けて複数の割付候補を生成した上で、印刷対象コンテンツの印刷可能領域に対する占有率に基づいて最終的な割付を決定することで、余白の少ない効率的なレイアウト生成を可能としている。
【0006】
一方、一般的に、レイアウト対象として紙を利用する場合は、ページ単位でレイアウトが扱われる事が多い。そのため、レイアウト生成時に、単純に領域の長さだけを考慮すると、コンテンツがページを跨いで配置されてしまう、ページ内にコンテンツの配置される領域が少量であったとしても新たなページが作成されてしまう、などといった不都合が生じるおそれがある。
【0007】
この不都合に対する解決方法は、様々に提案されている。例えば特許文献3では、構造化言語で記述された文書に対して、コンテンツの途中で改ページが発生した場合に、分断される要素の相関性に応じてコンテンツ全体を次ページにずらしたり、最低限必要な行数だけページ内に収めるなどのレイアウト変更を行う方法について開示されている。
【0008】
また、特許文献4では、集約印刷時の転写紙枚数が集約率に応じて最大となるように文書のレイアウトやページ区切り位置を調整する方法が開示されている。特許文献4によれば、例えば図表などのコンテンツが複数のページに亘る場合、図表の配置を変更したりサイズを縮小するなどの処理が行われる。
【0009】
さらに、特許文献5には、ページ内に含まれるコンテンツが少量である場合に、そのページの大部分が余白となり見栄えが劣るという課題を解決するために、コンテンツ間の距離を調整してレイアウトを変更するようにした技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上述した特許文献1によれば、従来ではユーザー側に委ねられていたレイアウト作業が自動化されるため、作業負荷の軽減に繋がる一方で、各コンテンツデータを効率的に配置する、という観点は考慮されていないという問題点があった。
【0011】
また、上述した特許文献2では、そもそも、生成された複数の割付候補の中に精度の高いレイアウトが存在している保証がないという問題点があった。また、特許文献2によれば、占有率は、印刷対象コンテンツの印刷媒体上の印刷領域に占める割合として定義される。そのため、見た目に目立つ広範囲の余白と、コンテンツ間のマージンとが同様に扱われるおそれがある。さらに、特許文献2では、上述したようなページという概念を踏まえたレイアウトのあり方ついては触れられていない。
【0012】
さらにまた、上述した特許文献3〜特許文献5の技術は、コンテンツのレイアウトそのものを生成する手法ではない。すなわち、特許文献3〜特許文献5の技術は、ページの区切りに応じてレイアウトを調整する手法に関するものであり、コンテンツを複数ページに亘る紙面上に配置する自動レイアウトを提供するものではない。
【0013】
本発明は、上記に鑑みてなされたものであって、複数ページに亘るコンテンツの各ページに対する適切なレイアウトを自動生成可能な画像処理方法、画像処理装置、プログラムおよび記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0014】
上述した課題を解決し、目的を達成するために、本発明は、幅と、所定の高さ毎に順序付けて区切られた領域からなるページ領域とが定義される配置領域に対して複数のコンテンツを配置して出力する画像処理方法であって、配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、配置領域の幅を持ち、高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、配置領域の高さ方向の一方の端を先頭として、隣接するブロックと接するように順次配置し、配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に配置領域の幅を超えず、且つ、全コンテンツが配置された際のブロックによる全体の高さが近似的に最小となるように配置する最密充填レイアウト生成ステップと、最密充填レイアウト生成ステップにより、ブロックがページ領域を跨いで配置されている場合に、ページ領域を跨いだブロックを、ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行う最終レイアウト生成ステップとを有するを特徴とする。
【0015】
また、本発明は、幅と、所定の高さ毎に順序付けて区切られた領域からなるページ領域とが定義される配置領域に対して複数のコンテンツを配置して出力する画像処理装置であって、配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、配置領域の幅を持ち、高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、配置領域の高さ方向の一方の端を先頭として、隣接するブロックと接するように順次配置し、配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に配置領域の幅を超えず、且つ、全コンテンツが配置された際のブロックによる全体の高さが近似的に最小となるように配置する最密充填レイアウト生成手段と、最密充填レイアウト生成手段により、ブロックがページ領域を跨いで配置されている場合に、ページ領域を跨いだブロックを、ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行う最終レイアウト生成手段とを有することを特徴とする。
【発明の効果】
【0016】
本発明によれば、配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、配置領域の幅を持ち、高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、配置領域の高さ方向の一方の端を先頭として、隣接するブロックと接するように順次配置し、配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に配置領域の幅を超えず、且つ、全コンテンツが配置された際のブロックによる全体の高さが近似的に最小となるように配置し、ブロックがページ領域を跨いで配置されている場合に、ページ領域を跨いだブロックを、ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行うようにしている。そのため、コンテンツの配置をブロック単位で調整することができ、複数ページに亘るコンテンツの各ページに対する適切なレイアウトを自動的に生成可能であるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】図1は、本発明に適用可能な画像処理装置の一例の構成を示すブロック図である。
【図2】図2は、本発明で想定するコンテンツのレイアウトについて説明するための略線図である。
【図3】図3は、本発明の第1の実施形態による画像処理を概念的に示す一例のフローチャートである。
【図4】図4は、FFDHによるコンテンツの一例の配置方法を概略的に示すフローチャートである。
【図5】図5は、FFDHにより生成した最密充填レイアウトの一例を示す略線図である。
【図6】図6は、ブロックおよび行の定義を説明するための略線図である。
【図7−1】図7−1は、ブロックがページを跨いで配置される例を説明するための略線図である。
【図7−2】図7−2は、ブロックがページを跨がないで配置される例を説明するための略線図である。
【図8】図8は、本発明の第1の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。
【図9−1】図9−1は、効率的な配置であっても適当なページ区切りが見つからない例を説明するための略線図である。
【図9−2】図9−2は、本発明の第1の実施形態によるコンテンツの配置方法の効果を説明するための略線図である。
【図10】図10は、本発明の第2の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。
【図11】図11は、ブロック自体の位置を調整する処理を示す一例のフローチャートである。
【図12】図12は、ブロック内でコンテンツの位置を調整する処理を示す一例のフローチャートである。
【図13】図13は、本発明の第4の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。
【図14】図14は、発明の本第5の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下に添付図面を参照して、この発明に係る画像処理方法の最良な実施の形態を詳細に説明する。図1は、本発明に適用可能な画像処理装置100の一例の構成を示す。図1に例示されるように、本発明に適用可能な画像処理装置100は、一般的なコンピュータによって構成することができる。
【0019】
画像処理装置100において、内部バス110に対してCPU(Central Processing Unit)101、I/O(Input/Output)部102、ROM(Read Only Memory)103、RAM(Random Access Memory)104およびハードディスクドライブ(HDD)105が接続される。内部バス110に接続される各部は、内部バス110を介して互いにデータのやりとりを行うことができるようになっている。
【0020】
HDD105は、各種のプログラムやデータが格納される。例えばOS(Operating System)や、この発明に係る画像処理方法を実行するための画像処理プログラムなどがHDD105に格納される。また、画像入力部11から入力された画像データがHDD105に格納される。CPU101は、ROM103に予め記憶されたプログラムや、HDD105に格納されたプログラムに従い、RAM104をワークメモリとして用いて、この画像処理装置100の全体の動作を制御する。I/O部102は、画像入力部11および画像出力部12などを含む、この画像処理装置100に接続される外部機器との間でのデータの入出力を管理する。
【0021】
この画像処理装置100で処理されるコンテンツデータとしての画像データは、画像入力部11から画像入力装置100に対して入力され、I/O部102を介してHDD105に格納されたり、CPU101に供給される。画像入力部11は、例えばスキャナ、複写機、スキャン機能や印刷機能を複合的に備える複合機といった、画像を取り込んで出力する機能を備える。画像入力部11がADF(Auto Document Feeder)を備え、複数の画像を連続して自動的に取り込み出力できるようにしてもよい。これに限らず、画像入力部11がインターネットやLAN(Local Area Network)といったネットワークを介して通信を行う通信機能を備え、ネットワークに接続された記憶媒体から画像データを取り込むようにしてもよい。
【0022】
なお、画像処理装置100は、コンテンツデータとしてテキストデータを処理することもできる。テキストデータは、例えば、画像処理装置100に接続されたキーボード(図示しない)や、外部機器からI/O部102を介して画像処理装置100に入力される。
【0023】
この画像処理装置100で処理されたコンテンツデータは、I/O部102を介して画像出力部12に対して出力される。画像出力部12は、例えばプリンタやディスプレイといった、コンテンツデータから画像を形成して出力する機能を備える。画像処理装置100は、画像入力部11から入力されたコンテンツデータの1または複数をページ単位に配置したレイアウトデータを生成し、画像出力部12に対して出力する。画像出力部12は、画像処理装置100から供給されたレイアウトデータに従い、コンテンツデータのページ単位での印刷や表示出力を行う。
【0024】
<第1の実施形態>
本発明では、図2に例示されるように、様々な大きさ(幅×高さ)を有する複数の矩形コンテンツを、幅W、高さHの配置領域200上に配置する際のレイアウトを生成する。ここで、幅Wは有限の値を持ち、高さHは、無限大の値を持つものとする。また、レイアウトとは、配置領域200上におけるコンテンツの配置を示し、レイアウトデータは、レイアウトにおけるコンテンツの配置を示す情報(例えば座標情報)からなるものとする。また、ページとは、一度に表示を行うための領域をいい、以下では、幅Wを持つ配置領域を、一度に表示を行う所定の高さh毎に区切った各領域をページと呼ぶ。
【0025】
図3は、本発明の第1の実施形態による画像処理を概念的に示す一例のフローチャートである。この図3のフローチャートにおける各処理は、CPU101により、本第1の実施形態による画像処理プログラムに従い実行される。
【0026】
ステップS1で複数のコンテンツデータが画像処理装置100に取得される。次のステップS2で、画像処理装置100は、ステップS1で取得された複数のコンテンツデータに基づき、最密充填レイアウトを生成する。そして、次のステップS3で、ステップS2で生成された最密充填レイアウトに基づきページ毎の最終レイアウトを決定する。このステップS3で決定された最終レイアウトを示すレイアウトデータが、画像出力部12に対して出力される。
【0027】
<最密充填レイアウトの生成>
図3のステップS2における最密充填レイアウトの生成処理について、より詳細に説明する。なお、実際に入力されるコンテンツデータは、様々な形状が想定されるが、以下では、説明のため、コンテンツデータによる画像が矩形であるものとする。ここで、コンテンツデータによる画像を含む最小の矩形を想定してもよいし、コンテンツデータによる画像に対してマージンなどを考慮した矩形を想定してもよい。以下では、煩雑さを避けるため、「コンテンツデータによる画像」を単に「コンテンツ」と呼ぶ。
【0028】
ステップS2の最密充填レイアウトでは、予め決められた幅を持ち、高さが無限の領域に対して、下記の条件を満たし、且つ、高さを最小にするように複数のコンテンツを配置する問題として考えて、各コンテンツのレイアウトを決める。
(1)コンテンツの形状が矩形であって、幅および高さが有理数値である。
(2)回転を許容しない。
(3)各コンテンツが互いに重ならない。
【0029】
ここで、(3)の各コンテンツが互いに重ならないという条件は、2つのコンテンツCおよびCについて、下記の式(1)〜式(4)のうち少なくとも1つが成立することと等価である。なお、式(1)〜式(4)において、値wおよび値hは、それぞれコンテンツの幅および高さ、値xおよび値yは、それぞれコンテンツの一端(例えば左下隅)のx座標およびy座標である。
+w≦x …(1)
+w≦x …(2)
+h≦y …(3)
+h≦y …(4)
【0030】
各コンテンツに対して、式(1)〜式(4)のうち何れを採用するかを決める場合、単純に見積もって4(n(n-1)/2)通りの可能性があるといえる。この問題は、一般的に箱詰め問題と称され、NP困難に属しており、実用的な演算時間で解決することが極めて困難であると考えられる。そこで、本実施形態では、最適解に近似する最適近似解をできるだけ簡単な手順で求める手法を用いて、最密充填レイアウトの生成を行う。
【0031】
このような問題を解決するために、上述の各条件を満たし、且つ、評価値すなわち最適解からの外れ度が定まっている基本的なアルゴリズムとして、FFDH(First-Fit Decreasing-Height)やNFDH(Next-Fit Decreasing-Height)などが知られている。本発明の第1の実施形態では、FFDHを用いて最密充填レイアウトの生成を行う。FFDHについては、「E.G.Coffman, JR., M.R.Garey, D.S.Johonson, R.E.Tarjan(Bell Lab.&Stanford Univ.) "Performance bounds for level-oriented two-dimensional packing algorithms", SIAM J. Comput, vol.9., pp808-826, No.4, 1980.」(非特許文献1)に記載がある。
【0032】
図4は、FFDHによるコンテンツの一例の配置方法を概略的に示すフローチャートである。この図4のフローチャートにおける各処理は、CPU101により、本第1の実施形態による画像処理プログラムに従い実行される。FFDHによれば、先ず、コンテンツを高さの大きい順にソートして、ソート順で1番目のコンテンツ(すなわち最も高さの高いコンテンツ)を、配置領域の配置開始位置に配置して、処理を開始する。以下では、説明のため、配置開始位置を配置領域の左上隅とする。
【0033】
図4のフローチャートによる処理の開始に先立って、何らかのコンテンツ(例えばソート順で1番目のコンテンツ)が配置領域に配置されているものとする。これを最後に配置されたコンテンツとして、図4のフローチャートによる処理が開始される。ステップS10で、全てのコンテンツについて配置が完了したか否かが判定され、完了していないと判定されたら、処理がステップS11に移行される。一方、完了していると判断されたら、図4のフローチャートによる一連の処理が終了する。
【0034】
ステップS11で、直前に選択したコンテンツに対してソート順で次のコンテンツを選択する。次のステップS12で、ステップS11で選択されたコンテンツがソート順で最後のコンテンツか否かが判定される。若し、最後のコンテンツではないと判定されたら、処理はステップS13に移行される。
【0035】
ステップS13では、ステップS11で選択されたコンテンツが、最後に配置したコンテンツの右隣に配置可能な否かが判定される。すなわち、最後に配置したコンテンツの右端から配置領域の右端までの幅が、ステップS11で選択されたコンテンツの幅以上であれば、当該選択されたコンテンツが配置可能であると判定される。若し、配置不可であると判定されたら、処理はステップS10に戻され、全てのコンテンツについて配置が完了していなければソート順でさらに次のコンテンツが選択され(ステップS11)、処理が繰り返される。
【0036】
一方、ステップS13で配置可能であると判定されたら、処理はステップS14に移行され、最後に配置したコンテンツの右隣にステップS11で選択されたコンテンツが配置される。コンテンツの配置位置を示す情報は、例えばRAM104に記憶される。そして、処理がステップS10に戻される。
【0037】
上述のステップS12で、ステップS11で選択されたコンテンツがソート順で最後のコンテンツであると判定されたら、処理はステップS15に移行される。ステップS15では、未配置のコンテンツのうち、ソート順が最も早い(すなわち高さが最も高い)コンテンツを、最後に配置したコンテンツに対して幅方向の左端に配置されるコンテンツの下に、配置領域に対して左詰めで配置する。コンテンツの配置位置を示す情報は、例えばRAM104に記憶される。そして、処理はステップS11に戻される。
【0038】
図5は、上述のようにしてFFDHにより生成した最密充填レイアウトの一例を示す。この例では、幅が「10」の配置領域に、8個のコンテンツが配置されている。この、図3のステップS2において生成された最密充填レイアウトを、初期ページレイアウトと呼ぶ。
【0039】
図5および図4のフローチャートによる処理で分かるように、FFDHによる最密充填レイアウトでは、コンテンツの右隣には、当該コンテンツと高さが同じかまたは低いコンテンツが配置される。また、左端のコンテンツについては、コンテンツの下には当該コンテンツと高さが同じかまたは低いコンテンツが配置される。以下、配置領域の幅を持ち、左端のコンテンツの上下端で高さおよび配置領域における高さ方向の位置が規定される領域を、「ブロック」と呼び、ブロックとブロックとの区切りを、「行」と呼ぶ(図6参照)。
【0040】
ここで、図5の例では、各コンテンツは、上端を揃えて一列に配置されている。これに限らず、左端のブロックに対して右方向に一列に配置される一連のブロックは、上下端が左端のブロックの上端および下端からなる範囲を越えなければ、他の配置でもよい。
【0041】
なお、FFDHでは、最適解に対する評価値が下記の式(5)のようになることが知られている。式(5)は、コンテンツの高さと幅とをそれぞれ「1」に正規化した場合の例である。また、式(5)において、値HalgはFFDHにより求められる高さ、値Hoptは最適解を表す。
alg≦1.7×Hopt+1 …(5)
【0042】
<第1の実施形態によるページレイアウトの生成>
次に、上述した図3のステップS3における、ページ毎の最終レイアウトの生成について説明する。図3のステップS2において、図4を用いて説明した手順に従い最密充填レイアウトによる初期ページレイアウトを生成した後に、配置領域を、幅が配置領域の幅と一致し、所定の高さを持つページ単位に分割する。このとき、図7−1に例示されるように、あるブロックがページに跨って配置されてしまうことがある。図7−1の例では、配置領域300に配置されたブロック301〜304のうち、ブロック303がページを跨いで配置されてしまっている。このままでは、コンテンツが途中で分断されてしまう結果となり、好ましくない。そこで、本発明の第1の実施形態では、各ブロックがページを跨がないようにレイアウトを調整して、ページ毎の最終レイアウトを生成する。
【0043】
本第1の実施形態では、ページを跨いで配置されたブロックを、次のページの先頭に移動させる。ここで、次のページとは、ページを跨いで配置されたブロックの上端が属するページから見た次のページをいう。すなわち、図7−1の例では、ページを跨いで配置されているブロック303を次ページの先頭に移動させ、当該ブロック303より下に配置された各ブロックも、当該ブロック303の移動に伴い下方に位置をずらす。以降、この処理をページ毎に順次、繰り返して行うことで、最終的には全てのコンテンツがページを跨がないように配置されたレイアウトを生成することができる。
【0044】
図8は、本第1の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図8のフローチャートにおける各処理は、CPU101により、本第1の実施形態による画像処理プログラムに従い実行される。先ず、ステップS20で、対象ページのページレイアウトを取得する。なお、ステップS20で取得されるページレイアウトは、処理の対象となる対象ページに係るブロックからなるレイアウトである。対象ページが第1ページ目の場合は、初期ページレイアウトから対象ページのページレイアウトを取得することになる。
【0045】
次のステップS21で、対象ページのページレイアウトにページを跨るブロックがあるか否かを判定する。若し、ページを跨るブロックが無いと判定されたら、処理はステップS23に移行される。
【0046】
一方、ステップS21で、対象ページのレイアウトにページを跨るブロックがあると判定されたら、処理はステップS22に移行される。ステップS22では、対象ページのレイアウト中においてページを跨って配置されたブロックが、対象ページの次のページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方へずらして再配置する。ブロックの再配置が終了すると、処理はステップS23に移行される。
【0047】
ステップS23では、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成し、当該対象ページのページレイアウトを決定する。そして、処理はステップS24に移行され、全てのページについてページレイアウトが決定されたか否かが判定される。若し、ページレイアウトが決定されていないページが存在すると判定されたら、処理はステップS20に戻され、ステップS23でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
【0048】
一方、ステップS24で、全てのページについてページレイアウトが決定されたと判定されたら、一連の処理が終了される。この場合、未配置のブロックが存在しない場合に、全てのページについてページレイアウトが決定されたと判定する。
【0049】
このように、本発明の第1の実施形態によれば、様々なサイズのコンテンツを複数ページに亘る配置領域に配置する場合に、出力ページ数がなるべく小さくなり、且つ、コンテンツがページで分断されないようなレイアウトを自動的に生成できる。
【0050】
また、配置領域に対して様々なサイズのコンテンツを配置する場合、全てのコンテンツがページを跨がないようにページ区切りを設けることができる保証が無く、ページを跨いで配置されるコンテンツが発生する可能性が高い。すなわち、コンテンツが配置された状態でコンテンツを区切らないように幅方向の線(ページ区切り)を引くためには、幅方向に見たときに、コンテンツの上辺または下辺が揃っているなどの条件が必要となる。図9−1は、効率的な配置であっても、適当なページ区切りが見つからない例を示す。
【0051】
本発明の第1の実施形態によれば、コンテンツを配置する際に、配置領域の幅方向については、図9−2に例示されるように、左端に配置されたコンテンツ201の高さからはみ出ない範囲202に収まるコンテンツを探索していくため、ブロック単位での配置の入れ替えが可能となる。したがって、ページ間でコンテンツが分断されないような各ページのレイアウトを、最密充填レイアウトによる初期ページレイアウトの配置から容易に決定することが可能となる。
【0052】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本第2の実施形態では、上述した第1の実施形態の処理に対し、さらに、ページに跨るブロックが存在する場合に、当該ブロック以降のブロックから対象ページ内に収まるブロックを探索する。そして、探索されたブロックとページに跨るブロックとを入れ替えて再配置を行う。これにより、効率的なページレイアウトを簡易に生成することができる。
【0053】
図4を用いて説明した最密充填レイアウトの生成方法によれば、新しいブロックの形成時には、その時点で未配置のコンテンツの中で高さが最大のコンテンツが当該ブロックの左端に配置されることになる。そのため、ブロックは、下方に配置されるに従い高さが単調に減少(または非増加)する。したがって、あるブロックがページを跨いで配置された場合、当該ブロックの下に、当該ブロックと配置を交換することでブロックがページを跨ぐ事態を解消可能な高さのブロックが存在している可能性がある。
【0054】
そこで、本第2の実施形態では、あるブロックがページを跨いで配置された場合、当該ブロックの下に位置するブロックから順次、対象ブロックと配置を交換した際にページ内に収まるか否かを判定する。そして、ページ内に収まる高さのブロックが存在したら、そのブロックの配置と、ページを跨るブロックの配置とを入れ替える。ブロックがページを跨いで配置される毎に同様の処理を繰り返すことで、最終的には、全てのコンテンツがページを跨がないようなページレイアウトを生成することができる。
【0055】
図7を用いて、より具体的に説明する。図7−1に示される例では、配置領域300に対してブロック301〜304が配置され、それらのうち、ブロック303がページを跨いで配置されブロック303に含まれるコンテンツがページ区切りで分断されてしまっている。このようなコンテンツの分断は、特にコンテンツの内容が図や表などの場合、好ましくない。
【0056】
ここで、上述した処理により、ページを跨いで配置されたブロック303の直下に配置されるブロックから順次、ブロック303との配置交換を試みる。図7−1の例では、1ページの高さ「11」に対して上から高さがそれぞれ「6」、「3」および「3」のブロック301〜303が配置され、ブロック303が高さ「1」だけページからはみ出している。ブロック303を取り去ると、ブロック303の直上のブロック302とページ下端との間に高さ「2」の余裕が生じる。一方、ブロック303の1つ下に配置されるブロック304は、高さが「2」であるため、ブロック303とブロック304とを入れ替えて再配置を行うことで、ブロックがページを跨ぐ事態が解消されることが分かる。
【0057】
図7−2は、図7−1の状態から、ブロック303とブロック304とを入れ替えて再配置した場合の例を示す。対象ページに対して、ブロック304がページを跨がずに配置されていることが分かる。このような再配置を行うことで、効率性を保持しつつ、ブロックがページを跨いでしまう事態を解消することができる。
【0058】
図10は、本第2の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図10のフローチャートにおける各処理は、CPU101により、本第2の実施形態による画像処理プログラムに従い実行される。先ず、ステップS30で、上述したステップS20と同様にして、対象ページのページレイアウトを取得する。そして、次のステップS31で、対象ページのページレイアウトにページを跨るブロックがあるか否かを判定する。若し、ページを跨るブロックが無いと判定されたら、処理はステップS37に移行される。
【0059】
一方、ステップS31で、対象ページのレイアウトにページを跨るブロックがあると判定されたら、処理はステップS32に移行される。ステップS32では、ページを跨ると判定されたブロックの直上に配置されるブロックの下端から、対象ページの下端までの高さyが求められる。
【0060】
次のステップS33で、対象ブロックの下にさらにブロックが配置されているか否かが判定される。ステップS33による判定が、ステップS31でページを跨るブロックがあると判定された直後の判定であれば、当該ページを跨るブロックが対象ブロックとされる。若し、対象ブロックの直下にさらにブロックが配置されていると判定されたら、処理はステップS34に移行される。
【0061】
ステップS34では、対象ブロックの直下に配置されたブロックをページを跨るブロックと入れ替えて配置した場合に、ブロックが対象ページ内に収まるか否かが判定される。例えば、ステップS32で求められた高さyと、対象ブロックの直下に配置されたブロックの高さhbとを比較し、高さyが高さhb以上であれば、当該ブロックが対象ページ内に収まると判定される。
【0062】
若し、ステップS34で、高さhbが高さyよりも高く、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まらないと判定されたら、処理はステップS33に戻される。そして、直前にページを跨ぐブロックとの入れ替えを試みられたブロックを新たな対象ブロックとして、当該対象ブロックの直下に配置されているブロックについて、同様にして判定が行われる。
【0063】
一方、ステップS34で、高さhbが高さy以内であって、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まると判定されたら、処理はステップS35に移行される。ステップS35では、当該対象ブロックとページを跨ぐブロックとが入れ替えられて、ブロックの再配置がなされる。この場合、当該対象ブロックがページを跨ぐブロックの直上のブロックの直下に配置されると共に、ページを跨ぐブロックが対象ページの次ページの先頭に配置される。そして、このブロックの直下から、当該対象ブロックの直下から配置されていた各ブロックが、順序を変えずに配置される。ステップS35でブロックの再配置が行われると、処理はステップS37に移行される。
【0064】
上述のステップS33で、対象ブロックの下にブロックが配置されていないと判定されたら、処理はステップS36に移行される。この場合には、対象ページ内に収まるようにページを跨ぐブロックと入れ替え可能なブロックが存在しないことを意味する。そこで、ステップS36では、当該ページを跨ぐブロックを対象ページの次ページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方にずらして再配置する。ブロックの再配置が終了すると、処理はステップS37に移行される。
【0065】
ステップS37では、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成し、当該対象ページのページレイアウトを決定する。そして、処理はステップS38に移行され、全てのページについてページレイアウトが決定されたか否かが判定される。若し、ページレイアウトが決定されていないページが存在すると判定されたら、処理はステップS30に戻され、ステップS37でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
【0066】
一方、ステップS38で、全てのページについてページレイアウトが決定されたと判定されたら、一連の処理が終了される。この場合、未配置のブロックが存在しない場合に、全てのページについてページレイアウトが決定されたと判定する。
【0067】
このように、本発明の第2の実施形態によれば、様々なサイズのコンテンツを複数ページに亘る配置領域に配置する場合に、出力ページ数がなるべく小さくなり、且つ、コンテンツがページで分断されないようなレイアウトを自動的に生成できる。
【0068】
また、本第2の実施形態によれば、最密充填レイアウト生成により、新しいブロックの形成時には、その時点で未配置のコンテンツの中で高さが最大のコンテンツが当該ブロックの左端に配置されることになる。そのため、ブロックは、下方に配置されるに従い高さが単調に減少(または非増加)する。したがって、ブロックがページを跨いで配置されてしまった場合、直下のブロックから順次、ブロックの高さを調べていき、ページ内に収まる高さのブロックがあれば、そのブロックとページを跨ぐブロックとを入れ替えて再配置を行うことで、簡易に効率的なページレイアウトを生成することができる。
【0069】
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。本第3の実施形態では、上述した第1または第2の実施形態で生成された最終的なページレイアウトに対して、さらに調整を加えることで、より好ましいページレイアウトを生成する。この場合、ブロック自体の位置を調整する方法と、ブロック内でコンテンツの位置を調整する方法とが考えられる。
【0070】
先ず、第1の方法として、ブロック自体の位置をページ内で調整する方法について説明する。すなわち、上述した第1および第2の実施形態により生成されるページレイアウトでは、最終ページに対して1つのブロックのみが配置され、そのページの残り全ての領域が空白という事態が起こり得る。そこで、上述した第1または第2の実施形態で説明した方法でページレイアウトを生成し、全ページ数が決定された後に、ブロック自体の位置をページ内およびページ間で調整する。
【0071】
図11は、ブロック自体の位置を調整する処理を示す一例のフローチャートである。この図11のフローチャートにおける各処理は、CPU101により、本第3の実施形態による画像処理プログラムに従い実行される。先ず、ステップS40で、図4を用いて説明したようにして最密充填レイアウトを取得し、次のステップS41で、最密充填レイアウトから初期ページレイアウトを生成する。この初期ページレイアウトでは、既に説明したように、ページを跨いで配置されるブロックが存在する可能性がある。次のステップS42で、初期ページレイアウトに基づきブロック単位で再配置を行い、ページを跨ぐブロックが全ページに亘って存在しないようにする。ステップS42での処理は、図8または図9を用いて説明した手順に従い、ページを跨ぐブロックを次のページの先頭に移動させたり、他のブロックとの入れ替えを行うことで、ブロックがページを跨いで配置される事態を解消する。
【0072】
ステップS42までの処理により全ページのレイアウトが決定し、レイアウトに必要な全ページ数が確定すると、処理はステップS43に移行される。ステップS43では、ブロックの位置調整を行う。
【0073】
ステップS43での処理として、例えばページ下部の空白部分のページ間でのバラツキが小さくなるように、ブロックを再配置することが考えられる。一例として、ステップS42の処理が終了した時点で、全ブロックの高さの合計をページ数で除して、1ページに配置されるブロックの合計高さの平均値havgを算出する。そして、最終ページに配置されるブロックの合計高さが平均値havgに近くなるように、各ページから1つずつ、ブロックを最終ページに移動させる。
【0074】
また、ページ内でブロックの再配置を行ってページ毎のレイアウトを調整することもできる。例えば、ページ内の下部に生じた空白を、ブロック間のマージンとして割り当てることが考えられる。一例として、下記の式(6)に例示されるように、各ページにおいて、下部の空白領域の高さMをブロック数n−1で除して、ブロック間に対して等分にブロック間マージンBMを割り当てる。
BM=M/(n−1) …(6)
【0075】
勿論、このページ内でのブロック再配置と、上述したページ間でのブロックの移動とを組み合わせて実行してもよい。すなわち、ページ下部の空白部分のページ間でのバラツキが小さくなるようにブロックを再配置した後に、ページ内でのブロックの再配置を行い空白部分を均一化する。
【0076】
次に、第2の方法として、ブロック内でコンテンツの位置を調整する方法について説明する。ブロック内でコンテンツを移動させても、ブロック自体を移動させない限りはページ数が増加することはない。そこで、ブロック内で例えば水平方向にコンテンツを移動させて、左右のバランスを調整する方法が考えられる。このとき、ブロック内に配置されるコンテンツのサイズや形状(アスペクト比)などを考慮してコンテンツの移動を行うと好ましい。
【0077】
図12は、ブロック内でコンテンツの位置を調整する処理を示す一例のフローチャートである。この図12のフローチャートにおける各処理は、CPU101により、本第3の実施形態による画像処理プログラムに従い実行される。先ず、ステップS50で、図4を用いて説明したようにして最密充填レイアウトを取得し、次のステップS51で、最密充填レイアウトから初期ページレイアウトを生成する。この初期ページレイアウトでは、既に説明したように、ページを跨いで配置されるブロックが存在する可能性がある。次のステップS52で、初期ページレイアウトに基づきブロック単位で再配置を行い、ページを跨ぐブロックが全ページに亘って存在しないようにする。ステップS52での処理は、図8または図9を用いて説明した手順に従い、ページを跨ぐブロックを次のページの先頭に移動させたり、他のブロックとの入れ替えを行うことで、ブロックがページを跨いで配置される事態を解消する。
【0078】
ステップS52までの処理により全ページのレイアウトが決定すると、処理がステップS53に移行される。ステップS53では、ブロック内でのコンテンツの位置調整を行う。
【0079】
ステップS53において、ブロックの視覚的な中心や、コンテンツの視覚的な中心は、例えば「Steven J.Harrington, J.Femando Naveda, Rhys Price Jones, Paul Roetling, Nishant Thakker, "Aesthetic Measures for Automated Document Layout"」(非特許文献2)に示される方法で算出可能である。例えば、ブロック内コンテンツ全体の水平方向の位置は下記の式(7)〜式(9)で、ブロック内コンテンツの左右のバランス度は下記の式(10)でそれぞれ算出することができる。
【数1】

【数2】

【数3】

【数4】

【0080】
なお、上述の式(7)〜式(10)で用いられる各変数の意味は、次の通りである。
(xi,yi):コンテンツiのxy座標
(xc,yc):ブロックの視覚的な中心
i:コンテンツの視覚的中心
(dx,dy):ブロックの視覚的中心からの最大距離
h:ブロックの高さ
【0081】
また、ブロック内ではコンテンツを自由に移動させることができるため、例えば、ステップS53において、ブロック内のコンテンツの中心位置がブロックの中央に近付くように、コンテンツの位置調整を行うこともできる。ブロック内コンテンツの中心位置は例えば下記の式(11)および式(12)により、バランス度は式(13)により、それぞれ算出することができる。
【数5】

【数6】

【数7】

【0082】
ブロックおよびコンテンツのレイアウト調整方法は、上述の例に限定されるものではない。例えば、上述した非特許文献2に記載されている幾つかの指標を用いてブロック間のコンテンツの配置を調整することもできる。
【0083】
本発明に適用可能な最密充填レイアウトでは、コンテンツは基本的に左詰め(または右詰め)で配置される。一方、レイアウトとしては、幅方向のバランスがとれた方が一般的に見やすいとされている。本第3の実施形態によれば、ブロック内部でコンテンツの左右のバランスを調整する事で、レイアウトの効率性は保持しつつ、より美しいレイアウトを実現することができる。
【0084】
また、本発明に適用可能な最密充填レイアウトでは、ブロック単位で見ると、基本的にコンテンツが左上詰め(または右上詰め)で配置される。一方、レイアウトとしては、コンテンツの重心がブロックの中央付近に位置していた方がバランスが良く、一般的に見やすいとされている。本第3の実施形態によれば、ブロック内部でコンテンツの重心位置を調整することで、レイアウトの効率性を保持しつつ、より美しいレイアウトを実現することができる。
【0085】
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。本第4の実施形態では、コンテンツに対する倍率の可変量や、アスペクトの可変量を取得し、これら取得された可変量に基づきコンテンツのサイズを変更することで、ブロックをページを跨がずに配置する。
【0086】
図13は、本第4の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図13のフローチャートにおける各処理は、CPU101により、本第4の実施形態による画像処理プログラムに従い実行される。
【0087】
この図13のフローチャートは、例えば述した図8のフローチャートにおけるステップS21や、図9のフローチャートにおけるステップS31の判定において、ページに跨るブロックがあると判定された場合の処理に対応する。ページに跨るブロックがあると判定されると、ステップS60において、当該ブロックに含まれるコンテンツに対する倍率およびアスペクト比の少なくとも一方の可変量を取得する。
【0088】
可変量は、例えば画像処理装置100に対するユーザ操作により、コンテンツ毎に指定することができる。これに限らず、可変量を予め画像処理プログラムにより指定するようにしてもよい。また、可変量は、ブロックに対する可変量であってもよい。さらに、コンテンツがテキストの場合は可変量を小さく、画像の場合は可変量を大きくといったように、可変量をコンテンツの種類に応じて指定するようにしてもよい。
【0089】
なお、コンテンツがテキストであるか画像であるかは、例えばテキストが画像として入力される場合には、後述する第5の実施形態で説明する解析処理によって、判定することが考えられる。テキストがテキストデータで入力される場合には、データの種類に基づいて判定可能であることはいうまでもない。
【0090】
可変量が取得されると、処理はステップS61に移行され、可変量の範囲内でコンテンツまたはブロックを変形させた場合に、当該ブロックがページ内に収まるか否かが判定される。例えば、指定された可変量の範囲内でコンテンツを変形させ、それに伴いブロックを変形させて高さを調整することで当該ブロックがページ内に収まるか否かが判定される。若し、変形により当該ブロックがページ内に収まると判定されたら、処理はステップS62に移行され、ページ内に収まるように当該ブロックの高さを調整する。
【0091】
一方、ステップS61で、可変量の範囲内で変形を行っても当該ブロックがページ内に収まらない、すなわち、当該ブロックがページを跨いでしまうと判定されたら、処理はステップS63に移行される。そして、当該ブロックが次のページの先頭に配置され、それに伴い当該ブロックの下に配置されるブロックの位置も下方にずらされる。
【0092】
<第5の実施形態>
次に、本発明の第5の実施形態について説明する。本第5の実施形態では、画像処理装置100に対してコンテンツの内容を解析するコンテンツ解析機能を持たせる。そして、配置領域に配置するコンテンツの内容をコンテンツ解析機能によって解析し、解析結果に基づきブロックの入れ替えなどを行う。
【0093】
コンテンツ解析機能は、例えばCPU101上で動作するプログラムとして実現される。コンテンツの解析方法としては、既存の技術を適用することができる。コンテンツの解析結果として得られる情報としては、例えば下記のような情報が考えられる。
分類:テキスト/イメージ
視覚情報:色/密度など
構造情報:見出し/タイトル/本文など
意味情報:コンテンツ間やブロック間の相関/重要度
【0094】
先ず、入力されたコンテンツがテキストおよびイメージの何れであるかを解析する。例えば、入力された画像データに対して文字検出を行い、検出結果に基づきコンテンツがテキストおよびイメージの何れであるかを判定する。
【0095】
なお、テキストは、テキストデータとして入力することもできる。この場合、表示範囲などテキストのレイアウトに関する情報が共に入力されるものとする。これに限らず、画像処理装置100側において、入力されたテキストデータに対して表示範囲を設定するようにしてもよい。
【0096】
コンテンツがイメージであれば、例えば画素毎の色情報に基づきRGB値のヒストグラムを作成して色に関する解析を行うことが考えられる。また例えば、画像データの空間周波数を解析することで、画像の密度に関する情報を取得することが考えられる。
【0097】
コンテンツデータがテキストであれば、テキストの構造を解析し、見出し、タイトルおよび本文などをそれぞれ抽出することが考えられる。例えば、検出された文字(文字群)の位置や大きさ、装飾などに基づき、テキストの構造を解析することが考えられる。また、テキストデータがHTML(Hyper Text Markup Language)やXML(Extensible Markup Language)といったマークアップ言語で記述されたテキストデータとして入力されている場合は、タグに基づき構造解析を行うことができる。これに限らず、テキストデータに用いられている単語を抽出してテキストの意味解析を行うことも考えられる。
【0098】
上述した視覚情報や構造情報の解析結果に基づき、コンテンツ間の相関やコンテンツの重要度を解析することができる。また、コンテンツ毎の解析結果を用いて、それぞれコンテンツが1または複数配置されたブロック間での相関やブロックの重要度を解析することも可能である。
【0099】
図14は、本第5の実施形態によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図14のフローチャートにおける各処理は、CPU101により、本第5の実施形態による画像処理プログラムに従い実行される。この図14のフローチャートにおいては、ページを跨ぐブロックがあった場合に、上述した解析結果を行って当該ブロックの直上に配置されるブロックと、当該ブロックより下方に配置されるブロックとの相関を順次、求める。そして、相関を示す相関値が予め定めた閾値thより高いと判定されたブロックとの配置の入れ替えを行う。
【0100】
先ず、ステップS70で、上述したステップS20と同様にして、対象ページのページレイアウトを取得する。そして、次のステップS71で、対象ページのページレイアウトにページを跨るブロックがあるか否かを判定する。若し、ページを跨るブロックが無いと判定されたら、処理はステップS79に移行される。
【0101】
一方、ステップS71で、対象ページのレイアウトにページを跨るブロックがあると判定されたら、処理はステップS72に移行される。ステップS72では、ページを跨ると判定されたブロックの直上に配置されるブロックの下端から、対象ページの下端までの高さyが求められる。
【0102】
次のステップS73で、対象ブロックの下にさらにブロックが配置されているか否かが判定される。ステップS73による判定が、ステップS71でページを跨るブロックがあると判定された直後の判定であれば、当該ページを跨るブロックが対象ブロックとされる。若し、対象ブロックの直下にさらにブロックが配置されていると判定されたら、処理はステップS74に移行される。
【0103】
ステップS74では、対象ブロックの直下に配置されたブロックをページを跨るブロックと入れ替えて配置した場合に、ブロックが対象ページ内に収まるか否かが判定される。例えば、ステップS72で求められた高さyと、対象ブロックの直下に配置されたブロックの高さhbとを比較し、高さyが高さhb以上であれば、当該ブロックが対象ページ内に収まると判定される。
【0104】
若し、ステップS74で、高さhbが高さyよりも高く、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まらないと判定されたら、処理はステップS73に戻される。そして、直前にページを跨ぐブロックとの入れ替えを試みられたブロックを新たな対象ブロックとして、当該対象ブロックの直下に配置されているブロックについて、同様にして判定が行われる。
【0105】
一方、ステップS74で、高さhbが高さy以内であって、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まると判定されたら、処理はステップS75に移行される。ステップS75では、当該対象ブロックと、ページを跨ぐブロックの直上に配置されるブロックとの相関が算出される。そして、次のステップS76で、この相関が予め決められた閾値thよりも高いか否かが判定される。
【0106】
若し、算出された相関が閾値thよりも高いと判定されたら、処理はステップS77に移行され、当該対象ブロックとページを跨ぐブロックとが入れ替えられて、ブロックの再配置がなされる。この場合、当該対象ブロックがページを跨ぐブロックの直上のブロックの直下に配置されると共に、ページを跨ぐブロックが対象ページの次ページの先頭に配置される。そして、このブロックの直下から、当該対象ブロックの直下から配置されていたブロックが、順序を変えずに配置される。ステップS77でブロックの再配置が行われると、処理はステップS79に移行される。
【0107】
一方、ステップS76で、相関が閾値th以下であると判定されたら、処理はステップS73に戻され、次のブロックについて処理が繰り返される。
【0108】
上述のステップS73で、対象ブロックの下にブロックが配置されていないと判定されたら、処理はステップS78に移行される。ステップS78では、当該ページを跨ぐブロックを対象ページの次ページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方にずらして再配置する。ブロックの再配置が終了すると、処理はステップS79に移行される。
【0109】
ステップS79では、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成する。そして、処理はステップS80に移行され、全てのページについてページレイアウトが決定されたか否かが判定される。若し、ページレイアウトが決定されていないページが存在すると判定されたら、処理はステップS70に戻され、ステップS79でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
【0110】
一方、ステップS80で、全てのページについてページレイアウトが決定されたと判定されたら、一連の処理が終了される。この場合、未配置のブロックが存在しない場合に、全てのページについてページレイアウトが決定されたと判定する。
【0111】
なお、上述では、ステップS76において相関が閾値thよりも高いと判定されたブロックを直接的に入れ替えに用いているが、これはこの例に限定されない。例えば、ページを跨ぐブロックの下に配置され、且つ、ページ内に収まると判定された対象ブロックが複数存在する場合も考えられる。このような場合に、当該対象ブロック全てについて、ページを跨ぐブロックの直上のブロックとの相関を求め、最も相関の高いブロックを選択して入れ替えに用いてもよい。
【0112】
このように、本第5の実施形態では、ステップS74でブロックの高さhに基づきブロックの入れ替えが可能だと判断されても、入れ替えられたブロックと当該ブロックの直上に配置されるブロックとの相関が低いと判定されると、その入れ替えを行わない。これにより、ブロックの入れ替えによって内容的に無関係のブロックが配置されることが抑制される。
【0113】
なお、上述した各実施形態による画像処理装置100で実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD(Compact Disk)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0114】
また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムをインターネットなどのネットワーク経由で提供または配布するように構成しても良い。
【0115】
また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0116】
上述した各実施形態による画像処理装置100で実行される画像処理プログラムは、上述した最密充填レイアウトを生成するモジュールと、最密充填レイアウトに基づき各ページのレイアウトを生成するモジュールとを含むモジュール構成となっており、実際のハードウェアとしてはCPU101(プロセッサ)が例えばHDD105から画像処理プログラムを読み出して実行することにより、上述の各モジュールが主記憶装置(RAM104)上にロードされ、最密充填レイアウト生成モジュールと、ページレイアウト生成モジュールとが主記憶装置上に生成されるようになっている。
【0117】
なお、上述では、本発明に適用可能な画像処理装置100が一般的なコンピュータとして構成されるように説明したが、これはこの例に限定されない。例えば、本発明による画像処理装置100は、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用することができる。また、本発明による画像処理装置100は、複写機、プリンタ、スキャナ装置、ファクシミリ装置などの画像形成装置であれば何れにも適用することができる。
【符号の説明】
【0118】
11 画像入力部
12 画像出力部
100 画像処理装置
101 CPU
102 I/O部
105 HDD
200 配置領域
【先行技術文献】
【特許文献】
【0119】
【特許文献1】特許第4047326号公報
【特許文献2】特開2005−275682公報
【特許文献3】特開2006−259819公報
【特許文献4】特開2007−150698公報
【特許文献5】特開2007−11577公報

【特許請求の範囲】
【請求項1】
幅と、所定の高さ毎に順序付けて区切られた領域からなるページ領域とが定義される配置領域に対して複数のコンテンツを配置して出力する画像処理方法であって、
前記配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、前記配置領域の幅を持ち、該高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、前記配置領域の高さ方向の一方の端を先頭として、隣接する該ブロックと接するように順次配置し、
前記配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に該配置領域の幅を超えず、且つ、全コンテンツが配置された際の前記ブロックによる全体の高さが近似的に最小となるように配置する最密充填レイアウト生成ステップと、
前記最密充填レイアウト生成ステップにより、前記ブロックが前記ページ領域を跨いで配置されている場合に、該ページ領域を跨いだ該ブロックを、該ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行う最終レイアウト生成ステップと
を有する
ことを特徴とする画像処理方法。
【請求項2】
前記最密充填レイアウト生成ステップは、
前記コンテンツを高さの高い順に順序付ける順序付けステップと、
配置対象の全コンテンツのうち前記順序付けステップにより最も高さが高いと順序付けられたコンテンツを、前記配置領域の幅方向の一方の端と、高さ方向の一方の端とに接するように配置する第1の配置ステップと、
前記順序付けステップにより未配置のコンテンツのうち最も高さが高いと順序付けられたコンテンツを、直前に配置されたコンテンツが属する前記ブロック内に他のコンテンツと重ならずに配置可能か否かを判定する判定ステップと、
前記判定ステップにより配置可能であると判定された場合に、前記未配置のコンテンツのうち最も高さが高いと順序付けされたコンテンツを前記直前に配置されたコンテンツが属するブロック内に該直前に配置されたコンテンツに接するように配置し、
前記判定ステップにより配置可能ではないと判定された場合に、前記未配置のコンテンツのうち最も高さが高いと順序付けされたコンテンツを、前記直前に配置されたコンテンツが属するブロックに接し、且つ、前記幅方向の一方の端に接するように配置する第2の配置ステップと
を有する
ことを特徴とする請求項1記載の画像処理方法。
【請求項3】
前記最終レイアウト生成ステップは、
前記ページ領域を跨いだブロックを、該ブロックが跨ぐページ領域のうち順序が後のページ領域の先頭に移動させると共に、該移動に伴い該ブロックより後ろに配置されるブロックの位置をずらしてブロックの再配置を行う
ことを特徴とする請求項1または請求項2に記載の画像処理方法。
【請求項4】
前記最終レイアウト生成ステップは、
前記ページ領域を跨いだブロックの後ろに配置されたブロックから、高さが該ページ領域を跨いだブロックの直上に配置されたブロックの下端と、該ページ領域の下端との間による高さ以下のブロックを検索し、検索された該ブロックと、該ページ領域を跨いだブロックとを入れ替えてブロックの再配置を行う
ことを特徴とする請求項1または請求項2に記載の画像処理方法。
【請求項5】
コンテンツの内容を解析してコンテンツ間の相関を求める解析ステップをさらに有し、
前記最終レイアウト生成ステップは、
前記解析ステップで求められた、前記検索されたブロックと前記ページ領域を跨いだブロックとの前記相関に基づき前記入れ替えを行うブロックを選択する
ことを特徴とする請求項4に記載の画像処理方法。
【請求項6】
前記最終レイアウト生成ステップは、
前記検索によって複数のブロックが得られた場合に、検索された該複数のブロックのうち、前記解析ステップで求められた、前記ページ領域を跨いだブロックとの相関が最も高いブロックを、前記入れ替えを行うブロックに決定する
ことを特徴とする請求項5に記載の画像処理方法。
【請求項7】
前記最終レイアウト生成ステップは、
コンテンツを該コンテンツに指定された範囲内で変形させる変形ステップを有し、
前記ページ領域を跨いだブロック内のコンテンツを前記変形ステップにより前記範囲内で変形させ、該コンテンツの変形に伴い該ブロックを変形させて該ブロックの高さの調整を行ったときに、該高さの調整後の該ページ領域を跨いだブロックが前記ページ領域に収まらない場合に、該ページ領域を跨いだブロックの前記移動を行う
ことを特徴とする請求項1乃至請求項6の何れか1項に記載の画像処理方法。
【請求項8】
前記変形ステップが行う前記変形は、前記コンテンツに対する縮小処理である
ことを特徴とする請求項7に記載の画像処理方法。
【請求項9】
前記変形ステップが行う前記変形は、前記コンテンツのアスペクト比の変更処理である
ことを特徴とする請求項7に記載の画像処理方法。
【請求項10】
前記最終レイアウト生成ステップは、
前記ブロック内でコンテンツの幅方向の配置を調整するステップを有する
ことを特徴とする請求項1乃至請求項9の何れか1項に記載の画像処理方法。
【請求項11】
前記最終レイアウト生成ステップは、
前記ページ領域内にブロックが配置されない空白領域を前記ページ領域のそれぞれで均一化するように、前記ブロックを該ページ領域間で移動させるステップをさらに有する
ことを特徴とする請求項1乃至請求項10の何れか1項に記載の画像処理装置。
【請求項12】
前記最終レイアウト生成ステップは、
前記ページ領域の再下段に配置されるブロックの下辺と該ページ領域の下辺との間の空白部を分割して、該ページ領域内に配置される各ブロック間にそれぞれ配置するステップをさらに有する
ことを特徴とする請求項1乃至請求項10の何れか1項に記載の画像処理方法。
【請求項13】
幅と、所定の高さ毎に順序付けて区切られた領域からなるページ領域とが定義される配置領域に対して複数のコンテンツを配置して出力する画像処理装置であって、
前記配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、前記配置領域の幅を持ち、該高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、前記配置領域の高さ方向の一方の端を先頭として、隣接する該ブロックと接するように順次配置し、
前記配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に該配置領域の幅を超えず、且つ、全コンテンツが配置された際の前記ブロックによる全体の高さが近似的に最小となるように配置する最密充填レイアウト生成手段と、
前記最密充填レイアウト生成手段により、前記ブロックが前記ページ領域を跨いで配置されている場合に、該ページ領域を跨いだ該ブロックを、該ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行う最終レイアウト生成手段と
を有する
ことを特徴とする画像処理装置。
【請求項14】
幅と、所定の高さ毎に順序付けて区切られた領域からなるページ領域とが定義される配置領域の高さ方向に対して、コンテンツを、幅方向に一列に配置されるコンテンツのうち高さが最大のコンテンツの上端および下端からなる範囲内に配置すると共に、前記配置領域の幅を持ち、該高さが最大のコンテンツの上端および下端で高さが定義されるブロックを、前記配置領域の高さ方向の一方の端を先頭として、隣接する該ブロックと接するように順次配置し、
前記配置領域の幅方向に対して、コンテンツを、隣接するコンテンツと接すると共に該配置領域の幅を超えず、且つ、全コンテンツが配置された際の前記ブロックによる全体の高さが近似的に最小となるように配置する最密充填レイアウト生成ステップと、
前記最密充填レイアウト生成ステップにより、前記ブロックが前記ページ領域を跨いで配置されている場合に、該ページ領域を跨いだ該ブロックを、該ブロックが跨ぐページ領域のうち順序が後以降のページ領域に移動させてブロックの再配置を行う最終レイアウト生成ステップと
をコンピュータに実行させるプログラム。
【請求項15】
請求項14に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7−1】
image rotate

【図7−2】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−219686(P2010−219686A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−61863(P2009−61863)
【出願日】平成21年3月13日(2009.3.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】