本発明は、構造化文書画像に対し、その内容の秘匿化もしくは判読困難化のための処理を行う装置及び方法に関する。
ここで、本発明の対象とする構造化文書画像は、「文書のページのラスター画像が、それを合成復元するための背景レイヤ(1)と、n組の前景レイヤ(i)及びマスクレイヤ(i)のペア(ただし、nは1以上の整数;i=1,2,...,n)に分解され、マスクレイヤ(i)に従って前景レイヤ(i)と背景レイヤ(i)の一方の値を画素毎に選択する方法、又は、マスクレイヤ(i)に従って前景レイヤ(i)と背景レイヤ(i)の値の加重平均を画素毎にとる方法により背景レイヤ(i+1)を合成する手順を、i=1からi=nまで順に繰り返し、最終的に合成された背景レイヤ(n+1)として文書のページのラスター画像が復元されるもの」と定義される。
なお、以下の説明において、背景レイヤ、前景レイヤ、マスクレイヤをそれぞれ背景、前景、マスクと記すことがある。
このような構造化文書画像の具体例として、次に述べるMRCやJPMの構造化文書画像がある。JPMでは、レイヤをオブジェクトと呼び、背景をベースページ(Base Page)オブジェクトと呼び、前景をイメージオブジェクトと呼ぶ。このように、各レイヤの名前(背景、前景、マスク)それ自体は重要ではなく、また、レイヤと呼ぶかオブジェクトと呼ぶかも重要ではない。実質的に上記定義に沿った構造化文書画像であれば、本発明の対象とする構造化文書画像に包含される。
一般に文書は文字・線画と画像の混在したものである。近年、こうした混在文書のページのラスター画像を効率的に符号化するために、文書のページのラスター画像を背景と、1又は複数組の前景及びマスクのペアに分解し、それら各レイヤを別々に符号化する手法が提案されている。
例えば、MRC(ミクスト・ラスター・コンテント)モデルと呼ばれる手法では、図1に模式的に例示するように、文書のページのラスター画像を文字の色情報である前景、文字領域情報であるマスク、画像情報である背景に分解し、背景、前景、マスクを別々に符号化する。文書のページのラスター画像を復元する場合には、背景、前景、マスクの符号を復号した後、マスクに従って前景又は背景の値を画素毎に選択することにより復元画像を合成する。なお、文書のページのラスター画像を背景と、2組以上の前景及びマスクとに分解し、背景、前景、マスクを符号化することも可能である。また、マスクは前景の透過率(前景と背景の混合比)を持つ場合もある。背景、マスク、前景の解像度を任意に選択できることもある。
このMRCに関しては、例えば特許文献1に、文書のページのラスター画像の絵柄部分を表す多値の絵柄画像(背景)、文書のページのラスター画像の文字・線画部分の色情報を表す多値の文字色画像(前景)、文書のページのラスター画像の文字・線画の形状を表す2値の選択データ(マスク)をそれぞれJPEG、Lempel−Ziv、MMRで符号化した符号を取り込み、各符号を伸長し、伸長された絵柄画像データ又は文字色画像データを、伸長された選択データに従って画素毎に選択することにより文書のページのラスター画像を合成復元する画像処理装置の発明が記載されている。そして、この先行発明は、同特許文献の段落(0003)〜(0005)等の記載によれば、高圧縮率時の文字・線画の劣化を防止することを主要な目的とするものである。
このようなMRCによる構造化文書画像のファイル構造の例を図2に示す。図示のように、MRCファイルは全体のヘッダ、1つの背景の符号とそのためのヘッダ、1組以上の前景の符号及びマスクの符号のペア、その各ペア用のヘッダから構成されるのが典型である。
近年、新たな符号化方式JPEG2000の登場とともに、前記MRCモデルの前景、マスク、背景の圧縮方式としてJPEG2000の利用を可能にしたJPM(JPEG2000 Multi Layer)という方式が提案されている。
図3はJPMの概要を説明するための模式図である。文書の各ページのラスター画像Page(ページ)は1組以上のレイアウトオブジェクト(Layout Object)と、背景(Base Page)とに分解される。JPMの場合、背景(Base Page)は単色又は透明と規定されており、パラメータ指定である。レイアウトオブジェクト(Layout Object)は、前景(Image)とマスク(Mask)からなる。前景には通常の画像データが格納される。マスクは、前景の不透明度を表す。レイアウトオブジェクトは、通常、マスクと前景のペアであるが、どちらか一方のみとすることも可能である。レイアウトオブジェクトが前景のみからなる場合、マスクは1(すべて上書き)として扱われる。レイアウトオブジェクトがマスクのみからなる場合、前景は指定値となる。前景とマスクは通常、符号化される。なお、JPMでは、背景、前景、マスクの各レイヤはオブジェクトと呼ばれ、また、前景はイメージオブジェクトと呼ばれる。
図4は、JPMによる構造化文書画像のページ画像再現の例を説明するための図である。なお、図4の下部に画像合成(再現)のための演算式を示す。ページ画像再現に先立って、符号化された前景やマスクは復号化される。
最初にBase Page(背景)がPageImage_0(背景0)とされ、これと1つ目のレイアウトオブジェクトのImage_0(前景0)及びMask_0(マスク0)からPageImage_1(背景1)が合成される。すなわち、Mask_0の黒の画素位置では不透明度が1となり、Image_0がPageImage_0に上書きされる。Mask_0の白の画素位置では透明度が1となり、PageImage_0が表示される。同様に、PageImage_1(背景1)と2つ目のレイアウトオブジェクトのImage_1(前景1)とMask_1(マスク1)からPageImage_2(背景2)が作られる。すなわち、Mask_1の黒の画素位置でImage_1がPageImage_1に上書きされ、Mask_1の白の画素位置でPageImage_1が表示される。この例では、PageImage_2が最終的に表示される再現画像PageImageとなる。
図4の下部に示した2番目の式が背景と前景の合成のための演算式である。なお、MmとImは、m番目のレイアウトオブジェクトにおけるマスクの画素値と背景の画素値を表す。cはコンポーネントをあらわす。マスクはシングルコンポーネントである。[x,y]は画素の座標を表し、SmはMmの最大値(2のべき乗-1)を表し、nはレイアウトオブジェクトの個数を表す。
2番目の式について説明を補足する。図4の例ではマスクは2値(画素あたり1ビット)の場合であり、Sm=1であるため、
マスク値が1のときには合成画像値=前景値、
マスク値が0のときには合成画像値=背景値
となった。つまり、マスク値により前景値又は背景値の一方が選択される形なる。
しかし、マスクを多値にすることもでき、例えばマスクの各画素が8ビットの正値(0を含む)をとる場合には、Sm=255であるため、各画素について
合成画像値=(255−マスク値)/255)×背景値+(マスク値/255)×前景値
により前景値と背景値の加重平均をとった値が合成画像値となる。このように、マスクに前景の透過率(前景と背景の混合比)を持たせることもできる。
JPMによる構造化文書の別の例を図5に示す。この例では、原画像(図1の例と同じもの)が、1つの背景と2つのレイアウトオブジェクトに分解され、各レイアウトオブジェクトの前景及びマスクは同じ分割境界でタイル分割されてJPEG2000により符号化されている。この例では、マスク1は単色(全画素位置で”1”)であり、レイアウトオブジェクトの領域もしくは領域の情報のみを表しており、文字の形状といった情報は持たない。もう一つのマスク2は、文字の形状(領域)を表している。
以上に述べたJPMによる構造化文書画像のファイル構造を図6に示す。図中の点線部分はオプションであるので、実線部分を中心に簡単に説明する。「JPEG2000 Signature box」は、当該ファイルがJPEG2000ファミリーに属することを示す全体のヘッダである。「File Type box」は当該ファイルがJPMフォーマットであることを示す全体のヘッダである。「Compound Image Header box」は、当該ファイルの内容の全般的な情報を含む全体のヘッダである。「Page Collection box」は、マルチページからなる場合に各ページの順番を示す目次的なものである。「Page box」はページの解像度等を示す全体のヘッダである。ここで、ページとは、画像を順次重ねて(合成して)いくためのキャンバスであり、合成が終わった後の画像と同じ大きさを持つ。JPMの場合、ページには、前景とマスクのペアで構成されるレイアウトオブジェクトが順次描画される。「Layout Object box」は、前景とマスクのサイズや位置等を示す、前景及びマスク用のヘッダである。「Media Data box」や「Contiguous Codestream box」は、前景やマスクの符号を含む部分である。なお、JPMでは、図4の例からも分かるように、背景(BasePage)は、レイアウトオブジェクトが描画される前の初期的なページとして扱われる。また、前述したように、マスクに従って前景と背景の一方を選択する合成方法と、マスクに従って前景と背景の加重平均をとる合成方法とがあるが、そのいずれの合成方法を用いるかは、前景とマスクのペア(レイアウトオブジェクト)ごとに各ペア用ヘッダに指定することができる。
以上、本発明の対象とする構造化文書画像の具体例としてMRCとJPMに関し説明した。本発明は、そのような構造化文書画像に対し、その内容の秘匿化もしくは判読困難化のための処理を行うものである。
前述したような構造化文書画像ではなく、コンピュータで作成したような電子文書を対象にしたものであるが、文書の閲覧を制限すべき部分を秘匿化するための発明が特許文献1に開示されている。この先行発明で扱われる電子文書は、具体的には、特許文献1の段落[0028]、図3、図4等に記載されているように、テキストデータが含まれるテキストレイヤと、テキストデータ以外のコンピュータグラフィクス又はラスター画像が含まれる画像レイヤから構成される。そして、この先行発明では、秘匿化したい領域について、テキストレイヤを不可読画像で置換したり暗号化したり、画像レイヤをマスクしたりスクランブル化したりする秘匿化処理を施す。
特開平11−177977号公報
特開2004−289456号公報
近年のセキュリティニーズの高まりに伴い、本発明の対象とする構造化文書画像についても、その内容の秘匿化もしくは判読困難化のための暗号化を施す必要性が増している。しかし、暗号化(及びその解読)は処理量が多い点が難点である。特に、本発明の対象とする構造化文書画像は複数レイヤ構造であるため、単純に全てのレイヤを暗号化することによって秘匿化しようとすると、暗号化(及び解読)のための処理量が極めて大きくなってしまうという問題がある。
よって、本発明の目的は、暗号化(及び解読)のための処理量の増加を抑えつつ、先に定義した構造化文書画像を暗号化により秘匿化もしくは判読困難化する装置又は方法を提供することにある。
ここで、本発明の対象とする構造化文書画像は、先に述べたように、「文書のページのラスター画像が、それを合成復元するための背景レイヤ(1)と、n組の前景レイヤ(i)及びマスクレイヤ(i)のペア(ただし、nは1以上の整数;i=1,2,...,n)に分解され、マスクレイヤ(i)に従って前景レイヤ(i)と背景レイヤ(i)の一方の値を画素毎に選択する方法、又は、マスクレイヤ(i)に従って前景レイヤ(i)と背景レイヤ(i)の値の加重平均を画素毎にとる方法により背景レイヤ(i+1)を合成する手順を、i=1からi=nまで順に繰り返し、最終的に合成された背景レイヤ(n+1)として文書のページのラスター画像が復元されるもの」と定義される。ただし、各レイヤの名前(背景、前景、マスク)それ自体は重要ではなく、また、レイヤと呼ぶかオブジェクトと呼ぶかも重要ではなく、実質的に上記定義に沿った構造化文書画像であれば、本発明の対象とする構造化文書画像に包含されることは先に述べた通りである。
請求項1記載の発明に係る構造化文書画像処理装置は、
構造化文書画像を入力する入力手段、
前記入力手段により入力された構造化文書画像のレイヤ群から、所定の選択基準に基づいて一部のレイヤを暗号化対象として選択し、暗号化対象として選択したレイヤのみ暗号化する処理を行う処理手段、及び
前記処理手段により処理後の前記構造化文書画像を出力する出力手段、
を有することを特徴とするものである。本発明は、構造化文書画像を暗号化により秘匿化もしくは判読困難化しようとするものであるから、当然に、上記選択基準は、暗号化による秘匿化効果もしくは判読困難化効果の高いレイヤを優先的に暗号化対象として選択するものとされる。
請求項2記載の発明は、請求項1記載の発明に係る構造化文書画像処理装置において、前記処理手段が、解像度の高いレイヤを優先的に暗号化対象として選択することを特徴とするものである。すなわち、解像度の高いレイヤを優先的に選択するという選択基準を用いることを特徴とする。一般に、レイヤの解像度が高いということは、そのレイヤの情報量が多いと言えるので、解像度の高いレイヤほど暗号化することによる秘匿化効果は大きいと推定される。したがって、解像度の高いレイヤを優先的に選択して暗号化することによって、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
請求項3記載の発明は、請求項1記載の発明に係る構造化文書画像処理装置において、前記処理手段が、符号量の大きいレイヤを優先的に暗号化対象として選択することを特徴とするものである。すなわち、符号量の大きいレイヤを優先的に選択するという選択基準を用いることを特徴とする。一般に、解像度やビット深さが同じレイヤであっても、符号量が大きいということは情報量が多いことに他ならないので、符号量が大きいレイヤほど暗号化することによる秘匿化効果は大きいと推定される。したがって、符号量の大きいレイヤを優先的に選択して暗号化することによって、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
請求項4記載の発明は、請求項1記載の発明に係る構造化文書画像処理装置において、前記処理手段が、1ビットのビット深さを持つレイヤを優先的に暗号化対象として選択することを特徴とするものである。すなわち、1ビットのビット深さを持つレイヤを優先的に選択するという選択基準を用いることを特徴とする。レイヤのビット深さが1ビットであるということは、そのレイヤは2値表現されているということであり、文字画像もしくは文字の形状を表すものである可能性が高い。そして、このようなレイヤは一般に暗号化による秘匿化効果が高い。したがって、1ビットのビット深さを持つレイヤを優先的に選択して暗号化することによって、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
請求項5記載の発明は、請求項1記載の発明に係る構造化文書画像処理装置において、前記処理手段が、マスクレイヤを優先的に暗号化対象として選択することを特徴とするものである。すなわち、マスクレイヤを優先的に選択するという選択基準を用いることを特徴とする。マスクレイヤは文字の形状を表すことが多いため、その暗号化により高い秘匿化効果を期待できる。よって、マスクレイヤを優先的に選択して暗号化することによって、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
請求項6記載の発明は、請求項1記載の発明に係る構造化文書画像処理装置において、前記処理手段が、単色のレイヤを暗号化対象から除外することを特徴とするものである。すなわち、単色の(1つの値しか持たない)レイヤを暗号化対象から除外する(換言すれば、複数色のレイヤの方を優先する)という選択基準を用いることを特徴とする。例えば図5に示したマスク1は単色であり、文字の形状といった情報を持たないため情報量が極めて少ない。また、単色の前景レイヤや背景レイヤはテクスチャ(絵柄)を含まないため情報量が極めて少ない。このような情報量の少ないレイヤは暗号化による秘匿効果も低い。したがって、例えば同じ数のレイヤを暗号化するのであれば、単色のレイヤを暗号化対象から除外した方が、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
請求項7記載の発明に係る構造化文書画像処理方法は、
構造化文書画像を入力する入力工程、
前記入力工程により入力された構造化文書画像のレイヤ群から、所定の選択基準に基づいて一部のレイヤを暗号化対象として選択し、暗号化対象として選択したレイヤのみ暗号化する処理を行う処理工程、及び
前記処理工程により処理後の前記構造化文書画像を出力する出力工程、
を有することを特徴とするものである。
請求項8記載の発明は、請求項7記載の発明に係る構造化文書画像処理方法において、前記処理工程が、解像度の高いレイヤを優先的に暗号化対象として選択することを特徴とするものである。
請求項9記載の発明は、請求項7記載の発明に係る構造化文書画像処理方法において、前記処理工程が、符号量の大きいレイヤを優先的に暗号化対象として選択することを特徴とするものである。
請求項10記載の発明は、請求項7記載の発明に係る構造化文書画像処理方法において、前記処理工程が、1ビットのビット深さを持つレイヤを優先的に暗号化対象として選択することを特徴とするものである。
請求項11記載の発明は、請求項7記載の発明に係る構造化文書画像処理方法において、前記処理工程が、マスクレイヤを優先的に暗号化対象として選択することを特徴とするものである。
請求項12記載の発明は、請求項7記載の発明に係る構造化文書画像処理方法において、前記処理工程が単色のレイヤを暗号化対象から除外することを特徴とするものである。
請求項13記載の発明に係るプログラムは、請求項1,2,3,4,5又は6記載の構造化文書画像処理装置の各手段としてコンピュータを機能させるものである。
請求項14記載の発明に係る情報記録媒体は、請求項1,2,3,4,5又は6記載の構造化文書画像処理装置の各手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
本発明の構造化文書画像処理装置又は方法によれば、構造化文書画像の一部のレイヤのみ暗号化することにより、暗号化(及び解読)のための処理量の増加を抑えて、効果的に構造化文書画像を秘匿化もしくは判読困難化することができる。
図7は、本発明の構造化文書画像処理装置の実施形態を説明するためのブロック図である。
本発明の構造化文書画像処理装置は、ローカルな記憶装置等やネットワーク上の機器から処理の対象となる構造化文書画像を入力する入力部100、入力された構造化文書画像を秘匿化もしくは判読困難化する処理を行う処理部101、この処理部101によって処理後の構造化文書画像をローカルな記憶装置等やネットワーク上の機器へ出力する出力部104から構成される。処理部101は、入力された構造化文書画像を構成するレイヤ群(背景と、1組以上の前景及びマスクのペア)から暗号化の対象とすべき一部のレイヤを選択する暗号化対象選択手段102と、この暗号化対象選択手段102により暗号化対象として選択されたレイヤの暗号化を行う暗号化手段103を含む。
このような構造化文書画像処理装置は、例えば図8に示すようなCPU201、メインメモリ202、ハードディスク装置203等がバス204に接続された如き一般的なコンピュータ上で実現される。そのためのプログラム、すなわち、図7に示した入力部100、処理部101及び出力部104としてコンピュータを機能させるプログラムは、例えばハードディスク装置203からメインコンピュータ202にロードされてCPU201で実行される。このようなプログラム、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子等のコンピュータ読み取り可能な情報記録(記憶)媒体は請求項13,14記載の発明に包含される。
図8に示すようなコンピュータ上で本発明の構造化文書画像処理装置を実現した場合の処理の流れは概ね次の通りである。
(1)ハードディスク装置203に格納されている構造化文書画像が、CPU201からの(プログラムからの)命令によってメインメモリ202に読み込まれる。
(2)CPU201(プログラム)は、メインメモリ202上の構造化文書画像の暗号化すべきレイヤを選択し、選択したレイヤを暗号化する処理を実行する。
(3)CPU201(プログラム)からの命令によって、メインメモリ202上の処理後の構造化文書画像がハードディスク装置203に書き出される。
暗号化には基本的に任意の暗号化方式を用いることができるが、本実施形態では、暗号化側と解読側とで同一の暗号鍵を秘密に共有し、適当な長さのブロックごとに同じ鍵で暗号化を行う共通鍵暗号化方式を用いるものとする。この暗号化方式は、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の周知の方式である。
DESの基本的な動作は、(1)データを64ビット長のブロックに分割する、(2)各ブロックを56ビット長の鍵で暗号化する、の2つであるが、ブロックと鍵の使い方によって、ECB、CB、CFB、OFBの4つのモードがある。
ECB(Electronic Code Block)はDESの基本型と言えるモードであり、上に述べた基本動作がそのまま行われる。つまり、データをブロックに分割した後、各ブロックを秘密鍵で暗号化し、暗号化後のブロックを元の順番でつなぎ合わせる。
CBC(Cipher Block Chaining)は、暗号化された前ブロックと、まだ暗号化されていない現在のブロックとのXOR(排他的論理和)をとり、これを秘密鍵で暗号化する。“Chaining(連鎖)”という言葉が使われているように、各ブロックの暗号化が連鎖的に進められる。
CFB(Cipher Feedback)は、前ブロックの暗号化結果の1部(mビット)が次ブロックのmビットとXORをとる値としてフィードバックされるモードである。
OFB(Output Feedback)は、ある初期値を第1ブロックとして暗号文を生成し、その暗号文(の一部)を次の暗号文の入力として用いると同時に、その一部(mビット)を乱数として、対応するmビットのデータとXORをとるモードである。mビットを適切に選択することにより、任意のビット長毎の暗号化を実現することができる。
次に、本実施形態に係る構造化文書画像処理装置のいくつかの実施例を説明する。各実施例において、処理される構造化文書画像は図6に示したような構成のJPMファイルとして入力されるものとする。
ここで、各実施例の理解に必要な限度で、JPMファイルのBox情報について説明を補足する。
ファイル中のページ数(=Page boxの数)は、Compound Image boxから知ることができる。
各ページのPage boxには、Page Header box、Resoltion box、Base Color boxが含まれる。ページ中のレイアウトオブジェクト数(=前景とマスクのペア数=マスク数)は、Page Header boxから知ることができる。ページの背景のビット深さはBase Color boxから知ることができる。ページの背景の解像度は、Page Resolution boxから知ることができる。ただし、Page Resolution boxはオプショナルなboxであり、このboxが存在しない場合、本実施形態では背景の解像度=1として扱うものとする。
各レイアウトオブジェクトのLayout Object boxには、Layout Object Header box、Object boxが含まれ、Object boxにはObject Header box、Base Colour box、Object Scale boxが含まれる。レイアウトオブジェクトのID番号(レイアウトオブジェクトの重ね順)はLayout Object Header boxから知ることができる。レイアウトオブジェクト中のオブジェクト(レイヤ)が前景であるかマスクであるかはObject Header boxから知ることができる。レイアウトオブジェクト中の各オブジェクト(前景又はマスク)の符号長(=符号量)はObject Header boxから知ることができる。各オブジェクト(前景又はマスク)のビット深さはBase Colour boxから知ることができる。なお、Base Colour boxにはコンポーネント毎のビット深さが記載されているが、本実施形態では全コンポーネントのビット深さが同一であるものとして扱う。
各オブジェクト(前景又はマスク)の背景に対する解像度の比はObject Scale boxから知ることができる。より詳しくは、Object Scale boxには、背景に対する水平方向の解像度の倍率を示す値(HRN,HRD)と、背景に対する垂直方向の解像度の倍率を示す値(VRN,VRD)が記載されており、(HRN/HRD)が背景に対する水平方向の解像度の倍率、(VRN/VRD)が背景に対する垂直方向の解像度の倍率である。本実施形態では、大きい方向の倍率を採用し、
オブジェクトの解像度
=max(VRD/VRD,HRN/HRD)×背景の解像度 式(1)
によりオブジェクトの解像度を算出するものとする。ただし、先に述べたようにResolution boxが存在しないときは、便宜、背景の解像度=1とする。
なお、レイアウトオブジェクト中のオブジェクト(前景又はマスク)の符号量が暗号化により変化する場合には、Object Header box中のLENフィールドを修正する必要がある。しかし、本実施形態では、符号化前の符号量がパディングによって8バイト単位に揃えられていて、暗号化方式としてDESを使用するものとしているので、暗号化に伴うLENフィールドの修正は不要である。
本実施例における処理フローを図9に示す。本実施例では、ページ数=1,レイアウトオブジェクト数=1のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step1)。
処理部101は、入力されたJPMファイルのPage boxを検知する(step2)。
次に、処理部101は、Resolution boxを検知して背景の解像度を取得する(step3)。ただし、前述したように、Resolution boxを検知できないときは、背景の解像度を1とする。
次に処理部101は、Layout Object boxを検知し(step4)、1つ目のObject boxを検知し(step5)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号量を取得する(step6)。次に、当該Object box中のObject Scale boxを検知し、それに記載されているVRN,VRD,HRN,HRDの値とstep3で取得された背景の解像度を用い、前記式(1)により当該オブジェクトの解像度を算出する(step7)。
処理部101は、次のObject boxを検知し(step8)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号量を取得する(step9)。次に、当該Object box中のObject Scale boxを検知し、それに記載されているVRN,VRD,HRN,HRDの値とstep3で取得された背景の解像度を用い、前記式(1)により当該オブジェクトの解像度を算出する(step10)。
処理部101は、その暗号化対象選択手段102によって、step7とstep10で算出し2つのオブジェクト(前景とマスク)の解像度を比較し、解像度の高い方のオブジェクトを暗号化対象のオブジェクト(レイヤ)として選択する(step11)。なお、JPMでは背景は単色又は透明と規定され、パラメータ指定であって符号自体が存在しないため、選択の対象から除外されている。処理部101は、選択されたオブジェクトの符号を読み込み、この符号を暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの元の符号を置き換える処理を行う(step12)。
処理後のJPMファイルが出力部104により出力され(step13)、一連の処理を終了する。
このように、本実施例においては、前景とマスクの中で、解像度の高いオブジェクト(レイヤ)を優先的に暗号化対象として選択する。したがって、本実施例は請求項2記載の発明の一実施例に相当し、当然に請求項1記載の発明の一実施例でもある。
(実施例1の変形例)
なお、レイアウトオブジェクトが複数存在する場合、各レイアウトオブジェクトについて、前景とマスクの解像度を比較し、解像度の高い方のオブジェクト(前景又はマスク)を暗号化対象として選択することも可能であり、かかる態様も請求項2記載の発明に包含される。
本実施例における処理フローを図10に示す。本実施例では、ページ数=1、レイアウトオブジェクト数=1のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step21)。
処理部101は、背景の符号量=0と設定する(step22)。JPMの場合、背景は単色又は透明と規定され、パラメータ指定であるため、便宜上、その符号量を0に設定するわけである。
処理部101は、入力されたJPMファイルのPage boxを検知し(step23)、そのLayout Object boxを検知し(step24)、その1つ目のObject boxを検知し(step25)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号量を取得する(step26)。
処理部101は、次のObject boxを検知し(step27)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号量を取得する(step28)。
処理部101は、その暗号化対象選択手段102によって、step22,step26,step29で取得した3つのオブジェクト(背景、前景、マスク)の符号量を比較し、最も大きな符号量のオブジェクト(背景の符号量=0ゆえ、前景又はマスク)を暗号化対象のオブジェクト(レイヤ)として選択する(step30)。処理部101は、選択されたオブジェクトの符号を読み込み、この符号を暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの元の符号を置き換える処理を行う(step12)。処理後のJPMファイルが出力部104により出力され(step13)、一連の処理を終了する。
本実施例では、符号量の大きいオブジェクト(レイヤ)を優先的に暗号化対象として選択する。したがって、本実施例は請求項3記載の発明の一実施例に相当し、当然に請求項1記載の発明の一実施例でもある。
(実施例2の変形例)
なお、JPMの場合、背景は単色又は透明で、その符号自体も存在しないため、step22を省き、step29では背景とマスクの間で符号量の比較を行って暗号化対象を選択するようにしてもよい。
一方、図1及び図2により説明したMRCファイルでは、背景は写真等のイメージであることが多い。したがって、MRCファイルを扱う場合には、背景の符号量も求め、背景、前景、マスクの3レイヤ間で符号量を比較し、最も符号量の大きなレイヤを暗号化対象として選択するようにするとよい。かかる態様も請求項3記載の発明に包含される。
本実施例における処理フローを図11に示す。なお、ページ数=1、レイアウトオブジェクト数=1のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step41)。
処理部101は、入力されたJPMファイルのPage boxを検知し(step42)、そのLayout Object boxを検知する(step43)。1つ目のObject boxを検知し(step44)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号長を取得する(step45)。次に、当該Object box中のBase Colour boxを検知し、それに記載されている当該オブジェクトのビット深さを取得する(step46)。
処理部101は、次のObject boxを検知し(step47)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号量を取得する(step48)。次に、当該Object box中のBase Colour boxを検知し、それに記載されている当該オブジェクトのビット深さを取得する(step49)。
処理部101は、その暗号化対象選択手段102によって、step46とstep49で得た2つのオブジェクト(前景とマスク)のビット深さが1ビットであるか調べ、ビット深さが1ビットのオブジェクトを暗号化対象のオブジェクト(レイヤ)として選択する(step50)。ビット深さが1ビットつまり2値のオブジェクトは文字の形状を表している可能性が高く、暗号化による秘匿効果も高いと推定される。なお、JPMでは背景は単色又は透明と規定され、パラメータ指定であって符号自体が存在しないため、選択の対象から除外されている。
処理部101は、選択されたオブジェクトの符号を読み込み、この符号を暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの元の符号を置き換える処理を行う(step51)。処理後のJPMファイルが出力部104により出力され(step52)、一連の処理を終了する。
このようにビット深さが1ビットのオブジェクト(レイヤ)を優先的に暗号化対象として選択するため、本実施例は請求項4記載の発明の一実施例に相当し、当然に請求項1記載の発明の一実施例でもある。
(実施例3の変形例)
なお、図1及び図2により説明したMRCの背景には、JPMの背景のような制限はない。したがって、MRCファイルを扱う場合には、背景のビット深さも求め、それが1ビットならば暗号化の対象として選択することも可能である。かかる態様も請求項4記載の発明に包含される。
本実施例における処理フローを図12に示す。本実施例では、ページ数が1又は2以上、レイアウトオブジェクト数が2以上のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step61)。
処理部101は、入力されたJPMファイルのCompound Image Header boxを検知し、そのNPフィールドに記載されているページ数を取得する(step62)。
処理部101は、最初のページのPage boxを検知し(step63)、そのPage Header boxを検知し、そのNLobjフィールドに記載されているレイアウトオブジェクト数(=マスク数)を取得する(step64)。次に、Resolution boxを検知して背景の解像度を取得する(step65)。前述したように、Resolution boxを検知できないときは背景の解像度=1とする。
次に処理部101は、Layout Object boxを検知し(step66)、その1つ目のObject boxを検知し(step67)、そのObject Header boxを検知して、そのObjTypeフィールドの記載から当該オブジェクトの種類(前景又はマスク)を識別する(step68)。そして、当該オブジェクトがマスクでない、つまり前景であると判定したときには(step69,No)、step67に戻り次のObject boxを検知する。
step69で当該オブジェクトがマスクであると判定したときには(step69,Yes)、Objdect Header boxから当該マスクの符号の実体の位置及び符号長を取得する(step70)。次に、当該Object box中のObject Scale boxを検知し、それに記載されているVRN,VRD,HRN,HRDの値とstep65で取得された背景の解像度を用い、前記式(1)により当該マスクの解像度を算出する(step71)。
次に処理部101の暗号化対象選択手段102において、step71で算出されたマスクの解像度を所定値(例えば200dpi)と比較し(step72)、マスクの解像度が該所定値以上ならば当該マスクを暗号化対象として選択する(step73)。処理部101は、暗号化対象選択手段102で当該マスクが暗号化対象として選択されたときには、当該マスクの符号を読み込んで暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該マスクの元の符号を置き換える処理を行う(step74)。
処理部101は、step64で取得した当該ページ内のレイアウトオブジェクト数(=マスク数)と、当該ページ内で既に処理したレイアウトオブジェクト数とを比較し、当該ページ内の全てのマスクを検知したかチェックする(step75)。当該ページ内に未検知のマスクが残っているならば(step75,No)、step66へ戻り次のレイアウトオブジェクトのLayout Object boxの検知を行う。
当該ページ内の全てのマスクを検知したと判定したならば(step75,Yes)、処理部101は、これまでに処理したページ数とstep62で取得したファイル内のページ数とを比較し、全ページの処理が終了したかチェックする(step76)。そして、未処理のページが残っているならば(step76,No)、step63へ戻り次のページのPage boxを検知する。
処理部101によって全ページの処理が終了したと判定されると(step76,Yes)、処理後のJPMファイルが出力部104により出力され(step77)、一連の処理を終了する。
以上の通り、暗号化対象として選択されるオブジェクトはマスクに限定され、さらに、所定解像度より高解像度のマスクが暗号化対象として選択されるため、本実施例は請求項5記載の発明の一実施例であるとともに請求項2記載の一実施例であり、当然に請求項1記載の発明の一実施例である。
本実施例における処理フローを図13に示す。本実施例では、ページ数が1又は2以上、レイアウトオブジェクト数(=マスク数)が1又は2以上のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step81)。
処理部101は、入力されたJPMファイルのCompound Image Header boxを検知し、そのNPフィールドに記載されているページ数を取得する(step82)。
処理部101は、最初のページのPage boxを検知し(step83)、そのPage Header boxを検知し、そのNLobjフィールドに記載されているレイアウトオブジェクト数(=マスク数)を取得する(step84)。次に、処理部101は、Layout Object boxを検知し(step85)、その1つ目のObject boxを検知し(step86)、そのObject Header boxを検知して、そのObjTypeフィールドの記載から当該オブジェク
トの種類(前景又はマスク)を識別する(step87)。そして、暗号化対象選択手段102において、識別されたオブジェクトの種類がマスクであるか判定し(step88)、マスクであるならば当該オブジェクトを暗号化対象として選択する(step89)。
処理部101は、暗号化対象選択手段102で当該オブジェクトが暗号化対象として選択されなかったときには、つまり当該オブジェクトが前景であるときには(step88,No)、step86に戻り次のObject boxを検知する。
当該オブジェクトが暗号化対象として選択されたときには、処理部101は、当該オブジェクトつまりマスクの符号の実体の位置及び符号長をObjdect Header boxより取得し、当該マスクの符号を読み込んで暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該マスクの元の符号を置き換える処理を行う(step90)。
処理部101は、step84で取得した当該ページ内のレイアウトオブジェクト数(=マスク数)と、当該ページ内で既に処理したレイアウトオブジェクト数とを比較し、当該ページ内の全てのマスクを検知したかチェックする(step91)。当該ページ内に未検知のマスクが残っているならば(step91,No)、step85へ戻り次のレイアウトオブジェクトのLayout Object boxの検知を行う。
当該ページ内の全てのマスクを検知したと判定したならば(step91,Yes)、処理部101は、これまでに処理したページ数とstep82で取得したファイル内のページ数とを比較し、全ページの処理が終了したかチェックする(step92)。そして、未処理のページが残っているならぱ(step92,No)、step83へ戻り次のページのPage boxを検知する。
処理部101によって全ページの処理が終了したと判定されると(step92,Yes)、処理後のJPMファイルが出力部104により出力され(step93)、一連の処理を終了する。
以上の通り、マスクのみを暗号化対象として選択するため、本実施例は請求項5記載の発明の一実施例であり、当然に請求項1記載の発明の一実施例でもある。
(実施例5の変形例)
JPMでは、背景は単色又は透明し規定され、パラメータ指定であって符号自体が存在しないため暗号化の対象から除外される。しかし、図1及び図2により説明したMRCでは、背景にそのような制約はなく、通常、背景にはイメージが格納され、一方、前景は文字の色等を表すことが多い。
したがって、MRCファイルを扱う場合には、暗号化対象選択手段102において、レイヤの種類がマスク又は背景であるときに暗号化対象として選択させる、つまり、前景以外のレイヤを暗号化対象として選択させることも可能である。かかる態様も、前景よりもマスクを優先するため、請求項5記載の発明に包含される。
本実施例における処理フローを図14に示す。本実施例では、ページ数が1、レイアウトオブジェクト数が1又は2以上のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step101)。
処理部101は、最初のページのPage boxを検知し(step102)、そのPage Header boxを検知し、そのNLobjフィールドに記載されているレイアウトオブジェクト数を取得する(step103)。次に、処理部101は、Layout Object boxを検知し(step104)、その1つ目のオブジェクトのObject boxを検知し(step105)、そのObject Header boxを検知して当該オブジェクト(前景又はマスク)の符号の実体の位置及び符号長を取得し(step106)、当該オブジェクトの符号を読み込んで復号し、その色数を検出する(step107)。処理部101は、その暗号化対象選択手段102において、step107で検出された色数が1であるか複数であるか判定し(step108)、色数が2以上であれば(単色でない)、当該オブジェクトを暗号化対象として選択する(step109)。つまり、単色のマスクや前景は暗号化対象から除外される。例えば、図5中の単色のマスク1は暗号化対象から除外される。なお、JPMでは背景は単色であり符号自体が存在しないので、暗号化対象から初めから除外される。
処理部101は、当該オブジェクトが暗号化対象として選択されたときには、当該オブジェクトの符号を暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの符号を置き換える処理を行う(step110)。処理部101は、当該レイアウトオブジェクトの未処理のオブジェクトが残っているならば(step111,No)、step105に戻り次のObject boxを検知する。当該レイアウトオブジェクトの全てのオブジェクトを処理したならば(step111,Yes)、step103で取得したレイアウトオブジェクト数と、既に処理したレイアウトオブジェクト数とを比較することにより、全レイアウトオブジェクトを処理したか判定する(step112)。未処理のレイアウトオブジェクトが残っているならば(step112,No)、step104へ戻り次のレイアウトオブジェクトのLayout Object boxの検知を行う。
処理部101で全オブジェクトレイアウトの処理が終わった判定したならば(step112,Yes)、処理後のJPMファイルが出力部104により出力され(step113)、一連の処理を終了する。
以上の通り、単色のオブジェクト(レイヤ)を暗号化対象から除外するため、本実施例は請求項6記載の一実施例に相当し、当然に請求項1記載の発明の一実施例でもある。
本実施例における処理フローを図15に示す。本実施例では、ページ数が1、レイアウトオブジェクトが複数のJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step121)。
処理部101は、入力されたJPMファイルの最初のページのPage boxを検知し(step122)、そのResolution boxを検知して背景の解像度を取得する(step123)。前述したように、Resolution boxを検知できないときは背景の解像度=1とする。次に、Page Header boxを検知し、そのNLobjフィールドに記載されているレイアウトオブジェクト数を取得する(step124)。
次に処理部101は、Layout Object boxを検知し(step126)、その1つ目のObject boxを検知し(step126)、そのObject Header boxを検知して、当該オブジェクトの符号の実体の位置及び符号長を取得する(step127)。次に、当該Object box中のObject Scale boxを検知し、それに記載されているVRN,VRD,HRN,HRDの値とstep123で取得された背景の解像度を用い、前記式(1)により当該オブジェクトの解像度を算出する(step128)。
処理部101は、当該レイアウトオブジェクト中のオブジェクトを全てを処理したかチェックし(step129)、未処理のオブジェクトが残っているならばstep126に戻り次のオブジェクトのObject boxを検知する。
当該レイアウトオブジェクトの全てのオブジェクトを処理したならば(step129,Yes)、処理部101は、step124で取得したレイアウトオブジェクト数と、既に処理したレイアウトオブジェクト数とを比較し、全レイアウトオブジェクトを処理したか判定する(step130)。未処理のレイアウトオブジェクトが残っているならば(step130,No)、step125へ戻り次のレイアウトオブジェクトのLayout Object
boxの検知を行う。
全てのレイアウトオブジェクトを処理したと判定したならば(step130,Yes)、処理部101の暗号化対象選択手段102において、全てのレイアウトオブジェクトのオブジェクト(前景、マスク)を解像度が高い順に順位付けし、上位の所定個数のオブジェクト(例えば、上位3位までのオブジェクト)を暗号化対象として選択する(step131)。なお、JPMの背景は符号自体が存在しないため、暗号化対象から初めから除外される。
処理部101は、暗号化対象選択手段102で暗号化対象として選択されたオブジェクト(前景又はマスク)の符号を読み込んで暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの元の符号を置き換える処理を行う(step132)。そして、処理後のJPMファイルが出力部104により出力され(step133)、一連の処理を終了する。
以上の通り、解像度の高いオブジェクト(マスク又は前景)が優先的に暗号化対象として選択されるため、本実施例は請求項2記載の発明の一実施例であり、また請求項1記載の発明の一実施例である。
(実施例7の変形例)
なお、図1及び図2により説明したMRCでは、背景についてJPMのような規制はない。したがって、MRCファイルを処理する場合には、暗号化対象選択手段102において、背景も含めて解像度の高い順にレイヤの順位付けをし、例えば上位3位までのレイヤを暗号化対象として選択させることも可能である。かかる態様も請求項2記載の発明に包含される。
本実施例における処理フローを図16に示す。本実施例では、複数ページのJPMファイルを想定している。
まず、入力部100によりJPMファイルを入力する(step141)。
処理部101は、入力されたJPMファイルのCompound Image Header boxを検知し、そのNPフィールドに記載されているページ数を取得する(step142)。
処理部101は、最初のページのPage boxを検知し(step143)、そのResolution boxを検知して背景の解像度を取得する(step144)。前述したように、Resolution boxを検知できないときは背景の解像度=1とする。次に、Page Header boxを検知し、そのNLobjフィールドに記載されているレイアウトオブジェクト数を取得する(step145)。
次に処理部101は、Layout Object boxを検知し(step146)、その1つ目のObject boxを検知し(step147)、そのObject Header boxを検知して、当該オブジェクトの符号の実体の位置及び符号長を取得する(step148)。次に、当該Object box中のObject Scale boxを検知し、それに記載されているVRN,VRD,HRN,HRDの値とstep144で取得された背景の解像度を用い、前記式(1)により当該オブジェクトの解像度を算出する(step149)。
処理部101は、当該レイアウトオブジェクトのオブジェクトを全てを処理したかチェックし(step150)、未処理のオブジェクトが残っているならばstep147に戻り次のオブジェクトのObject boxを検知する。
当該レイアウトオブジェクトの全てのオブジェクトを処理したならば(step150,Yes)、処理部101は、step145で取得したレイアウトオブジェクト数と、既に処理したレイアウトオブジェクト数とを比較し、全レイアウトオブジェクトを処理したか判定する(step151)。未処理のレイアウトオブジェクトが残っているならば(step151,No)、step146へ戻り次のレイアウトオブジェクトのLayout Object
boxの検知を行う。
処理部101は、当該ページの全てのレイアウトオブジェクトを処理したと判定したならば(step151,Yes)、これまでに処理したページ数と、step142で取得したファイル内のページ数とを比較し、全ページを処理したか判定する(step152)。未処理のページが残っているならば(step152,No)、step143へ戻り、次ページのPage boxの検知を行う。
全ページを処理したらば(step152,Yes)、処理部101の暗号化対象選択手段102において、全てのページの全てのレイアウトオブジェクトの全てのオブジェクト(前景、マスク)を解像度が高い順に順位付けし、上位の所定割合のオブジェクト(例えば上位10%までのオブジェクト)を暗号化対象として選択する(step153)。なお、JPMの背景は符号自体が存在しないため暗号化対象から初めから除外される。
処理部101は、暗号化対象選択手段102で暗号化対象として選択されたオブジェクト(前景又は背景)の符号を読み込んで暗号化手段103によりDESで暗号化させ、暗号化後の符号で当該オブジェクトの元の符号を置き換える処理を行う(step154)。そして、処理後のJPMファイルが出力部104により出力され(step155)、一連の処理を終了する。
以上の通り、解像度が高いオブジェクトが優先的に暗号化対象として選択されるため、本実施例は請求項2記載の発明の一実施例であり、当然に請求項1記載の発明の一実施例でもある。
以上、本発明に係る構造化文書画像処理装置の実施形態について説明したが、その説明は請求項7乃至12の各項記載の発明に係る構造化文書画像処理方法の実施形態の説明でもあるは明らかである。すなわち、図7の入力部100は入力工程に、出力部104は出力工程に、処理部101は処理工程にそれぞれ対応する。図9乃至図16のフローチャートは、構造化文書画像処理方法の実施例を説明するためのフローチャートでもある。そして、このような本発明に係る構造化文書画像処理方法の各工程は、図8に示したようなコンピュータを利用しプログラムによって実行させることが可能である。また、図9乃至図16のフローチャートは、請求項13記載の発明に係るプログラム又は請求項14記載の発明に係る情報記録媒体に記録されたプログラムの実施例を示すものでもある。
MRCの構造化文書画像の説明のための模式図である。
MRCファイルの構成例を示す図である。
JPMの構造化文書画像の説明のための模式図である。
JPMにおける画像再現の説明のための模式図である。
JPMの構造化文書画像の例を示す模式図である。
JPMファイルの構成例を示す図である。
本発明の実施形態を説明するためのブロック図である。
コンピュータの構成を説明するためのブロック図である。
実施例1における処理フローを示すフローチャートである。
実施例2における処理フローを示すフローチャートである。
実施例3における処理フローを示すフローチャートである。
実施例4における処理フローを示すフローチャートである。
実施例5における処理フローを示すフローチャートである。
実施例6における処理フローを示すフローチャートである。
実施例7における処理フローを示すフローチャートである。
実施例8における処理フローを示すフローチャートである。
符号の説明
100 入力部
101 処理部
102 暗号化対象選択手段
103 暗号化手段
104 出力部