以下、本発明の実施形態を図面に基づいて説明する。
<1.第1実施形態>
<1−1.構成概要>
図1は、本発明に係る画像形成システム1を示す図である。図1に示すように、画像形成システム1は、画像形成装置10と外部端末50とクラウドサーバ90とを備える。
画像形成装置10と外部端末50とクラウドサーバ90とは、ネットワーク(通信ネットワーク)を介して互いに接続される。当該ネットワークは、LAN(Local Area Network)および/またはインターネットなどによって構成される。また、ネットワークに対する接続態様は、有線接続であってもよく、或いは無線接続であってもよい。また、無線接続には各種の方式が用いられ得る。たとえば、外部端末50とMFP10とは無線LAN(Local Area Network)方式を用いて無線接続され、外部端末50とクラウドサーバ90とは携帯電話会社の無線ネットワーク(LTE(Long Term Evolution)方式)等を用いて無線接続(および有線接続)される。
クラウドサーバ90は、画像形成装置10とも外部端末50とも異なる外部装置(外部サーバ)である。クラウドサーバ90には、アプリケーション120(ここでは、汎用のOCR(Optical Character Recognition)アプリケーション)がインストールされている。クラウドサーバ90は、汎用的なOCR処理サービスをアプリケーション120を用いて提供するサーバである。ただし、このクラウドサーバ90(アプリケーション120)は、サーチャブルPDF(Portable Document Format)の生成処理サービスを提供しない。サーチャブルPDFは、後述するように、外部端末50およびクラウドサーバ90等が協働することによって生成される。
この画像形成システム1においては、原稿のスキャン画像200が画像形成装置10によって生成され、スキャン画像200が画像形成装置10から外部端末50に送信される。詳細には、画像形成装置10は、スキャン画像200から複数の部分画像230を抽出して、部分画像230ごとに外部端末50に送信する。外部端末50は、画像形成装置10から受信した複数の部分画像230(スキャン画像200)に基づき、電子文書500(図4等参照)を生成する。当該電子文書500の生成動作は、外部端末50にインストールされている電子文書生成アプリケーション110(図4参照)を実行すること等によって実現される。
電子文書生成アプリケーション110は、クラウドサーバ90のアプリケーション120によって提供されるOCR処理サービスを利用して、当該各部分画像230に対するOCR処理をクラウドサーバ90に行わせる。各部分画像230は、OCR処理の処理対象の領域であり、処理対象領域とも称される。また、サーバ90でのOCR処理は、外部端末50から部分画像230ごとに依頼される。換言すれば、当該各部分画像230は、それぞれ、OCR処理の依頼単位(クラウドサーバ90でのOCR処理の処理単位)を構成する領域であり、処理単位領域とも称される。
電子文書生成アプリケーション110は、各部分画像230に対する各処理結果(テキストデータ)を汎用アプリケーション120から受け取り、当該各処理結果にも基づいて電子文書500を生成する。当該電子文書500は、テキストデータ付き電子文書(ここでは、サーチャブルPDF)として生成される。
なお、画像形成システム1は、電子文書を生成するシステムであることから、電子文書生成システムなどとも表現される。同様に、外部端末50は電子文書生成装置であるとも表現される。
<1−2.画像形成装置の構成>
図2は、画像形成装置10の機能ブロックを示す図である。ここでは、画像形成装置10として、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))を例示する。図2においては、MFP10の機能ブロックが示されている。
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って(すなわちスキャンして)、当該原稿の画像データ(原稿画像ないしスキャン画像とも称する)を生成する処理部である。この画像読取部2は、スキャン部あるいはスキャン画像生成部などとも称される。
印刷出力部3は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワークを介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先(たとえば、外部端末50)との間で各種のデータを授受することが可能である。通信部4は、各種データを送信する送信部4aと各種データを受信する受信部4bとを有する。
格納部5は、ハードディスクドライブ(HDD)等の記憶装置で構成される。
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。
このMFP10においては、略板状の操作パネル部6c(図1参照)が設けられている。また、操作パネル部6cは、その正面側にタッチパネル35(図1参照)を有している。タッチパネル35は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。タッチパネル35は、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。
コントローラ9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM)内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)100(図1参照)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)100は、USBメモリなどの可搬性の記録媒体、あるいはネットワーク等を介してMFP10にインストールされてもよい。
具体的には、図2に示すように、コントローラ9は、当該プログラム100の実行により、通信制御部11と入力制御部12と表示制御部13と領域判別部15と部分画像生成部21と配列調整部22と処理速度取得部23と目標時間決定部24と小画像生成部25と圧縮処理部26と送信時間計測部27とを含む各種の処理部を実現する。
通信制御部11は、他の装置(外部端末50等)との間の通信動作を通信部4等と協働して制御する処理部である。たとえば、通信制御部11は、スキャン画像等を外部端末50送信する。
入力制御部12は、操作入力部6a(タッチパネル35等)に対する操作入力動作を制御する制御部である。たとえば、入力制御部12は、タッチパネル35に表示された操作画面に対する操作入力を受け付ける動作を制御する。
表示制御部13は、表示部6b(タッチパネル35等)における表示動作を制御する処理部である。表示制御部13は、たとえば、MFP10を操作するための操作画面をタッチパネル35に表示させる。
領域判別部15は、スキャン画像200(図4参照)の領域(領域種別)を判別する処理部である。たとえば、領域判別部15は、スキャン画像200内における文字領域と非文字領域(背景領域等)とを区別して判別し、属性指定データ(後述)を生成する。属性指定データは、領域判別結果を示すデータである。
部分画像生成部21は、スキャン画像200を分割して複数の部分画像230を生成する処理部である。具体的には、部分画像生成部21は、領域判別部15による領域判別結果を利用し、文字領域に係る複数の部分画像230と背景領域に係る複数の部分画像230とを生成する。
配列調整部22は、スキャン画像200内の複数の部分画像230を、文字領域に係る複数の部分画像230と背景領域に係る複数の部分画像230とに分類する。また、配列調整部22は、文字領域に係る複数の部分画像をデータ量の大きい順(降順)に並べ替える処理(ソーティング処理)を実行する。配列調整部22は、ソーティング部であるとも表現される。
処理速度取得部23は、外部端末50の処理速度測定部65(後述)によって測定された「一連の処理に関する処理速度」(詳細には、当該処理速度を示す情報)を取得する処理部である。
目標時間決定部24は、各部分画像230の送信時間の目標値である各目標送信時間Gを決定する処理部である。
小画像生成部25は、各部分画像230をそれぞれ複数の小画像330(図4等参照)にさらに分割する処理部である。
圧縮処理部26は、小画像生成部25等と協働して、各部分画像の圧縮度合いを変更する処理部である。圧縮処理部26は、複数の小画像330に対する圧縮の有無を変更することによって、各部分画像の圧縮度合いを変更する。
送信時間計測部27は、各部分画像(詳細には、各部分画像の直前の部分画像)をMFP10から外部端末50に送信するのに要する送信時間を計測する処理部である。
<1−3.外部端末の構成>
次に外部端末50(電子文書生成装置)の構成について説明する。
外部端末50は、MFP10およびクラウドサーバ90との間でのネットワーク通信が可能な情報入出力端末装置(通信装置とも称される)である。ここでは、外部端末50として、タブレット型端末を例示する。ただし、これに限定されず、外部端末50は、スマートフォンあるいはパーソナルコンピュータなどであってもよい。また、外部端末は、携帯式の装置(携帯情報端末等)(携帯端末)であってもよく、あるいは、据置型の装置であってもよい。
図3は、外部端末50の概略構成を示す機能ブロック図である。
外部端末50は、図3の機能ブロック図に示すように、通信部54、格納部55、操作部56およびコントローラ59等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
通信部54は、ネットワークを介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、外部端末50は、所望の相手先(MFP10およびクラウドサーバ90等)との間で各種のデータを授受することが可能である。通信部54は、各種データを送信する送信部54aと各種データを受信する受信部54bとを有する。たとえば、受信部54bは、スキャン画像200を画像形成装置10から受信し、送信部54aは、スキャン画像200における複数の部分画像230(図4参照)の画像データをクラウドサーバ90に送信する。また、受信部54bは、複数の部分画像230に関するOCR処理結果等をクラウドサーバ90から受信する。
格納部55は、不揮発性の半導体メモリ等の記憶装置で構成され、各種の情報を格納する。
操作部56は、外部端末50に対する操作入力を受け付ける操作入力部56aと、各種情報の表示出力を行う表示部56bとを備えている。この外部端末50においては、液晶表示パネルに各種センサ等が埋め込まれて構成されたタッチパネル75(図1参照)が設けられている。具体的には、図1に示すように、略板状の外部端末50の正面側において、その周縁部(枠部)を除くほぼ全面にわたってタッチパネル75が設けられている。このタッチパネル75は、ユーザインターフェイス部として機能する。換言すれば、タッチパネル75は、操作入力部56aの一部としても機能するとともに、表示部56bの一部としても機能する。
図3のコントローラ59は、外部端末50に内蔵され、外部端末50を統括的に制御する制御装置である。コントローラ59は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。
外部端末50には、画像形成装置10との連携処理を制御するアプリケーションプログラム(単に、アプリケーションとも称する)110(図1参照)がインストールされている。コントローラ59は、CPUにおいて、記憶部(半導体メモリ等)内に格納されている所定のプログラム110を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体、あるいはネットワーク等を介して外部端末50にインストールされるようにしてもよい。
具体的には、当該アプリケーションプログラム110が外部端末50にて実行されることによって、外部端末50は、画像形成装置10にて生成されたスキャン画像を画像形成装置10から受信するとともに、当該スキャン画像を利用して電子文書を生成する処理を実行する。より詳細には、コントローラ59は、当該アプリケーションプログラム110等の実行により、通信制御部61と入力制御部62と表示制御部63と取得部64と処理速度測定部65と圧縮伸長処理部66と指示送出部67と受取部68と生成部69とを含む各種の処理部を実現する。
通信制御部61は、通信部54等と協働して、MFP10およびクラウドサーバ90等との通信動作を制御する処理部である。
入力制御部62は、操作入力部56a(タッチパネル75等)に対する操作入力動作を制御する制御部である。たとえば、入力制御部62は、タッチパネル75に表示された操作画面に対するタッチ操作入力を受け付ける動作を制御する。
表示制御部63は、表示部56b(タッチパネル75等)における表示動作を制御する処理部である。表示制御部63は、たとえば、MFP10との連携処理を行うための操作画面をタッチパネル75に表示する。
なお、入力制御部62および表示制御部63は、ユーザインターフェイス制御部とも総称される。
取得部64は、MFP10で生成されたスキャン画像200(図4参照)等を取得する処理部である。取得部64は、通信部54および通信制御部61等と協働して、当該スキャン画像200等をMFP10から受信して取得する。
処理速度測定部65は、処理対象データ(画像データ)に関する一連の処理の処理速度を測定する処理部である。当該一連の処理は、処理対象データをMFP10からクラウドサーバ90へと送信する処理と、クラウドサーバ90による処理対象データに関する所定の処理(OCR処理)と、処理対象データに関する当該所定の処理の処理結果をクラウドサーバ90から外部端末50へと送信する処理(外部端末50における受信処理)とを含む。処理速度測定部65は、テストデータを処理対象データとして用いて、当該一連の処理に要する時間を測定し、当該一連の処理に関する処理速度を測定する。
圧縮伸長処理部66は、画像に関する圧縮処理および伸長処理(解凍処理)を実行する処理部である。たとえば、圧縮伸長処理部66は、部分画像230を構成する複数の小画像330のうち圧縮されて(MFP10から)送信されてきた小画像に対して伸長処理を実行する。
指示送出部67は、アプリケーションプログラム110から別のアプリケーションプログラム120に向けて所定の処理実行指示等を送出する処理部である。たとえば、指示送出部67は、スキャン画像200における複数の部分画像230のそれぞれに関して、OCR処理(光学文字認識処理)を行うべき旨の指示をクラウドサーバ90に向けて送出する。当該指示は、複数の部分画像230のそれぞれに関する画像データとともに送出される。
受取部68は、各部分画像230に関する各処理結果(OCR処理結果)を、クラウドサーバ90(アプリケーションプログラム120)から受け取る処理部である。
生成部69は、電子文書500(図4参照)を生成する処理部である。生成部69は、複数の部分画像230のそれぞれについての各OCR処理結果(テキスト情報(文字コード群))の文字列を、スキャン画像200における当該複数の部分画像230のそれぞれの検出位置に配置して、電子文書500(サーチャーブルPDF等)を生成する。
<1−4.概略動作>
この電子文書生成システム1においては、MFP10、外部端末50(タブレット端末等)50、およびクラウドサーバ90が協働して、原稿のスキャン画像に基づく電子文書を生成する。
MFP10は、原稿のスキャン画像200を生成する。スキャン画像200は、多数の部分画像(ここでは帯状の部分画像(バンド画像とも称される))230に分割されて(図4参照)、外部端末50に送信される。外部端末(電子文書生成装置)50は、クラウドサーバ90とも連携して、当該スキャン画像200に基づき電子文書を生成する。
具体的には、外部端末50は、MFP10から受信したスキャン画像200(より詳細には複数の部分画像230)をクラウドサーバ90に転送し、各部分画像230に対するOCR処理をクラウドサーバ90に行わせる。
クラウドサーバ90は、外部端末50から受信した複数の部分画像230に関してそれぞれOCR処理を施し、当該OCR処理の処理結果(テキストデータ)を外部端末50に送信する。
外部端末50は、当該複数の部分画像230のそれぞれに対するOCR処理の処理結果(クラウドサーバ90から受信したテキストデータ)とMFP10から受信したスキャン画像200(より詳細には、MFP10から受信した複数の部分画像230)とに基づいて電子文書を生成する。たとえば、サーチャブルPDF形式(後述)のファイルが電子文書として生成される。
このような処理においては、複数の部分画像230のそれぞれに関して、外部端末50からクラウドサーバ90への「送信処理」とクラウドサーバ90における「OCR処理」とクラウドサーバ90から送信されてきたOCR結果の「受信処理」(外部端末50での受信処理)とを含む一連の処理が実行される。当該一連の処理は、図5および図6に示すように、各部分画像230について直列的に実行され得る。具体的には、或る部分画像230(たとえば230a)に関して、「送信処理」と「OCR処理」と「受信処理」とを含む一連の処理が終了した後に、次の部分画像230(230b)に関して、同様の一連の処理(具体的には、「送信処理」と「OCR処理」と「受信処理」とを含む一連の処理)が実行される、という動作が繰り返し実行され得る。
ただし、処理の高速化を図るためには、図7および図8に示すように、複数の部分画像230のそれぞれに関する当該一連の処理は、互いに並列的に実行されることが好ましい。具体的には、或る部分画像230(たとえば230a)に関する一連の処理(送信処理とOCR処理と受信処理とを含む)が終了するのを待つことなく、次の部分画像230(230b)に関する一連の処理(詳細には、当該一連の処理のうちの最初の処理(「送信処理」))等が開始されることが好ましい。換言すれば、各部分画像230に対応する各OCR処理結果の受信を待たずに、当該各部分画像230の次の部分画像が外部端末50からクラウドサーバ90に転送されることが好ましい。
同様に、当該次の部分画像230(たとえば230b)に関する一連の処理(送信処理とOCR処理と受信処理とを含む)が終了するのを待つことなく、さらに次の部分画像230(230c)に関する一連の処理(詳細には、当該一連の処理のうちの最初の処理(「送信処理」)等)が開始されることが好ましい。以降、同様である。
これによれば、2つ以上(図7および図8では「2つ」)の部分画像230に関する各処理(上記一連の処理)を(或る時点で)並列的に実行することが可能であり、処理の効率化を図り処理時間を短縮することが可能である。
また、図7および図8に示すように2つの部分画像230に関する各処理を並列的に実行する場合には、或る部分画像230に関する一連の処理に要する時間Tの半分(すなわち、T/2)が経過した時点で、次の部分画像230に関する一連の処理が開始されることが好ましい(図7参照)。換言すれば、並列処理数(並列的に処理される部分画像の数)が「2」である場合には、外部端末50からクラウドサーバ90への或る部分画像230の送信開始時点から、上記時間Tを当該並列処理数「2」で除した時間(すなわち、T/2)が経過した時点で、次の部分画像230に関する一連の処理が開始されることが好ましい。
この場合、たとえば、図7に示すように、外部端末50は、1番目の部分画像230をクラウドサーバ90に送信する送信処理、2番目の部分画像230をクラウドサーバ90に送信する送信処理、1番目の部分画像230のOCR処理結果をクラウドサーバ90から受信する受信処理、3番目の部分画像230をクラウドサーバ90に送信する送信処理、2番目の部分画像230のOCR処理結果をクラウドサーバ90から受信する受信処理等を、この順序で実行する。
図7を図5と比較すると、外部端末50におけるアイドル時間が低減され、効率的な処理が行われ得ることが判る。また、図7のような並行処理によれば、外部端末50における送信処理のタイミングと受信処理のタイミングとが重複しないようにすることが可能であり、より効率的な処理を行うことが可能である。
この実施形態では、このようなタイミングで複数の部分画像230に関する一連の処理をそれぞれ開始する。すなわち、或る部分画像230に関する一連の処理に要する時間Tの半分(すなわち、T/2)が経過した時点で、次の部分画像230に関する一連の処理を開始する。換言すれば、所定の時間間隔(T/2)を空けて順次に処理対象画像(バンド画像230)を外部端末50からクラウドサーバ90に送信する。
ところで、このようなタイミングによる並列的な処理が外部端末50とクラウドサーバ90との間で実行されるためには、各部分画像230がMFP10から外部端末50へと適宜のタイミングで送信されていることが好ましい。詳細には、外部端末50からクラウドサーバ90への各部分画像230の送信予定タイミング(送信開始予定時刻)よりも前に、各部分画像230がMFP10から外部端末50へと既に送信されていることが好ましい。
たとえば、1番目の部分画像230aがMFP10から外部端末50へと送信された直後の時点T51(図7参照)にて、外部端末50からクラウドサーバ90への当該1番目の部分画像230aの送信が開始される場合を想定する。この場合には、2番目の部分画像230bの送信開始時点(送信開始予定時刻)T52(=T51+T/2)までに2番目の部分画像230bのMFP10から外部端末50への送信が完了していることが好ましい。仮に、時点T51において2番目の部分画像230bが外部端末50に未だ到達していない場合には、外部端末50からクラウドサーバ90への送信動作に待ち時間(2番目の部分画像230bの到着を待機する時間(待機期間))が外部端末50において生じる。このような待機期間の発生は好ましくない。
そこで、この実施形態においては、MFP10は、MFP10から外部端末50への各部分画像230の送信時間に関して、目標値(目標送信時間)Gを設定する。具体的には、図9に示すように、或る部分画像230に関する一連の処理に要する時間Tの半分(すなわち、T/2)が、次の部分画像230に関するMFP10から外部端末50への送信処理の目標値に設定される。これによれば、MFP10が各部分画像230を所定の時間間隔(T/2)以内で順次に外部端末50に送信することによって、当該各部分画像230が外部端末50からクラウドサーバ90へと効率的に送信される。
ここにおいて、外部端末50とクラウドサーバ90とは比較的安定的な無線通信(例えば、携帯電話会社が提供する特定規格の無線通信(LTE通信等))を利用して接続されており、一方、MFP10と外部端末50とは比較的不安定な無線通信(例えば無線LAN通信など)を利用して接続されているものとする。
上記のような複数の部分画像230がMFP10から外部端末50へ送信される際に、無線LAN通信等による通信速度の低下が発生すると比較的大きな通信時間を要するため、MFP10から外部端末50への到達遅延が発生する。そして、当該到達遅延に起因して上述の待機期間が外部端末50において発生すると、外部端末50からクラウドサーバ90への当該部分画像230の通信動作が遅延する。
これに対して、この実施形態においては、さらに、各部分画像230をMFP10から外部端末50に送信する際に、各部分画像230の送信時間が各部分画像230の目標送信時間G以内になるべく収まるように制御される。より具体的には、各部分画像230の圧縮度合いを変更し、圧縮度合い変更後の各部分画像230を送信することによって、各部分画像230の送信時間が各部分画像230の目標送信時間Gに近づくように制御される。より詳細には、各部分画像230がそれぞれ複数の小画像330にさらに分割され、当該複数の小画像330に対する圧縮の有無を変更することによって、各部分画像230の圧縮割合(後述)が変更され各部分画像230の圧縮度合いが変更される。
これによれば、MFP10から外部端末50への部分画像230の到達遅延を抑制し、各部分画像230に関する外部端末50からクラウドサーバ90への転送動作をより円滑に行うことが可能である。たとえば、各部分画像230の圧縮度合いが増大されて各部分画像230の送信データ量が低減され、各部分画像230の送信時間が各部分画像230の目標送信時間Gに近づくように低減される。
以下、このような動作について、より詳細に説明する。
<1−5.詳細動作>
図10および図11は、MFP10、外部端末50およびクラウドサーバ90の動作を示すタイミングチャートである。また、図12および図13は外部端末50の動作を示すフローチャートであり、図14〜図16は、MFP10の動作を示すフローチャートである。これらの図を参照しながら本システム1における動作について詳細に説明する。
<テスト通信>
まず、図10および図12に示すように、ステップS10において、外部端末50とクラウドサーバ90との間における通信速度が計測される。この実施形態においては、外部端末50とクラウドサーバ90との間では比較的安定的な通信が行われるものとする。そして、計測時点以後の所定期間(たとえば数分間)においても、ステップS10における計測値と同様の速度で外部端末50とクラウドサーバ90との間の通信が実行されるものとする。
ステップS10においては、テストデータに関する一連の処理の所要時間Tbが外部端末50によって測定される。具体的には、外部端末50からクラウドサーバ90へ向けたテストデータの送信開始時点から、クラウドサーバ90からのOCR処理結果の外部端末50における受信完了時点までの所要時間Tbが測定される。この所要時間Tbは、テストデータが外部端末50からクラウドサーバ90に送信される送信時間と、クラウドサーバ90におけるOCR処理時間と、テストデータに関するOCR処理の処理結果がクラウドサーバ90から外部端末50へと送信される時間(外部端末50における受信時間)とを含む。
そして、外部端末50は、測定結果の所要時間Tb(詳細には、所要時間Tbを示す情報)をMFP10に送信し(ステップS10)、MFP10は、当該所要時間Tbを受信する(ステップS50(図14))。なお、テストデータに関する一連の処理の所要時間Tbは、当該テストデータのデータ量D0を用いると、当該一連の処理の処理速度V(=D0/Tb)に換算することが可能である。そのため、所要時間Tbは、当該一連の処理の処理速度を示す情報、あるいは、当該一連の処理の処理速度の参考情報などとも表現される。
<スキャン画像生成および部分画像生成等>
次に、ステップS11において、外部端末50は、原稿読み取り動作をMFP10に要求する。具体的には、ユーザがスキャン対象の原稿をMFP10の原稿台(たとえば、自動給紙装置(ADF:Auto Document Feeder )あるいは原稿載置用ガラス面等)に載置した後、当該ユーザは、外部端末50を操作することによって、電子文書500の生成指示を外部端末50およびMFP10に対して付与する。
より詳細には、まず、外部端末50にインストールされているアプリケーション(電子文書生成アプリケーション)の操作画面(不図示)において、スキャン処理を実行すべき装置が指定されるとともに、スキャン処理により最終的に生成される電子文書500の形式が指定される。ここでは、スキャン処理を実行すべき装置としてMFP10が指定され、当該電子文書500の形式として、サーチャブルPDF(透明テキスト付きPDF)が指定されるものとする。そして、ユーザは、電子文書生成アプリケーション110の操作画面内に表示された実行開始ボタン(電子文書500の生成処理の実行開始ボタン)を押下することにより、電子文書(ここではサーチャブルPDF)500の生成指示を外部端末50およびMFP10に対して付与する。なお、サーチャブルPDF(透明テキスト付きPDF)は、文字画像を有する画像レイヤと当該文字画像に対する文字認識結果(テキストデータ)が非表示状態で埋め込まれたテキストレイヤとを有するPDF形式の電子文書である。
外部端末50は、当該生成指示を受け付けるとともに、当該生成指示(詳細には、当該生成指示に基づくスキャン画像生成指示等)をMFP10に転送する。
MFP10は、当該生成指示(スキャン画像生成指示等)を外部端末50から受信するとスキャン動作を開始し、MFP10の原稿台(ADF等)に載置された原稿のスキャン画像200(図17)を生成する(ステップS51(図14))。
また、MFP10(領域判別部15)は、スキャン画像200(図4参照)内における各種の領域(領域種別)を判別する領域判別処理(画像処理)を行う。
具体的には、MFP10の領域判別部15は、スキャン画像200内における文字領域と非文字領域(背景領域等)とを判別する。そして、領域判別部15は、これらの情報に基づいて属性指定データを生成する。属性指定データは、スキャン画像200内の各画素位置に対して領域種別コード(次述)が割り付けられたデータとして生成される。詳細には、領域判別部15は、当該文字領域内の各画素に対して、「文字領域」内の画素であることを示す領域種別コード(たとえば「1」)を付与する。同様に、領域判別部15は、非文字領域内の各画素に対して、「非文字領域」内の画素であることを示す領域種別コード(たとえば「2」等)を付与する。より詳細には、たとえば、非文字領域である「背景領域」の各画素に対して「2」が付与される。なお、この属性指定データは、ステップS52(次述)において、文字領域画像および背景領域画像の抽出に利用される。
MFP10は、次のステップS52において、スキャン画像200を分割して複数の部分画像230(図17)を生成する。ステップS52においては、文字領域であるか背景領域であるかが属性指定データ(領域判別部15による領域判別結果)を用いて判定されて文字領域画像と背景領域画像とが区別され、複数の部分画像230が生成される。
文字領域画像は、1行の文字列を含む文字領域(行領域)に関する(帯状の)画像である。また、背景領域画像は、背景領域(たとえば複数の行領域の相互間に設けられる行間領域)に関する(帯状の)画像であ。
具体的には、MFP10の部分画像生成部21は、属性指定データを利用し、文字領域の画素を含む水平画素ラインが垂直方向に連続する領域(1行の文字列に係る行領域)を、文字領域に係る部分画像として生成する。同様の動作が繰り返されることによって、複数の行領域が(文字領域に係る)複数の部分画像230として生成される。また、部分画像生成部21は、複数の行領域の相互間の空白領域(文字領域の画素を含まない水平画素ラインが垂直方向に連続する領域)を、それぞれ、背景領域に係る部分画像として生成する。
より詳細には、属性データ内で水平方向に伸びる画素列(水平1ラインの画素列)が、文字領域を示す領域種別コード「1」の画素を含むときには、当該水平1ラインの画素列は文字領域画素列(文字画素ライン)であると判定される。そして、同様にして垂直方向において複数の文字領域画素列(複数の文字画素ライン)が連続して検出される場合には、当該複数の文字領域画素列の集合体として文字領域画像が構成される。
逆に、属性データ内で水平方向に伸びる画素列(水平1ラインの画素列)において、文字領域を示す領域種別コード「1」が付された画素が1つも含まれていないときには、当該画素列は非文字領域画素列(ここでは背景領域画素列)であると判定される。そして、同様にして垂直方向において複数の背景領域画素列(背景画素ライン)が連続して検出される場合には、当該複数の背景領域画素列の集合体として背景領域画像が構成される。
図17においては、複数の文字領域画像232,234,236,238,240,242と複数の背景領域画像231,233,235,237,239,241,243とが、複数の部分画像230として生成されている。
更に次のステップS53において、MFP10は、ステップS52で生成された複数の部分画像230を「文字領域画像」と「背景領域画像」との2つのグループに分類して集約する。2つのグループはこの順序(すなわち、1番目に「文字領域画像」、2番目に「背景領域画像」)で並べ替えられる。また、「文字領域画像」に分類された複数の文字領域画像は、そのデータ量の大きい順(データ量の降順)に並べ替えられる。「背景領域画像」に分類された複数の背景領域画像の順序は、当初の順序(出現順)のまま維持される。これらの並べ替え処理等は、配列調整部22によって実行される。
図18は、このような分類処理および並べ替え処理の処理結果を示す図である。具体的には、当該並び替え処理後において、複数の文字領域画像232,238,234,236,240,242と複数の背景領域画像231,233,235,237,239,241,243とがこの順序で配列されている。
なお、後述するステップS55等においては、データ量の大きい順(降順)に並べ替えられた後の順序(図18参照)に従って複数の部分画像が外部端末50に順次に送信される。
ステップS53が終了すると、データに関する圧縮割合(後述)を0%に初期化(ステップS54)した後、ステップS55に進む。
<文字領域画像に関する通信処理等>
ステップS55(〜S57)においては、MFP10から外部端末50へと部分画像230を送信する動作が実行される。ステップS55(〜S57)の処理は、複数の種類の部分画像230(文字領域画像および背景領域画像等)のうち、文字領域画像についてのみ実行される。
具体的には、MFP10は、或る部分画像230に関する一連の処理に要する時間Tの半分(すなわち、T/2)が経過した時点で、次の部分画像230に関する一連の処理を開始する(図7等参照)。詳細には、MFP10は、ステップS55において各文字領域画像230を外部端末50に送信し、目標送信時間Gの経過(或る部分画像230の外部端末50への送信開始時点から目標送信時間Gが経過したこと)がステップS56にて判定された後に、ステップS57を経由して、再びステップS55に戻り、次の文字領域画像230を外部端末50に送信する。このような処理は、ステップS57にて、複数の部分画像230のうちの全ての文字領域画像に関する送信処理が終了するまで繰り返し実行される。
図15は、ステップS55の詳細動作を示すフローチャートであり、図16は、その一部の動作(ステップS60)を示すフローチャートである。
複数の部分画像230のうちの注目部分画像230(ここでは、まず、1番目の部分画像230a(たとえば、232(図18)))に対して、ステップS55等の処理が実行される。
1番目の部分画像230aに対してはステップS61以降の処理が実行される。なお、ステップS60の処理は、2番目以降の部分画像230に対して実行される。
具体的には、まず、ステップS61において、MFP10は、注目部分画像230を更に小さな複数の小画像330に分割する(図4参照)。この実施形態では、部分画像230は4つの小画像330に分割される。
ステップS62においては、圧縮割合に応じた数の小画像330を所定の圧縮手法(たとえばMMR(Modified Modified READ(Relative Element Address Designate))圧縮)で圧縮する処理が行われる。1番目の部分画像230に関しては、圧縮割合は0%に初期設定されており、4つの小画像330のいずれにも圧縮処理は施されない。なお、後述するように、「圧縮割合」は、部分画像を構成する複数の小画像のうち、圧縮された小画像の割合を示す値である。
次のステップS63において、MFP10は、部分画像230(ここでは、まず1番目の部分画像230a)に関する目標送信時間Gを計算する。
各部分画像230の送信時間の目標値(各目標送信時間)Gは、ステップS50で取得された所要時間Tb(換言すれば、一連の処理の処理速度に関する情報)と各部分画像の直前の部分画像のデータ量とに基づいて、決定される。
より具体的には、(i+1)番目の部分画像230に関する目標送信時間Gは、その直前の部分画像230(i番目の部分画像230)に関する一連の処理に要する時間Tを並列処理数(「2」)で除した値に設定される(G=T/2)。目標送信時間Gは、値i(ただし、値iは自然数)の関数である。時間Tも値iの関数であり、i番目の部分画像230に関する一連の処理に要する時間(推定値)Tは、i番目の部分画像230のデータ量D1と上記の所要時間Tb(テストデータに関する一連の処理の処理速度の逆数に比例する値)とテストデータのデータ量D0とに基づいて算出される。具体的には、テストデータのデータ量D0に対するi番目の部分画像230のデータ量D1の比の値R(=D1/D0)を、所要時間Tb(テストデータに関する一連の処理の処理時間)に乗じることによって、当該時間Tが算出される(T=Tb×D1/D0)。目標送信時間Gは、当該時間Tを並列処理数(「2」)で除した値に設定される。
1番目の部分画像230に関する目標送信時間Gは、その直前の部分画像230が存在しないため、例外的に適宜の値(ここでは、2番目の部分画像230に関する目標送信時間G(後述)と同じ値)に設定される。具体的には、1番目の部分画像230に関する目標送信時間Gは、1番目の部分画像230に関する一連の処理に要する時間Tを並列処理数(「2」)で除した値に設定される(G=T/2)。
そして、MFP10は、1番目の部分画像230の送信時間の計測を開始する。
ステップS64〜ステップS66では、MFP10は、部分画像230(ここでは1番目の部分画像230a)の送信を行う。具体的には、MFP10は、部分画像230を分割した複数(ここでは4つの)小画像330を順次に外部端末50に対して送信する。より詳細には、ステップS64で送信を開始した各小画像330に関して、外部端末50から送信されてきた受信完了確認(各小画像の受信完了確認)がステップS65にて受信されると、ステップS66を経由して再びステップS64に戻る。このような動作が、全て(ここでは4つ)の小画像330について終了した旨がステップS66で判定されると、ステップS66からステップS67に進む。ステップS67では、送信時間の計測処理が完了する。これにより、1番目の部分画像230をMFP10から外部端末50へと送信する送信処理の所要時間(外部端末50への送信開始時点から送信完了時点までの所要時間(送信時間))が計測される。
1番目の部分画像230aの目標送信時間Gの経過後にステップS56からステップS57に進む。具体的には、部分画像230aの送信開始時点から目標送信時間Gが未だ経過していないときには、当該目標送信時間Gの経過を待った後にステップS57に進み、部分画像230aの送信開始時点から既に目標送信時間Gが経過しているときには直ちにステップS57に進む。そして、ステップS57を経由して、ステップS55に戻る。このステップS55では、新たな注目部分画像(2番目の部分画像230b)に対する処理が実行される。
2番目の部分画像230bに対しては、ステップS60(図15および図16参照)の処理が実行される。
具体的には、ステップS70(図16)において、MFP10は、前回の部分画像230(詳細には、現在の注目部分画像230bの直前の部分画像230a)の送信時間に関する、目標送信時間Gに対する実際の送信時間(実測送信時間)(計測値)Mの比率R(R=M/G)を算出する。当該比率Rは、計測値対目標値比率あるいは対目標値比率とも称される。
詳細には、1番目の部分画像230aに関するMFP10から外部端末50への送信処理の所要時間の目標値G(前回のステップS63で得られた目標送信時間G)と、1番目の部分画像230aに関するMFP10から外部端末50への送信処理の所要時間の計測値M(前回のステップS67で得られた計測値)とに基づいて、比率R(=M/G)が算出される。
そして、直前の部分画像230(232a)に関する比率Rに応じて、今回の部分画像230(232b)の圧縮割合が変更される。「圧縮割合」は、部分画像230を構成する複数の小画像330のうち、圧縮された小画像330の割合を示す値である。ここでは、「圧縮割合」は、「(部分画像を構成する)小画像330の全数に対する、圧縮された小画像330の数」で表現される。
図19〜図22は、部分画像230の圧縮割合に関する5つの段階を示す図である。各図の最も左側においては部分画像230が示され、各図の中央においては、当該部分画像230が4つの小画像330に分割された様子が示されている。また、各図の最も右側においては、当該4つの小画像330のそれぞれが圧縮されているか否かが示されている。
図19は、圧縮割合0%を示す図であり、図20は、圧縮割合25%を示す図である。同様に、図21は、圧縮割合50%を示す図であり、図22は、圧縮割合75%を示す図であり、図22は、圧縮割合100%を示す図である。
図19においては、4つの小画像330の全てが圧縮されておらず、小画像330の全数(ここでは4)に対する圧縮された小画像330の数の割合(圧縮割合)は、0%である。図20においては、4つの小画像330のうち1つの小画像330のみが圧縮されており(他の3つの小画像330は非圧縮)、小画像330の全数に対する圧縮された小画像330の数の割合(圧縮割合)は、25%(=1/4)である。図21においては、4つの小画像330のうち2つの小画像330が圧縮されており、圧縮割合は、50%(=2/4)である。また、図22においては、4つの小画像330のうち3つの小画像330が圧縮されており(他の1つの小画像330は非圧縮)、圧縮割合は、75%(=3/4)である。また、図23においては、4つの小画像330の全てが圧縮されており、圧縮割合は、100%(=4/4)である。
ステップS71〜ステップS74においては、4つの小画像330に対する圧縮の有無を変更することによって、各部分画像の圧縮度合いが変更される。これにより、圧縮度合いの変更前後において、送信対象の部分画像230のデータ量が変更される。
比率Rが閾値TH1よりも大きいと判定される場合には、ステップS71からステップS74に進み、圧縮割合が1段階(ここでは25%)増大される。閾値TH1は、「1」(=100%)よりも小さな値(ここでは90%)である。このようにして、部分画像230を分割した複数の小画像330のうち、圧縮する小画像330の数を増大させることによって、当該部分画像230の圧縮度合いが増大される。なお、圧縮割合が既に最大値(100%)である場合には、当該圧縮割合が維持される。
たとえば、1番目の部分画像230に関する比率Rが閾値TH1よりも大きい場合には、圧縮割合が0%(初期値)から25%(図20参照)へと1段階増大される(ステップS74)。
一方、比率Rが閾値TH2よりも小さいと判定される場合には、ステップS72からステップS73に進み、圧縮割合が1段階(ここでは25%)低減される。閾値TH2は、閾値TH1よりも小さな値(ここでは70%)である(TH2<TH1)。閾値TH1は上限側閾値とも称され、閾値TH2は下限側閾値とも称される。このようにして、部分画像230を分割した複数の小画像330のうち、圧縮する小画像330の数を減少させることによって、当該部分画像230の圧縮度合いが低減される。なお、圧縮割合が既に最小値(0%)である場合には、当該圧縮割合が維持される。
また、比率Rが閾値TH1よりも小さく且つ閾値TH2よりも大きいと判定される場合には、当該部分画像230の圧縮割合は維持され、圧縮度合いも維持される。なお、統合成立時(R=TH1のとき、あるいはR=TH2のとき)には、圧縮割合が維持されてもよく、圧縮割合が変更されてもよい。
以上のようなステップS60の処理の後、ステップS61(図15)に進む。
ステップS61では、MFP10は、部分画像(バンド画像)230を4つの小画像330に分割する。そして、ステップS62においては、ステップS60で更新された「圧縮割合」に応じた数の小画像330を圧縮する処理が行われる。2番目の部分画像230bに関してその圧縮割合が25%に更新されたものとすると、部分画像230bに関する4つの小画像330のうちの1つの小画像330に圧縮処理(画像圧縮処理)が施される。
ステップS63においては、MFP10は、2番目の部分画像230bに関する目標送信時間Gを計算する。
2番目の部分画像230bに関する目標送信時間Gは、1番目の部分画像230aに関する一連の処理に要する時間Tを並列処理数(「2」)で除した値に設定される(G=T/2)。ここにおいて、1番目の部分画像230に関する一連の処理に要する時間(推定値)Tは、1番目の部分画像230のデータ量と上記の所要時間Tb(換言すれば、テストデータに関する一連の処理の処理速度)とに基づいて算出される。具体的には、テストデータのデータ量D0に対する1番目の部分画像230のデータ量D1の比の値R(=D1/D0)を、所要時間Tb(テストデータに関する一連の処理の処理時間)に乗じることによって、当該時間Tが算出される(T=Tb×D1/D0)。そして、目標送信時間Gは、当該時間Tを並列処理数(「2」)で除した値に設定される。
このように、各部分画像230(各注目部分画像)の送信時間の目標値(各目標送信時間)Gは、当該各部分画像230の直前の部分画像のデータ量とテストデータに関する一連の処理の処理速度とに基づいて、決定される。
そして、MFP10は、2番目の部分画像230の送信を外部端末50に送信する(ステップS64〜S67)。具体的には、2番目の部分画像230の分割後の4つの小画像330が順次に外部端末50に向けて送信される。2番目の部分画像230の圧縮割合がたとえば25%である場合には、4つの小画像330のうちの1つの小画像330が、圧縮された状態で送信され、その他の3つの小画像330は、非圧縮状態で送信される。
また、MFP10は、2番目の部分画像230bの送信時間を測定する。当該部分画像230bの送信時間(計測値)は、当該部分画像230bの次の部分画像230cに関する圧縮度合いを決定する際に用いられる(ステップS70(図16))。このように、各部分画像230の送信時間(計測値)は、当該各部分画像230の次の部分画像230に関する圧縮度合いを決定する際に用いられる。
その後、2番目の部分画像230bの目標送信時間Gの経過後に、ステップS56からステップS57に進む。具体的には、部分画像230bの送信開始時点から目標送信時間Gが未だ経過していないときには、当該目標送信時間Gの経過を待った後にステップS57に進み、部分画像230bの送信開始時点から既に目標送信時間Gが経過しているときには直ちにステップS57に進む。そして、ステップS57を経由して、ステップS55に戻る。このステップS55以降では、新たな注目部分画像(3番目の部分画像230c)に対する処理が実行される。これにより、3番目の部分画像230に関しても、2番目の部分画像230と同様にして、MFP10から外部端末50への送信処理等が実行される。以後、4番目以後の部分画像230に関しても同様の処理が行われる。
このようにして、MFP10から外部端末50に対して、複数の部分画像230(文字領域画像)が順次に送信される。
さて、上述のようなMFP10におけるステップS55〜S57の処理と並行して、外部端末50においてはステップS12〜S14の処理が実行される。
具体的には、ステップS12において、外部端末50は、部分画像230(文字領域画像)をMFP10から受信する。具体的には、まず1番目の部分画像230(232)が受信される。
より詳細には、1番目の部分画像230(232)が4つの小画像330に分割されて受信される。図13に示すように、当該部分画像230に関する4つの小画像330のうち先ず1番目の小画像330が受信される(ステップS20)。当該小画像330が圧縮されている場合には、外部端末50は、当該小画像330を伸長して格納部55に格納し(ステップS21,S22)、当該小画像330の受信完了をMFP10に通知する(ステップS23)。一方、当該小画像330が圧縮されていない場合には、外部端末50は、当該小画像330を伸長することなく、そのまま格納部55に格納し、当該小画像330の受信完了をMFP10に通知する(ステップS23)。未処理の小画像330が存在する場合には、ステップS24からステップS20に戻り、再び同様の処理が実行される。これにより、2番目の小画像330と3番目の小画像330と4番目の小画像330とが受信される。
ここにおいて、外部端末50の圧縮伸長処理部66は、MFP10から送信されてきた複数の小画像330のうち、圧縮されて送信されてきた小画像330に対してのみ、伸長処理を実行する(ステップS21,S22)。非圧縮の小画像330に対しては伸長処理は施されないので、外部端末50における電力消費量が低減される。特に、圧縮割合が小さい程、非圧縮の小画像330の数が多いので、電力消費量を比較的顕著に低減することができる。
4つの小画像330の全ての受信が完了すると、ステップS24からステップS25に進み、当該4つの小画像330が合成されて部分画像230が生成(復元)される。詳細には、第1の種類の小画像と第2の種類の小画像(次述)とのうちの少なくとも一方の種類の小画像を含む4つの小画像330が合成されて、部分画像230が復元される。ここで、第1の種類の小画像は、MFP10から外部端末50への送信時に圧縮されていた小画像(圧縮小画像)であって外部端末50にて伸長処理が施された小画像である。一方、第2の種類の小画像は、MFP10から外部端末50への送信時に圧縮されていなかった小画像(非圧縮小画像)であって外部端末50による伸長処理が施されない小画像(第2の種類の小画像)である。
次のステップS13(図12)においては、外部端末50は、ステップS12で受信された部分画像230をクラウドサーバ90に転送(送信)し、クラウドサーバ90に当該部分画像230に対するOCR処理を実行させる。なお、外部端末50は、(ステップS12で復元された)部分画像230をそのままクラウドサーバ90に転送するようにしてもよいが、復元された部分画像230を所定の圧縮手法(たとえばJPEG圧縮)で圧縮し、当該部分画像230を当該圧縮後の状態でクラウドサーバ90に転送するようにしてもよい。
クラウドサーバ90は、当該部分画像230に対するOCR処理を実行し、当該OCR処理が完了すると、当該OCR処理の処理結果を外部端末50に対して送信する。これに応じて、外部端末50は、1番目の部分画像230に関するOCR処理の処理結果をクラウドサーバ90から受信する。
ただし、上述したように、複数の部分画像230に関する上記一連の処理は並列的に実行される。
より具体的には、外部端末50は、1番目の部分画像230のクラウドサーバ90への送信処理が完了した後、当該1番目の部分画像230に関するOCR処理の処理結果の受信完了を待つことなく、ステップS14を経て再びステップS12に戻る。そして、ステップS12において次の部分画像230(2番目の部分画像230)をMFP10から受信すると、当該2番目の部分画像230をクラウドサーバ90に転送する。
同様に、外部端末50は、2番目の部分画像230に関するOCR処理結果の受信完了を待つことなく、さらに次の部分画像230(3番目の部分画像230)をMFP10から受信し、当該3番目の部分画像230をクラウドサーバ90に転送する。
以降、同様の転送動作等が繰り返し実行される。
このような送信処理(転送処理)の合間に、外部端末50は、クラウドサーバ90から送信されてくる各部分画像230に関するOCR処理結果を随時受信する。なお、当該OCR処理結果の受信処理は、図示の都合上、図12のフローチャートには示していないが、ステップS13における送信処理の後において(より詳細には、ステップS12〜S14におけるループ処理の期間中および/またはステップS15の処理中等において)実行される。
このようにして、複数の部分画像230に関する一連の処理が並列的に実行される。なお、MFP10は、各部分画像230をそれぞれ直前の部分画像230の送信開始時点から目標送信時間G(=T/2)が経過した時点で順次に外部端末50へと送信する(ステップS55,S56(図14))。そして、外部端末50は、このようなタイミングでMFP10から送信されてきた各部分画像230を受信すると直ちにクラウドサーバ90に転送する。このような処理によれば、外部端末50は、結果的に、直前の部分画像230のクラウドサーバ90への転送開始時点から目標送信時間G(=T/2)がほぼ経過する時点で、各部分画像230のクラウドサーバ90への転送を開始する。このような処理によれば、各部分画像230が、ほぼ目標送信時間G(=T/2)間隔でMFP10から外部端末50に送信され、さらに、ほぼ目標送信時間G(=T/2)間隔で外部端末50からクラウドサーバ90へと転送され得る。したがって、図7等に示すように、各部分画像230に関する一連の処理を上述のように効率的に実行することが可能である。
その後、全ての文字領域画像230に関する一連の処理が終了した旨がステップS14(図12)にて判定されると、外部端末50における処理は、ステップS14からステップS15に進む(図11も参照)。
また、MFP10においても、全ての文字領域画像230に関する一連の処理が終了すると、ステップS57からステップS58に進む。
<電子文書の生成処理等>
MFP10は、ステップS58(図14)において、複数の背景領域画像(詳細にはその画像データ)を外部端末50に送信する(図11も参照)。具体的には、複数の背景領域画像231,233,235,237,239,241,243(図18)がこの順序で送信される。
外部端末50は、ステップS15(図12)において、複数の背景領域画像を受信すると、MFP10から受信した全ての部分画像230(文字領域画像と背景領域画像との双方)を元の順序に並べ替えた後に合成して、原稿画像データを生成する。また、外部端末50は、当該原稿画像データを圧縮して圧縮後の原稿画像データを生成する(ステップS16)。
そして、ステップS17において、ステップS16で得られた圧縮後の原稿画像データに対して、ステップS13で得られたOCR結果が重ねられ、サーチャブルPDF形式の電子文書500が生成される。
以上のような動作によれば、各部分画像230がMFP10から外部端末50に送信される際に、各部分画像230の送信時間が各部分画像230の目標送信時間G以内になるべく収まるように制御される。より具体的には、各部分画像230の送信時間を各目標送信時間G以内に収めるべく各部分画像230の圧縮度合いが変更され(ステップS60)、圧縮度合いが変更された各部分画像230がMFP10から外部端末50に送信される(ステップS55)。
これによれば、外部端末50とクラウドサーバ90との間での一連の処理を効率的に実行することが可能である。詳細には、MFP10から外部端末50への部分画像230の到達遅延を回避ないし抑制することが可能であり、外部端末50における待機時間の発生(ひいては通信動作の遅延)を回避ないし抑制することが可能である。したがって、外部端末50からクラウドサーバ90への各部分画像230の転送動作をより円滑に行うことが可能である。
また、上記ステップS55においては、各部分画像がそれぞれ複数の小画像330にさらに分割され、当該複数の小画像330に対する圧縮の有無を変更することによって、各部分画像の圧縮度合いが変更される(ステップS60〜S62)。これによれば、1または幾つかの小画像330に対する圧縮処理が行われないこともある。複数の小画像330をMFP10から受信する外部端末50は、複数の小画像330のうち非圧縮の小画像330に関しては伸長処理を行うことを要しないので、電力消費を抑制することが可能である。特に、外部端末50がバッテリー駆動される場合には、バッテリー駆動による装置使用時間の短縮を抑制することが可能である。
また、ステップS53においては、「文字領域画像」に分類された複数の文字領域画像(部分画像)が、そのデータ量の大きい順(データ量の降順)に並べ替えられる。そして、当該並べ替えられた後の順序に従って当該複数の文字領域画像(部分画像)が外部端末50に順次に送信される。これによれば、比較的近いデータ量を有する複数の部分画像が順次に送信されるので、そのデータ量に大きな変動を有する不規則な順序で複数の部分画像が送信される場合に比べて、各部分画像の送信時間が経時的に大きくばらつく(変動すること)ことを抑制することが可能である。
<2.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記実施形態においては、各部分画像に関する「圧縮割合」は、「小画像330の全数に対する、圧縮された小画像330の数」で表現されているが、これに限定されない。具体的には、データ量に関する比率で表現されてもよい。より詳細には、圧縮割合は、「小画像330の圧縮前の全データ量に対する、圧縮された小画像330の圧縮前のデータ量の割合」、等で表現されてもよい。
また、上記実施形態においては、各部分画像がそれぞれ複数の小画像330にさらに分割され、当該複数の小画像330に対する圧縮の有無を変更することによって、各部分画像の圧縮度合いが変更されている(ステップS60〜S62(図15等参照))が、これに限定されない。具体的には、各部分画像の圧縮率を変更することによって、各部分画像の圧縮度合いが変更されるようにしてもよい。より詳細には、各部分画像の圧縮率(=圧縮後のデータ量/圧縮前のデータ量)を、80%から60%に変更することによって、各部分画像の圧縮度合いが変更されるようにしてもよい。
また、上記実施形態においては、各部分画像230(処理単位領域)はそれぞれ行単位の領域(1行の行領域)である態様が例示されているが、これに限定されず、各部分画像230(処理単位領域)は、その他の単位の領域(たとえば、段落単位の領域、あるいは1行よりも小さな単位の領域)であってもよい。
また、上記実施形態では、透明テキスト付きPDF(元の文字画像に重畳して、OCR結果の文字列が非表示状態で埋め込まれているPDF形式のファイル)(サーチャブルPDF等)が電子文書500として生成されているが、本発明はこれに限定されない。たとえば、最終的に生成された電子文書500において、スキャン画像における元の文字画像が削除されるとともに、OCR結果に係る文字列が可視化された状態で(「表示状態」で配置されて)当該元の文字画像の代わりに表示されるようにしてもよい。
また、上記実施形態においては、PDF形式の電子文書が例示されているが、本発明はこれに限定されず、他の各種の形式(XPS形式等)の電子文書が生成されるようにしてもよい。
また、上記実施形態においては、クラウドサーバ90において「OCR処理」が実行される態様が例示されているが、これに限定されず、その他の処理がクラウドサーバ90において実行されても良い。たとえば、「OCR処理」とともに「翻訳処理」がクラウドサーバ90において実行されるようにしてもよい。