JP2015103086A - 画像変換装置、画像変換方法、コンピュータプログラム - Google Patents

画像変換装置、画像変換方法、コンピュータプログラム Download PDF

Info

Publication number
JP2015103086A
JP2015103086A JP2013244125A JP2013244125A JP2015103086A JP 2015103086 A JP2015103086 A JP 2015103086A JP 2013244125 A JP2013244125 A JP 2013244125A JP 2013244125 A JP2013244125 A JP 2013244125A JP 2015103086 A JP2015103086 A JP 2015103086A
Authority
JP
Japan
Prior art keywords
image
file
displayed
page
area
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.)
Pending
Application number
JP2013244125A
Other languages
English (en)
Inventor
洋一 橿渕
Yoichi Kashibuchi
洋一 橿渕
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013244125A priority Critical patent/JP2015103086A/ja
Publication of JP2015103086A publication Critical patent/JP2015103086A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 各コンテンツを表示する際に、コンテンツごとに付与したマスクの表示・非表示を制御する場合、オブジェクトの数が多くなると、オブジェクトと同数のマスクを複雑に制御せねばならないという問題がある。【解決手段】 本発明は、画像データに含まれる各オブジェクトの領域を特定し、当該特定した各オブジェクトの領域に基づいて、各オブジェクトの画像を生成する。そして、前記画像データから低解像度の背景画像を生成し、前記低解像度の背景画像と各オブジェクトの画像とを含む、所定フォーマットのファイルを生成する。【選択図】 図12

Description

本発明は画像データに含まれる各オブジェクトの領域を強調表示するのに適したデータに変換する画像変換装置に関する。
特許文献1には、文字や写真など複数の表示コンテンツから成るコンテンツデータ(電子新聞など)を表示装置に表示する際、各表示コンテンツにマスクを重ね、それらマスクの表示・非表示を制御する。このように各コンテンツに対するマスクの表示・非表示を制御することにより、複数のコンテンツが複雑にレイアウトされていても、これら複数のコンテンツを見やすく表示する。
特開2008−262308号公報
しかしながら、特許文献1のように、各コンテンツを表示する際に、コンテンツごとに付与したマスクの表示・非表示を制御する場合、オブジェクトの数が多くなると、オブジェクトと同数のマスクを複雑に制御せねばならないという問題がある。
上記課題を解決するために、本発明の画像変換装置は、画像データに含まれる各オブジェクトの領域を特定する領域特定手段と、前記領域特定手段で特定した各オブジェクトの領域に基づいて、各オブジェクトの画像を生成するオブジェクト画像生成手段と、前記画像データから低解像度の背景画像を生成する背景画像生成手段と、前記背景画像生成手段で生成された前記低解像度の背景画像と、前記オブジェクト画像生成手段で生成された各オブジェクトの画像とを含む、所定フォーマットのファイルを生成するファイル生成手段と、を有する画像変換装置であって、前記所定フォーマットのファイルは、ページの全体表示を行うためのページ表示モードで表示される場合、前記低解像度の背景画像を用いて表示され、オブジェクトごとに強調表示する部分領域表示モードで表示される場合、前記低解像度の背景画像の上に半透明マスクが重ねて表示され更にその上に表示対象となっている前記オブジェクト画像生成手段で生成されたオブジェクトの画像が表示されることを特徴とする。
本実施例によれば、オブジェクト単位で強調表示する際に、マスクの制御を簡略化することができるようになる。また、作成したデータファイルのデータ量が大きくなりすぎることを抑えることができる。
本発明に係る画像処理システムを示すブロック図である。 図1におけるMFPを示すブロック図である。 第1の実施例で説明するビットマップ画像データを変換するフローチャートである。 第1の実施例で説明するスキャナからの読み込みを示すフローチャートである。 第1の実施例で説明するPCからのデータをビットマップにするフローチャートである。 第1の実施例で説明するオブジェクト画像を生成する処理のフローチャートである。 オブジェクト分割した結果の一例である。 オブジェクト分割情報したときの各属性のブロック情報および入力ファイル情報である。 第1の実施例で説明するOCR処理のフローチャートである。 第1の実施例で説明するページサイズを算出するフローチャートである。 第1の実施例で説明するアプリケーション画像データの第一のフォーマットを携帯情報端末のタッチUIに表示する際の模式図である。 第1の実施例で説明するアプリケーション画像データの第二のフォーマットを携帯情報端末のタッチUIに表示する際の模式図である。 第1の実施例で説明するアプリケーション画像データの生成処理過程での中間データを示すマップである。 アプリケーション画像データを生成する処理を示すフローチャートである。 文書構造ツリー生成の処理を示すフローチャートである。 文書構造ツリー生成処理の対象となる文書を示す図である。 図16の処理によって生成される文書構造ツリーを示す図である。 本実施例で説明するSVG(Scalable Vector Graphics)形式の一例である。 携帯情報端末の構成を示すブロック図である。 携帯情報端末のソフトウェアモジュールの構成を示すブロック図である。 ジェスチャイベント名の一覧と、各イベントが発生したときに送信する情報を示した図である。 携帯情報端末がアプリケーション画像データを受信した際のフローチャートである。 携帯情報端末のタッチUIの画面表示例である。 アプリケーション画像データの操作制御に係わるソフトウェアモジュールの構成を示すブロック図である。 第1の実施例で説明するモード切替処理のフローチャートである。 携帯情報端末のタッチUIの画面表示例である。 第1の実施例で説明する部分領域表示範囲決定処理のフローチャートである。 第1の実施例で説明する次選択処理のフローチャートである。 第1の実施例で説明する前選択処理のフローチャートである。 第1の実施例で説明する移動範囲制限処理のフローチャートである。 第1の実施例で説明するオブジェクト表示処理のフローチャートである。 第1の実施例で説明するオブジェクト選択処理のフローチャートである。 第2の実施例で説明するビットマップ画像データを変換するフローである。 第2の実施例で説明するフォーマット後判定処理のフローである。 第2の実施例で説明するページサイズ算出処理のフローである。
(実施例1)
図1は、本実施形態に係る画像変換処理を実行する画像処理システムの構成を示すブロック図である。
図1において、オフィス内に構築されたLAN102には、複数種類の機能(複写機能、印刷機能、送信機能等)を実現する複合機であるMFP100と、クライアントPC101が接続されている。さらにLAN102には、プロキシサーバ103と、文書管理サーバ106、文書管理サーバ106のためのデータベース105、携帯情報端末107が、無線または有線で接続されている。LAN102は、また、プロキシサーバ103を介してネットワーク104に接続されている。クライアントPC101では、例えば、印刷データをMFP100へ送信することで、その印刷データに基づく印刷物をMFP100で印刷することが可能である。なお、図1の構成は一例であり、同様の構成要素を有する複数のオフィスがネットワーク104上に接続されていても良い。
クライアントPC101、プロキシサーバ103の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素(例えば、CPU、RAM、ROM、ハードディスク、ネットワークI/F、ディスプレイ、キーボード、マウス等)を有している。また、ネットワーク104は、典型的にはインターネットやLANやWANや電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかで実現されている。もちろん、それらの組み合わせにより実現されるいわゆる通信ネットワークであっても良いことは言うまでもなく、データの送受信が可能であれば良い。
図2は、図1におけるMFP100の機能構成を示すブロック図である。図2において、MFP100は、画像読み取り部110、記憶装置(以下、BOX)111、記録装置112、データ処理装置115、入力装置113、表示装置116、ネットワークI/F114で構成される。画像読み取り部110は、図示しないAuto Document Feeder(以下、ADF)を有し、束状の或いは1枚の原稿の画像を光源で照射し、反射画像をレンズで固体撮像素子上に結像する。固体撮像素子は所定解像度(例えば600dpi)および所定輝度レベル(例えば8ビット)の画像読み取り信号を生成し、画像読み取り信号からラスターデータよりなる画像データが構成される。通常の複写機能を実行する際には、画像読み取り部110で得たビットマップ画像データをデータ処理装置115によって、後述するスキャン画像処理して記録信号に変換し、記録装置112で画像形成(印刷出力)する。複数枚複写の場合には、1頁分の記録信号を一旦BOX111に記憶保持した後、記録装置112に順次出力して、記録紙上に記録画像を形成する。MFP100は、クライアントPC101(もしくは他の汎用PC(不図示))からドライバを利用して出力されてくるPDLデータを、LAN102とネットワークI/F114を介して受信し、当該受信したPDLデータに基づく画像を、記録装置112によって記録し得る。すなわち、クライアントPC101からドライバを経由して出力されるPDLデータは、LAN107からネットワークI/F114を経てデータ処理装置115に入力される。そこで言語を解釈・処理することで記録可能な記録信号に変換された後、MFP100において、記録紙上に記録画像として記録される。データ処理装置115は、さらに、ビットマップ画像データ(スキャン画像またはPDLデータをレンダリングして得た画像)を携帯端末で表示するのに適した所定フォーマットのデータに変換する機能を有する画像変換装置である。データ処理装置115はCPUを含み、メモリに格納されたプログラムを実行することにより後述するフローチャートの処理を実行する各処理部として機能する。なお、データ処理装置115は、後述するフローチャートの処理の一部または全部を、CPUではなく、ASIC等の電子回路で実現するように構成しても構わない。
BOX111は、画像読み取り部110からのデータやクライアントPC101からドライバを経由して出力されるPDLデータをレンダリングしたデータを保存できる機能を有している。また、MFP100は、MFP100に設けられたキー操作部(入力装置113)を通じて操作され、操作入力の状態を表示装置116によって表示し得る。
図3は、MFP100のデータ処理装置115が、ビットマップ画像データを、携帯情報端末107で表示するのに適した所定のフォーマットのデータ(以下ではアプリケーション画像データと呼ぶこととする)に変換する処理を説明するためのフローチャートである。なお、ビットマップ画像データは、MFP100の画像読み取り部110により文書をスキャンすることにより取得、または、クライアントPC101上においてアプリケーションソフトで作成されたドキュメントをMFP100内部でレンダリングして生成される。
まず、ステップS301において、データ処理装置115は、処理対象として入力されたビットマップ画像データを属性毎のオブジェクト(属性毎の領域)に分割するオブジェクト分割処理(領域特定処理)を行う。オブジェクト分割時に分類される各オブジェクトの属性種類は、文字、写真、グラフィック(図面、線画、表、ライン)がある。オブジェクト分割処理では、画像データを解析して各オブジェクトの領域を特定する。次に、ステップS302において、ステップS301で分割したオブジェクトのうち未処理のオブジェクトがあるか判定し、未処理のオブジェクトがあればそのオブジェクトを処理対象の着目オブジェクトとしてステップS303へ進む。一方、全てのオブジェクトの処理が終了していればステップS305へ進む。
ステップS303において、S302で処理対象とした着目オブジェクトの属性が文字であるか判定し、文字の場合には、ステップS304に進み、OCR処理を施し、文字コード化されたデータ(OCR結果の文字コードデータ)を取得する。一方、S303において、着目オブジェクトの属性が文字以外であると判定した場合は、次の未処理のオブジェクトを処理対象とするためにステップS302へ戻る。
ステップS305において、データ処理装置115は、ステップS301で分割されたオブジェクトに基づいて、ページ(ビットマップ画像データ)毎に、後述するアプリケーション画像データを生成した際のページサイズ(データ量)を予測計算するページサイズ算出処理を行う。なお、ページサイズ算出処理の詳細は後述する。
ステップS306において、データ処理装置115は、ステップS305で算出したページサイズが所定の大きさよりも大きいか否かを判定し、大きければステップS309へ、そうでなければステップS307へ進む。本実施例では、後述するようにS305で算出されるページサイズの単位はピクセル数であるので、ページサイズがビットマップ画像データのピクセル数よりも大きくなるかを判定する。
ステップS307において、データ処理装置115は、ステップS301で分割した各オブジェクトに対して、後述するオブジェクト画像生成処理を行う。次に、ステップS308において、S301で処理対象として入力されたビットマップ画像データ全体を解像度変換して、該ビットマップ画像データよりも解像度の低い背景画像を生成する。本実施例においては、ニアレストネイバー法を用いて1/4の低解像度の背景画像(例えば、ビットマップ画像データが600dpiである場合は、150dpiの背景画像)を生成する。なお、解像度変換の方法は、ニアレストネイバー法に限るものではなく、例えば、バイリニア法やバイキュービック法といった高精度な補間方法を用いても良いことは言うまでもない。
ステップS309において、データ処理装置115は、ステップS308で背景画像が生成されていればそれをJPEG圧縮し、生成されていなければS301で処理対象として入力されたビットマップ画像データをJPEG圧縮することにより、背景画像を生成する。
ステップS310において、データ処理装置115は、S307でオブジェクト画像を生成していた場合は、S307で得た各オブジェクトのデータと、S309で得た背景画像のデータと、S304で得た文字コードデータとを一つのファイルにまとめ、携帯情報端末107が表示可能なアプリケーション画像データを生成する。一方、S307でオブジェクト画像を生成していなかった場合は、S309で得た背景画像のデータと、S304で得た文字コードデータとを一つのファイルにまとめ、携帯情報端末107が表示可能なアプリケーション画像データのファイルを生成する。最後に、ステップS311において、データ処理装置115は、生成したアプリケーション画像データのファイルを携帯情報端末107に送信する。
なお、本実施例のステップS306において、基準とする値をビットマップ画像データのピクセル数とし、ページサイズがビットマップ画像データのピクセル数よりも大きいか否かで判定をすると説明したが、それに限るものではない。例えば、生成したアプリケーション画像データを表示する携帯情報端末107の性能が低スペックであれば、ステップS307の処理に進みやすくなるように重み付けを行って比較するようにしてもよい。例えば、「S305で算出されたページサイズ」が、「(ビットマップ画像データのピクセル数)×1.2」より大きいか否かで判定するようにすればよい。ステップS307に進んだ場合、携帯情報端末107は、大きなサイズの背景画像を拡大したり縮小したりして表示する機会が減るため、例えば処理能力の低いCPUや少ない内部メモリであっても、動作がもたついたり、メモリ不足に陥ることを極力回避することができる。また、本実施例ではページサイズの単位はピクセル数としたがそれに限るものではなく、例えば、オブジェクトのビットマップ画像データに対する面積率を用いるなど、ページに占めるオブジェクトの割合が判定できる単位であれば良い。
図4と図5を用いて、S301で処理対象として入力されるビットマップ画像データがどのように作成されたものかについて説明する。図4は、MFP100の画像読み取り部110を使用した場合のビットマップ画像データ作成のフローチャート、図5は、PC101上のアプリケーションを使用した場合のフローチャートである。すなわち、図4または図5で生成されたビットマップ画像データに対して、上述した図3の処理が実行される。
MFP100の画像読み取り部(スキャナ)110を使用した場合には、図4のステップS401において、文書(紙原稿)をスキャンして画像を得る。次に、ステップS402において、S401で得られた画像に対して、画像読み取り部110の特性に依存するスキャナ画像処理を行うことにより、ビットマップ画像データを生成する。ここで言うスキャナ画像処理とは、例えば、色処理やフィルタ処理を指す。
PC101上のアプリケーションから得られるデータに基づいて処理対象のビットマップ画像を生成する場合は以下のようになる。まず、図5のステップS501において、PC101上のアプリケーションを使用して作成したデータが、PC101上にあるプリントドライバを介してプリントデータに変換され、MFP100に送信される。ここで言うプリントデータとは、PDLを意味し、例えば、LIPS(商標)、PostScript(商標)等のページ記述言語を指す。次にステップS502において、MFP100内部に存在するインタープリタは、受信したPDLを解釈してディスプレイリストを生成する。さらに、ステップS503において、MFP100に存在するレンダラが、当該生成されたディスプレイリストをレンダリングすることにより、ビットマップ画像データを生成する。
次に、図7と図8を用いて、ステップS301のオブジェクト分割処理で得られるデータの詳細を説明する。図7は、オブジェクト分割処理によって、ビットマップ画像データを複数のオブジェクトに分割した結果の一例である。図8は、オブジェクト分割したときの各オブジェクトのブロック情報および入力ファイル情報を表す。
図7の左のような入力画像に対してオブジェクト分割処理を行うと、図7の右のように、属性ごとの矩形ブロックに分割される。前述したように、矩形ブロックの属性としては、文字、写真、グラフィック(図面、線画、表、ライン)がある。オブジェクト分割処理の手法としては、例えば以下のような手法がある。まず、MFP100内のRAM(不図示)に格納されたイメージデータを白黒に2値化し、黒画素輪郭で囲まれる画素塊を抽出する。さらに、このように抽出された黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊については内部に文字を含むもの(表領域など)である可能性があるので、その黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。白画素塊に対する大きさ評価、内部黒画素塊の追跡というように、内部の画素塊が所定値以上である限り、再帰的に内部画素塊の抽出、輪郭追跡を行う。画素塊の大きさは、例えば画素塊の面積によって評価される。このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさ、形状に基づき属性を判定する。例えば、縦横比が1に近く、且つ大きさが一定の範囲(文字として通常使用されるサイズ)の矩形ブロックは、文字領域矩形ブロックの可能性がある文字相当ブロックとする。また、近接する文字相当ブロックが規則正しく整列しているときに、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、新たな矩形ブロックを文字領域矩形ブロックとする。また扁平な画素塊、もしくは、一定大きさ以上でかつ四角形の白画素塊を整列よく内包する黒画素塊をグラフィック領域矩形ブロック、それ以外の不定形の画素塊を写真領域矩形ブロックとする。
このようにして生成された矩形ブロックのそれぞれについて、図8に示すように、属性等のブロック情報および入力ファイル情報を生成する。図8において、ブロック情報には各ブロックの属性、位置の座標X、座標Y、幅W、高さH、OCR情報が含まれる。属性は1〜3の数値で与えられ、1は文字領域矩形ブロック、2は写真領域矩形ブロック、3はグラフィック領域矩形ブロックを示す。座標X、座標Yは入力画像における各矩形ブロックの始点のX、Y座標(左上角の座標)である。幅W、高さHは矩形ブロックのX座標方向の幅、Y座標方向の高さである。OCR情報は、ステップS304のOCR処理で文字コード化されたデータへのポインタ情報の有無を示す。さらに入力ファイル情報として矩形ブロックの個数を示すブロック総数Nも保存しておく。
これらの矩形ブロックごとのブロック情報は、後述のOCR処理やアプリケーション画像データ生成処理に利用される。またブロック情報によって、特定領域とその他の領域を重ねる際の相対位置関係を特定でき、入力画像のレイアウトを損なわずに各領域を重ねることが可能となる。
次に、図9のフローチャートを用いて、図3のステップS304のOCR処理について詳細に説明する。
ステップS901において、データ処理装置115は、特定領域(処理対象の着目オブジェクト)が文字領域矩形ブロックであるか否か判断し、文字領域の矩形ブロックであればステップS902以下のステップに進む。一方、特定領域が文字領域矩形ブロックでないときは、OCR処理を終了する。
ステップS902〜S907では、パターンマッチング等の手法を用いて文字認識処理を行い、対応する文字コードを得る。例えば、ステップS902において、データ処理装置115は、特定領域に対し横書き、縦書きの判定(組み方向判定)を行うために、特定領域内で画素値に対する水平・垂直の射影を取る。次に、ステップS903において、ステップS902の射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判断する。ステップS904において、ステップS903の評価結果に基づき、組み方向を判定し、行の切り出しを行い、その後文字を切り出して文字画像を得る。文字列および文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、切り出された行に対する垂直方向の射影から、文字を切り出す。縦書きの文字領域に対しては、水平と垂直について逆の処理を行う。行、文字切り出しに際して、文字のサイズも検出し得る。次に、ステップS905において、ステップS904で切り出された各文字について、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルを生成する。特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。ステップS906において、ステップS905で得られた観測特徴ベクトルと、あらかじめフォントの種類ごとに求められている辞書特徴ベクトルとを比較し、観測特徴ベクトルと辞書特徴ベクトルとの距離を算出する。ステップS907において、ステップS906で算出された距離を評価し、最も距離の近い文字を認識結果とする。次に、ステップS908において、ステップS907における距離評価の最短距離が所定値よりも大きいか否か、類似度を判断する。最短距離が所定値以上の(類似度が低い)場合は、辞書特徴ベクトルにおいて、形状が類似する他の文字に誤認識している可能性が高い。そこで最短距離が所定値以上の文字の(類似度が低い)場合は、ステップS907の認識結果を採用しない。最短距離が所定値より小さい文字の(類似度が高い)場合は、ステップS907の認識結果を採用し、ステップ909に進む。ステップS909では、文字フォントの種類を認識する。文字認識の際に用いる、フォントの種類数分の辞書特徴ベクトルを、文字形状種すなわちフォント種に対して複数用意しておく。これを、パターンマッチングの際に、文字コードとともにフォント種を出力することで、文字フォントを認識し得る。以上の処理により、文字領域矩形ブロックに属するイメージ情報から文字コードデータを得る。
図6は、データ処理装置115で行うステップS307のオブジェクト画像生成処理についての詳細を示すフローチャートである。
まず、ステップS600において、ステップS301で分割したすべてのオブジェクトの処理が終了したか判定し、未処理のオブジェクトがあれば、その中の1つを処理対象としてステップS601以降の処理を行う。ステップS601において、処理対象オブジェクトの位置情報に基づいて、入力ビットマップ画像から処理対象オブジェクトの領域の画像を抽出して、オブジェクト画像を生成する。S602において、該オブジェクトの属性種類が文字であるか否かを判定し、文字である場合にはステップS604へ進み、それ以外である場合にはステップS603へ進む。ステップS603において、ステップS601で生成したオブジェクト画像に解像度変換を施して、ビットマップ画像データよりも解像度の低いオブジェクト画像に変換する。本実施例においては、ニアレストネイバー法を用いて幅、高さ共に1/2の解像度、すなわち、ビットマップ画像データが600dpiである場合に、300dpiのオブジェクト画像を生成する。このようにして、本実施例のオブジェクト画像生成処理では、拡大して閲覧することが多い文字属性のオブジェクトには解像度変換を行わず、拡大することの比較的少ない写真属性などのオブジェクトには解像度変換を行う。それにより、オブジェクトの属性に応じて好適な画質を維持しながら、より少ないデータ量に抑えてアプリケーション画像データを生成することが出来る。ステップS604において、文字属性のオブジェクトについてはステップS601で得たオブジェクト画像をJPEG圧縮し、文字以外の属性のオブジェクトについてはステップS603で解像度変換されたオブジェクト画像をJPEG圧縮する。なお、本実施例において、文字属性を除外し、文字属性以外のオブジェクトを解像度変換すると説明したが、それに限るものではなく、例えば、ラインといったより滑らかさが求められるオブジェクトに対しても解像度変換を行わないように制御しても良いことは言うまでもない。また、本実施例のように文字と文字以外の二段階ではなく、オブジェクトの属性に応じて、より段階的に解像度を制御しても良いことは言うまでもない。
図10は、データ処理装置115で行うステップS305のページサイズ算出処理についての詳細を示すフローチャートである。
まず、ステップS1000において、ページサイズを初期化する。本実施例においては、ゼロで初期化する。ステップS1001において、入力ビットマップ画像を解像度変換した場合のピクセル数を、ステップS1000で初期化したページサイズに加算する。本実施例においては、ステップS308でビットマップ画像データを幅、高さ共に1/4の解像度に落とすので、ビットマップ画像データのピクセル数を1/16にしてページサイズに加算する。ステップS1002において、ステップS301で分割したすべてのオブジェクトの処理が終了したかを判定し、未処理のオブジェクトがあればその中の1つを処理対象としてステップS1003以降の処理を行う。一方、全てのオブジェクトの処理が終了したと判断した場合はページサイズの算出処理を終了する。
ステップS1003において、処理対象のオブジェクトの属性種類が文字であるか否かを判定し、文字である場合にはステップS1004へ進み、それ以外である場合にはステップS1005へ進む。ステップS1004において、処理対象のオブジェクトの位置情報(幅と高さ)を用いてオブジェクト画像のピクセル数を算出して前記ページサイズに加算する。本実施例のオブジェクト画像生成処理においては、属性種類が文字である場合に解像度変換を行わないため、オブジェクト画像のピクセル数をそのまま前記ページサイズに加算する。一方、ステップS1005において、該オブジェクトの位置情報(幅と高さ)を用いて解像度変換を行ったオブジェクト画像のピクセル数を算出して前記ページサイズに加算する。本実施例のオブジェクト画像生成処理においては、属性種類が文字でない場合に解像度変換を行い、幅、高さ共に1/2の解像度へ変換するため、オブジェクト画像のピクセル数の1/4を前記ページサイズに加算する。
なお、背景画像やオブジェクト画像を画像ファイルとして保持するとき、その画像ファイルのフォーマットに応じて画像ファイルの内容を記述したファイルヘッダが含まれる場合がある。このファイルヘッダのデータ量は、ピクセル数による前記ページサイズの計算に含まれないが、例えばオブジェクト画像が多量にある場合には無視できない可能性がある。そのため、例えば、前記ページサイズの初期化時に一定のオフセットを設けたり、各オブジェクト画像のピクセル数をページサイズに加算する際に、一定量をさらに加算するなどしても良い。
次に、図13と図14を用いて、ステップS310のアプリケーション画像データ生成について詳細に説明する。図13は、本実施例に係る図3のアプリケーション画像データを生成する過程で生まれる中間データのデータ構成を示すマップである。図14は、アプリケーション画像データ生成処理の詳細を示すフローチャートである。
まず、ステップS1401において、ステップS301〜S309の処理で生成された中間データを取得する。本実施形態において、中間データは、以下のようなドキュメント・アナリシス・アウトプット・フォーマット(以下、DAOF)と呼ぶ形式で保存されているものとする。図13に示すように、DAOFは、ヘッダ1301、レイアウト記述データ部1302、文字認識記述データ部1303、表記述データ部1304、画像記述データ部1305よりなる。ヘッダ1301には、処理対象の入力画像に関する情報が保持される。レイアウト記述データ部1302には、入力画像中の矩形ブロックの属性である文字、グラフィック(線画、図面 、表、ライン)、写真等の情報と、これら属性が認識された各矩形ブロックの位置情報が保持される。文字認識記述データ部1303には、文字領域矩形ブロックのうち、文字認識して得られる文字認識結果が保持される。表記述データ部1304には、表の属性を持つグラフィック領域矩形ブロックの表構造の詳細が格納される。画像記述データ部1305には、ステップS307で生成した背景画像と、オブジェクトに分割され前記オブジェクト画像生成処理で生成したデータが保持される。次に、ステップS1402において、後述する文書構造ツリー生成を行う。ステップS1403において、文書構造ツリーに基づいて、DAOF内の実データを取得し、後述するアプリケーション画像データを生成する。
図15〜17を用いて、ステップS1402の文書構造ツリー生成処理の詳細について説明する。図15は、文書構造ツリー生成処理を示すフローチャートである。図16は、文書構造ツリー生成処理の対象となる文書において、S301で得た各オブジェクトの位置を示す模式図である。図17は、文書構造ツリー生成の処理によって生成される文書構造ツリーを示す図である。
図15に示す文書構造ツリー生成の処理における全体制御の基本ルールとして、処理の流れはミクロブロック(各オブジェクトを示す単一矩形ブロック)からマクロブロック(矩形ブロックの集合体)へ移行する。以後「矩形ブロック」は、ミクロブロックおよびマクロブロック両者を意味するものとする。
まず、ステップS1501において、データ処理装置115は、矩形ブロック単位で、縦方向の関連性に基づいて、矩形ブロックをグループ化する。S1501の処理は繰り返し実行されることがあるが、処理開始直後はミクロブロック単位での判定となる。ここで、関連性とは、距離が近い、ブロック幅(横方向の場合は高さ)がほぼ同一であることなどの特徴によって定義される。また、距離、幅、高さなどの情報はDAOFを参照し、抽出する。例えば、図16の文書では、最上部で、矩形ブロックT1、T2が横方向に並列されている。矩形ブロックT1、T2の下には横方向セパレータS1が存在し、横方向セパレータS1の下に矩形ブロックT3、T4、T5、T6、T7が存在する。矩形ブロックT3、T4、T5は、横方向セパレータS1下側の領域における左半部において上から下に、縦方向に配列され、矩形ブロックT6、T7は、横方向セパレータS1下側の領域における右半部において上下に配列されている。ステップS1501の縦方向の関連性に基づくグルーピングの処理を実行すると、矩形ブロックT3、T4、T5が1個のグループ(矩形ブロック)V1にまとめられ、矩形ブロックT6、T7が1個のグループ(矩形ブロック)V2にまとめられる。グループV1、V2は同一階層となる。次に、ステップS1502において、縦方向のセパレータの有無をチェックする。セパレータは、DAOF中でライン属性を持つオブジェクトであり、明示的にブロックを分割する機能をもつ。セパレータを検出すると、処理対象の階層において、入力画像の領域を、セパレータを境界として左右に分割する。図16では縦方向のセパレータは存在しない。次に、ステップS1503において、全ての矩形ブロックが1つのマクロブロックにグルーピングされたか判定することで、処理の終了判断を行う。グルーピングが終了したときはそのまま処理終了し、グルーピングが終了していなかったときはステップS1504に進む。次に、ステップS1504において、横方向の関連性に基づくグルーピングの処理を実行する。これによって、例えば図16の矩形ブロックT1、T2が1個のグループ(矩形ブロック)H1にまとめられ、矩形ブロックV1、V2が1個のグループ(矩形ブロック)H2にまとめられる。グループH1、H2は同一階層となる。次に、ステップS1505において、横方向のセパレータの有無をチェックする。セパレータを検出すると、処理対象の階層において、入力画像の領域を、セパレータを境界として上下に分割する。図16では横方向のセパレータS1が存在する。次に、ステップS1506において、全ての矩形ブロックが1つのマクロブロックにグルーピングされたか判定することで、処理の終了判断を行う。グルーピングが終了したときはそのまま処理終了し、グルーピングが終了していなかったときはステップS1501に戻る。図16の例では、S1501に戻って矩形ブロックH1、S1、H2が1個のグループ(矩形ブロック)V0にまとめられる。
以上の処理結果は図17のツリーとして登録される。図17において、入力された1ページのビットマップ画像データV0は、最上位階層にグループH1、H2、セパレータS1を有し、グループH1には第2階層の矩形ブロックT1、T2が属する。グループH2には、第2階層のグループV1、V2が属し、グループV1には、第3階層の矩形ブロックT3、T4、T5が属し、グループV2には、第3階層の矩形ブロックT6、T7が属する。本実施例において、V0はページ全体を表し、V0の下位階層にあるものがオブジェクトとなる。
次に、図18を用いて、本実施例におけるアプリケーション画像データの生成と、フォーマットの一例を示す。本実施例では、アプリケーション画像データのフォーマットとして、Scalable Vector Graphics(以下、SVG)形式を用いて説明する。
図18では説明のため、ページの背景と各オブジェクトの表記を、枠1801と1802、及び1804で囲って示している。ページの背景と各オブジェクトは、それらの領域を示す領域情報と、DAOF内の実データから取得する描画要素を持つ。
まず、DAOF内のページV0から背景を取得する。1801はページの背景を示し、そこには、背景の領域を示す領域情報と、描画要素としてステップS309で生成される背景画像のリンクが示されている。次に、DAOF内のV0の下位階層にある各オブジェクトを、背景1801と同階層にグループを生成し、その下位階層に各オブジェクトを生成していく。ステップS306でページサイズが大きくないと判断され、ステップS307のオブジェクト画像生成処理がなされた場合、1802に、文字属性を示し、文字オブジェクトの領域情報と、文字オブジェクトの描画要素として前記ステップS307で生成されるオブジェクト画像のリンクとが記載される。文字オブジェクトには加えて、1803に前記ステップS304のOCR処理で得られる文字コードデータ及び前記ステップS304のOCR処理で得られる文字サイズが示される。また、ステップS304のOCR処理で得られる文字領域の組み方向(縦書き、もしくは横書き)についても記すことが可能である。1804は、写真属性であり、写真オブジェクトの領域情報と描画要素が示されている。また、例えば図17のH1、H2、V1、V2など下位階層にあるオブジェクトは、オブジェクトの上位階層にグループを生成し、そのグループの下位階層に生成する。
なお、ステップS306でページサイズが大きいと判断され、ステップS307のオブジェクト画像生成処理がなされなかったページにおいては、1802に描画要素を持たず、領域情報のみを持つオブジェクトで構成されるアプリケーション画像データが生成される。その際、背景画像は、ステップS308での解像度変換処理が行われないため、ビットマップ画像データと同等の高い解像度を持つ。以下、このアプリケーション画像データの構成を第一フォーマットと呼ぶ。
また、ステップS307のオブジェクト画像生成処理がなされたページにおいては、上述したように、領域情報と描画要素を持つオブジェクトが生成され、背景画像はステップS308で解像度変換が行われた背景画像が生成される。以下、このアプリケーション画像データの構成を第二フォーマットと呼ぶ。
なお、本実施例ではアプリケーション画像データをSVG形式で表記しているが、文書の意味や構造を記述・保持できる画像フォーマットであれば良く、これに限定されるものではない。
図19は、本実施例における携帯情報端末107の構成例を示すブロック図である。
携帯情報端末107は、メインボード1900、LCD1901、タッチパネル1902、ボタンデバイス1903から構成される。また、LCD1901とタッチパネル1902をまとめてタッチUI1904と呼ぶこととする。
メインボード1900の主な構成要素は以下である。CPU1905、無線LANモジュール1906、電源コントローラ1907、ディスプレイコントローラ(DISPC)1908、パネルコントローラ(PANELC)1909、ROM1910、RAM1911、二次電池1912、タイマー1913。それぞれのモジュール1905〜1913は、バス(不図示)によって接続されている。
CPU1905は、バスに接続される各デバイスを制御すると共に、ROM1910に記憶された後述のソフトウェアモジュール2000を、RAM1911に展開して実行するプロセッサである。RAM1911は、CPU1905のメインメモリ、ワークエリア、LCD1901に表示するビデオイメージ用エリア、およびMFP100から送信される前記アプリケーション画像データの保存領域として機能する。
ディスプレイコントローラ(DISPC)1908は、CPU1905の要求に応じて、RAM1911に展開されたビデオイメージ出力を高速に切り替えるとともに、LCD1901に同期信号を出力する。結果として、RAM1911のビデオイメージが、DISPC1908の同期信号に同期してLCD1901に出力され、LCD1901上にイメージが表示される。
パネルコントローラ(PANELC)1909は、CPU1905の要求に応じて、タッチパネル1902およびボタンデバイス1903を制御する。その制御によって、ユーザの指又はスタイラスペンなどの指示物によりタッチされたタッチパネル1902上の押下位置や、押下されたボタンデバイス1903のキーコードなどが、CPU1905に通知される。押下位置情報は、タッチパネル1902の横方向の絶対位置を示す座標値(以下x座標)と、縦方向の絶対位置を示す座標値(以下y座標)から成る。タッチパネル1902は複数ポイントの押下を検知することが可能で、その場合CPU1905には押下点数分の押下位置情報が通知される。
電源コントローラ1907は、外部電源(不図示)と接続され電力の供給を受ける。これによって、電源コントローラ1907に接続された二次電池1912を充電しながら、且つ、携帯情報端末107全体に電力を供給する。外部電源から電力が供給されないときは、二次電池1912からの電力を携帯情報端末107全体に供給する。
無線LANモジュール1906は、CPU1905の制御に基づいて、前記LAN102に接続された無線アクセスポイント(不図示)上の無線LANモジュールとの無線通信を確立し、携帯情報端末107との通信を仲介する。無線LANモジュール1906には、例えばIEEE802.11bなどがある。
タイマー1913は、CPU1905の制御に基づいて、ジェスチャイベント発生部2001へのタイマー割込を発生させる。ジェスチャイベント発生部2001については後述する。また、携帯情報端末107には地磁気センサ(不図示)や加速度センサ(不図示)がバス(不図示)に接続されている。タイマー1913は、CPU1905の制御に基づいて、携帯情報端末107の傾きを検知し、携帯情報端末107が所定以上の傾きを得ると、携帯情報端末107の向きを変更し、描画部2003にLCD1901への描画の指示を送る。CPU1905は、前記携帯情報端末107の向きが変更されるとき、LCD1901の幅および高さを入れ替えて、以降の処理を行う。
図20は、携帯情報端末107のCPU1905で実行処理されるソフトウェアモジュール2000の構成を示すブロック図である。CPU1905は、コンピュータプログラムを実行することにより、後述するフローチャートの処理を実行する各処理部として機能する。ソフトウェアモジュール2000を構成する各モジュールについて説明する。
ジェスチャイベント発生部2001は、ユーザのタッチ入力を受けて、後述する各種ジェスチャイベントを発生させる。ジェスチャイベント発生部2001は、発生したジェスチャイベントを、ジェスチャイベント処理部2002へ送信する。ジェスチャイベント処理部2002は、ジェスチャイベント発生部2001で発生したジェスチャイベントを受信して、各ジェスチャイベントと、前記アプリケーション画像データに記述された文書構造に応じた処理を実行する。描画部2003は、ジェスチャイベント処理部2002の実行結果に応じて、MFP100から送信される前記アプリケーション画像データをLCD1901へ描画する。アプリケーション画像データの表示の方法については後述する。
次に、図21を用いて、ジェスチャイベント発生部2001で発生するジェスチャイベント名の一覧と、各イベントが発生したときに、ジェスチャイベント処理部2200へ送信する情報を示している。
図21(a)は、タッチ押下イベントであり、最新のタッチ座標の座標値とタッチ座標数が送信される。タッチ座標とは、タッチパネル1902にユーザの指が触れている1点の座標のことで、x座標とy座標で表される1組の座標値を持つ。また、タッチ座標数とは、タッチパネル1902にユーザの指が接触したタッチ座標の数を示している。なお、タッチ座標は、タッチパネル1902へユーザの指が触れたとき、指が移動したとき、指が離れたとき、タイマー1913からの割り込みが発生したときに更新される。
図21(b)は、スワイプイベントであり、最新のタッチ座標の座標値と、最新と直前の座標値の差分から計算した移動距離が送信される。ここで、スワイプとは、指先をタッチパネル1902に接触させたまま、1方向に移動(滑らすような)動作のことをいう。
図21(c)は、ピンチインイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の中心座標値、及び、2点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率が送信される。ここで、ピンチインとは、ユーザが2つの指先をタッチパネル1902に接触させたまま、互いに近づける(つまむような)動作のことをいう。
図21(d)は、ピンチアウトイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の中心座標値、及び、2点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率が送信される。ここで、ピンチアウトとは、2つの指先をタッチパネル1902に接触させたまま、互いに遠ざける(指を広げるような)動作のことをいう。
図21(e)は、2点スワイプイベントであり、ユーザが同時にタッチした2本の指に対応する最新の2点のタッチ座標の座標値、及び、2点のタッチ座標の最新と直前の座標値の差分から計算した移動距離が送信される。2点スワイプイベントは、2点のタッチ座標が同じ方向に移動している場合に発生する。
図21(f)は、ローテートイベントであり、最新の2点のタッチ座標の座標値から計算した回転の中心座標値、及び、2点のタッチ座標の最新と直前の座標値から計算した回転角度が送信される。ここで、ローテートとは、2つの指先をタッチパネル1902に接触させたまま、2つの指先をタッチパネル1902に対して回転させる動作のことを言う。
図21(g)は、フリックイベントであり、最新のタッチ座標の座標値、及び、最新と直前の座標値から計算した指の移動速度が送信される。ここで、フリックとは、スワイプ中に指を離す(指をはじくような)動作のことをいう。
図21(h)は、タッチ解除イベントであり、タッチパネル1902からユーザの指が離れたときの最新のタッチ座標の座標値、及び、座標数が送信される。
図21(i)は、ダブルタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、ダブルタップとは、所定の時間内に後述のシングルタップイベントが2回発生したことを言う。
図21(j)は、シングルタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、シングルタップとは、前述のタッチ押下イベントの後、所定の時間内にタッチ解除イベントが発生したことを言う。
図21(k)は、ロングタップイベントであり、最新のタッチ座標の座標値が送信される。ここで、ロングタップとは、前述のタッチ押下イベントの後、所定の時間以上経過してからタッチ解除イベントが発生したことを言う。
図21(l)は、タッチアンドホールドイベントであり、最新のタッチ座標の座標値が送信される。ここで、タッチアンドホールドイベントとは、タッチパネル1902にユーザの指が触れてから一度も移動することなく所定の時間以上経過したことを言う。
なお、ここでは、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
次に、図22と図23を用いて、本実施例における携帯情報端末107の前記アプリケーション画像データ受信時の処理について説明する。図22は、携帯情報端末107がアプリケーション画像データを受信した際のフローチャートである。図23は、本実施例における携帯情報端末107のタッチUI1904の画面表示例である。
まず、ステップS2200において、携帯情報端末107は、無線LANモジュール1906を介してMFP100から前記アプリケーション画像データを受信すると、RAM1911に受信したアプリケーション画像データを保存する。次に、ステップS2201において、RAM1911に保存したアプリケーション画像データの構文を解析し、先頭ページを読み込む。次に、ステップS2202において、描画部2003は読み込んだ先頭ページに含まれる背景を、領域情報の始点の座標と幅、高さに応じてレンダリングしてタッチUI1904の表示状態を更新する。このとき、先頭ページは、図23のページ2300に示すように、先頭ページの幅(横の長さ)がタッチUI1904の幅に合うように表示倍率が制御される。また、前記表示倍率で縮小表示したときのページの高さ(縦の長さ)がタッチUI1904の高さよりも小さい場合は、タッチUI1904の中央に表示されるように、タッチUI1904上の座標において、ページ2300の始点が制御される。また、前記表示倍率に縮小したときのページ2300の高さがタッチUI1904の高さよりも大きい場合は、タッチUI1904上の座標において、ページ2300の始点がタッチUI1904の始点(例えば画面の左上)に合うように制御される。このように、タッチUI1904においてページの幅に合わせてページ全体を縮小表示する表示制御方法を、本実施例では「ページ表示モード」と呼ぶこととする。
図24は、携帯情報端末107の前記ジェスチャイベント処理部2002において、アプリケーション画像データの操作制御に係わるソフトウェアモジュールの構成を示すブロック図である。
ジェスチャイベント処理部2002は、ジェスチャイベント発生部2001から、図21に示したジェスチャイベントを受信する。表示変更イベント処理部2400は、ジェスチャイベント処理部2002が受信するジェスチャイベントの内、シングルタップイベント(図21(j))に対する処理を行う。表示変更イベント処理部2400は、シングルタップイベントを受信すると、シングルタップイベントのタッチ座標の座標値が、図23の「モード切替ボタン」2301、「次へボタン」2302、「前へボタン」2303の何れかの領域内であるかを判定する。そして、シングルタップイベントのタッチ座標が「モード切替ボタン」2301上である場合は、後述するモード切替処理を行う。また、前記タッチ座標が「次へボタン」2302上である場合は、後述する「次選択処理」(次へボタン選択処理)を行い、前記タッチ座標が「前へボタン」2303上である場合は、後述する「前選択処理」(前へボタン選択処理)を行う。「次選択処理」と「前選択処理」は、表示変更イベント処理部2400内の表示順番制御部2402と表示範囲制御部2403において行われる。
スワイプイベント処理部2401は、図21(b)のスワイプイベントに対する処理を行う。ジェスチャイベント処理部2002がスワイプイベントを受信すると、スワイプイベントの移動距離に応じて、タッチUI1904上の座標において、ページ2300の始点を移動させる。そして、その上でタッチUI1904の表示状態を更新する。また、スワイプイベント処理部2401内の移動範囲制限部2404において、後述する移動範囲制限処理を行って、タッチUI1904に表示されるページ2300の移動範囲を制限する。
拡大・縮小イベント処理部2405は、図21(c)のピンチインイベントと、図21(d)のピンチアウトイベントに対する処理を行う。ジェスチャイベント処理部2002は、ピンチインイベントやピンチアウトイベントを受信すると、前記二つのイベントの縮小率もしくは拡大率に応じてページ2300の表示倍率を変化させ、その上でタッチUI1904の表示状態を更新する。
オブジェクト選択処理部2408は、図21(i)のダブルタップイベントに対する処理を行う。ジェスチャイベント処理部2002がダブルタップイベントを受信すると、ダブルタップイベントのタッチ座標の座標値を用いて後述するオブジェクト選択処理を行う。
次に、図23、図25、図26を用いて、表示変更イベント処理部2400において行われるモード切替処理について説明する。図25は、モード切替処理のフローチャートであり、モード切替ボタン2301がユーザによりタップ指示されるのに応じて実行される。図26は、本実施例における携帯情報端末107のタッチUI1904の画面表示例である。
まず、ステップS2500において、表示変更イベント処理部2400は、モード切替ボタン2301がシングルタップされてモード切替処理が実行された時点における、携帯情報端末107に設定中の表示モードを取得する。そして、表示変更イベント処理部2400は、モード切替ボタン2301が指示されたときに携帯情報端末107で設定中の表示モードが、部分領域表示モードであった場合にはステップS2501に進んで、現在の表示モードをページ表示モードへと切り替える。一方、現在設定中の表示モードがページ表示モードであった場合にはステップS2504に進んで、現在の表示モードを部分領域表示モードへ切り替える。
ここで表示モードとは、携帯情報端末107がアプリケーション画像データをタッチUI1904に表示する方法を示し、本実施例の携帯情報端末107は、次の2つの表示モードを有する。第一に、図23に示したように、ページ全体を表示するのに適した「ページ表示モード」である。第二に、図26に示すように、ページ内の一部の領域(すなわちページ内の各オブジェクト)を拡大表示するのに適した「部分領域表示モード」である。前述した通り、アプリケーション画像データを携帯情報端末107が受信した直後はページ表示モードが設定されている。部分領域表示モードは、図26に示す通り、ページ2300内の各オブジェクトが大きく表示されるようにページ2300の表示倍率と始点を制御する表示モードである。文字オブジェクト2601を拡大表示対象のオブジェクトとして選択したときに表示される画面を図26(b)に示す。なお、図26(a)のオブジェクト2601を囲む破線は、説明をわかり易くするために描いたもので、実際のページ2300上には存在しないものとする。また、本実施例では、図26(b)に示すように、拡大表示対象のオブジェクト2601以外の領域に半透明グレーがかかって見えるように、半透明マスク2600を、ページ2300の上に重ねて表示する。また、詳細は後述するが、アプリケーション画像データが各オブジェクトの描画要素を持たない前記第一フォーマットである場合には、半透明マスクからオブジェクト2601の領域情報に応じた位置を型抜きし、半透明マスク2600として背景画像の上に重ねて表示する。すなわち、強調表示対象となっているオブジェクトの領域に対応する位置をくり抜いた半透明マスクを生成して、背景画像の上に重ねて表示する。一方、アプリケーション画像データが各オブジェクトの描画要素を持つ第二フォーマットである場合には、ページ全体の同じサイズで型抜きされていない半透明マスク2600を背景画像の上に重ね、さらに半透明マスク2600の上にオブジェクト2601の描画要素であるオブジェクト画像を重ねる。これによって、対象のオブジェクトだけが見やすくなるようにしている。このような半透明マスクを重ねて表示することにより、対象のオブジェクト以外が暗く表示されるので、対象のオブジェクトが強調表示され、ユーザは表示対象になっているオブジェクトの領域を識別しやすくなる。
ステップS2501においてページ表示モードへ切り替えられた場合、ステップS2502において、表示変更イベント処理部2400は、図26の半透明マスク2600を非表示(半透明マスクOFF)にする。ステップS2503において、表示変更イベント処理部2400は、前述した通り、表示対象ページ2300の幅が、タッチUI1904の幅に合うように表示倍率を制御すると共に、ページ2300の始点を制御して、ページの表示範囲を決定する。その後、ステップS2509において、表示変更イベント処理部2400は、当該決定されたページの表示範囲に基づいて、タッチUI1904の表示状態を更新する。
ステップS2504において、部分領域表示モードへ切り替えられた場合、ステップS2505において、表示変更イベント処理部2400は、背景画像と同じサイズの半透明マスク2600を生成する。ステップS2506において、表示変更イベント処理部2400は、ステップS2505で生成した半透明マスク2600を背景画像の上に表示(半透明マスクON)する。次に、ステップS2507において、表示変更イベント処理部2400は、ページ2300内の表示すべきオブジェクトに関する情報を読み込み、オブジェクトの始点と幅、高さを取得する。本実施例においては、モード切替ボタン2301がユーザにより押された場合は、ページ2300内の先頭オブジェクトを拡大表示対象として読み込む。ここで、先頭オブジェクトとは、アプリケーション画像データの文書構造ツリーにおいて、最初に読み込まれるオブジェクトである。なお、過去にページ2300内のいずれかのオブジェクトが部分領域表示モードで表示されていた場合には、その拡大表示されていたオブジェクトを記憶しておき、ステップS2507において、そのオブジェクトに関する情報を読み込むようにしても良い。ステップS2508において、表示変更イベント処理部2400は、後述するオブジェクト表示処理を行った後、ステップS2509で、当該決定された表示範囲に基づいてタッチUI1904の表示状態を更新する。このとき表示対象となっているオブジェクトの部分領域以外の領域にはグレーの半透明マスクがかけられた様に見えるので、ユーザは、表示対象となっているオブジェクトを識別しやすくなる。
次に、表示変更イベント処理部2400で行われるステップS2508のオブジェクト表示処理の詳細について、図31のフローチャートを用いて説明する。
まず、ステップS3100において、表示変更イベント処理部2400は、読み込んだオブジェクトが描画要素を持っているか否か、すなわちアプリケーション画像データのフォーマットを判定する。各オブジェクトの描画要素を持っていない前記第一フォーマットの場合はステップS3102に進む一方、各オブジェクトの描画要素を持っている前記第二フォーマットの場合はステップS3101に進む。
ステップS3102において、表示変更イベント処理部2400は、当該表示対象のオブジェクトの領域情報(始点、幅、高さ)に基づいて、ステップS2508で生成される半透明マスクから、当該表示対象のオブジェクトに対応する位置を型抜きした半透明マスクを生成する。ステップS3103において、表示変更イベント処理部2400は、半透明マスクを、ステップS3102で型抜きした半透明マスクに更新する。ステップS3104において、表示変更イベント処理部2400内の表示範囲制御部2403は、後述する部分領域表示範囲決定処理を行う。
一方、ステップS3101において、表示変更イベント処理部2400は、オブジェクトの領域情報に応じて、背景画像に重ねて表示されている半透明マスク2600の更に上に当該オブジェクトの描画要素を重ねて表示する。そして、ステップS3104において、後述する部分領域表示範囲決定処理を行う。
このように、アプリケーション画像データが、各オブジェクトの描画要素を持たない第一フォーマットのときは、半透明マスクから表示対象のオブジェクトの位置を型抜きした半透明マスクを生成して更新する。一方、アプリケーション画像データが、各オブジェクトの描画要素を持つ第二フォーマットのときは、背景画像の前面に重ねられた半透明マスクの上に、当該表示対象のオブジェクトの描画要素を表示するように制御する。
次に、表示範囲制御部2403で行われるステップS3104の部分領域表示範囲決定処理の詳細について、図27のフローチャートを用いて説明する。
まず、ステップS2700において、表示範囲制御部2403は、読み込んだオブジェクトの属性を判定する。属性が文字の場合はステップS2702に進み、それ以外の属性である場合はステップS2701に進む。ステップS2701において、表示範囲制御部2403は、当該表示対象のオブジェクト全体がタッチUI1904に入るように、ページの表示倍率を設定し、ステップS2710に進む。ステップS2702において、表示範囲制御部2403は、オブジェクトの文字の組み方向を取得する。オブジェクトの組み方向は、前記ステップS304のOCR処理の過程で得られているものとする。ステップS2703において、表示範囲制御部2403は、文字の組み方向を判定し、組み方向が縦書きである場合にはステップS2704に進み、横書きである場合にはステップS2705に進む。文字の組み方向が縦書きの場合、ステップS2704において、表示範囲制御部2403は、当該オブジェクトの高さがタッチUI1904の高さに入るようにページの表示倍率を設定する。また、文字の組み方向が横書きの場合、ステップS2705において、表示範囲制御部2403は、当該オブジェクトの幅がタッチUI1904の幅に入るようにページの表示倍率を設定する。
次に、ステップS2706において、ステップS2704またはステップS2705で設定した表示倍率に拡縮したオブジェクトの全体がタッチUI1904に表示できるかを判断する。オブジェクト全体がタッチUI1904よりも大きく、全体を表示できない場合にはステップS2707に進み、一方、オブジェクト全体がタッチUI1904よりも小さく、全体を表示できる場合にはステップS2710に進む。ステップS2707において当該オブジェクトにおける文字の組み方向を判定し、縦書きであると判定した場合はステップS2708に進み、横書きであると判定した場合はステップS2709に進む。
ステップS2708において、表示範囲制御部2403は、オブジェクト全体がタッチUI1904に表示できない縦書きの文字領域を表示するので、当該オブジェクトの右上端がタッチUI1904の右上端に合うように、前記ページ2300の始点位置を設定する。すなわち、縦書きの場合の先頭行が表示されるように表示位置を設定する。また、ステップS2709において、表示範囲制御部2403は、オブジェクト全体がタッチUI1904に表示できない横書きの文字領域を表示するので、当該オブジェクトの左上端がタッチUI1904の左上端に合うように、前記ページ2300の始点を設定する。すなわち、横書きの場合の先頭行が表示されるように表示位置を設定する。
ステップS2710において、当該表示対象のオブジェクトの全体がタッチUI1904の画面内に収まるので、表示範囲制御部2403は、当該オブジェクトの中央がタッチUI1904の中央に合うようにページ2300の始点を設定する。
図23および図26で表示されている「次へボタン」2302がユーザによりタップ(指定)されたときに実行される「次選択処理(次へボタン選択処理)」について、図28のフローチャートを用いて説明する。
ステップS2800において、表示変更イベント処理部2400は、「次へボタン」2302がタップされたときに携帯情報端末107に設定されている表示モードを取得する。取得した表示モードが部分領域表示モードである場合には、ステップS2801に進み、ページ表示モードである場合にはステップS2805に進む。ステップS2801において、表示順番制御部2402は、現在読み込んでいるページの全オブジェクトから、文書構造ツリーに基づいて次に表示すべきオブジェクトを選択し、そのオブジェクトを読み込む。本実施例において、文書ツリー構造上の表示順番は、文書ツリー構造において、先頭の上位階層のオブジェクト、そのオブジェクトの下位階層に属するオブジェクトの順である。更に、その下位階層のオブジェクトの表示が全て終わった後、次の上位階層のオブジェクト、その下位階層のオブジェクト、というような順番であるとする。例えば、図17において、V0はページを表し、最初に読み込まれるオブジェクトはT1である。T1のオブジェクトが部分領域表示モードでタッチUI1904に表示されている状態で、「次選択処理」が行われると、同階層にT2を持つため、T2のオブジェクトが読み込まれる。さらに、T2のオブジェクトが表示されている状態で「次選択処理」が行われると、T2は下位階層を持たず、同階層に次のオブジェクトは存在しないため、次の上位階層のS1が読み込まれる。なお、本実施例において、H1やV1といったグループは表示の対象としていないが、それに限るものではなく、グループに領域情報や描画要素を持たせ、それらをオブジェクトとして表示するように構成しても良い。また、例えば、文字属性のオブジェクトのみなど、特定の属性を持つオブジェクトのみを選択したり、特定の属性のみを除外して選択したりできるように構成してもよい。
ステップS2802において、表示順番制御部2402は、ステップS2801で次のオブジェクトを読み込めたか否かを判定する。ステップS2801で次のオブジェクトが読み込めた場合(選択可能なオブジェクトがあった場合)は、当該読み込んだオブジェクトを処理対象としてステップS2508に進む。なお、ステップS2508のオブジェクト表示処理は図25のステップS2508と同様の処理であるため、ここでの説明は省く。そして、ステップS2803において、当該読み込まれたオブジェクトの属性および始点と幅、高さに基づいて制御されたページの表示倍率と始点を用いて、タッチUI1904の表示状態を更新する。
一方、ステップS2801で次のオブジェクトが読み込めなかった場合(次に選択可能なオブジェクトが無かった場合)は、既にそのページ内の最終オブジェクトが読み込まれている状態であり、ステップS2802で全てのオブジェクトの表示処理が終了したと判断し、ステップS2804に進む。ステップS2804において、表示順番制御部2402は、部分領域表示モードを終了して半透明マスク2600を非表示にして、ページ表示モードへと切り替える。
ステップS2805において、表示モードがページ表示モードであるので、RAM1911に保存したアプリケーション画像データの構文を解析し、次のページを読み込む。ステップS2806において、表示順番制御部2402は、ステップS2805で次のページが読み込めた場合はステップS2807に進む。一方、既にRAM1911に保存したアプリケーション画像データの最終ページが読み込まれている状態であり、S2805で次に読み込み可能なページが無かった場合は、ステップS2808に進む。ステップS2808では、RAM1911に保存したアプリケーション画像データの構文を解析し、先頭ページと、それに含まれるオブジェクトを読み込む。次に、ステップS2807において、表示範囲制御部2403は、前述した通り、タッチUI1904の幅に合わせてページの表示倍率を制御すると共に、ページの始点を制御して、ページの表示範囲を決定する。そして、ステップS2803で、当該決定されたページ表示範囲に基づいてタッチUI1904の表示状態を更新する。なお、本実施例では、S2808において、先頭ページに戻って表示を行うように制御するようにしたが、これに限るものではなく、最終ページのまま次のページを表示しないように構成しても構わない。
次に、「前へボタン」2302がユーザによりタップ(指定)されたときに実行される「前選択処理(前へボタン選択処理)」について、図29のフローチャートを用いて説明する。
前選択処理は、前記次選択処理とほぼ同じ構成であるため、ここでは異なるステップS2900とステップS2901、ステップS2902についてのみ説明する。
ステップS2900において、表示順番制御部2402は、現在読み込んでいるページの全オブジェクトから、文書構造ツリーで定められた順番に基づいて1つ前のオブジェクトを選択し、そのオブジェクトを読み込む。本実施例において、「前へボタン」が指定されたときの文書ツリー構造上の表示順番は、文書ツリー構造において末尾の下位階層のオブジェクト、そのオブジェクトの上位階層のオブジェクトというように、下位階層から上位階層への順番であるとする。すなわち、下位階層のオブジェクトの表示が全て終わった後、その上位階層における他のオブジェクトの表示へと移るものとする。例えば、部分領域表示モードで、図17のT7のオブジェクトがタッチUI1904に表示されている状態で、「前選択処理」が行われると、同じ階層にT6が存在するため、T6のオブジェクトが読み込まれる。さらに、T6のオブジェクトが表示されている状態で「前選択処理」が行われると、同じ階層にその他のオブジェクトが存在しないため、その上位階層であるV2と同階層のV1を探索し、V1の下位下層の末尾にあるT5のオブジェクトが読み込まれる。なお、「前選択処理」においても、「次選択処理」と同様に、グループに領域情報や描画要素を持たせ、それらをオブジェクトとして表示しても良く、また、特定の属性を持つオブジェクトのみを選択したり、特定の属性のみを除外して選択したりできるように構成しても構わない。
ステップS2901において、表示順番制御部2402は、RAM1911に保存したアプリケーション画像データの構文を解析し、前のページを読み込む。また、ステップS2902において、表示順番制御部2402は、RAM1911に保存したアプリケーション画像データの構文を解析し、最終ページと、それに含まれるオブジェクトを読み込む。
次に、移動範囲制限部2404で行われる移動範囲制限処理について、図30のフローチャートを用いて説明する。なお、本実施例において、移動範囲制限処理は、部分領域表示モードにおいて現在表示対象となっているオブジェクトができるだけ大きく表示されるように、スワイプ操作が終了したとき、すなわち、ユーザの指がタッチUI1904から離れたときに行われる。
ステップS3000において、移動範囲制限部2404は、スワイプ操作が終了したときの携帯情報端末107に設定されている表示モードを取得して、部分領域表示モードであるか判定する。表示モードが部分領域表示モードである場合にはステップS3001に進み、ページ表示モードである場合には何も行わずに処理を終了する。
ステップS3000で表示モードが部分領域表示モードであると判定した場合には、ステップS3001において、移動範囲制限部2404は、現在のページの表示倍率で表示したときの現在読み込まれている表示対象オブジェクトの幅が、タッチUI1904の画面の幅より大きいか否かを判定する。このとき、前記オブジェクトの幅がタッチUIの画面幅よりも大きい場合には、ステップS3002に進み、そうでない場合には、ステップS3004に進む。ステップS3002において、スワイプイベント処理部2401がスワイプイベントの移動距離に応じてオブジェクトを含むページの表示位置を移動した際に、移動範囲制限部2404は、オブジェクトの左端または右端がタッチUI1904の画面内に移動したかを判定する。その結果、オブジェクトの左端または右端がタッチUIの画面内にあると判定した場合には、ステップS3003に進み、そうでない場合には、ステップS3006に進む。ステップS3003において、移動範囲制限部2404は、画面内に移動された該オブジェクトの左端または右端をタッチUIの画面の端に移動させて、できるだけ大きく該オブジェクトが表示されるように、ページの始点のx座標を補正する。
また、ステップS3001でオブジェクトの幅がタッチUIの画面幅よりも大きくない場合には、ステップS3004において、スワイプイベントの移動距離に応じてオブジェクトを含むページの表示位置を移動した際に、移動範囲制限部2404は、オブジェクトの左端または右端がタッチUIの画面外に移動したかを判定する。その結果、オブジェクトの左端または右端がタッチUIの画面外にあると判定した場合には、ステップS3005に進み、そうでない場合には、ステップS3006に進む。ステップS3005において、移動範囲制限部2404は、当該オブジェクトの左端または右端を画面の端に移動させて、該オブジェクトの全体が表示されるようにページの始点のx座標を補正する。
ステップS3006において、移動範囲制限部2404は、現在のページの表示倍率で表示したときの現在読み込まれている表示対象オブジェクトの高さが、タッチUI1904の画面の高さより大きいか否かを判定する。このとき、前記オブジェクトの高さがタッチUIの画面高さよりも大きい場合には、ステップS3007に進み、そうでない場合には、ステップS3009に進む。ステップS3007において、移動範囲制限部2404は、スワイプイベントの移動距離に応じてオブジェクトを含むページの表示位置を移動した際に、オブジェクトの上端または下端がタッチUI1904の画面内に移動したかを判定する。その結果、オブジェクトの上端または下端がタッチUIの画面内にあると判定した場合には、ステップS3008に進み、そうでない場合には、ステップS3011に進む。ステップS3008において、移動範囲制限部2404は、画面内に移動されたオブジェクトの上端または下端を画面の端に移動させて、できるだけ大きく該オブジェクトが表示されるようにページの始点のy座標を補正する。ステップS3006でオブジェクトの高さがタッチUIの画面高さよりも大きくない場合には、ステップS3009において、移動範囲制限部2404は、スワイプイベントの移動距離に応じてオブジェクトを含むページの表示位置を移動した際に、オブジェクトの上端または下端がタッチUIの画面外に移動したかを判定する。オブジェクトの上端または下端がタッチUIの画面外に移動したと判定した場合には、ステップS3010に進み、そうでない場合には、ステップS3011に進む。ステップS3010において、移動範囲制限部2404は、当該オブジェクトの上端または下端を画面内に移動させて、該オブジェクトの全体が表示されるようにページの始点のy座標を補正する。最後に、ステップS3011において、表示変更イベント処理部2400は、ページの表示倍率と始点に応じてタッチUI1904の表示状態を更新する。
次に、ダブルタップ操作が行われたときに、オブジェクト選択処理部2408で行われるオブジェクト選択処理について、図32のフローチャートを用いて説明する。
まず、ステップS3201において、オブジェクト選択処理部2408は、受信したダブルタップイベントのタッチ座標の座標値を取得する。前記タッチ座標の座標値はタッチUI1904上の座標値であるため、タッチUIに表示しているページの表示倍率と始点に基づいて、ページにおける座標値に換算する。ステップS3202において、タッチUIに表示している現在のページ内の全オブジェクトの中から先頭オブジェクトの情報を読み込む。ステップS3203において、ステップS3201で求めたページにおける座標値が、読み込んだオブジェクトの領域情報内に含まれるか否かを判定する。前記ページにおける座標値が当該読み込んだオブジェクトの領域情報内にある場合には、ステップS3200に進み、そうでない場合にはステップS3206に進む。
ステップS3200において、オブジェクト選択処理部2408は、ユーザにより操作が行われたときの携帯情報端末107に設定されている表示モードを取得する。取得した表示モードがページ表示モードである場合にはステップS3204に進み、部分領域表示モードである場合には、ステップS2508で当該ダブルタップされたオブジェクト(ステップS3202またはステップS3206で読み込んだオブジェクト)のオブジェクト表示処理を行う。ステップS3204において、表示変更イベント処理部2400は、モード切替処理を行い、携帯情報端末107の表示モードを部分領域表示モードに切り替えると共に、ステップS3202またはステップS3206で読み込んだオブジェクトを表示する。
また一方、ステップS3206において、オブジェクト選択処理部2408は、現在のページ内の全オブジェクトの中から、現在読み込んでいるオブジェクトの次のオブジェクトの情報を読み込む。ステップS3207において、オブジェクト選択処理部2408は、ステップS3206で次のオブジェクトが読み込めたか否かを判定し、読み込めた場合にはステップS3203に戻り、読み込めなかった場合(すなわち、オブジェクト以外の部分(余白など)がダブルタップされた場合)にはステップS3208に進む。
ステップS3208において、オブジェクト選択処理部2408は、携帯情報端末107に設定されている表示モードを取得し、取得した表示モードが部分領域表示モードである場合には、ステップS3209へ進み、そうでなければ処理を終了する。ステップS3209において、表示変更イベント処理部2400は、前述のモード切替処理によって、表示モードを部分領域表示モードからページ表示モードへ切り替える。
なお、本実施例において、現在タッチUIに表示しているページ内の全オブジェクトを対象に、前記ページにおける座標値がオブジェクトの領域情報内にあるか否かを判定しているが、それに限るものではない。例えば、グループに領域情報や描画要素を持たせ、それらをオブジェクトとして選択するようにしても良い。また、例えば、文字属性のオブジェクトのみなど、特定の属性を持つオブジェクトのみを選択したり、特定の属性のみを除外して選択することも可能である。
次に、図11と図12を用いて、本実施例における第一フォーマットおよび第二フォーマットのアプリケーション画像データを携帯情報端末107に表示する際の画面構成を詳細に説明する。図11は、前記第一フォーマットのアプリケーション画像データを、携帯端末107のタッチUI1904に表示する際の画面構成を模式的に表した図である。図12は、前記第二フォーマットのアプリケーション画像データを、携帯端末107のタッチUI1904に表示する際の画面構成を模式的に表した図である。
アプリケーション画像データを受信した携帯情報端末107は、ページ表示モードからモード切替の指示により、前記モード切替処理を実行して部分領域表示モードに移行する。図11は、図26のページ2300を第一フォーマットのアプリケーション画像データで受信し、描画要素を持たないオブジェクト2601を、部分領域表示モードでタッチUI1904に拡大表示する際の画面構成を示している。第一フォーマットでは、高解像度の背景画像をページ2300として表示しており、ページ2300の上に半透明マスク2600を表示する。第一フォーマットでは、半透明マスクはオブジェクト2601の領域情報に応じた位置が型抜きされたものであり、オブジェクトの描画要素はアプリケーション画像データに含まれていないためタッチUI1904には表示されないが、その代わりに背景画像内の該当部分が表示されることになる。なお、図11のオブジェクト2601を囲む破線は、説明をわかり易くするためにオブジェクトの領域位置に相当する矩形を描いたものであり、個別のオブジェクトの描画要素は存在しない。
図12は、図26のページ2300を第二フォーマットのアプリケーション画像データで受信し、描画要素を持ったオブジェクト2601を、部分領域表示モードでタッチUI1904に表示する際の画面構成である。第二フォーマットでは、低解像度の背景画像をページ2300として表示しており、ページ2300の上に半透明マスク2600を表示し、さらに半透明マスク2600の上に高解像度のオブジェクトの描画要素を表示する。このとき、半透明マスク2600は型抜きされない。
これによって、携帯情報端末107が、第一および第二フォーマットのどちらのフォーマットでアプリケーション画像データを受信しても、各オブジェクトを部分領域表示モードで強調表示することができる。
以上説明したように、本実施例によれば、部分領域表示モードにすると、オブジェクト単位で強調表示(ハイライト表示)され、次へボタンを押すたびに、次のオブジェクトが順次強調表示されるので、文章を簡単に読み進めることが可能となる。
さらに、上述した第二フォーマットで生成したアプリケーション画像データを部分領域表示モードで表示する場合、背景画像の上に半透明マスクを表示し、更にその半透明マスクの上に表示対象オブジェクトの描画要素を表示するので、特許文献1のようにオブジェクトごとのマスクの表示・非表示を複雑に制御する必要がなくなる。また、第二フォーマットの場合、背景画像は低解像度化した状態で保存するので、データ量も抑えることができる。
また一方で、オブジェクトの領域が複雑に入り組んでいる場合、矩形で切り出した各オブジェクトには他のオブジェクトの一部も含まれる場合があり、その場合、オブジェクトごとの矩形領域を保存すると、結果的にデータ量が多くなってしまうことが考えられる。これに対して、本発明では、更に、各オブジェクトの位置情報に基づいてページサイズを予測計算し、計算されたページサイズが大きい場合には、高解像度の背景画像で構成される第一フォーマットでアプリケーション画像データを生成する。これによってデータ量を一定以下に抑えることができるので、LAN102などのネットワークに流れるデータ量が過大に増加することを防ぎ、ネットワーク負荷を抑えることができる。また、ページサイズを予測計算することにより、アプリケーション画像データの描画要素となる背景画像やオブジェクト画像を生成する以前に、アプリケーション画像データの二つのフォーマットのどちらに変換するかを判定することができる。また、前記第一および第二フォーマットのいずれのアプリケーション画像データであっても、携帯情報端末107は同様の画面表示を維持できるため、ユーザに混乱を与えることが無い。また、オブジェクトを強調表示する際に制御するマスクは多くとも一つであるため、強調表示の制御が非常に容易となる。
(実施例2)
実施例1では、オブジェクト分割を行った矩形ブロックのピクセル数に基づいてページサイズを予測して判断するため、オブジェクト画像を生成する前にアプリケーション画像データのフォーマットを決定することが出来た。一方で、入力される画像と出力される画像の圧縮方式が異なる場合、ビットマップ画像データの内容によっては、矩形ブロックのピクセル数だけからでは十分な判断が出来ない場合があった。そこで、本実施例2では、前記ビットマップ画像データ変換処理において、入力と出力のデータ圧縮方式が異なる場合には、第一および第二フォーマットのアプリケーション画像データを生成した後、それらのデータ量を比較して、どちらか一方を選択する。
なお、実施例1とは、ビットマップ画像データの生成と、ビットマップ画像データ変換処理の一部が異なるのみであるため、実施例1と同様の部分に関しては、同一番号を付けて省略し、異なる部分のみを以下に説明する。
本実施例2では、クライアントPC101上のアプリケーションで作成されたドキュメントはクライアントPC101上でレンダリングを行い、そこで生成したビットマップ画像データをJPEGやTIFFの画像フォーマットに変換してからMFP100へ送信する。MFP100は、JPEGやTIFFの画像フォーマットで受信したビットマップ画像データを、BOX111へ保存する機能を有している。
ビットマップ画像データの生成にPC101上のアプリケーションを使用した場合には、PC101上のプリンタドライバが、前述のステップS501だけでなく、S502およびS503を実行し、ビットマップ画像データを生成して、MFP100へ送信する。その際、ユーザの指示に従い、ビットマップ画像データをJPEGもしくはTIFFの画像フォーマットに変換する。このとき、JPEGは、離散コサイン変換を用いて周波数領域へ変換した後、量子化によって情報量を落としてからハフマン符号によりエントロピー符号化がなされる非可逆の圧縮方式を用いる。また、TIFFは、可逆の圧縮方式である辞書圧縮方式のLZW圧縮を用いる。ユーザは、これら二つの画像フォーマットを選択することで、例えばJPEGであれば画質を落とす代わりにMFP100への送信時間を短縮し、また、TIFFであればMFP100への転送に時間がかかる代わりに画質を優先させることが出来る。
次に、図33を用いて、実施例2におけるビットマップ画像データ変換処理について説明する。実施例1の図3とは、ステップS3300とS3301が異なる。
ステップS3300において、データ処理装置115は、ビットマップ画像データ変換処理の入力となるビットマップ画像データの圧縮方式と、出力となる背景画像およびオブジェクト画像の圧縮方式を比較する。入力と出力の圧縮方式が同じである場合には、実施例1と同様にステップS305以降の処理を行う。また、入力と出力の圧縮方式が異なる場合には、ステップS3301に進む。ステップS3301において、データ処理装置115は、後述するフォーマット後判定処理を行う。フォーマット後判定処理では、実施例1の場合と異なり、一度全ての背景画像およびオブジェクト画像を生成した後、それらのデータ量から、第一および第二フォーマットのどちらを最終的に生成するかを判断する。
次に、図34を用いて、本実施例におけるフォーマット後判定処理S3301の詳細について説明する。
まず、ステップS309において、オブジェクト画像生成処理を行い、ステップS301で分割した各々のオブジェクトに対して、第二フォーマットのためのJPEG圧縮したオブジェクト画像を生成する。
ステップS3400において、ビットマップ画像データを解像度変換して、ビットマップ画像データよりも解像度の低い第二フォーマットのための背景画像を生成する。本実施例においては、ニアレストネイバー法を用いて1/4の解像度、すなわち、ビットマップ画像データが600dpiである場合に、150dpiの背景画像を生成する。なお、解像度変換の方法は、ニアレストネイバー法に限るものではなく、例えば、バイリニア法やバイキュービック法といった高精度な補間方法を用いても良いことは言うまでもない。
ステップS3401において、ビットマップ画像データをJPEG圧縮して第一フォーマットの背景画像の圧縮データを生成する。また、ステップS3400で解像度変換した第二フォーマットの背景画像をJPEG圧縮する。
ステップS3402において、後述するデータ量によるページサイズ算出処理を行い、第一フォーマットおよび第二フォーマットのアプリケーション画像データのデータ量である第一ページサイズと第二ページサイズを求める。ステップS3403において、前記第一ページサイズと第二ページサイズの大きさを比較し、第一ページサイズが小さければステップS3404へ、そうでなければステップS3406へ進む。ステップS3404において、ステップS3400およびS3401で生成した第二の背景画像を削除する。ステップS3405において、ステップS309で生成したオブジェクト画像(オブジェクトの描画要素)を削除する。このときオブジェクトの領域情報は削除しない。一方、ステップS3406に進んだ場合は、ステップS3401で生成した第一の背景画像を削除する。
このようにして、入力と出力の圧縮方式が異なる場合においても、アプリケーション画像データに係る背景画像およびオブジェクト画像を生成し、それらのデータ量からフォーマットの判断を行うことで、より確実に低データ量のアプリケーション画像データを選択することができる。
次に、図35を用いて、実施例2における前記データ量によるページサイズ算出処理S3402の詳細について説明する。
まず、ステップS3500において、データ処理装置115は、第一ページサイズを求める。第一ページサイズは、前記JPEG圧縮した第一の背景画像のデータ量である。
ステップS3501において、第二ページサイズを初期化する。本実施例においては、ゼロで初期化する。ステップS3502において、前記JPEG圧縮した第二の背景画像のデータ量を第二ページサイズへ加算する。ステップS3503において、前記ステップS301で分割したオブジェクトが終了したかを判定し、分割した各々のオブジェクトに対してステップS3504の処理を行う。ステップS3504において、前記JPEG圧縮した当該オブジェクトのオブジェクト画像のデータ量を第二ページサイズへ加算する。
なお、本実施例において、アプリケーション画像データ変換処理の入力となるビットマップ画像データは非可逆のJPEG圧縮および可逆のLZW圧縮を選択できるとしたが、それに限るものではない。例えば、文字やライン属性のオブジェクトであれば、ベクトル化処理を行ってパス化したベクトルデータをZIP圧縮するなど、他の圧縮方式や画像フォーマットを用いても良い。また、アプリケーション画像データの描画要素である背景画像およびオブジェクト画像のデータ圧縮形式についても同様である。
以上説明したように、本実施例によれば、入力となるビットマップ画像データの圧縮方式と、出力となるアプリケーション画像データの描画要素である背景画像およびオブジェクト画像の圧縮方式の関係に応じて、第一および第二フォーマットの一方を選択する。それによって、ピクセル数によるページサイズの判定では十分な判定ができない場合においても、正確にページサイズを判定できるので、より確実にデータ量の少ないアプリケーション画像データを生成することができる。また、入力と出力のデータ圧縮方式が同一である場合には、第一の実施例で説明したピクセル数によるページサイズの判定を行うので、変換コストのかかる第一および第二のフォーマットに係る背景画像およびオブジェクト画像を生成しない。よって、入力と出力のデータ圧縮方式の関係に応じて、前記画像を生成する前のピクセル数によるページサイズの判定と、生成後のデータ量による判定を適用的に切り替え、アプリケーション画像データの変換コストを最小限に抑えることができる。
(その他の実施例)
本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施例の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される。
また、上述した実施形態では、コンピュータがプログラムを実行することにより、各処理部として機能するものとしたが、処理の一部または全部を専用の電子回路(ハードウェア)で構成するようにしても構わない。

Claims (10)

  1. 画像データに含まれる各オブジェクトの領域を特定する領域特定手段と、
    前記領域特定手段で特定した各オブジェクトの領域に基づいて、各オブジェクトの画像を生成するオブジェクト画像生成手段と、
    前記画像データから低解像度の背景画像を生成する背景画像生成手段と、
    前記背景画像生成手段で生成された前記低解像度の背景画像と、前記オブジェクト画像生成手段で生成された各オブジェクトの画像とを含む、所定フォーマットのファイルを生成するファイル生成手段と、を有する画像変換装置であって、
    前記所定フォーマットのファイルは、ページの全体表示を行うためのページ表示モードで表示される場合、前記低解像度の背景画像を用いて表示され、オブジェクトごとに強調表示する部分領域表示モードで表示される場合、前記低解像度の背景画像の上に半透明マスクが重ねて表示され更にその上に表示対象となっている前記オブジェクト画像生成手段で生成されたオブジェクトの画像が表示されることを特徴とする画像変換装置。
  2. 前記所定フォーマットのファイルのデータ量を予測計算し、前記所定フォーマットのファイルのデータ量が大きいか否か判定する判定手段を更に有し、
    前記判定手段で前記所定フォーマットのファイルのデータ量が大きいと判定した場合、前記ファイル生成手段は、前記画像データと前記領域特定手段で特定された各オブジェクトの領域の位置情報とを含む、別のフォーマットのファイルを生成し、
    前記判定手段で前記所定フォーマットのファイルのデータ量が大きいと判定した場合、前記ファイル生成手段は、前記背景画像生成手段で生成された前記低解像度の背景画像と、前記オブジェクト画像生成手段で生成された各オブジェクトの画像とを含む、前記所定フォーマットのファイルを生成することを特徴とする請求項1に記載の画像変換装置。
  3. 前記別のフォーマットのファイルは、前記部分領域表示モードで表示される場合、強調表示の対象となっているオブジェクトの領域の位置情報に対応する位置を型抜きした半透明マスクが生成され、前記画像データの上に当該生成された半透明マスクが重ねて表示されることを特徴とする請求項2に記載の画像変換装置。
  4. 前記判定手段は、前記領域特定手段で特定された各オブジェクトの領域の位置情報を用いて算出される各オブジェクトのピクセル数に基づいて、前記データ量を予測計算することを特徴とする請求項2に記載の画像変換装置。
  5. 前記判定手段は、前記領域特定手段で特定された各オブジェクトの領域の位置情報を用いて算出される各オブジェクトのピクセル数と前記低解像度の背景画像のピクセル数との合計が、所定の大きさよりも大きいか否か判定することを特徴とする請求項2に記載の画像変換装置。
  6. 前記判定手段は、前記領域特定手段で特定された各オブジェクトの領域の位置情報を用いて算出される各オブジェクトのピクセル数と前記低解像度の背景画像のピクセル数との合計が、前記画像データのピクセル数よりも大きいか否か判定することを特徴とする請求項2に記載の画像変換装置。
  7. 前記画像データの圧縮方式と、前記ファイル生成手段で生成されるファイルで用いられている圧縮方式とが異なるか判定する圧縮方式判定手段と、
    前記圧縮方式判定で圧縮方式が異なると判定した場合、前記所定のフォーマットのファイルと前記別のフォーマットのファイルとを生成し、それらのデータ量を比較して、より少ない方のフォーマットのファイルを選択する選択手段と、
    を更に有することを特徴とする請求項2に記載の画像変換装置。
  8. 請求項1に記載の画像変換装置で生成された前記所定フォーマットのファイルを、前記ページ表示モードと前記部分領域表示モードとを切り替えて表示する表示手段を備える画像表示装置。
  9. 請求項1乃至7のいずれか1項に記載の画像変換装置が有する各手段として、コンピュータを機能させるためのコンピュータプログラム。
  10. 領域特定手段が、画像データに含まれる各オブジェクトの領域を特定する領域特定工程と、
    オブジェクト画像生成手段が、前記領域特定工程で特定した各オブジェクトの領域に基づいて、各オブジェクトの画像を生成するオブジェクト画像生成工程と、
    背景画像生成手段が、前記画像データから低解像度の背景画像を生成する背景画像生成工程と、
    ファイル生成手段が、前記背景画像生成工程で生成された前記低解像度の背景画像と、前記オブジェクト画像生成手段で生成された各オブジェクトの画像とを含む、所定フォーマットのファイルを生成するファイル生成工程と、を含む画像変換方法であって、
    前記所定フォーマットのファイルは、ページの全体表示を行うためのページ表示モードで表示される場合、前記低解像度の背景画像を用いて表示され、オブジェクトごとに強調表示する部分領域表示モードで表示される場合、前記低解像度の背景画像の上に半透明マスクが重ねて表示され更にその上に表示対象となっている前記オブジェクト画像生成手段で生成されたオブジェクトの画像が表示されることを特徴とする画像変換方法。
JP2013244125A 2013-11-26 2013-11-26 画像変換装置、画像変換方法、コンピュータプログラム Pending JP2015103086A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013244125A JP2015103086A (ja) 2013-11-26 2013-11-26 画像変換装置、画像変換方法、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013244125A JP2015103086A (ja) 2013-11-26 2013-11-26 画像変換装置、画像変換方法、コンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2015103086A true JP2015103086A (ja) 2015-06-04

Family

ID=53378726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013244125A Pending JP2015103086A (ja) 2013-11-26 2013-11-26 画像変換装置、画像変換方法、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2015103086A (ja)

Similar Documents

Publication Publication Date Title
JP6399744B2 (ja) 表示装置、表示方法
JP5984439B2 (ja) 画像表示装置、画像表示方法
JP6099961B2 (ja) 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム
JP6188490B2 (ja) 画像表示装置、制御方法およびコンピュータプログラム
EP2264995B1 (en) Image processing apparatus, image processing method, and computer program
JP4012140B2 (ja) 画像処理装置、情報処理装置及びそれらの制御方法、プログラム
US7551753B2 (en) Image processing apparatus and method therefor
JP4227569B2 (ja) 画像処理システム、画像処理装置の制御方法、プログラム及び記録媒体
JP6261237B2 (ja) 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム
US7853873B2 (en) Data processing apparatus, data processing method, and computer program for generating electronic data from a paper document
JP5137759B2 (ja) 画像処理装置
JP4738857B2 (ja) 画像処理装置およびその方法
JP4956319B2 (ja) 画像処理装置、その制御方法、ならびにそのプログラムおよび記憶媒体
JP5132416B2 (ja) 画像処理装置およびその制御方法
JP6776906B2 (ja) スキャナー、スキャン制御プログラム、画像データの生成方法
JP2013020477A (ja) 画像処理装置およびプログラム
JP5132347B2 (ja) 画像処理システム
JP2015225509A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法およびコンピュータプログラム
JP2015103086A (ja) 画像変換装置、画像変換方法、コンピュータプログラム
JP6223077B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2007028181A (ja) 画像処理装置
JP4323856B2 (ja) 画像処理方法
JP2015106289A (ja) 表示装置、表示方法、コンピュータプログラム
JP2015046041A (ja) 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム
JP2011053901A (ja) 文書画像データ提供装置、文書画像データ提供システム、文書画像データ提供方法、文書画像データ提供プログラム、背景処理プログラム