JP2022139237A - 情報処理装置とプログラム及び画像処理方法 - Google Patents
情報処理装置とプログラム及び画像処理方法 Download PDFInfo
- Publication number
- JP2022139237A JP2022139237A JP2021039527A JP2021039527A JP2022139237A JP 2022139237 A JP2022139237 A JP 2022139237A JP 2021039527 A JP2021039527 A JP 2021039527A JP 2021039527 A JP2021039527 A JP 2021039527A JP 2022139237 A JP2022139237 A JP 2022139237A
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- image data
- information processing
- multiplexed
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 36
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 8
- 230000006866 deterioration Effects 0.000 abstract description 23
- 229920000740 poly(D-lysine) polymer Polymers 0.000 description 150
- 238000000034 method Methods 0.000 description 66
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 26
- 238000006243 chemical reaction Methods 0.000 description 12
- 201000005569 Gout Diseases 0.000 description 10
- 238000000605 extraction Methods 0.000 description 8
- 239000003086 colorant Substances 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 238000013139 quantization Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 5
- 238000001228 spectrum Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000001444 catalytic combustion detection Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 239000003973 paint Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003705 background correction Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000001678 irradiating effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/58—Edge or detail enhancement; Noise or error suppression, e.g. colour misregistration correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/6058—Reduction of colour to a range of reproducible colours, e.g. to ink- reproducible colour gamut
- H04N1/6063—Reduction of colour to a range of reproducible colours, e.g. to ink- reproducible colour gamut dependent on the contents of the image to be reproduced
- H04N1/6066—Reduction of colour to a range of reproducible colours, e.g. to ink- reproducible colour gamut dependent on the contents of the image to be reproduced dependent on the gamut of the image to be reproduced
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
- H04N1/648—Transmitting or storing the primary (additive or subtractive) colour signals; Compression thereof
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】スキャナにより読み取った画像の劣化を防止する。【解決手段】情報処理装置は画像データに基づいて画像を形成する画像形成部と、画像を画像データとして読み取る読み取り部とに接続され、ページ記述言語で記述された原稿データに基づいて画像データを生成し、原稿データを符号化して画像データに多重化し、画像形成部に画像データを出力する。また、読み取り部により読み取られた画像データから多重化された原稿データを復元し、読み取られた画像データと復元された原稿データとを保存する。【選択図】図2
Description
本発明は、例えば情報処理装置とプログラム及び画像処理方法に関する。
従来、デジタル原稿をプリンタによって印刷した出力画像をスキャナで読取り、読取デジタル原稿として保存するスキャン機能は知られている。その際、印刷工程及びスキャン工程を経て生成された読取デジタル原稿は元のデジタル原稿から色・形状いずれも劣化する事が知られている。
そこで、特許文献1では、デジタル原稿中の色情報にプリンタの出力特性を加味して出力画像色を推定し、その推定色を印刷画像中に多重化情報として埋め込み、スキャン画像から多重化情報を抽出して色の劣化を復元する例が記載されている。
しかしながら、特許文献1では、印刷工程及びスキャン工程、また印刷原稿への追記や汚れ等によって生じた色の劣化を、劣化前の状態に近づく様復元する事は出来るが、形状復元の精度には懸念が残る。
本発明は上記従来例に鑑みて成されたもので、媒体への画像形成に起因して生じた読取デジタル原稿における画像の劣化を抑制することを目的とする。
本発明は上記従来例に鑑みて成されたもので、媒体への画像形成に起因して生じた読取デジタル原稿における画像の劣化を抑制することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。すなわち、本発明の一側面によれば、画像データに基づいて画像を形成する画像形成手段と、画像を画像データとして読み取る読み取り手段とに接続された情報処理装置であって、
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と、
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置が提供される。
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と、
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置が提供される。
また本発明の他の側面によれば、画像データに基づいて画像を形成する画像形成手段と接続された情報処理装置であって、
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と
を有することを特徴とする情報処理装置が提供される。
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と
を有することを特徴とする情報処理装置が提供される。
また本発明のさらに他の側面によれば、ページ記述言語で記述された原稿データが多重化された画像を画像データとして読み取る読み取り手段と接続された情報処理装置であって、
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置が提供される。
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置が提供される。
本発明によれば、媒体への画像形成に起因して生じた読取デジタル原稿における画像の劣化を抑制することが可能となる。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
(第一の実施形態)
図1は、本発明の記録システムの構成を示すブロック図である。同図に示すように、この印刷装置は、MFP(多機能複写機あるいはデジタル複合機:Multi Function Printer)装置40と、そのホスト装置としてのパーソナルコンピュータ(PC)50を有して構成されるものである。MFP本体とは、本体にプリンタ機能及びスキャナ機能という複数の機能を持つプリンタの事を指し、両機能を連携させて行うコピー機能も具備して居るケースが多い。
(第一の実施形態)
図1は、本発明の記録システムの構成を示すブロック図である。同図に示すように、この印刷装置は、MFP(多機能複写機あるいはデジタル複合機:Multi Function Printer)装置40と、そのホスト装置としてのパーソナルコンピュータ(PC)50を有して構成されるものである。MFP本体とは、本体にプリンタ機能及びスキャナ機能という複数の機能を持つプリンタの事を指し、両機能を連携させて行うコピー機能も具備して居るケースが多い。
ホストPC50は、主に以下の要素を有して構成されるものである。CPU501は、HDD503やRAM502に保持されているプログラムに従った処理を実行する。RAM502は、揮発性のストレージであり、プログラムやデータを一時的に保持する。また、HDD503は、不揮発性のストレージであり、同じくプログラムやデータを保持する。DATA TRANSFER I/F(データ転送インタフェース)504はMFP本体40との間におけるデータの送受信を制御する。このデータ送受信の接続方式としては、USB、IEEE1394、LAN等の有線接続や、Bluetooth、WiFi等の無線接続を用いることができる。KEY BOARD MOUSE I/F(キーボード・マウスインタフェース)505は、キーボードやマウス等のHID(Human Interface Device)を制御するI/Fであり、ユーザは、このI/Fを介して入力をすることができる。DISPLAY I/F(ディスプレイインタフェース)506は、ディスプレイ(不図示)における表示を制御する。
一方、MFP本体40は、主に以下の要素を有して構成されるものである。CPU401は、ROM403やRAM402に保持されているプログラムに従い、図3以降で後述する各実施形態の処理を実行する。RAM402は、揮発性のストレージであり、プログラムやデータを一時的に保持する。また、ROM403は不揮発性のストレージであり、図3以降で後述する各実施形態の処理で使用されるテーブルデータやプログラムを保持することができる。
DATA TRANSFER I/F(データ転送インタフェース)404はPC50との間におけるデータの送受信を制御する。PRINTER Controller(プリンタコントローラ)405はプリントヘッドを含むプリンタ408を制御する。PRINTER Controller405はHEAD Controller(ヘッドコントローラ)を含む。ヘッドコントローラは、プリンタユニット408の有する印刷ヘッドに対して記録データに基づいてヘッドに搭載されたヒータの加熱動作を制御し、インクを吐出する。これによって媒体上へと画像形成を行う。具体的には、HEAD Controllerは、RAM402の所定のアドレスから制御パラメータと記録データを読み込む構成とすることができる。そして、CPU401が、制御パラメータと記録データをRAM402の上記所定のアドレスに書き込むと、プリンタコントローラ405、特にHEAD Controllerにより処理が起動され、記録ヘッドに搭載されたヒータの加熱動作が行われる。
ImageProcessingAccelerator(画像処理アクセラレータ)406は、ハードウェアによって構成され、CPU401よりも高速に画像処理を実行するものである。具体的には、ImageProcessingAccelerator406は、RAM402の所定のアドレスから画像処理に必要なパラメータとデータを読み込む構成とすることができる。そして、CPU401が上記パラメータとデータをRAM402の上記所定のアドレスに書き込むと、ImageProcessingAccelerator406が起動され、所定の画像処理が行われる。なお、ImageProcessingAccelerator406は必ずしも必要な要素でなく、プリンタの仕様などに応じて、CPU401による処理のみで上記のテーブルパラメータの作成処理および画像処理を実行してもよいことはもちろんである。
SCANNER Controller(スキャナコントローラ)407は、スキャナユニット409に対して、原稿への光の照射と反射光をCCD等の撮像素子で取得した光量情報のSCANNER Controller407への送信を指示する。具体的には、CPU401が、制御パラメータと読取データ書き出しアドレスをRAM402の上記所定のアドレスに書き込むと、SCANNER Controller407により処理が起動される。そして、スキャナユニット409に搭載されたLEDの発行制御と、スキャナユニット409からの光量情報取得、RAM402中の読取データ書き出しアドレス以降への光量情報書き込みが行われる。
SCANNER Controller(スキャナコントローラ)407は、スキャナユニット409に対して、原稿への光の照射と反射光をCCD等の撮像素子で取得した光量情報のSCANNER Controller407への送信を指示する。具体的には、CPU401が、制御パラメータと読取データ書き出しアドレスをRAM402の上記所定のアドレスに書き込むと、SCANNER Controller407により処理が起動される。そして、スキャナユニット409に搭載されたLEDの発行制御と、スキャナユニット409からの光量情報取得、RAM402中の読取データ書き出しアドレス以降への光量情報書き込みが行われる。
PRINTER Controller405はさらにMOTOR Controller(モーターコントローラ)を有する。MOTOR Controllerは、プリンタユニット408に含まれる不図示の複数のモーターユニットに対して、モーター動作を制御する。モーターは上述の印刷ヘッドを記録用紙に対して相対的に移動させる為と、スキャナユニット409を読取原稿に対して相対的に移動させる為に用いられる。その他にも、MFPによっては記録ヘッドのメンテナンス用のモーターを具備する場合が有る。
●色別の画素数情報の多重化処理
図2は、第一の実施形態におけるPDL多重化印刷フローと多重化PDL抽出フローを説明する図である。図2(a)のステップs201~s205がPDLを多重化して印刷するフロー(簡単に多重化印刷処理とも呼ぶ))、図2(b)のステップs211~s214が多重化したPDLを抽出するフロー(簡単に抽出処理とも呼ぶ)である。いずれの処理もMFP本体40のCPU401によりRAM402等のメモリに格納されたプログラムを実行することで実現される。しかしながら、図2(a)のs1106と図2(b)のs1111それぞれの印刷と原稿読み取りをMFP本体40で実行し、そのほかの工程はホストPC50で実行してもよい。これは他の実施形態についても同様である。まずは図2(a)のPDL多重化印刷フローについて説明する。
図2は、第一の実施形態におけるPDL多重化印刷フローと多重化PDL抽出フローを説明する図である。図2(a)のステップs201~s205がPDLを多重化して印刷するフロー(簡単に多重化印刷処理とも呼ぶ))、図2(b)のステップs211~s214が多重化したPDLを抽出するフロー(簡単に抽出処理とも呼ぶ)である。いずれの処理もMFP本体40のCPU401によりRAM402等のメモリに格納されたプログラムを実行することで実現される。しかしながら、図2(a)のs1106と図2(b)のs1111それぞれの印刷と原稿読み取りをMFP本体40で実行し、そのほかの工程はホストPC50で実行してもよい。これは他の実施形態についても同様である。まずは図2(a)のPDL多重化印刷フローについて説明する。
ステップs201でPDL原稿データを取得する。ここで、PDLとはページ記述言語(PageDescriptionLanguage)の略であり、ページ単位で描画命令の組から構成される。描画命令の種類はPDL仕様毎に定義されているが、本実施形態では、主に以下の4種類を例として用いる。かっこ内は命令のパラメータであり、X,Yは描画位置の座標を示す。
命令1) DOT描画命令(X、Y、色、点サイズ)
命令2) LINE描画命令(X1、Y1、X2,Y2、色、線種、線幅)
命令3) BOX描画命令(X1、Y1、X2,Y2、色、塗り形状)
命令4) TEXT描画命令(X1、Y1、色、フォント情報、文字列情報)
命令5) IMAGE描画命令(X1、Y1、X2,Y2、画像ファイル情報)
他にも、円弧を描くCIRCLE描画命令等、用途に応じて適宜描画命令が用いられる。
命令1) DOT描画命令(X、Y、色、点サイズ)
命令2) LINE描画命令(X1、Y1、X2,Y2、色、線種、線幅)
命令3) BOX描画命令(X1、Y1、X2,Y2、色、塗り形状)
命令4) TEXT描画命令(X1、Y1、色、フォント情報、文字列情報)
命令5) IMAGE描画命令(X1、Y1、X2,Y2、画像ファイル情報)
他にも、円弧を描くCIRCLE描画命令等、用途に応じて適宜描画命令が用いられる。
一般的によく用いられるPDLとしては、Adobe社提案のPDF(PortableDocumentFormat)や、MicroSoft社提案のXPS、HP社提案のHP-GL/2等が存在するが、本発明の適用範囲はその限りでは無い。
●●ページ記述言語の例
図3にPDL原稿の例を示す。図3中の300が原稿の1ページを表し、画素数としては、例えば横幅600画素、縦幅900画素とする。また、以下に図3の原稿に対応するPDLの例を示す。なおPDL原稿とはPDLで記述したデータであり、原稿データあるいは印刷データなどとも呼ぶ。
<PAGE=001>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
<BOX> 50,620, 200, 825, BLACK, NULL </BOX>
<TEXT> 50,620, 200, 825, BLACK, STD-18, "ABCXYZ123" </BOX>
<LINE> 25, 25, 25, 700, BLACK, PLAIN, 3 </LINE>
<LINE> 25, 25, 450, 25, BLACK, PLAIN, 3 </LINE>
<IMAGE> 250, 350, 550, 825, "PORTRAIT.jpg" </IMAGE>
</PAGE>。
図3にPDL原稿の例を示す。図3中の300が原稿の1ページを表し、画素数としては、例えば横幅600画素、縦幅900画素とする。また、以下に図3の原稿に対応するPDLの例を示す。なおPDL原稿とはPDLで記述したデータであり、原稿データあるいは印刷データなどとも呼ぶ。
<PAGE=001>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
<BOX> 50,620, 200, 825, BLACK, NULL </BOX>
<TEXT> 50,620, 200, 825, BLACK, STD-18, "ABCXYZ123" </BOX>
<LINE> 25, 25, 25, 700, BLACK, PLAIN, 3 </LINE>
<LINE> 25, 25, 450, 25, BLACK, PLAIN, 3 </LINE>
<IMAGE> 250, 350, 550, 825, "PORTRAIT.jpg" </IMAGE>
</PAGE>。
1行目の<PAGE=001>は本実施形態におけるページ数を表すタグである。通常PDLは複数ページを記述可能に設計されているので、PDL中にページの区切りを示すタグが記述されている。本例では、9行目の</PAGE>タグまでが1ページ目である事を表す。本実施形態では図3中の原稿300に相当する。2ページ目が存在する場合には、上記PDLに続いて<PAGE=002>が記述される事となる。
2行目の<BOX>タグから</BOX>タグまでがボックス描画命令であり、図3中のボックスオブジェクト301に相当する。最初の2座標が描画開始点である左上座標(X1、Y1)を示し、続く2座標が描画終了点である右下座標(X2,Y2)を示す。続いて色はGRAY(灰色:R=128, G=128, B=128)で、塗り形状は縞模様であるSTRIPE(縞模様)が指定されている。本実施形態では縞模様の向きについては常時右下方向への線としたが、線の角度や周期等をBOX命令中で指定出来る様になっていても良い。
3行目のBOX描画命令は、図3中のボックスオブジェクト302に相当する。本命令の場合、2行目と異なり、色がBLACK(黒色:R=0, G=0, B=0)となっており、また塗り形状についてはベタ塗りであるFULL(ベタ)が指定されている。
4行目のBOX描画命令及び5行目のTEXT描画命令が、図3中のオブジェクト303に相当する。まず、BOX描画命令でテキスト回りの枠線を記述する。ここでは、BOX内部の塗り形状がNULL(空白)が指定されている。続いて5行目のTEXT描画命令においては、文字のフォントが"STD"(標準)である事、その文字サイズが18ポイントである事、そして記述すべき文字列が"ABCXYZ123"である事が記述されている。
続いて6行目及び7行目のLINE描画命令が、図3中のラインオブジェクト304に相当する。まず、6行目のLINE描画命令で縦線を描画する。ここでは、描画すべき線の種類がPLAIN(実線)である事、及び、描画すべき線の太さが3画素線で有る事、が記述されている。同様に、7行目のLINE描画命令で横線を描画する。
続いて8行目のIMAGE描画命令が、図3中のイメージオブジェクト305に相当する。ここでは、当該領域に存在する画像のファイル名が"PORTRAIT.jpg"である旨が記載されており、これは、一般的に普及している画像圧縮フォーマットであるJPEGファイルである事を表す。
そして、9行目に記載の</PAGE>タグで当該ページの描画が終了した事を示す。
実際のPDLファイルとしては、上記に記載の描画命令群に加えて、"STD"フォントデータ、"PORTRAIT.jpg"画像ファイルを含めた物が一体となっているケースが多い。これは、フォントデータや画像ファイルを別にして管理する場合、描画命令だけでは文字・画像部分が形成出来ず、図3の画像を形成するのに情報が不十分だからである。
以上が図2中のステップs201で取得するPDLの説明である。
続いてステップs202に進み、ステップs201で取得したPDL原稿データのレンダリング処理を行う。これは、PDL中で記載されている各描画命令を実行し、画素毎の色情報で構成されるBitmap画像を形成するステップである。本実施形態では、上述した様に、図3に例示した画像が形成される。図3の原稿ページ300は横幅600画素、縦幅900画素から構成される為、本ステップで生成されるBitmap画像は600×900画素から構成される。また、各画素はR/G/B各8bitの256諧調とする。
ステップs203では、多重化用画像を作成する。ここでは、ステップs201で取得したPDLファイルデータを、ステップs202で生成したレンダリング画像に重畳(あるいは多重化)する。これは、印刷画像をスキャンした際に画像データからPDLファイルデータを抽出可能とし、図4で説明した画像形状の劣化からの復元手段とする為である。なお多重化対象の画像データがカラー画像である場合には、特定の色成分を対象として多重化すればよい。本実施形態ではたとえばB(青)色成分を対象として、色別画素数情報(以下、画素数情報あるいは付加情報とも呼ぶ。)が多重化されるが、他の色成分を対象としてもよい。
PCのような情報処理装置で情報を扱うというのはバイナリデータを扱うことである。バイナリデータとは「0」もしくは「1」の情報であり、この「0」もしくは「1」の情報が連続でつながることにより、特定の意味を持つようになる。例えば、「hello」という情報をバイナリデータで扱う場合、文字コードの中の一つである「シフトJIS」を例にとると、「h」はバイナリデータの「01101000」に対応している。同様に「e」は「01100101」、「l」は「01101100」、「o」は「01101111」というバイナリデータに対応している。つまり「hello」という文字はバイナリデータで「0110100001100101011011000110110001101111」と表現できる。逆に「0110100001100101011011000110110001101111」というバイナリデータを取得できれば「hello」という文字を取得することができる。この考えに基づけば多重化は、「0」もしくは「1」を判定できるようにデータを埋め込むことで実現可能であることがわかる。
ここで、「0」、「1」すなわち多重化される情報を生成するために、一例として図5(a)(b)の二つのマスクを考える。これは8ピクセル×8ピクセルで構成されたマスクであり、画像に対して対応するマスクの内容を加算することで、画像内の8ピクセル×8ピクセルの領域に対して周期性を持ったパターンを与えることができる。このパターンにより、0と1とを表現する。図5(a)が0、図5(b)が1を示すパターンである。基本的にデジタル画像は1色8bitで表現され0から255までのどれかの値が割り当てられる。この範囲外の値は画像データとしては使えないため、画素値の計算結果が0未満の場合や、256以上の値になった場合には一般的に0もしくは255を割り振り有効範囲内に収めている。図5のマスクでは画素値に±10の変化を与えているが、マスク領域における画像データの値が全て255であった場合、マスク後のその領域の値は245から265の範囲ではなく245から255の範囲となる。本説明は1色8bitと記載しているが、当然8bit以外もありうる。デジタル画像を扱う場合、何bitで表現しようが有効範囲は存在し、その範囲外になる変化は与えられない。図5に示したように、0と1というに対応するマスクによりPDL原稿画像をマスキング処理することで、8×8画素領域に1ビットの情報を多重化することができる。
マスクによって画像にどのようなパターンを与えるかを視覚的に示したのが図6である。図5のマスクにおける「10」の位置を黒、「0」の位置を灰色、「-10」の位置を白で表現しており、画像には図6のような斜め線が現れることとなる。このようにして、元の画像に視認しにくい高周波成分として符号(色成分と画素数)を多重化できる。ここで、図5(a)のマスクと図5(b)のマスクを画像全体に対して符号に対応付けて適用する疑似コードを下記に示す。
――――――――――――――――――――――――――――――
01: int i, j, k, l;
02: int width = 640, height=480;
03: unsigned char *data = 画像データ;
04: int **maskA = マスクデータ;
05: bool isMaskA = true;
06: for(j = 0; j < height; j+=8){
07: for(i = 0; i < width; i+=8){
08: for(k = 0; k < 8; k++){
09: for(l = 0; l < 8; l++){
10: if(isMaskA == true){
11: data[(i+k)+(j+l)*width] += maskA[k][l];
12: }
13: }
14: }
15: }
16: }
――――――――――――――――――――――――――――――
上記のコードは、一例として640×480画素の画像データを対象として、8×8領域に順次着目しつつ、当該領域がマスクすべき領域であればその領域の各画素に対応するマスクの各画素の値を加算する手順を示している。マスク対象の領域であることはisMaskAにより指定され、適用するマスクはmaskAにより指定されている。このように、多重化による情報の埋め込みは上記の手法で実現可能である。なお、付加情報が多重化された領域を符号領域と呼ぶこともある。このような多重化技法を用いて、印刷対象の画像データに、その元となったPDLを多重化する。PDLは文字列であるので、各文字を2進符号で表し、それを図5に示したマスクを用いて画像データに多重化する。その際には、上述したコードに従えば、多重化対象の領域においてはisMaskAを真にセットし、それ以外の領域ではisMaskAを偽にセットする。そして多重化対象の領域においては、"0"を多重化する領域についてはmaskAとして図5(a)のマスクを、"1"を多重化する領域についてはmaskAとして図5(b)のマスクを指定する。このような操作を、たとえば画像のラスタ走査方向に沿って行うことで、画像の色別の画素数を多重化する。なお多重化は特定の色について行ってよい。
01: int i, j, k, l;
02: int width = 640, height=480;
03: unsigned char *data = 画像データ;
04: int **maskA = マスクデータ;
05: bool isMaskA = true;
06: for(j = 0; j < height; j+=8){
07: for(i = 0; i < width; i+=8){
08: for(k = 0; k < 8; k++){
09: for(l = 0; l < 8; l++){
10: if(isMaskA == true){
11: data[(i+k)+(j+l)*width] += maskA[k][l];
12: }
13: }
14: }
15: }
16: }
――――――――――――――――――――――――――――――
上記のコードは、一例として640×480画素の画像データを対象として、8×8領域に順次着目しつつ、当該領域がマスクすべき領域であればその領域の各画素に対応するマスクの各画素の値を加算する手順を示している。マスク対象の領域であることはisMaskAにより指定され、適用するマスクはmaskAにより指定されている。このように、多重化による情報の埋め込みは上記の手法で実現可能である。なお、付加情報が多重化された領域を符号領域と呼ぶこともある。このような多重化技法を用いて、印刷対象の画像データに、その元となったPDLを多重化する。PDLは文字列であるので、各文字を2進符号で表し、それを図5に示したマスクを用いて画像データに多重化する。その際には、上述したコードに従えば、多重化対象の領域においてはisMaskAを真にセットし、それ以外の領域ではisMaskAを偽にセットする。そして多重化対象の領域においては、"0"を多重化する領域についてはmaskAとして図5(a)のマスクを、"1"を多重化する領域についてはmaskAとして図5(b)のマスクを指定する。このような操作を、たとえば画像のラスタ走査方向に沿って行うことで、画像の色別の画素数を多重化する。なお多重化は特定の色について行ってよい。
続いて、ステップs204に進み、印刷画像生成を行う。印刷画像生成では任意の公知の手法を用いて構わないが本実施形態では以下の方法を用いた例を説明する。ここでは、ステップs203で生成されたRGB画素値で構成される多重化済Bitmap画像の各画素に対して、
・色変換
・インク色分解
・出力特性変換
・量子化
の4つの処理を行う。
・色変換
・インク色分解
・出力特性変換
・量子化
の4つの処理を行う。
色変換は、多重化済Bitmap(ビットマップ)画像のRGB情報を、MFP40で好適に記録出来る様に変換を行う処理である。その理由として、一般的にPDLの描画命令に記載されている色は、ディスプレイで好適に表現出来る色値が設定されており、そのままの値をプリンタで出力した場合には異なる色が出力されてしまうからである。
具体的には、入力画素値(Rin, Gin, Bin)の組み合わせに対して、好適な出力画素値(Rout, Gout, Bout)の組み合わせを算出する為に、出力色ごとに3次元のルックアップテーブルを用いる。理想的には、入力値であるRin、Gin、Binがそれぞれ256諧調を持つ為、256×256×256の合計16,777,216組の出力値を持つテーブルTable1[256][256][256][3]を準備し、
Rout = Table1[Rin][Gin][Bin][0]
Gout = Table1[Rin][Gin][Bin][1]
Bout = Table1[Rin][Gin][Bin][2]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
Rout = Table1[Rin][Gin][Bin][0]
Gout = Table1[Rin][Gin][Bin][1]
Bout = Table1[Rin][Gin][Bin][2]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
インク色分解は色変換処理の出力値であるRout, Gout, Boutを、インクジェット記録する各インク色の出力値に変換する処理である。本実施形態では、シアン、マゼンタ、イエロー、ブラックの4色インクジェットを想定する。この変換においても種々の実現方法が有る。本実施形態では色変換処理同様に、出力画素値(Rout, Gout, Bout)の組み合わせに対して、好適なインク色画素値(C, M, Y, K)の組み合わせを算出する。その為に、出力色ごとの3次元のルックアップテーブルTable2[256][256][256][4]を用いて、
C = Table2[Rout][Gout][Bout][0]
M = Table2[Rout][Gout][Bout][1]
Y = Table2[Rout][Gout][Bout][2]
K = Table2[Rout][Gout][Bout][3]
とする事でインク色分解を実現出来る。また、テーブルサイズを小さくする公知の工夫を用いても良い。
C = Table2[Rout][Gout][Bout][0]
M = Table2[Rout][Gout][Bout][1]
Y = Table2[Rout][Gout][Bout][2]
K = Table2[Rout][Gout][Bout][3]
とする事でインク色分解を実現出来る。また、テーブルサイズを小さくする公知の工夫を用いても良い。
続いて出力特性変換は、各インク色の濃度を記録ドット数率に変換する。具体的には、例えば各色256諧調の濃度を、各色1024諧調のドット数率Cout, Mout, Yout, Koutに変換する。そのためには、各インク色の濃度に対する好適な記録ドット数率を設定した2次元のルックアップテーブルTable3[4][256]を用いて、
Cout = Table3[0][C]
Mout = Table3[1][M]
Yout = Table3[2][Y]
Kout = Table3[3][K]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
Cout = Table3[0][C]
Mout = Table3[1][M]
Yout = Table3[2][Y]
Kout = Table3[3][K]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
続いて量子化は、各インク色の記録ドット数率Cout, Mout, Yout, Koutを、実際の各画素の記録ドットのOn/Offに変換する。量子化の方法としては、誤差拡散法やディザ法等、任意の手法を用いて良い。ディザ法を例にすると、
Cdot = Halftone[Cout][x][y]
Mdot = Halftone[Mout][x][y]
Ydot = Halftone[Yout][x][y]
Kdot = Halftone[Kout][x][y]
とする事で、各画素位置に応じた閾値と比較する事で、各インク色の記録ドットのOn/Offを実現する事が出来る。ここでは、各記録ドットの発生確率は、Cout/1023, Mout/1023, Yout/1023, Kout/1023となる。
以上の様にする事で、ステップs203の印刷画像生成が終了する。
Cdot = Halftone[Cout][x][y]
Mdot = Halftone[Mout][x][y]
Ydot = Halftone[Yout][x][y]
Kdot = Halftone[Kout][x][y]
とする事で、各画素位置に応じた閾値と比較する事で、各インク色の記録ドットのOn/Offを実現する事が出来る。ここでは、各記録ドットの発生確率は、Cout/1023, Mout/1023, Yout/1023, Kout/1023となる。
以上の様にする事で、ステップs203の印刷画像生成が終了する。
次にステップs205で、ステップs204で生成した印刷画像の印刷を行う。以上で、PDL原稿を記録用紙上に印刷する事が出来る。
以上で、PDLファイルデータを多重化したPDL原稿を記録用紙上に印刷する事が出来る。ここで、図6のパターンをみると、2px(ピクセル)の斜め線によってパターンが描かれていることがわかる。このようにPDLファイルデータが埋め込まれたレンダリング画像に基づいて印刷物を生成する処理を「多重化エンコード処理」ともいう。なお上記例ではRGB画像に画素数情報を多重化したが、CMYKに変換後の画像データに多重化してもよい。たとえば黄色は視覚的に目立たない色であるため、黄色成分に多重化することで、より一層、画像に与える視覚的な影響を抑えることができる。たとえば色数を10とすれば、各色について色リストが10×3×8=240ビット、画素数10×2×8=160ビット、総色数が8ビットとすれば、総量は408ビットとなる。1ビットが8×8画素で表されるので、51個の領域で表すことができる。本例では、復元時の位置決めのために領域間には隙間を設けないが、復元の方法次第で間隔を空けてもよい。また同じ情報を繰り返し多重化してもよい。また色数が増えれば情報量も増えるため、色別の画素数情報を符号化してロスレス圧縮し、それを多重化してもよい。
●色別画素数情報抽出処理
続いて、多重化PDL抽出フローを説明する。図2(b)のステップs211でPDLファイルデータが多重化された印刷物を読み取る。まず、スキャナ装置に印刷原稿をセットし、ステップs211で原稿読取を行う。具体的には、スキャナデバイスを制御し、原稿にLED光を照射し、反射光を各画素に対向したCCD等の撮像素子でアナログ電気信号に変換する。
続いて、多重化PDL抽出フローを説明する。図2(b)のステップs211でPDLファイルデータが多重化された印刷物を読み取る。まず、スキャナ装置に印刷原稿をセットし、ステップs211で原稿読取を行う。具体的には、スキャナデバイスを制御し、原稿にLED光を照射し、反射光を各画素に対向したCCD等の撮像素子でアナログ電気信号に変換する。
次に、ステップs212で上記このアナログ電気信号をデジタル化して、デジタルRGB値を入力する。Bitmap取得処理では任意の公知の手法を用いて構わないが本実施形態では以下の方法を用いた例を説明する。ここでは、ステップs211で取得されたRGB画素値で構成されるBitmap画像の各画素に対して、
・MTF補正
・入力補正
・シェーディング補正
・色変換
の4つの処理を行う。
・MTF補正
・入力補正
・シェーディング補正
・色変換
の4つの処理を行う。
MTF(Modulation Transfer Function)補正は、スキャナの読取り性能の内、解像度に関する補正を行う。具体的には、スキャナの読取はフォーカス位置からのズレやレンズ自体の性能限界等により、画像がボケてしまう為、フィルタ処理等である程度の復元を行う。実際には完全に復元する程強い強調処理をしてしまうと、白飛びや画像ノイズ・ゴミ画素の協調等、画像弊害の方が目立つ為、画質改善と弊害のバランスを取って設計を行う。説明を簡単にする為に、画像中央部を5倍し、上下左右の画素値を-1倍するエッジ強調フィルタの例を以下に記載する。
R'[x][y] = R[x][y]×5-R[x-1][y]-R[x+1][y]-R[x][y-1]-R[x][y+1]
G'[x][y] = G[x][y]×5-G[x-1][y]-G[x+1][y]-G[x][y-1]-G[x][y+1]
B'[x][y] = B[x][y]×5-B[x-1][y]-B[x+1][y]-B[x][y-1]-B[x][y+1]
入力補正は元々が光子量であるCCDの出力値を、人間の眼の感度に合った明度に変換する処理である。具体的には、例えば各色4096諧調のR'G'B'信号を、各色1024諧調の色強度値R",G",B"に変換する。そのためには、各インク色の濃度に対する好適な記録ドット数率を設定した1次元のルックアップテーブルTable4[4][4096]を用いて、
R" = Table4[0][R']
G" = Table4[1][G']
B" = Table4[2][B']
とする事で実現出来る。また、ルックアップテーブルのグリッド数を4096グリッドから例えば256グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
R'[x][y] = R[x][y]×5-R[x-1][y]-R[x+1][y]-R[x][y-1]-R[x][y+1]
G'[x][y] = G[x][y]×5-G[x-1][y]-G[x+1][y]-G[x][y-1]-G[x][y+1]
B'[x][y] = B[x][y]×5-B[x-1][y]-B[x+1][y]-B[x][y-1]-B[x][y+1]
入力補正は元々が光子量であるCCDの出力値を、人間の眼の感度に合った明度に変換する処理である。具体的には、例えば各色4096諧調のR'G'B'信号を、各色1024諧調の色強度値R",G",B"に変換する。そのためには、各インク色の濃度に対する好適な記録ドット数率を設定した1次元のルックアップテーブルTable4[4][4096]を用いて、
R" = Table4[0][R']
G" = Table4[1][G']
B" = Table4[2][B']
とする事で実現出来る。また、ルックアップテーブルのグリッド数を4096グリッドから例えば256グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
シェーディング補正はスキャナデバイスを構成するレンズ、LED、CCDの製造ばらつきや組付けのばらつきに起因して生ずる各画素位置での読取感度の違いによって生ずる色・濃度ムラを低減する処理である。具体的には、例えば各色1024諧調のR"G"B"信号を、各色256諧調の色強度値R"',G"',B"'に変換する。そのためには、スキャナレンズの配置されている方向(X方向)に対してそれぞれ、各X画素位置用の濃度変換用の1次元ルックアップテーブルTable5[x][3][1024]を用いて、
R"' = Table5[x][0][R"]
G"' = Table5[x][1][G"]
B"' = Table5[x][2][B"]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を1024グリッドから例えば256グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
R"' = Table5[x][0][R"]
G"' = Table5[x][1][G"]
B"' = Table5[x][2][B"]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を1024グリッドから例えば256グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
最後に、色変換処理を行う。これは、印刷時とは逆に、ここまで算出してきたR"', G"', B"'がそれぞれスキャナデバイス固有の値となっている為、これをディスプレイ上で表示する為に好適なRout,Gout,Bout値にする為である。
この為には、印刷時の色変換同様、入力値であるR"'、G"'、B"'がそれぞれ256諧調を持つ為、256×256×256の合計16,777,216組の出力値を持つテーブルTable6[256][256][256][3]を準備し、
Rout = Table1[R"'][G"'][B"'][0]
Gout = Table1[R"'][G"'][B"'][1]
Bout = Table1[R"'][G"'][B"'][2]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
以上の様にすることでステップs212のBitmap取得が終了する。
この為には、印刷時の色変換同様、入力値であるR"'、G"'、B"'がそれぞれ256諧調を持つ為、256×256×256の合計16,777,216組の出力値を持つテーブルTable6[256][256][256][3]を準備し、
Rout = Table1[R"'][G"'][B"'][0]
Gout = Table1[R"'][G"'][B"'][1]
Bout = Table1[R"'][G"'][B"'][2]
とする事で実現出来る。また、ルックアップテーブルのグリッド数を256グリッドから例えば16グリッド等に減らし、複数のグリッドのテーブル値を補間して出力値を決定する等、テーブルサイズを小さくする公知の工夫を用いても良い。
以上の様にすることでステップs212のBitmap取得が終了する。
図4は印刷及び読取りによる画像弊害例を説明する図である。図4(a)は図3のPDL原稿をレンダリングした状態、つまり図2中のステップs202の出力Bitmap画像のうち、オブジェクト301の左上部分を表している。
図4(b)は図3のPDL原稿の印刷原稿をスキャンし、図2中のステップs212で取得したBitmap画像のうち、図4(a)の位置に対応する部分を表している。
図4(b)は図3のPDL原稿の印刷原稿をスキャンし、図2中のステップs212で取得したBitmap画像のうち、図4(a)の位置に対応する部分を表している。
両者を比較すると分かるように、図4(a)中の直線400は、一様な濃度(R=128,G=128,B=128)を持っているが、図4(b)中の401は、濃度的には不均一で、直線のエッジ部分にも凸凹が目立つ。また、直線周辺に若干濃くなった画素が存在し、全体的にも背景画像が少し暗い画像となっている。
これは、PDL原稿を印刷し、スキャンする事によって得るBitmap画像には、PDL原稿に対して以下の様な画像劣化が生じているからである。
・ステップs204で行う量子化に伴う形状の劣化(量子化による諧調数低下)
・ステップs205で行う印刷に伴う形状の劣化(印刷精度・記録用紙)
・ステップs211で行うスキャンに伴う形状の劣化(スキャナによるボケ)
更には実際には、
・印刷原稿の汚れ等の劣化による形状の劣化
が考えられる。
これは、PDL原稿を印刷し、スキャンする事によって得るBitmap画像には、PDL原稿に対して以下の様な画像劣化が生じているからである。
・ステップs204で行う量子化に伴う形状の劣化(量子化による諧調数低下)
・ステップs205で行う印刷に伴う形状の劣化(印刷精度・記録用紙)
・ステップs211で行うスキャンに伴う形状の劣化(スキャナによるボケ)
更には実際には、
・印刷原稿の汚れ等の劣化による形状の劣化
が考えられる。
そこで本実施形態では、ステップs213以降の処理を実行することで劣化した画像を補正し、スキャンにより得られた画質の低下を抑制する。続くステップs213で多重化されたPDLファイルデータを抽出する。以下に、Bitmap画像解析例の概要説明を行う。
まず、画像データから多重化された情報(付加情報とも呼ぶ)が埋め込まれている位置の検出を行う。具体的には、画像データの空間周波数特性を解析することにより埋め込み位置の検出を行う。図7は、埋め込みに用いたパターンの空間周波数の特性を表す図である。横軸が水平方向の周波数、縦軸が垂直方向の周波数を表し、原点から遠ざかるにつれて高周波域となる。本実施形態では、図6に示すように、2つのパターンを画像に埋め込んでいる。埋め込み例ではRGBのB成分に10の加算及び減算を行っている。これにより、図6(a)のパターンは、図7のラインA01に大きなパワースペクトルを発生させる。同様に、図6(b)のパターンはラインA02に大きなパワースペクトルを発生させる。このパワースペクトルを、たとえば8×8画素領域ごとに検出することにより、「0」か「1」のデータ抽出を行う。なお、検出の前処理として、エッジ検出を行うことにより、パワースペクトルの強調をすることも可能である。
周波数解析によるデータの抽出では、画像データからの解析エリアの正確な切り出しが必要となる為、座標位置のずれを補正する処理が行われる。例えば、画像内からの8ピクセル×8ピクセル領域の切り出しと周波数解析とを、縦横それぞれの方向に1ピクセルずつずらしながら縦横に繰り返す。そしてたとえば横8ピクセル、縦8ピクセルずつずらすまで計64回繰り返し、最もスペクトルが強くなる箇所を切り出しの基準位置とする方法がある。このとき周波数解析の対象となる領域は16ピクセル×16ピクセルの領域となり、付加情報をすきまなく多重化した領域内であれば、少なくとも1つの付加情報がそこに含まれるはずである。そのため上述したように基準となる領域の位置を決めることができる。位置検出が完了した後に、その位置を基準として、多重化の規則に従って付加情報の抽出を行う事で、抽埋め込まれていた「0」「1」数列が得られる。
なお上記方法で基準位置を特定しようとする画像中の位置として、付加情報を埋め込んだ符号領域の先頭を選択すれば、特定された基準位置は符号領域の先頭を示すことになる。そうでない場合であっても、基準として位置が特定された領域が、多重化された符号列のなかでどの位置にあるかは概ね特定できるので、その位置を基準として多重化された符号列の先頭を特定することはできる。先頭として特定した8×8画素領域及びその前後の8×8画素領域について空間周波数を解析することで、付加情報が多重化された領域の先頭を特定できる。これにより付加情報の長さは固定的であってよいので、付加情報が多重化された領域全体を特定できる。こうして特定した符号領域全体を、図7に示した空間周波数の解析により、2値データへと復号することができる。
続くステップs214で抽出したPDLファイルを保存する。この様にPDLファイルを印刷物のスキャン画像から抽出して保存する事で、印刷及びスキャンに伴う画像劣化の無い原稿を取得する事が出来る。また、抽出したPDLファイルから生成した画像データを元に印刷を再び行う事で、画像劣化の無いコピーを行う事が可能となる。
以上の構成および手順により、ビットマップ画像データに、その画像データの元となったPDLデータを多重化する。こうすることで、媒体上への画像の形成とその光学的な読み取りを経ても劣化しないPDLデータを画像から復元でき、劣化のない画像を再生することができる。
[多重化方法の他の例]
図5及び図6では、8x8画素単位に情報を埋め込む例を説明した。これは高周波領域に画像を埋め込む事によって、ユーザに視認されにくい埋込を行う例である。しかし、それら高周波領域への多重化だけでなく、任意の多重化方法を行って構わない。
図5及び図6では、8x8画素単位に情報を埋め込む例を説明した。これは高周波領域に画像を埋め込む事によって、ユーザに視認されにくい埋込を行う例である。しかし、それら高周波領域への多重化だけでなく、任意の多重化方法を行って構わない。
図8に多重化方法の他の例を示す。図8(a)は、マトリクス型二次元コードの1つであるQRコード(登録商標)のパターン例である。本例では、PDLファイルデータをQRコード化し、それを視認されにくい形で印刷物に多重化する。図8(b)は実際の印刷パターンを表していて、8x8画素単位に1ドットだけ記録するパターンとなっている。図8(a)中800の黒色画素に対応するドットが図8(b)中801の1ドットに対応する。また、図8(a)中の空白画素に対応する位置には図8(b)中にはドットを形成しない。
こうする事で、視認されにくい多重化パターンを記録用紙上に構成する事が出来る。具体的には、図2中のステップs203でPDLファイルデータを図8(a)の様にQRコード化し、それを離間したドット群である図8(b)の様な印刷データとしてレンダリング画像に対して重畳する。また、離間ドットを構成するインクとしてはイエローインクが最も視認され辛いので、イエローインクで図8(b)のパターンを構成する様にする事で、より視認されにくい多重化パターンを記録用紙上に構成する事が出来る。ここで、元の画像にもイエロー成分が含まれていることもあり得るが、QRコードの領域は、そこのイエロー成分をQRコード対応の図8(b)に示したパターンで置換することで、元の画像データのイエロー成分による干渉を防ぐことができる。これによりQRコードからPDLデータに記述した通りの画像を復元できる。
本方式の多重化方式の場合、ステップs213のPDLデータ抽出は、読み取ったBitmap画像中、8x8画素単位でイエロードットが記録されているかを判定する。そして、図8(b)のイエロー成分のパターンから、図8(a)相当のQRコードパターンを再構成し、それを復号する。こうする事でPDLファイルデータを抽出すればよい。再構成する際にはイエロードットを含む8×8領域をQRコードの1つの黒セルで置き換えればよい。なお多重化する情報は、第一の実施形態と同様、色ごとの画素数情報であってもよく、その場合には色別画素数情報をQRコード化して、図8(b)に示したように画像データに多重化すればよい。
なお1つのQRコードでは容量が足りない場合には、複数のQRコードにPDLデータを分割して符号化し、多重化してもよい。この場合には、先頭位置に埋め込むQRコードに、分割された数を含めてもよい。
また、他の多重化例としては、図2中のステップs204の印刷画像生成処理中の量子化処理時に閾値変調を行って多重化する方法も存在する(特許文献2)が、この手法を用いても良い。
以上種々の多重化例を説明して来たが、一般的に多重化すべき情報量が増えた場合、記録Dot数や変調量を増大させる必要が生じ、その結果として記録画像全体の画像劣化が増大する事となる。
また、上述した様に、図3の原稿ページ300は横幅600画素、縦幅900画素から構成される為、1ページは全部で540,000画素から構成される。各画素の色をR/G/B各8bitの256諧調で表現する場合には、各画素3Byte、1ページ合計で1,620,000Byte≒1.6MBytesとなる。それに対して、PDL状態でのファイルサイズは、106,200Bytesとなり、約6.6%程度となる。以下にファイルサイズ試算の内訳を示す。
・描画命令部分 約350文字 (1文字2Bytesとして≒700Bytes)
・"PORTRAIT.jpg" 300×475画素、各画素3Bytesで全427,500Bytes
ここで圧縮率を20%とすると85,500Bytes
・"STD"フォントデータ 後述の理由で20,000Bytesと想定
ここで、フォントサイズの例としては、特許文献3に開示されている情報を元に試算した。特許文献3には、以下の様に記載されている。
「20ページで試算したところ、フォント埋め込みなしのPDFサイズが約60KBに対し、フォント埋め込みありのPDFサイズは、460KBとなり、900%近いサイズ増加となる。(ページあたりの新規文字が75%として計算)」
そこで、1ページのフォント埋め込み量を400kBytes/20=20kBytesとした。
・描画命令部分 約350文字 (1文字2Bytesとして≒700Bytes)
・"PORTRAIT.jpg" 300×475画素、各画素3Bytesで全427,500Bytes
ここで圧縮率を20%とすると85,500Bytes
・"STD"フォントデータ 後述の理由で20,000Bytesと想定
ここで、フォントサイズの例としては、特許文献3に開示されている情報を元に試算した。特許文献3には、以下の様に記載されている。
「20ページで試算したところ、フォント埋め込みなしのPDFサイズが約60KBに対し、フォント埋め込みありのPDFサイズは、460KBとなり、900%近いサイズ増加となる。(ページあたりの新規文字が75%として計算)」
そこで、1ページのフォント埋め込み量を400kBytes/20=20kBytesとした。
以上説明した様に、ステップs202でレンダリングした画像と比べて、ステップs201で取得したPDLサイズは約6.6%と非常に小さいサイズとなっている。よって、印刷原稿上に多重化する際には、Bitmap画像よりもPDLファイルを多重化する方が、多重化に伴う印刷画像全体の画像劣化が大幅に低減出来る事となる。
また、PDLを直接埋め込む事によって、原稿をスキャンする事でPDLファイルを完全に復元する事も可能である。その場合、図3に対応付けた各描画命令が全て復元出来る為、例えば図4(b)の画像を完全に図4(a)と同じにする事が出来る。同様に、図3中のオブジェクト303や304の様な文字・細線についても復元が可能である。コピー処理は一般的に読取から印刷のステップを経る為、画像の劣化が避けられないが、スキャン時に元原稿PDLを抽出出来れば、週出したPDLを印刷する事によって、ほぼ完全なコピーが実現出来る事となる。
更に、印刷時に縮小または拡大が伴う場合、従来は細線および文字については線の細りまたは太りが生じ、最悪のケースでは文字および細線が判読不能或いは消滅となるケースが有った。しかし、本実施形態に係る発明を用いると、多重化したPDLを抽出出来れば良い事になる。
別のアプローチとして、従来は縮小または拡大コピー時には文字および細線も縮小または拡大が伴う為、視認性が劣化してしまうケースが有った。しかし本実施形態のようにPDLを抽出できれば、TEXT描画命令に対して、ベクタデータを基にしてサイズ変更が可能となる為、以下の様なサービスが実現可能である。
・50%縮小+文字サイズ200%設定で、「文字サイズ維持縮小コピー」
・200%拡大+文字サイズ50%設定で、「文字サイズ維持拡大コピー」
・等倍+文字サイズ200%設定で、「文字拡大コピー」
・等倍+文字サイズ50%設定で、「文字縮小コピー」。
・50%縮小+文字サイズ200%設定で、「文字サイズ維持縮小コピー」
・200%拡大+文字サイズ50%設定で、「文字サイズ維持拡大コピー」
・等倍+文字サイズ200%設定で、「文字拡大コピー」
・等倍+文字サイズ50%設定で、「文字縮小コピー」。
このように、ベクタデータである文字については変倍による劣化が生じにくく、また文字のみを対象として変倍することができるため、それを利用したサイズ変更が可能となる。同様に、コピーにおいて、LINE描画命令等、他の命令に対しても線の太さや線の種類・色の変更、塗りパターンの変更等を任意に行う事が出来る事となる。
以上の構成および手順により、画像データの元となったPDLデータを、たとえばマトリクス型二次元コードへ符号化し、PDLデータから生成したビットマップ画像データに多重化する。こうすることで、媒体上への画像の形成とその光学的な読み取りを経ても劣化しないPDLデータを画像から復元でき、劣化のない画像を再生することができる。
(第二の実施形態)
第一の実施形態では、PDLファイル全体をレンダリングされたBitmap画像に埋め込む例を説明したが、本実施形態では、PDLファイルサイズが大きい場合の画像劣化を避ける為に、PDLファイルサイズを好適に低減する例を説明する。本実施形態では、PDLファイルをそのまま多重化するのではなく、ファイルサイズを低減した多重化用PDLを作成して多重化を行う。
第一の実施形態では、PDLファイル全体をレンダリングされたBitmap画像に埋め込む例を説明したが、本実施形態では、PDLファイルサイズが大きい場合の画像劣化を避ける為に、PDLファイルサイズを好適に低減する例を説明する。本実施形態では、PDLファイルをそのまま多重化するのではなく、ファイルサイズを低減した多重化用PDLを作成して多重化を行う。
図9は第二の実施形態におけるPDL多重化印刷フローを説明する図である。図9中、ステップs901~s902は図2中のステップs201~s202と同じ処理なので説明を省略する。
ステップs903では、PDLファイルから画像ファイル(ビットマップ画像)を削除する事で、ファイルサイズを低減した多重化用PDLファイルを作成する。特に画像ファイルを削除する理由としては、第一の実施形態で行ったファイルサイズ試算の内訳に記載した様に、画像ファイルのファイルサイズが最も大きいからである。一方、描画命令部分は最もファイルサイズが小さく、かつ細線や文字の描画命令を含む為、優先的に多重化用PDLファイルに含める事が好ましい。中間的なサイズであるフォントデータについても、文字描画に必要な要素である為、多重化用PDLファイルに含める事が好ましい。
図10は第二の実施形態における多重化用PDL原稿例を説明する図である。図10中、オブジェクト1000~1004は、図3中のオブジェクト300~304と同じなので説明を省略する。しかし、図10中の領域1005は図3中のビットマップ画像305と異なり、画像ファイルが存在しない。領域1005は、元のPDLデータではビットマップ画像が配置されていた領域を示している。この実現方法としては種々の方法を採用する事が可能であり、例えば、以下のような方法が考えられる。
・多重化用PDL中のIMAGE描画命令を、
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様に「ファイル無し」状態で記述する。
・多重化用PDL中に、"PORTRAIT.jpg"ファイルを含めない様に構成し、IMAGE描画命令を実行不可能とする。
・多重化用PDL中のIMAGE描画命令事態を、
<IMAGE> 250, 350, 550, 825, "NULL.jpg" </IMAGE>
の様に記述し、別途"NULL.jpg"という「非常に画素数の小さい画像(例:8×8画素の空白画像)」に置きかえる。
・多重化用PDL中のIMAGE描画命令を、
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様に「ファイル無し」状態で記述する。
・多重化用PDL中に、"PORTRAIT.jpg"ファイルを含めない様に構成し、IMAGE描画命令を実行不可能とする。
・多重化用PDL中のIMAGE描画命令事態を、
<IMAGE> 250, 350, 550, 825, "NULL.jpg" </IMAGE>
の様に記述し、別途"NULL.jpg"という「非常に画素数の小さい画像(例:8×8画素の空白画像)」に置きかえる。
本実施形態では、その中の、「ファイル無し」状態での記述方法を採用する。理由としては、スキャナを用いた「PDL復号時」に明確に「ファイルを削除した」事を、多重化したPDLデータを画像から復元した装置へと通知可能であるからである。
図11は第二の実施形態における多重化用PDL生成フローを説明する図である。まず、ステップs1101でPDLファイルを取得する。続いて、ステップs1102でPDLファイルの解析を行う。これは第一の実施形態で用いたPDLファイルに含まれた命令を1行目から順番に着目して解析する。
ステップs1103で着目した命令がIMAGE描画命令であるか否かを判定する。判定結果がYesの場合にはステップs1104へと進み、判定結果がNoの場合にはステップs1105に進む。
ステップs1104では、PDL中の画像データを削除して着目した命令を多重化用PDLに追加する。具体的には上述の様に、IMAGE描画命令中のファイル名を""に置き換えて、多重化用PDLに追加する。
ステップs1105では、PDL中の描画命令をそのまま多重化用PDLに追加する。
ステップs1106では、全描画命令の処理が終了したか否かを判定し、判定結果がYesの場合はステップs1107に進む。判定結果がNoの場合にはステップs1102に進み処理を継続する。具体的な全描画命令の処理終了判断方法としては、ページの終了を示す</PAGE>タグに到達したかという方法を取る事が可能である。
ステップs1107では生成した多重化用PDLを保存する。本実施形態で生成した多重化用PDLの例を以下に示す。
<PAGE=001>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
<BOX> 50,620, 200, 825, BLACK, NULL </BOX>
<TEXT> 50,620, 200, 825, BLACK, STD-18, "ABCXYZ123" </BOX>
<LINE> 25, 25, 25, 700, BLACK, PLAIN, 3 </LINE>
<LINE> 25, 25, 450, 25, BLACK, PLAIN, 3 </LINE>
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
</PAGE>
第一の実施形態におけるPDLとの差異は、8行目の<IMAGE>描画命令中のファイル名が""となっている点である。
<PAGE=001>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
<BOX> 50,620, 200, 825, BLACK, NULL </BOX>
<TEXT> 50,620, 200, 825, BLACK, STD-18, "ABCXYZ123" </BOX>
<LINE> 25, 25, 25, 700, BLACK, PLAIN, 3 </LINE>
<LINE> 25, 25, 450, 25, BLACK, PLAIN, 3 </LINE>
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
</PAGE>
第一の実施形態におけるPDLとの差異は、8行目の<IMAGE>描画命令中のファイル名が""となっている点である。
図9に戻り、続くステップs904では、レンダリング画像にステップs903で生成した多重化用PDLファイルを多重化した画像を生成する。ここでは第一の実施形態に対して多重化すべきPDLファイルサイズが低減しているので、多重化に伴う画像劣化が低減される事となる。
続くステップs905~s906の処理は図2中ステップs204~s205と同じ処理なので説明を省略する。
こうして形成された画像データからは図2(b)の手順でPDLデータを復元できる。ただしスキャンした画像から復元したPDLのIMAGE描画命令には画像ファイルが含まれていない。そこで画像の生成時には、復元したPDLに含まれたIMAGE描画命令の画像ファイルが空であれば、該当する領域の画像データをスキャンした画像データから切り出す。そしてそれをIMAGE描画命令による描画対象の画像ファイルとしてPDLデータを再構成し、保存しておけばよい。
こうする事で、PDL復号側は、スキャンした画像中、IMAGE描画命令領域に対応した画像部分と合成する等の方法で文字および細線の形状を復元しつつ画像部も持つPDLを生成する事が可能となる。また、フォントデータのデータ量が画像ファイルデータ量に次いで大きい。よって、例えばTEXT命令で指定されているフォントが、PC50若しくはMFP40で標準的に保持しているフォントである等、多重化しなくても問題無い事が保障されている場合には、多重化PDLから削除してもよい。
以上のようにして、PDLデータを画像に多重化することで、再生時に高品質の画像を再生できる。加えて、多重化するPDLデータからサイズの大きなビットマップ画像データを除外することで、多重化するデータサイズを小さくできる。
(第三の実施形態)
第二の実施形態では、PDL中の描画命令種別に応じて多重化用PDLファイルに含むか否かを判断する例を説明したが、本実施形態では、描画命令等の実サイズに応じて決定する例を説明する。これまで、前提条件として、
IMAGE描画命令+画像ファイルサイズ > 他の描画命令
という事で説明をして来たが、実際には画像ファイルであっても画素数が少ない為にファイルサイズが小さい場合もあり、逆にLINE描画命令で有ってもその数が非常に多くなればファイルサイズも大きくなる。
第二の実施形態では、PDL中の描画命令種別に応じて多重化用PDLファイルに含むか否かを判断する例を説明したが、本実施形態では、描画命令等の実サイズに応じて決定する例を説明する。これまで、前提条件として、
IMAGE描画命令+画像ファイルサイズ > 他の描画命令
という事で説明をして来たが、実際には画像ファイルであっても画素数が少ない為にファイルサイズが小さい場合もあり、逆にLINE描画命令で有ってもその数が非常に多くなればファイルサイズも大きくなる。
図3中のボックスオブジェクト302を例として説明する。ボックスオブジェクト302に対応する描画命令は、
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
と説明した。これに対して、例えば、
<BOX> 420, 75, 500, 300, BLACK, FULL </BOX>
<BOX> 500, 75, 550, 300, BLACK, FULL </BOX>
という様に、2つのBOX描画命令で記述する事も可能である。どの描画命令を用いるかはPC50上で動作するアプリケーションの仕様に依存する為、例えばBOX描画命令を用いず、全てを画素単位のLINE命令で記述する仕様のアプリケーションも存在し得る。
<BOX> 420, 75, 550, 300, BLACK, FULL </BOX>
と説明した。これに対して、例えば、
<BOX> 420, 75, 500, 300, BLACK, FULL </BOX>
<BOX> 500, 75, 550, 300, BLACK, FULL </BOX>
という様に、2つのBOX描画命令で記述する事も可能である。どの描画命令を用いるかはPC50上で動作するアプリケーションの仕様に依存する為、例えばBOX描画命令を用いず、全てを画素単位のLINE命令で記述する仕様のアプリケーションも存在し得る。
仮に各1画素単位でLINE命令を記述した場合、図3中のオブジェクト302は以下の様に、(550-420+1)×(300-75+1) = 29,606個のLINE描画命令によって構成される事となる。
<LINE> 420, 75, 420, 75, BLACK, FULL </BOX>
<LINE> 421, 75, 421, 75, BLACK, FULL </BOX>
・・・
<LINE> 550, 75, 550, 75, BLACK, FULL </BOX>
<LINE> 420, 76, 420, 76, BLACK, FULL </BOX>
・・・
<LINE> 550,300, 550,300, BLACK, FULL </BOX>。
<LINE> 420, 75, 420, 75, BLACK, FULL </BOX>
<LINE> 421, 75, 421, 75, BLACK, FULL </BOX>
・・・
<LINE> 550, 75, 550, 75, BLACK, FULL </BOX>
<LINE> 420, 76, 420, 76, BLACK, FULL </BOX>
・・・
<LINE> 550,300, 550,300, BLACK, FULL </BOX>。
一つのLINE描画命令は43文字から構成されるため、1文字2Bytesとして1描画命令あたり86Bytesとなる。よって、29,606個の描画命令で合計86×29,606 = 2,546,116Bytes≒2.6Mbytesとなる。これは、第一の実施形態で用いたPDLファイルサイズ106,200Bytesよりも、更にはレンダリング画像データサイズ1,620,000Byte≒1.6Mbytesよりも大きなサイズとなる。このように、仮に文字・線画の描画命令であっても、多重化用PDLに含めると画像劣化が大きくなり過ぎるケースも存在する。よって、本実施形態においては、PDLを所定サイズの領域単位のPDLに分割し、それぞれの領域のPDLサイズを所定の閾値サイズと比較し、閾値サイズ以下の領域のPDLを多重化PDLとする。こうすることで多重化するPDLデータのサイズを抑制する。
図12は第三の実施形態におけるタイル分割適応的PDL多重化印刷フローを説明する図である。ステップs1201及びs1202は図9中のステップs901及びs902と同じ処理なので説明を省略する。ステップs1203では、PDLを所定サイズの領域単位のPDLに分割する。
図13は第三の実施形態におけるタイル分割PDL原稿例を説明する図である。図13中、1300~1305は図3中の301~305と同じなので説明を省略する。本実施形態において、図13中原稿ページ1300は領域を6×6の36領域に分割されている。破線がその領域境界を示していて、原稿ページ1300の上側に記載されている数字0~5が水平方向の分割領域番号を、原稿ページ1300の左側に記載されている英字A~Fが垂直方向の分割領域番号を表す。各領域は「領域(英字)(数字)」と表す事とする。例えば左上の領域は「領域A0」であり、右上、左下、右下の領域はそれぞれ「領域A5」「領域F0」「領域F5」と表す。また、各領域のサイズは横100画素×縦150画素とする。この領域サイズは任意に設定可能であるが、領域サイズを小さくする程、領域数が大きくなってしまう。
図14は第三の実施形態におけるタイル分割多重化用PDL原稿例を説明する図である。図14中、1400~1404は図13中の1300~1304と同じなので説明を省略する。ハッチング領域1406は、多重化用PDLにおいて各分割領域のPDLデータサイズが閾値を超えるサイズと判断された領域を表す。ハッチング領域1406の内、領域C2~領域F5の矩形領域は図13中のIMAGE描画領域1305に対応する領域である。また、領域A4~領域B5の矩形領域は図13中のベタ部1302であり、上述の通り、本実施形態では多くのLINE描画命令から構成されている。
この様に、データサイズの大きな領域を多重化用PDL生成対象から外す事で、多重化対象のデータサイズを小さく抑える事が出来、画像劣化度合いを低減する事が出来る。
図15は第三の実施形態における多重化用分割PDL生成フローを説明する図である。まず、ステップs1501でPDLを取得する。
ステップs1502で各タイル(領域A0~F5の36領域)のデータサイズを示す変数SIZE_XYを下式のように初期化(=0)する。
SIZE_A0 = 0
SIZE_A1 = 0
・・
SIZE_F5 = 0。
SIZE_A0 = 0
SIZE_A1 = 0
・・
SIZE_F5 = 0。
ステップs1503で描画命令を解析する。図11中のステップs1102同様に、PDLをその1行目から順番に命令に着目して解析する。
ステップs1504で描画命令をタイルサイズに分割する。例えば、2行目の
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
は、図13中の領域1301に相当する描画命令であり、領域A0~B1の4領域に跨っている描画命令である。よって、各領域に対して上記命令を記述する必要が有る。よって、ステップs1505で分割対象のタイル毎に描画命令を追加する。
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
は、図13中の領域1301に相当する描画命令であり、領域A0~B1の4領域に跨っている描画命令である。よって、各領域に対して上記命令を記述する必要が有る。よって、ステップs1505で分割対象のタイル毎に描画命令を追加する。
2行目のBOX描画命令の分割が完了した状態で、各領域の多重化用PDLは以下の様になっている。
<PAGE=001>
<AREA=A0>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=A1>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=B0>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=B1>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA >
</PAGE>。
<PAGE=001>
<AREA=A0>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=A1>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=B0>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA>
<AREA=B1>
<BOX> 50, 75, 200, 300, GRAY, STRIPE </BOX>
</AREA >
</PAGE>。
ここで、各描画命令は領域を超える位置への描画は無視する事とする。そうする事で、「描画命令の分割=描画命令のコピー」として処理を簡略化している。
次に、ステップs1506で分割領域のタイル毎にデータサイズを加算する。
2行目のBOX描画命令は43文字から構成されているので、1文字2Bytesとして各分割領域のデータサイズを86Bytes増加させる。この時点で、各領域のデータサイズは、
SIZE_A0 = 86
SIZE_A1 = 86
SIZE_A2 = 0
・・
SIZE_B0 = 86
SIZE_B1 = 86
SIZE_B2 = 0
・・
SIZE_F5 = 0
となる。以後、1描画命令は概ね86bytesとして概算を行う。
2行目のBOX描画命令は43文字から構成されているので、1文字2Bytesとして各分割領域のデータサイズを86Bytes増加させる。この時点で、各領域のデータサイズは、
SIZE_A0 = 86
SIZE_A1 = 86
SIZE_A2 = 0
・・
SIZE_B0 = 86
SIZE_B1 = 86
SIZE_B2 = 0
・・
SIZE_F5 = 0
となる。以後、1描画命令は概ね86bytesとして概算を行う。
ステップs1507で全描画命令の分割が終了したかを判定する。判定結果がYesの場合にはステップs1508へ進む。判定結果がNoの場合にはステップs1503に進み、次の行の描画命令の分割に進む。
3行目からは上述の通り、大量のLINE命令が繰り返される為、両機A4~B5の4領域のデータサイズは非常に大きくなる。具体的には、
SIZE_A4 = 529,416 ( = 86×(500-420+1)×(150- 75+1))
SIZE_A5 = 333,336 ( = 86×(550-500+1)×(150- 75+1))
SIZE_B4 = 1,051,866 ( = 86×(500-420+1)×(300-150+1))
SIZE_B5 = 662,286 ( = 86×(550-500+1)×(300-150+1))
となる。
SIZE_A4 = 529,416 ( = 86×(500-420+1)×(150- 75+1))
SIZE_A5 = 333,336 ( = 86×(550-500+1)×(150- 75+1))
SIZE_B4 = 1,051,866 ( = 86×(500-420+1)×(300-150+1))
SIZE_B5 = 662,286 ( = 86×(550-500+1)×(300-150+1))
となる。
ステップs1508から、各領域のデータサイズの判定を行う。ステップs1509では、判定対象領域のデータサイズが閾値を超えたか否かを判定する。判定結果がYesの場合にはステップs1510に進む。判定結果がNoの場合にはステップs1511に進む。閾値としては必要十分に小さい値を設定する事が好ましいが、本実施形態においては、描画命令35個分を目安として、3,010Bytes ( = 86 x 35 )とする。こうする事で、最大でも36領域で、108,360Bytesとなり、第一の実施形態で試算したPDLファイルサイズとほぼ同等となる。
ステップs1510では、サイズが閾値を超過した領域について、その描画命令群をNull画像描画命令に差し替える。具体的には、第二の実施形態と同様に、
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様な1命令とする。こうする事で、領域のデータサイズが閾値を超えた領域については、描画命令数1、サイズとしては86Bytes程度となる。
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様な1命令とする。こうする事で、領域のデータサイズが閾値を超えた領域については、描画命令数1、サイズとしては86Bytes程度となる。
ステップs1511では、全領域(本実施形態では36領域)の確認が終了したかを判定する。判定結果がYesの場合にはステップs1512に進む。判定結果がNoの場合にはステップs1508に戻り、次の領域のデータサイズ判定を行う。
ステップs1512では、全領域の多重化用分割PDLを結合して、多重化用PDLを生成して保存する。
この様にする事によって、領域内のPDLデータサイズが閾値を超えない多重化用PDLを生成する事が出来る。
図12に戻り、ステップs1204では、ステップs1203で生成した多重化用PDLをステップs1202で生成したレンダリング画像に多重化して多重化画像を生成する。ステップs1204~s1206は図9中のステップs904~s906と処理内容が同じである為説明を省略する。
このようにして生成された画像データが印刷され、スキャンされると、図2(b)の手順でそこから多重化されたPDLデータが復元できる。復元されたPDLデータからは、所定値を超えたデータ量の領域に関しては、その領域の指定された位置の描画命令は復元できるものの、その内容は削除されている。そこで復元したPDLデータと、スキャンした画像データとを保存しておいてよい。あるいは、復元したPDLの描画命令でその内容が空欄の命令については、IMAGE描画命令に置き換えてもよい。この場合には、描画命令で指定された領域に書き込むデータとして、その領域に相当するスキャンした画像データの部分をファイル化してそれを指定してもよい。
以上の様に、多重化用PDLのデータサイズを低減する事によって、多重化に伴う画像劣化を低減する事が出来る。また、本実施形態の方法であれば、描画命令の種類に因らず、描画命令サイズが大きな領域を多重化対象データから外して画像劣化を低減可能である。
また、第二の実施形態同様に、サイズの大きな領域においては、
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様に元々の領域に描画命令が存在していた事を明示しているので、PDL復号側はスキャンした画像中、IMAGE描画命令領域に対応した画像部分と合成する等の方法で文字・細線の形状を復元しつつ画像部も持つPDLを生成する事が可能となる。
<IMAGE> 250, 350, 550, 825, "" </IMAGE>
の様に元々の領域に描画命令が存在していた事を明示しているので、PDL復号側はスキャンした画像中、IMAGE描画命令領域に対応した画像部分と合成する等の方法で文字・細線の形状を復元しつつ画像部も持つPDLを生成する事が可能となる。
また、本実施形態ではPDL中の描画命令数に注目してサイズ削減を行ったが、別途フォントデータサイズや画像データサイズにそれぞれ閾値を設けて多重化PDLに含めるか否かを判定しても良い。
上記構成により、本実施形態によれば、画像データに多重化するPDLデータのデータ量の上限を、各領域の多重化するか否かを定める多重化閾値の総和に抑えることができる。このため、このデータ量の上限を、1枚のシートに形成する画像に多重化できるデータ量としておけば、符号化したPDLデータを1枚のシートに確実に多重化することが可能となる。加えて、上述した第一実施形態及び第二実施形態の利点を享受することもできる。
Claims (16)
- 画像データに基づいて画像を形成する画像形成手段と、画像を画像データとして読み取る読み取り手段とに接続された情報処理装置であって、
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と、
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置。 - 画像データに基づいて画像を形成する画像形成手段と接続された情報処理装置であって、
ページ記述言語で記述された原稿データに基づいて画像データを生成する生成手段と、
前記原稿データを符号化して前記画像データに多重化する多重化手段と、
前記画像形成手段に前記画像データを出力する出力手段と
を有することを特徴とする情報処理装置。 - ページ記述言語で記述された原稿データが多重化された画像を画像データとして読み取る読み取り手段と接続された情報処理装置であって、
前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元する復元手段と、
前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する保存手段と
を有することを特徴とする情報処理装置。 - 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
前記原稿データに含まれたオブジェクトが画像である場合には、画像のオブジェクトを除いた原稿データが、前記画像データに多重化される
こと特徴とする情報処理装置。 - 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
前記原稿データから生成された前記画像データを複数の領域に分割した領域それぞれに含まれたオブジェクトのデータ量が所定値を超えている領域については、当該領域に含まれたオブジェクトを除いた原稿データが、前記画像データに多重化される
こと特徴とする情報処理装置。 - 請求項5に記載の情報処理装置であって、
前記オブジェクトを除いた原稿データには、当該オブジェクトの領域を含む描画命令が含まれる
こと特徴とする情報処理装置。 - 請求項1または3に記載の情報処理装置であって、
前記保存手段により保存された前記画像データと前記原稿データとに基づいて画像を再生する再生手段を更に有する
こと特徴とする情報処理装置。 - 請求項7に記載の情報処理装置であって、
前記再生手段は、保存された前記原稿データに含まれていないオブジェクトがある場合には、当該オブジェクトに対応する、前記保存手段に保存された前記画像データにより前記オブジェクトを再生する
こと特徴とする情報処理装置。 - 請求項1乃至8のいずれか一項に記載の情報処理装置であって、
前記原稿データは、符号化されて前記画像の高周波成分に多重化される
こと特徴とする情報処理装置。 - 請求項1乃至8のいずれか一項に記載の情報処理装置であって、
前記原稿データは、マトリクス型二次元コードに符号化され、前記マトリクス型二次元コードに相当する所定の色成分の画素を置換することで前記画像に多重化される
こと特徴とする情報処理装置。 - 請求項1乃至10のいずれか一項に記載の情報処理装置であって、
画像形成手段を更に含む
こと特徴とする情報処理装置。 - 請求項1乃至11のいずれか一項に記載の情報処理装置であって、
読み取り手段を更に含む
こと特徴とする情報処理装置。 - 請求項1乃至10のいずれか一項に記載の情報処理装置としてコンピュータを機能させるためのプログラム。
- 画像データに基づいて画像を形成する画像形成手段と、画像を画像データとして読み取る読み取り手段とに接続された情報処理装置において、
生成手段が、ページ記述言語で記述された原稿データに基づいて画像データを生成し、
多重化手段が、前記原稿データを符号化して前記画像データに多重化し、
出力手段が、前記画像形成手段に前記画像データを出力し、
復元手段が、前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元し、
保存手段が、前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する
ことを特徴とする画像処理方法。 - 画像データに基づいて画像を形成する画像形成手段と接続された情報処理装置において、
生成手段が、ページ記述言語で記述された原稿データに基づいて画像データを生成し、
多重化手段が、前記原稿データを符号化して前記画像データに多重化し、
出力手段が、前記画像形成手段に前記画像データを出力する
ことを特徴とする画像処理方法。 - ページ記述言語で記述された原稿データが多重化された画像を画像データとして読み取る読み取り手段と接続された情報処理装置において、
復元手段が、前記読み取り手段により読み取られた画像データから多重化された前記原稿データを復元し、
保存手段が、前記読み取り手段により読み取られた前記画像データと前記復元手段により復元された前記原稿データとを保存する
ことを特徴とする画像処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021039527A JP2022139237A (ja) | 2021-03-11 | 2021-03-11 | 情報処理装置とプログラム及び画像処理方法 |
US17/688,993 US11818319B2 (en) | 2021-03-11 | 2022-03-08 | Information processing apparatus, image processing method, and medium |
US18/483,034 US20240040060A1 (en) | 2021-03-11 | 2023-10-09 | Information processing apparatus, image processing method, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021039527A JP2022139237A (ja) | 2021-03-11 | 2021-03-11 | 情報処理装置とプログラム及び画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022139237A true JP2022139237A (ja) | 2022-09-26 |
JP2022139237A5 JP2022139237A5 (ja) | 2024-03-19 |
Family
ID=83195338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021039527A Pending JP2022139237A (ja) | 2021-03-11 | 2021-03-11 | 情報処理装置とプログラム及び画像処理方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11818319B2 (ja) |
JP (1) | JP2022139237A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023067166A (ja) | 2021-10-29 | 2023-05-16 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP2023067164A (ja) | 2021-10-29 | 2023-05-16 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
JP2023130915A (ja) * | 2022-03-08 | 2023-09-21 | キヤノン株式会社 | 画像処理装置、画像処理方法、及び印刷装置 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549681B1 (en) | 1995-09-26 | 2003-04-15 | Canon Kabushiki Kaisha | Image synthesization method |
JP3869876B2 (ja) | 1995-12-19 | 2007-01-17 | キヤノン株式会社 | 画像計測方法及び画像計測装置 |
JPH1013697A (ja) | 1996-06-18 | 1998-01-16 | Canon Inc | 画像処理装置およびその方法 |
US5883984A (en) * | 1996-10-03 | 1999-03-16 | Silicon Integrated Systems Corp. | Method and apparatus for contrast enhancement of color images |
EP0908847B1 (en) | 1997-10-06 | 2006-01-25 | Canon Kabushiki Kaisha | Image synthesis apparatus and image synthesis method |
US6704041B2 (en) | 1998-03-10 | 2004-03-09 | Canon Kabushiki Kaisha | Image processing method, apparatus and memory medium therefor |
JP3492202B2 (ja) * | 1998-06-24 | 2004-02-03 | キヤノン株式会社 | 画像処理方法、装置および記録媒体 |
US6694051B1 (en) * | 1998-06-24 | 2004-02-17 | Canon Kabushiki Kaisha | Image processing method, image processing apparatus and recording medium |
JP3556859B2 (ja) * | 1998-09-08 | 2004-08-25 | 富士写真フイルム株式会社 | 画像補正方法、画像補正装置及び記録媒体 |
AUPQ289099A0 (en) * | 1999-09-16 | 1999-10-07 | Silverbrook Research Pty Ltd | Method and apparatus for manipulating a bayer image |
US6873436B1 (en) * | 2000-09-05 | 2005-03-29 | Fuji Xerox Co., Ltd. | Image processing device and recording medium |
WO2002031752A1 (en) | 2000-10-11 | 2002-04-18 | Digimarc Corporation | Halftone watermarking and related applications |
JP2002344737A (ja) | 2001-05-14 | 2002-11-29 | Nec Corp | 画像読み取り装置 |
JP2003174556A (ja) * | 2001-09-26 | 2003-06-20 | Canon Inc | 画像処理装置及び画像処理方法 |
US7187476B2 (en) * | 2001-10-01 | 2007-03-06 | Canon Kabushiki Kaisha | Image processing apparatus and method, computer program, and recording medium |
US8102558B2 (en) | 2002-08-05 | 2012-01-24 | Canon Kabushiki Kaisha | Image supply apparatus, control method therefor, and printing system |
JP2004104494A (ja) * | 2002-09-10 | 2004-04-02 | Canon Inc | 電子透かし埋め込み装置及びその制御方法 |
JP4170318B2 (ja) * | 2005-07-12 | 2008-10-22 | シャープ株式会社 | 画像形成装置、制御方法、制御プログラム、および、コンピュータ読取り可能な記録媒体 |
JP2007043423A (ja) * | 2005-08-02 | 2007-02-15 | Canon Inc | 画像処理方法及びその装置 |
JP2007180710A (ja) * | 2005-12-27 | 2007-07-12 | Oki Data Corp | データ処理方法、データ処理装置及びデータ処理システム |
JP4926568B2 (ja) | 2006-06-29 | 2012-05-09 | キヤノン株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
JP4706574B2 (ja) * | 2006-06-30 | 2011-06-22 | 富士ゼロックス株式会社 | 印刷システム及びプログラム |
JP4637063B2 (ja) | 2006-07-04 | 2011-02-23 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
JP4632452B2 (ja) * | 2006-07-07 | 2011-02-16 | キヤノン株式会社 | 画像補正処理装置、画像補正処理方法、プログラム及び記憶媒体 |
US20090210715A1 (en) * | 2006-08-01 | 2009-08-20 | Fujitsu Limited | Document verification apparatus, document verification method, and computer product |
JP2008072352A (ja) * | 2006-09-13 | 2008-03-27 | Sharp Corp | 画像処理方法、画像処理装置、原稿読取装置、画像形成装置及びコンピュータプログラム |
JP2008186165A (ja) | 2007-01-29 | 2008-08-14 | Canon Inc | 埋込フォント除去方法 |
JP4314282B2 (ja) * | 2007-03-07 | 2009-08-12 | キヤノン株式会社 | 認証装置、画像処理装置、画像処理装置の制御方法、プログラムおよび記憶媒体 |
JP5180551B2 (ja) * | 2007-09-27 | 2013-04-10 | キヤノン株式会社 | 印刷装置およびその制御方法、並びに、色処理装置およびその方法 |
US20090110313A1 (en) * | 2007-10-25 | 2009-04-30 | Canon Kabushiki Kaisha | Device for performing image processing based on image attribute |
JP5209953B2 (ja) * | 2007-12-20 | 2013-06-12 | キヤノン株式会社 | 画像データ供給装置および画像データ供給方法 |
JP5188201B2 (ja) * | 2008-02-25 | 2013-04-24 | キヤノン株式会社 | 画像処理装置及びその制御方法、プログラム、記憶媒体 |
JP5002524B2 (ja) * | 2008-04-25 | 2012-08-15 | キヤノン株式会社 | 画像処理装置、画像処理方法、及び、プログラム |
JP5328505B2 (ja) | 2009-06-18 | 2013-10-30 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
US8456704B2 (en) * | 2010-06-14 | 2013-06-04 | Xerox Corporation | Colorimetric matching the perception of a digital data file to hardcopy legacy |
JP2012191508A (ja) * | 2011-03-11 | 2012-10-04 | Canon Inc | 符号画像を取り扱うことのできるシステム、その制御方法 |
US9319556B2 (en) * | 2011-08-31 | 2016-04-19 | Konica Minolta Laboratory U.S.A., Inc. | Method and apparatus for authenticating printed documents that contains both dark and halftone text |
JP5979962B2 (ja) * | 2012-05-07 | 2016-08-31 | キヤノン株式会社 | 画像形成装置 |
US9961231B2 (en) * | 2015-10-06 | 2018-05-01 | Canon Kabushiki Kaisha | Image processing method that attempts decoding of additional information using a plurality of decoding methods, and apparatus therefor |
JP6658000B2 (ja) * | 2016-01-27 | 2020-03-04 | 株式会社リコー | 情報処理装置、画像出力制御方法およびプログラム |
JP6808581B2 (ja) * | 2017-06-28 | 2021-01-06 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
EP3744080B1 (en) * | 2018-01-26 | 2023-06-07 | Universitat de Barcelona | Colour correction |
JP2021027434A (ja) * | 2019-08-01 | 2021-02-22 | シャープ株式会社 | 画像処理装置 |
-
2021
- 2021-03-11 JP JP2021039527A patent/JP2022139237A/ja active Pending
-
2022
- 2022-03-08 US US17/688,993 patent/US11818319B2/en active Active
-
2023
- 2023-10-09 US US18/483,034 patent/US20240040060A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220294931A1 (en) | 2022-09-15 |
US20240040060A1 (en) | 2024-02-01 |
US11818319B2 (en) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9734439B2 (en) | Image processing apparatus and method thereof | |
JP5132517B2 (ja) | 画像処理装置および画像処理方法 | |
US20240040060A1 (en) | Information processing apparatus, image processing method, and medium | |
JP5014284B2 (ja) | 画像処理装置、画像処理方法、およびプログラム | |
US20070297668A1 (en) | Image-processing apparatus and method, computer program, and storage medium | |
JP5146085B2 (ja) | 画像処理装置およびプログラム | |
JP2007311836A (ja) | 画像処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
JP2017156852A (ja) | 画像処理装置、および、コンピュータプログラム | |
US11677894B2 (en) | Information processing apparatus, image processing method, and medium | |
US11973903B2 (en) | Image processing system and image processing method with determination, for each of divided areas, as to which of read image data or original image data is used in correcting original image data | |
JP6184115B2 (ja) | 画像処理方法及び画像処理装置 | |
US20230291858A1 (en) | Image processing apparatus and image processing method | |
JP6882043B2 (ja) | 画像処理装置、プログラム及び画像処理方法 | |
JP4861924B2 (ja) | 画像処理装置、その制御方法、そのプログラム、その記憶媒体 | |
US8373901B2 (en) | Image-processing apparatus and image-processing method | |
US11968343B2 (en) | Image processing apparatus and image processing method that obtain multiplexed images and output print data using multiplexed image | |
US20100188670A1 (en) | Image processing apparatus, image processing method and program executing the image processing method | |
JP4697933B2 (ja) | 画像処理装置および画像入出力装置およびそれらの方法 | |
JP7506710B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2007088912A (ja) | 画像処理装置およびプログラム | |
JP7185451B2 (ja) | 画像処理装置と画像処理方法、及びプログラム | |
JP2007189275A (ja) | 画像処理装置 | |
JP2004235743A (ja) | 画像処理装置および画像処理方法およびプログラムおよび記録媒体 | |
JP2018103474A (ja) | 画像処理装置、および、コンピュータプログラム | |
JP5523273B2 (ja) | 画像処理装置、画像処理装置を制御する方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240308 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240308 |