(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】画像処理装置、記録装置、画像処理方法、及び、記録方法
(51)【国際特許分類】
H04N 1/405 20060101AFI20240820BHJP
B41J 2/01 20060101ALI20240820BHJP
B41J 2/21 20060101ALI20240820BHJP
B41J 2/205 20060101ALI20240820BHJP
G06T 1/00 20060101ALI20240820BHJP
G06T 19/20 20110101ALI20240820BHJP
【FI】
H04N1/405 510A
B41J2/01 109
B41J2/21
B41J2/205
G06T1/00 510
G06T19/20
(21)【出願番号】P 2020113034
(22)【出願日】2020-06-30
【審査請求日】2023-04-26
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110003177
【氏名又は名称】弁理士法人旺知国際特許事務所
(72)【発明者】
【氏名】宇都宮 光平
(72)【発明者】
【氏名】伊藤 伸朗
(72)【発明者】
【氏名】山▲崎▼ 郷志
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2015-044299(JP,A)
【文献】特開2018-024117(JP,A)
【文献】特開2019-043127(JP,A)
【文献】特開平07-028995(JP,A)
【文献】特開2011-259404(JP,A)
【文献】特開2016-167740(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/40- 1/409
G06T 1/00
G06T 5/00- 5/94
G06T 15/00-19/20
B41J 2/00- 2/525
(57)【特許請求の範囲】
【請求項1】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、
を備え、
前記生成部は、
前記複数の画素の中から一の画素を選択する選択部と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配する分配部と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記第1の分配率は、前記第2の分配率及び前記第3の分配率よりも大きい、
ことを特徴とする画像処理装置。
【請求項2】
前記3次元空間における複数の画素は、
前記第1方向に延在する画素列を複数含み、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素列の前記第2方向に位置する他の画素列の中から、他の画素を選択する、
ことを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
前記3次元空間における複数の画素は、
前記第1方向及び前記第2方向により規定される平面と平行な画素面を複数含み、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在せず、且つ、
前記一の画素を含む一の画素列の前記第2方向に、前記3次元空間における複数の画素列のうち何れの画素列も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素面の前記第3方向に位置する他の画素面の中から、他の画素を選択する、
ことを特徴とする、請求項2に記載の画像処理装置。
【請求項4】
前記第2の分配率は、前記第3の分配率よりも大きい、
ことを特徴とする、請求項2または3に記載の画像処理装置。
【請求項5】
前記第1画素は、前記一の画素の第1方向に隣接する画素であり、
前記第2画素は、前記一の画素の第2方向に隣接する画素であり、
前記第3画素は、前記一の画素の第3方向に隣接する画素である、
ことを特徴とする、請求項1乃至4のうち何れか1項に記載の画像処理装置。
【請求項6】
前記分配部は、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記第1画素の第1方向に隣接する第4画素に対して、第4の分配率で分配し、
前記第2画素の第2方向に隣接する第5画素に対して、第5の分配率で分配し、
前記第3画素の第3方向に隣接する第6画素に対して、第6の分配率で分配する、
ことを特徴とする、請求項5に記載の画像処理装置。
【請求項7】
前記第4の分配率は、前記第5の分配率及び前記第6の分配率よりも大きく、
前記第5の分配率は、前記第6の分配率よりも大きい、
ことを特徴とする、請求項6に記載の画像処理装置。
【請求項8】
前記分配部は、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記第1画素の第2方向に隣接する第7画素に対して、第7の分配率で分配し、
前記第1画素の第3方向に隣接する第8画素に対して、第8の分配率で分配し、
前記第2画素の第3方向に隣接する第9画素に対して、第9の分配率で分配する、
ことを特徴とする、請求項5乃至7のうち何れか1項に記載の画像処理装置。
【請求項9】
前記第7の分配率は、前記第8の分配率及び前記第9の分配率よりも大きく、
前記第8の分配率は、前記第9の分配率よりも大きい、
ことを特徴とする、請求項8に記載の画像処理装置。
【請求項10】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、
を備え、
前記生成部は、
前記複数の画素の中から一の画素を選択する選択部と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第1方向に隣接する第4画素に対して、第4の分配率で分配し、
前記第2画素の第2方向に隣接する第5画素に対して、第5の分配率で分配し、
前記第3画素の第3方向に隣接する第6画素に対して、第6の分配率で分配する分配部と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向である、
ことを特徴とする画像処理装置。
【請求項11】
前記第4の分配率は、前記第5の分配率及び前記第6の分配率よりも大きく、
前記第5の分配率は、前記第6の分配率よりも大きい、
ことを特徴とする、請求項10に記載の画像処理装置。
【請求項12】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、
を備え、
前記生成部は、
前記複数の画素の中から一の画素を選択する選択部と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第2方向に隣接する第7画素に対して、第7の分配率で分配し、
前記第1画素の第3方向に隣接する第8画素に対して、第8の分配率で分配し、
前記第2画素の第3方向に隣接する第9画素に対して、第9の分配率で分配する分配部と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記3次元空間における複数の画素は、
前記第1方向に延在する画素列を複数含み、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素列の前記第2方向に位置する他の画素列の中から、他の画素を選択し、
前記第7の分配率は、前記第8の分配率よりも大きい、
ことを特徴とする画像処理装置。
【請求項13】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、
を備え、
前記生成部は、
前記複数の画素の中から一の画素を選択する選択部と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第2方向に隣接する第7画素に対して、第7の分配率で分配し、
前記第1画素の第3方向に隣接する第8画素に対して、第8の分配率で分配し、
前記第2画素の第3方向に隣接する第9画素に対して、第9の分配率で分配する分配部と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記3次元空間における複数の画素は、
前記第1方向に延在する画素列を複数含み、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素列の前記第2方向に位置する他の画素列の中から、他の画素を選択し、
前記第7の分配率は、前記第9の分配率よりも大きい、
ことを特徴とする画像処理装置。
【請求項14】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、
を備え、
前記生成部は、
前記複数の画素の中から一の画素を選択する選択部と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第2方向に隣接する第7画素に対して、第7の分配率で分配し、
前記第1画素の第3方向に隣接する第8画素に対して、第8の分配率で分配し、
前記第2画素の第3方向に隣接する第9画素に対して、第9の分配率で分配する分配部と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記3次元空間における複数の画素は、
前記第1方向に延在する画素列を複数含み、
前記選択部は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素列の前記第2方向に位置する他の画素列の中から、他の画素を選択し、
前記第8の分配率は、前記第9の分配率よりも大きい、
ことを特徴とする画像処理装置。
【請求項15】
前記第1画素は、前記第2方向および前記第3方向において、前記一の画素と同じ位置に位置し、
前記第2画素は、前記第1方向および前記第3方向において、前記一の画素と同じ位置に位置し、
前記第3画素は、前記第1方向および前記第2方向において、前記一の画素と同じ位置に位置する、
ことを特徴とする、請求項1乃至14のうちの何れか1項に記載の画像処理装置。
【請求項16】
前記第1方向は、前記第2方向及び前記第3方向に直交する方向であり、
前記第2方向は、前記第3方向に直交する方向である、
ことを特徴とする、請求項1乃至15のうち何れか1項に記載の画像処理装置。
【請求項17】
前記表示データに基づいて液体を吐出するヘッドユニットを備える、
ことを特徴とする、請求項1乃至16のうち何れか1項に記載の画像処理装置。
【請求項18】
前記生成部は、
前記表示データに基づいて液体を吐出するヘッドユニットを具備する記録装置に対して、前記表示データを供給する、
ことを特徴とする、請求項1乃至16のうち何れか1項に記載の画像処理装置。
【請求項19】
前記画像データは、
前記3次元空間において第1の色の第1画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき第1画像の階調値である第1階調値を示す第1画像データと、
前記3次元空間において第2の色の第2画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき第2画像の階調値である第2階調値を示す第2画像データと、
を含み、
前記生成部は、
前記第1画像データの示す第1階調値を量子化することで、第1表示データを生成し、
前記第2画像データの示す第2階調値を量子化することで、第2表示データを生成し、
前記分配部は、
前記一の画素に対応する第1階調値の量子化に基づく誤差を、
前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配し、
前記一の画素に対応する第2階調値の量子化に基づく誤差を、
前記第1画素に対して、第10の分配率で分配し、
前記第2画素に対して、第11の分配率で分配し、
前記第3画素に対して、第12の分配率で分配する、
ことを特徴とする、請求項1乃至18のうち何れか1項に記載の画像処理装置。
【請求項20】
3次元形状の対象物に対して画像を形成する記録装置であって、
液体を吐出するヘッドユニットと、
誤差拡散法により配置が定められた複数のドットであって、
前記ヘッドユニットから吐出された液体により形成される複数のドットによって、
前記対象物に対して前記画像が形成されるように、
前記ヘッドユニットからの液体の吐出を制御する制御部と、
を備え、
前記制御部は、
前記対象物が第1面を有する場合、
前記第1面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有し、
前記対象物が前記第1面とは平行ではない第2面を有する場合、
前記第2面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有するように、
前記ヘッドユニットからの液体の吐出を制御する、
ことを特徴とする記録装置。
【請求項21】
前記第1面における複数のドットの分布は、空間周波数領域において、ホワイトノイズ特性とは異なる周波数特性を有し、
前記第2面における複数のドットの分布は、空間周波数領域において、ホワイトノイズ特性とは異なる周波数特性を有する、
ことを特徴とする、請求項20に記載の記録装置。
【請求項22】
前記第1面における複数のドットの分布は、空間周波数領域において、ブルーノイズ特性を有し、
前記第2面における複数のドットの分布は、空間周波数領域において、ブルーノイズ特性を有する、
ことを特徴とする、請求項20または21に記載の記録装置。
【請求項23】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得工程と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成工程と、
を備え、
前記生成工程は、
前記複数の画素の中から一の画素を選択する選択工程と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配する分配工程と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記選択工程は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記第1の分配率は、前記第2の分配率及び前記第3の分配率よりも大きい、
ことを特徴とする画像処理方法。
【請求項24】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得工程と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成工程と、
を備え、
前記生成工程は、
前記複数の画素の中から一の画素を選択する選択工程と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第1方向に隣接する第4画素に対して、第4の分配率で分配し、
前記第2画素の第2方向に隣接する第5画素に対して、第5の分配率で分配し、
前記第3画素の第3方向に隣接する第6画素に対して、第6の分配率で分配する分配工程と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向である、
ことを特徴とする画像処理方法。
【請求項25】
3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得工程と、
前記画像データの示す階調値を量子化することで、表示データを生成する生成工程と、
を備え、
前記生成工程は、
前記複数の画素の中から一の画素を選択する選択工程と、
前記一の画素に対応する階調値の量子化に基づく誤差を、
前記一の画素の第1方向に隣接する第1画素に対して、第1の分配率で分配し、
前記一の画素の第2方向に隣接する第2画素に対して、第2の分配率で分配し、
前記一の画素の第3方向に隣接する第3画素に対して、第3の分配率で分配し、
前記第1画素の第2方向に隣接する第7画素に対して、第7の分配率で分配し、
前記第1画素の第3方向に隣接する第8画素に対して、第8の分配率で分配し、
前記第2画素の第3方向に隣接する第9画素に対して、第9の分配率で分配する分配工程と、
を備え、
前記第2方向は、前記第1方向に交差する方向であり、
前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向であり、
前記
選択工程は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れかの画素が存在する場合、
前記一の画素を選択した後に、
前記一の画素の前記第1方向に位置する他の画素を選択し、
前記3次元空間における複数の画素は、
前記第1方向に延在する画素列を複数含み、
前記
選択工程は、
前記一の画素の前記第1方向に、前記3次元空間における複数の画素のうち何れの画素も存在しない場合、
前記一の画素を選択した後に、
前記一の画素を含む一の画素列の前記第2方向に位置する他の画素列の中から、他の画素を選択し、
前記第7の分配率は、前記第8の分配率よりも大きい、
ことを特徴とする画像処理方法。
【請求項26】
液体を吐出するヘッドユニットから吐出された液体により形成される複数のドットによって、3次元形状の対象物に対して画像を形成する記録方法であって、
前記複数のドットは、誤差拡散法により配置が定められ、
前記対象物が第1面を有する場合、
前記第1面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有し、
前記対象物が前記第1面とは平行ではない第2面を有する場合、
前記第2面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有するように、
画像を記録する、
ことを特徴とする記録方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、記録装置、画像処理方法、及び、記録方法に関する。
【背景技術】
【0002】
特許文献1に記載のように、従来から、誤差拡散法を用いて、ハーフトーン処理を行うことで、2次元平面において画像を形成する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来の技術においては、2次元平面以外の形状の画像を形成することができないという問題があった。
【課題を解決するための手段】
【0005】
以上の問題を解決するために、本発明の一態様に係る画像処理装置は、3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、を備え、前記生成部は、前記複数の画素の中から一の画素を選択する選択部と、前記一の画素に対応する階調値の量子化に基づく誤差を、前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配する分配部と、を備え、前記第2方向は、前記第1方向に交差する方向であり、前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向である、ことを特徴とする。
【0006】
また、本発明の他の態様に係る記録装置は、3次元形状の対象物に対して画像を形成する記録装置であって、液体を吐出するヘッドユニットと、誤差拡散法により配置が定められた複数のドットであって、前記ヘッドユニットから吐出された液体により形成される複数のドットによって、前記対象物に対して前記画像が形成されるように、前記ヘッドユニットからの液体の吐出を制御する制御部と、を備え、前記制御部は、前記対象物が第1面を有する場合、前記第1面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有し、前記対象物が前記第1面とは平行ではない第2面を有する場合、前記第2面における複数のドットの分布が、空間周波数領域において所定の周波数より高い高周波成分が前記所定の周波数より低い低周波成分よりも多くなる周波数特性を有するように、前記ヘッドユニットからの液体の吐出を制御する、ことを特徴とする。
【0007】
また、本発明の一態様に係る画像処理方法は、3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得工程と、前記画像データの示す階調値を量子化することで、表示データを生成する生成工程と、を備え、前記生成工程は、前記複数の画素の中から一の画素を選択する選択工程と、前記一の画素に対応する階調値の量子化に基づく誤差を、前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配する分配工程と、を備え、前記第2方向は、前記第1方向に交差する方向であり、前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向である、ことを特徴とする。
【0008】
また、本発明の一態様に係るプログラムは、コンピュータを、3次元空間において画像を表す場合に前記3次元空間における複数の画素の各々が表示すべき画像の階調値を示す画像データを取得する取得部と、前記画像データの示す階調値を量子化することで、表示データを生成する生成部と、して機能させ、前記生成部は、前記複数の画素の中から一の画素を選択する選択部と、前記一の画素に対応する階調値の量子化に基づく誤差を、前記一の画素の第1方向に位置する第1画素に対して、第1の分配率で分配し、前記一の画素の第2方向に位置する第2画素に対して、第2の分配率で分配し、前記一の画素の第3方向に位置する第3画素に対して、第3の分配率で分配する分配部と、して機能し、前記第2方向は、前記第1方向に交差する方向であり、前記第3方向は、前記第1方向及び前記第2方向により規定される平面の延在方向とは異なる方向である、ことを特徴とする。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態に係る記録システムSysの一例を示す説明図である。
【
図2】端末装置1の構成の一例を示す機能ブロック図である。
【
図3】記録装置5の構成の一例を示す機能ブロック図である。
【
図4】画像形成空間SPの一例を示す説明図である。
【
図6】表示データ生成処理の一例を示すフローチャートである。
【
図7】誤差拡散データGKの一例を示す説明図である。
【
図8】参考例に係る誤差拡散データGK-Z1の一例を示す説明図である。
【
図9】参考例に係る表示データ生成処理の一例を示す説明図である。
【
図10】参考例に係る表示データ生成処理の一例を示す説明図である。
【
図11】参考例に係る表示データImgの一例を示す説明図である。
【
図12】参考例に係る表示データImgの一例を示す説明図である。
【
図13】参考例に係る誤差拡散データGK-Z2の一例を示す説明図である。
【
図14】参考例に係る誤差拡散データGK-Z3の一例を示す説明図である。
【
図15】表示データ生成処理の一例を示す説明図である。
【
図16】表示データ生成処理の一例を示す説明図である。
【
図17】表示データImgの一例を示す説明図である。
【
図18】表示データImgの一例を示す説明図である。
【
図20】変形例1に係る誤差拡散データGK-Aの一例を示す説明図である。
【
図21】変形例1に係る誤差拡散データGK-Bの一例を示す説明図である。
【
図22】変形例1に係る誤差拡散データGK-Cの一例を示す説明図である。
【
図23】変形例1に係る誤差拡散データGK-Dの一例を示す説明図である。
【
図24】変形例1に係る誤差拡散データGK-Eの一例を示す説明図である。
【
図25】変形例2に係る表示データ生成処理の一例を示すフローチャートである。
【
図26】変形例3に係る表示データ生成処理の一例を示すフローチャートである。
【
図27】変形例3に係る表示データ生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について図面を参照して説明する。但し、各図において、各部の寸法及び縮尺は、実際のものと適宜に異ならせてある。また、以下に述べる実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。
【0011】
<<A.実施形態>>
本実施形態に係る記録システムSysについて説明する。
なお、本実施形態において、記録システムSysは、3次元の形状を有する対象物Objの表面SFにおいて画像Gを形成するためのシステムである。なお、記録システムSysは、2次元の形状を有する対象物Objに対して画像Gを形成可能であってもよい。
【0012】
<<1.記録システムSysの概要>>
以下では、まず、
図1乃至
図3を参照しつつ、本実施形態に係る記録システムSysの構成の概略の一例について説明する。
【0013】
図1は、記録システムSysの一例を示す説明図である。
【0014】
図1に例示するように、記録システムSysは、端末装置1と、記録装置5と、を備える。
このうち、端末装置1は、記録システムSysが対象物Objの表面SFに形成する画像Gを示す表示データImgを生成する。
また、記録装置5は、端末装置1が生成する表示データImgに基づいて、対象物Objの表面SFに対して、表示データImgの示す画像Gを形成する。
【0015】
なお、端末装置1は、
図1に例示するように、対象物Objが存在する3次元空間である画像形成空間SPにおいて、X軸、Y軸、及び、Z軸を有する、3次元の座標系を設定する。以下では、X軸に沿う一方向を+X方向と称し、+X方向とは反対の方向を-X方向と称し、Y軸に沿う一方向を+Y方向と称し、+Y方向とは反対の方向を-Y方向と称し、Z軸に沿う一方向を+Z方向と称し、+Z方向とは反対の方向を-Z方向と称する。また、以下では、+X方向及び-X方向をX軸方向と総称し、+Y方向及び-Y方向をY軸方向と総称し、+Z方向及び-Z方向をZ軸方向と総称する場合がある。なお、本実施形態において、端末装置1は、X軸、Y軸、及び、Z軸を、互いに直交するように設定する場合を想定するが、本発明はこのような態様に限定されるものではなく、X軸、Y軸、及び、Z軸を、互いに交差するように定めればよい。
【0016】
図2は、端末装置1の構成の一例を示す機能ブロック図である。
【0017】
図2に例示するように、端末装置1は、端末制御ユニット2と、記憶ユニット3を備える。
【0018】
記憶ユニット3は、画像データGDと、誤差拡散データGKと、端末装置1の制御プログラムPgtと、を記憶している。
このうち、画像データGDは、例えば、記録システムSysのユーザが、記録システムSysを用いて、対象物Objの表面SFに対して形成しようとする画像Gfを示す。具体的には、画像データGDは、画像形成空間SPを構成する複数の画素Pxの各々に対応する、画像Gfの階調値を示す。なお、詳細は後述するが、記録システムSysは、画像データGDの示す画像Gfの階調値を表現することができない場合がある。このため、記録システムSysは、画像Gfを記録システムSysが表現可能な階調値で表現した、画像Gを形成する。具体的には、記録システムSysは、記憶ユニット3に記憶されている誤差拡散データGKを用いて、画像データGDに基づいて表示データImgを生成し、生成した表示データImgの示す画像Gを、対象物Objの表面SFに対して形成する。
なお、誤差拡散データGKについては後述する。
【0019】
図2に例示するように、端末制御ユニット2は、1または複数のCPUを含んで構成され、端末装置1の各部を制御する。ここで、CPUとは、Central Processing Unitの略称である。端末制御ユニット2に設けられた1または複数のCPUは、記憶ユニット3に記憶されている制御プログラムPgtを実行し、制御プログラムPgtに従って動作することで、画像データ取得部21、及び、表示データ生成部22として機能することができる。
【0020】
このうち、画像データ取得部21は、記憶ユニット3に記憶されている画像データGDを取得する。なお、本実施形態では、画像データGDが、記憶ユニット3に記憶されている場合を一例として想定するが、本発明はこのような態様に限定されるものではない。例えば、画像データGDは、端末装置1の外部に存在する外部装置に記憶されていてもよい。この場合、画像データ取得部21は、当該外部装置から、画像データGDを取得すればよい。
【0021】
また、表示データ生成部22は、画像データGDの示す画素Pxの階調値を量子化する処理である量子化処理を実行することで、表示データImgを生成する。具体的には、本実施形態において、表示データ生成部22は、量子化処理として、一の画素Pxに対応する画像Gfの階調値を変更したときの誤差を、他の画素Pxに対応する画像Gfの階調値に反映しながら、画素Pxごとに順次、階調値を変更していく、所謂誤差拡散処理を行う。
本実施形態において、表示データ生成部22は、画素選択部221と、演算処理部222と、誤差分配部223と、を備える。このうち、画素選択部221は、誤差拡散処理の対象となる画素Pxである、対象画素PxTを選択する。また、演算処理部222は、対象画素PxTに対応する画像Gfの階調値に対して誤差拡散処理を施すことで、対象画素PxTに対応する画像Gの階調値を決定する。また、誤差分配部223は、誤差拡散データGKを用いることで、対象画素PxTに対応する画像Gfの階調値と、対象画素PxTに対応する画像Gの階調値との誤差Eを、対象画素PxTの周囲に位置する周囲画素PxSに対応する画像Gfの階調値に対して分配する。
【0022】
図3は、記録装置5の構成の一例を示す機能ブロック図である。
【0023】
図3に例示するように、記録装置5は、記録制御ユニット6、ヘッドユニット7、インク供給ユニット8、及び、ロボットハンド9を備える。
【0024】
記録制御ユニット6は、CPUまたはFPGA等の処理回路と、半導体メモリ等の記憶回路とを含み、記録装置5の各要素を制御する。ここで、FPGAとは、Field Programmable Gate Arrayの略称である。記録制御ユニット6に設けられた処理回路は、ヘッド制御部61、及び、ハンド制御部62として機能することができる。
このうち、ヘッド制御部61は、表示データImgに基づいて、ヘッドユニット7の駆動を制御するための駆動制御信号SIを生成する。また、ヘッド制御部61は、ヘッドユニット7を駆動するための駆動信号Comと、インク供給ユニット8を制御するための制御信号Ctr-Lと、を生成する。
また、ハンド制御部62は、表示データImgに基づいて、画像形成空間SPにおけるロボットハンド9の位置及び姿勢を制御するための制御信号Ctr-Rを生成する。
【0025】
ヘッドユニット7は、駆動信号供給部71と、記録ヘッド72と、を備える。
このうち、記録ヘッド72は、複数の吐出部Dを備える。各吐出部Dは、駆動信号Comにより駆動されることで、吐出部Dの内部に充填されたインクを吐出し、対象物Objの表面SFにドットを形成する。
また、駆動信号供給部71は、駆動制御信号SIに基づいて、複数の吐出部Dの各々に対して、駆動信号Comを供給するか否かを切り替える。
なお、本実施形態では、ヘッドユニット7が、ロボットハンド9の先端に取り付けられている場合を、一例として想定する。
【0026】
インク供給ユニット8は、制御信号Ctr-Lに基づいて、インク供給ユニット8の内部に貯留されているインクを、ヘッドユニット7に対して供給する。
【0027】
ロボットハンド9は、制御信号Ctr-Rに基づいて、画像形成空間SPにおけるロボットハンド9の先端の位置及び姿勢を変化させる。これにより、ロボットハンド9は、ロボットハンド9の先端に取り付けられたヘッドユニット7が、対象物Objの表面SFに対して画像Gを形成するのに好適な位置及び姿勢となるように、画像形成空間SPにおけるヘッドユニット7の位置及び姿勢を変化させる。
【0028】
以上のように、記録制御ユニット6は、表示データImgが供給されると、表示データImgに基づいて生成した駆動制御信号SIにより、ヘッドユニット7に設けられた複数の吐出部Dからのインクの吐出を制御する。また、記録制御ユニット6は、表示データImgに基づいて生成された制御信号Ctr-Rにより、ロボットハンド9の先端に取り付けられたヘッドユニット7の画像形成空間SPにおける位置及び姿勢を制御する。このため、記録装置5は、画像形成空間SPに配置された対象物Objの表面SFに対して、表示データImgに応じた画像Gを形成することができる。以下では、記録装置5が、対象物Objの表面SFに対して、表示データImgに応じた画像Gを形成する処理を、印刷処理と称する場合がある。
【0029】
<<2.画像形成空間及び画像データ>>
以下では、
図4及び
図5を参照しつつ、画像形成空間SP及び画像データGDについて説明する。
【0030】
図4は、画像形成空間SPに配置されている複数の画素Pxの一例を示す説明図である。
【0031】
図4に例示するように、本実施形態に係る画像形成空間SPには、X軸方向にMx個の画素Pxが延在し、Y軸方向にMy個の画素Pxが延在し、Z軸方向にMz個の画素Pxが延在するように、合計Mx*My*Mz個の画素Pxが配置されている。ここで、値Mx、値My、及び、値Mzは、2以上の自然数である。なお、値Mx、値My、及び、値Mzは、128以上の自然数であることが好ましい。本実施形態では、一例として、値Mx、値My、及び、値Mzが、256以上の自然数である場合を想定する。また、以下では、「M=Mx*My*Mz」なる自然数Mを規定する。すなわち、本実施形態において、画像形成空間SPにはM個の画素Pxが配置されていることになる。
【0032】
また、以下では、1≦mx≦Mxを満たす自然数の変数mxを導入し、1≦my≦Myを満たす自然数の変数myを導入し、1≦mz≦Mzを満たす自然数の変数mzを導入する。そして、
図4に例示するように、画像形成空間SPに存在するM個の画素Pxのうち、X軸方向において、-X側から+X側へと数えてmx番目に位置し、Y軸方向において、-Y側から+Y側へと数えてmy番目に位置し、且つ、Z軸方向において、-Z側から+Z側へと数えてmz番目に位置する画素Pxを、画素Px(mx,my,mz)と称する場合がある。
また、以下では、画像形成空間SPにおける画素Px(mx,my,mz)のX軸方向の位置を「X[mx]」と称し、画像形成空間SPにおける画素Px(mx,my,mz)のY軸方向の位置を「Y[my]」と称し、画像形成空間SPにおける画素Px(mx,my,mz)のZ軸方向の位置を「Z[mz]」と称する。すなわち、画像形成空間SPにおける画素Px(mx,my,mz)の位置は、(X,Y,Z)=(X[mx],Y[my],Z[mz])として表される。
【0033】
なお、以下では、Y=Y[my]に位置し、且つ、Z=Z[mz]に位置する、複数の画素Pxを、画素列PxL[my][mz]と称する。画素列PxL[my][mz]は、X軸方向に延在するMx個の画素Pxから構成される。画像形成空間SPに存在するM個の画素Pxは、(My*Mz)個の画素列PxL[my][mz]を含む。
また、以下では、Z=Z[mz]に位置する、複数の画素Pxを、画素面PxP[mz]と称する。画素面PxP[mz]は、XY平面に平行な平面に存在する(Mx*My)個の画素Pxから構成される。画像形成空間SPに存在するM個の画素Pxは、Mz個の画素面PxP[mz]を含む。
【0034】
図5は、画像データGDの一例を説明するための説明図である。なお、
図5では、一例として、対象物Objの表面SFが、平面SF1と、平面SF2と、平面SF3と、を含む場合を想定している。
【0035】
上述のとおり、画像データGDは、画像Gfを示すデータである。具体的には、画像データGDは、画像形成空間SPにおいて画像Gfを表示させるために、画像形成空間SPに存在するM個の画素Pxの各々が表示すべき階調値を示す。以下では、
図5に例示するように、画像データGDが示す、画素Px(mx,my,mz)における画像Gfの階調値を、階調値Gg(mx,my,mz)と称する。なお、以下では、画像データGDが示す、画素Pxにおける画像Gfの階調値を、単に、階調値Ggと称する場合がある。
【0036】
本実施形態では、階調値Gg(mx,my,mz)が、最小の階調値Gg-minと、最大の階調値Gg-maxとの間の自然数である場合を想定する。具体的には、本実施形態では、例えば、階調値Gg-minが「0」であり、階調値Gg-maxが「255」である場合を想定する。そして、本実施形態では、階調値Gg(mx,my,mz)が、「0」から「255」までの256値のうちの何れかの値となる場合を想定する。
また、本実施形態では、画像形成空間SPのうち、対象物Objの表面SFが存在しない画素Px(mx,my,mz)については、階調値Gg(mx,my,mz)が階調値Gg-minに設定されることとする。なお、本実施形態において、階調値Gg(mx,my,mz)が階調値Gg-minである場合、画素Px(mx,my,mz)は、何も表示しない画素Pxであることとする。
【0037】
なお、上述のとおり、端末制御ユニット2は、画像データGDに基づいて、表示データImgを生成する。表示データImgは、画像形成空間SPに存在する対象物Objの表面SFに画像Gを形成するために、画像形成空間SPに存在するM個の画素Pxの各々が表示すべき階調値を示す。
以下では、表示データImgが示す、画素Px(mx,my,mz)における画像Gの階調値を、階調値GI(mx,my,mz)と称する。本実施形態では、階調値GI(mx,my,mz)が、最高階調値GI-1及び最低階調値GI-0の2値のうち、何れか一方の値を示すこととする。なお、本実施形態では、一例として、最高階調値GI-1が、階調値Gg-maxと同一の値「255」であり、最低階調値GI-0が、階調値Gg-minと同一の値「0」である場合を想定する。
また、本実施形態において、階調値GI(mx,my,mz)が最高階調値GI-1である画素Px(mx,my,mz)には、記録装置5から吐出されたインクによりドットが形成される。一方、本実施形態において、階調値GI(mx,my,mz)が最低階調値GI-0である画素Px(mx,my,mz)には、ドットが形成されない。以下では、最高階調値Gg-1を表示し、ドットが形成される画素Pxのことを、ドット形成画素Px-1と称する。また、最低階調値Gg-0を表示し、ドットが形成されない画素Pxのことを、ドット非形成画素Px-0と称する。
【0038】
<<3.記録システムの動作>>
以下では、
図6及び
図7を参照しつつ、本実施形態に係る記録システムSysの動作の一例について説明する。なお、本実施形態では、
図6におけるステップS10~S23の処理が、M個の画素Pxに対する誤差拡散処理(量子化処理)に該当する。
【0039】
図6は、記録システムSysが、表示データ生成処理を実行する場合における、記録システムSysの動作の一例を示すフローチャートである。ここで、表示データ生成処理とは、画像データGDに基づいて表示データImgを生成する処理である。換言すれば、表示データ生成処理とは、M個の画素Pxに対する誤差拡散処理である。
【0040】
図6に例示するように、画素選択部221は、表示データ生成処理が開始されると、変数mxに「1」を設定し、変数myに「1」を設定し、変数mzに「1」を設定する(S10)。
次に、画素選択部221は、画素Px(mx,my,mz)を、対象画素PxTとして選択する(S11)。
【0041】
その後、演算処理部222は、画像データGDが示す対象画素PxTにおける画像Gfの階調値、すなわち、階調値Gg(mx,my,mz)が、閾値Th(mx,my,mz)以上であるか否かを判定する(S12)。ここで、閾値Th(mx,my,mz)とは、以下の式(1)を満たす値である。
(1-γ1)*Gg-min + γ1*Gg-max
≦ Th(mx,my,mz)
≦ (1-γ2)*Gg-min + γ2*Gg-max …… 式(1)
なお、本実施形態において、値γ1は例えば、「0.3≦γ1≦0.5」を満たす実数であり、また、値γ2は例えば、「0.5≦γ2≦0.7」を満たす実数である。更に、M個の画素Pxの全てにおいて、閾値Th(mx,my,mz)は等しい値であることが好ましい。よって、本実施形態では、M個の画素Pxの全てにおいて、閾値Th(mx,my,mz)が、「128」である場合を想定する。
【0042】
次に、演算処理部222は、ステップS12における判定の結果が肯定の場合、対象画素PxTである画素Px(mx,my,mz)に対応する階調値GI(mx,my,mz)を、最高階調値GI-1に設定する(S13)。
そして、誤差分配部223は、階調値Gg(mx,my,mz)、及び、ステップS13において設定された階調値GI(mx,my,mz)に基づいて、画素Px(mx,my,mz)に対応する誤差Eを算出する(S14)。本実施形態では、一例として、誤差分配部223は、ステップS14において、階調値GI(mx,my,mz)から階調値Gg(mx,my,mz)を減算した値に基づく値を、画素Px(mx,my,mz)に対応する誤差Eとして算出する。より具体的には、誤差分配部223は、ステップS14において、最高階調値GI-1に「1」を加えて、更に階調値Gg(mx,my,mz)を減算した値を、画素Px(mx,my,mz)に対応する誤差Eとして算出する。なお、誤差分配部223は、例えば、ステップS14において、最高階調値GI-1から階調値Gg(mx,my,mz)を減算した値を、画素Px(mx,my,mz)に対応する誤差Eとして算出してもよい。以下では、画素Px(mx,my,mz)に対応する誤差Eを、誤差E(mx,my,mz)と称する場合がある。
なお、本実施形態では、ステップS14において、誤差分配部223は、誤差E(mx,my,mz)を、階調値GI(mx,my,mz)から階調値Gg(mx,my,mz)を減算した値として算出するが、このような態様は一例であり、本発明はこのような態様に限定されるものではない。例えば、誤差分配部223は、誤差E(mx,my,mz)を、階調値Gg-max等の定数から階調値Gg(mx,my,mz)を減算した値として算出してもよい。この場合、最高階調値GI-1を、「1」とし、最低階調値GI-0は、「0」としてもよい。
本実施形態において、ステップS14において算出される誤差E(mx,my,mz)は、「E(mx,my,mz)≧0」を満たす。
【0043】
他方、演算処理部222は、ステップS12における判定の結果が否定の場合、対象画素PxTである画素Px(mx,my,mz)に対応する階調値GI(mx,my,mz)を、最低階調値GI-0に設定する(S15)。
そして、誤差分配部223は、階調値Gg(mx,my,mz)、及び、ステップS15において設定された階調値GI(mx,my,mz)に基づいて、誤差E(mx,my,mz)を算出する(S16)。具体的には、誤差分配部223は、ステップS16において、階調値GI(mx,my,mz)から階調値Gg(mx,my,mz)を減算した値を、誤差E(mx,my,mz)として算出する。より具体的には、誤差分配部223は、ステップS16において、最低階調値GI-0から階調値Gg(mx,my,mz)を減算した値を、誤差E(mx,my,mz)として算出する。
なお、本実施形態では、ステップS16において、誤差分配部223は、誤差E(mx,my,mz)を、階調値GI(mx,my,mz)から階調値Gg(mx,my,mz)を減算した値として算出するが、このような態様は一例であり、本発明はこのような態様に限定されるものではない。例えば、誤差分配部223は、誤差E(mx,my,mz)を、階調値Gg-min等の定数から階調値Gg(mx,my,mz)を減算した値として算出してもよい。この場合も、最高階調値GI-1を、「1」とし、最低階調値GI-0は、「0」としてもよい。
本実施形態において、ステップS16において算出される誤差E(mx,my,mz)は、「E(mx,my,mz)≦0」を満たす。
【0044】
なお、本実施形態では、
図6において、ステップS100として例示するように、演算処理部222が実行する、ステップS12、S13、及び、S15の処理が、1個の画素Pxに対する誤差拡散処理(1個の画素Pxに対する量子化処理)に該当する。
【0045】
その後、誤差分配部223は、誤差拡散データGKを用いて、誤差E(mx,my,mz)を、対象画素PxTの周囲に位置する1または複数の周囲画素PxSに対応する1または複数の階調値Ggに分配する処理である、誤差分配処理を実行する(S17)。なお、以下では、対象画素PxTが、画素Px(mx,my,mz)である場合、周囲画素PxSを、画素Px(mx+dx,my+dy,mz+dz)として表現することがある。ここで、値dx、値dy、及び、値dzは、整数である。
【0046】
具体的には、誤差分配部223は、ステップS17の誤差分配処理において、周囲画素PxSである画素Px(mx+dx,my+dy,mz+dz)が存在する場合に、当該画素Px(mx+dx,my+dy,mz+dz)に対応する階調値Gg(mx+dx,my+dy,mz+dz)を、以下の式(2)及び式(3)に基づいて変更する。
Gg(mx+dx,my+dy,mz+dz)
= Gg(mx+dx,my+dy,mz+dz)
- EB(dx,dy,dz) …… 式(2)
EB(dx,dy,dz)
= {E(mx,my,mz)*B(dx,dy,dz)} …… 式(3)
すなわち、誤差分配部223は、ステップS17の誤差分配処理において、誤差E(mx,my,mz)と分配率B(dx,dy,dz)とを乗算した値である分配値EB(dx,dy,dz)を、階調値Gg(mx+dx,my+dy,mz+dz)から減算することにより、画像データGDの示す階調値Gg(mx+dx,my+dy,mz+dz)を変更する。なお、本実施形態では、一例として、式(3)の右辺が、小数点以下の値を含む場合には、分配値EB(dx,dy,dz)が整数値となるように、式(3)の右辺に対して、四捨五入、切り上げ、または、切り捨て等の処理を施す。
ここで、分配率B(dx,dy,dz)とは、「0<B(dx,dy,dz)<1」を満たす実数である。なお、本実施形態において、対象画素PxTに対応する1または複数の周囲画素PxSと、各周囲画素PxSに対応する分配率Bとは、誤差拡散データGKにより定められている。
【0047】
図7は、本実施形態に係る誤差拡散データGKを説明するための説明図である。
【0048】
図7に示すように、誤差拡散データGKは、周囲画素PxSと、当該周囲画素PxSに対応する分配率Bと、を定めるデータである。具体的には、誤差拡散データGKは、画素Px(mx,my,mz)が対象画素PxTである場合に、周囲画素PxSである画素Px(mx+dx,my+dy,mz+dz)を特定するための値dx、値dy、及び、値dzと、当該画素Px(mx+dx,my+dy,mz+dz)に対応する分配率B(dx,dy,dz)と、を関連付けたデータである。
なお、本実施形態では、対象画素PxTが画素Px(mx,my,mz)である場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx,my,mz+1)とが、周囲画素PxSに該当する場合を、一例として想定する。
【0049】
また、本実施形態では、画素Px(mx+1,my,mz)に対応する分配率B(1,0,0)と、画素Px(mx,my+1,mz)に対応する分配率B(0,1,0)と、画素Px(mx,my,mz+1)に対応する分配率B(0,0,1)との間に、以下の式(4)~式(6)に示す関係が成立する場合を想定する。
B(1,0,0) > B(0,1,0) …… 式(4)
B(0,1,0) > B(0,0,1) …… 式(5)
B(1,0,0) + B(0,1,0) + B(0,0,1) = 1
…… 式(6)
すなわち、本実施形態では、分配率B(1,0,0)が、分配率B(0,1,0)よりも大きく、分配率B(0,1,0)が、分配率B(0,0,1)よりも大きい場合を想定する。また、本実施形態では、分配率B(1,0,0)と、分配率B(0,1,0)と、分配率B(0,0,1)との和が、「1」である場合を想定する。
より具体的には、本実施形態では、一例として、分配率B(1,0,0)が「8/16」であり、分配率B(0,1,0)が「5/16」であり、分配率B(0,0,1)が「3/16」である場合を想定する。すなわち、本実施形態において、誤差分配部223は、ステップS17の誤差分配処理において、階調値Gg(mx+1,my,mz)から、誤差E(mx,my,mz)に「8/16」を乗算した値である分配値EB(1,0,0)を減算することで、階調値Gg(mx+1,my,mz)を更新し、階調値Gg(mx,my+1,mz)から、誤差E(mx,my,mz)に「5/16」を乗算した値である分配値EB(0,1,0)を減算することで、階調値Gg(mx,my+1,mz)を更新し、階調値Gg(mx,my,mz+1)から、誤差E(mx,my,mz)に「3/16」を乗算した値である分配値EB(0,0,1)を減算することで、階調値Gg(mx,my,mz+1)を更新する。
【0050】
説明を
図6に戻す。
図6に示すように、画素選択部221は、画素Px(mx,my,mz)に対応する値mxが、「mx=Mx」を満たすか否かを判定する(S18)。換言すれば、画素選択部221は、ステップS18において、画像形成空間SPを構成するM個の画素Pxの中に、画素Px(mx+1,my,mz)が存在しないか否かを判定する。
そして、画素選択部221は、ステップS18における判定の結果が否定の場合、すなわち、値mxが「mx<Mx」を満たす場合、値mxに「1」を加算して(S19)、処理をステップS11に進める。
他方、画素選択部221は、ステップS18における判定の結果が肯定の場合、すなわち、値mxが「mx=Mx」を満たし、画像形成空間SPを構成するM個の画素Pxの中に画素Px(mx+1,my,mz)が存在しない場合、画素Px(mx,my,mz)に対応する値myが、「my=My」を満たすか否かを判定する(S20)。換言すれば、画素選択部221は、ステップS20において、画像形成空間SPを構成するM個の画素Pxの中に、画素Px(mx,my+1,mz)が存在しないか否かを判定する。
そして、画素選択部221は、ステップS20における判定の結果が否定の場合、すなわち、値myが「my<My」を満たす場合、値mxを「1」に設定すると共に、値myに「1」を加算して(S21)、処理をステップS11に進める。
他方、画素選択部221は、ステップS20における判定の結果が肯定の場合、すなわち、値myが「my=My」を満たし、画像形成空間SPを構成するM個の画素Pxの中に画素Px(mx,my+1,mz)が存在しない場合、画素Px(mx,my,mz)に対応する値mzが、「mz=Mz」を満たすか否かを判定する(S22)。換言すれば、画素選択部221は、ステップS22において、画像形成空間SPを構成するM個の画素Pxの中に、画素Px(mx,my,mz+1)が存在しないか否かを判定する。
そして、画素選択部221は、ステップS22における判定の結果が否定の場合、すなわち、値mzが「mz<Mz」を満たす場合、値mx及び値myを「1」に設定すると共に、値mzに「1」を加算して(S23)、処理をステップS11に進める。
他方、画素選択部221は、ステップS22における判定の結果が肯定の場合、すなわち、値mzが「mz=Mz」を満たし、画像形成空間SPを構成するM個の画素Pxの中に画素Px(mx,my,mz+1)が存在しない場合、
図6に示す表示データ生成処理を終了させる。
【0051】
<<4.参考例に係る表示データ生成処理>>
以下では、本実施形態の効果を明確化するために、
図8乃至
図12を参照しつつ、参考例に係る記録システムにおいて実行される表示データ生成処理について説明する。
なお、参考例に係る記録システムは、誤差拡散データGKの代わりに、誤差拡散データGK-Z1が記憶している点を除き、実施形態に係る記録システムSysと同様に構成されている。
【0052】
図8は、誤差拡散データGK-Z1を説明するための説明図である。
【0053】
図8に示すように、誤差拡散データGK-Z1は、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)とを、周囲画素PxSとして指定するデータである。すなわち、誤差拡散データGK-Z1は、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx,my,mz+1)を周囲画素PxSとして指定しない点において、実施形態に係る誤差拡散データGKと相違する。
また、誤差拡散データGK-Z1は、画素Px(mx+1,my,mz)に対応する分配率B(1,0,0)が、画素Px(mx,my+1,mz)に対応する分配率B(0,1,0)よりも大きくなるように、分配率B(1,0,0)及び分配率B(0,1,0)を定めるデータである。より具体的には、参考例においては、一例として、誤差拡散データGK-Z1が、分配率B(1,0,0)を「10/16」に定め、且つ、分配率B(0,1,0)を「6/16」に定める場合を想定する。すなわち、参考例において、誤差分配部223は、誤差分配処理において、階調値Gg(mx+1,my,mz)から、誤差E(mx,my,mz)に「10/16」を乗算した値である分配値EB(1,0,0)を減算することで、階調値Gg(mx+1,my,mz)を更新し、階調値Gg(mx,my+1,mz)から、誤差E(mx,my,mz)に「6/16」を乗算した値である分配値EB(0,1,0)を減算することで、階調値Gg(mx,my+1,mz)を更新する。換言すれば、参考例は、誤差分配部223が、誤差分配処理において、対象画素PxTのZ軸方向の画素Pxに対して誤差Eを分配しない点において、実施形態と相違する。
【0054】
図9及び
図10は、参考例に係る表示データ生成処理を説明するための説明図である。
【0055】
なお、
図9及び
図10に示す例では、「Mx=3」であり、「My=3」であり、「Mz=3」であり、「M=3*3*3=27」であり、画像形成空間SPにおいて、27個の画素Pxが存在する場合を想定する。また、
図9及び
図10に示す例では、実施形態と同様に、階調値Gg-minが「0」であり、階調値Gg-maxが「255」であり、閾値Th(mx,my,mz)が「128」である場合を想定する。また、
図9及び
図10に示す例では、画像形成空間SPを構成するM個の画素Px(mx,my,mz)に対応するM個の階調値Gg(mx,my,mz)の全てが、「128」である場合を想定する。
【0056】
図9に示すように、画像データ取得部21は、期間t0において、M個の階調値Gg(mx,my,mz)の全てが「128」であるような、画像データGDを取得する。なお、以下では、期間tにおける画像データGDを、画像データGD[t]と表現する場合がある。
【0057】
次に、表示データ生成部22は、期間t1において、画素Px(1,1,1)を対象画素PxTとして選択し、誤差拡散処理を実行する。
【0058】
具体的には、演算処理部222は、期間t1において、まず、画像データGD[t0]の示す階調値Gg(1,1,1)が、閾値Th(1,1,1)以上であるか否かを判定する。
図9及び
図10に示す例では、画像データGD[t0]の示す階調値Gg(1,1,1)が「128」であり、閾値Th(1,1,1)が「128」であるため、「Gg(1,1,1)≧Th(1,1,1)」が成立する。このため、演算処理部222は、階調値GI(1,1,1)を、最高階調値GI-1すなわち「255」に設定する。
そして、誤差分配部223は、期間t1において、階調値GI(1,1,1)に「1」を加算した値から、画像データGD[t0]の示す階調値Gg(1,1,1)を減算することで、誤差E(1,1,1)を算出する。
図9及び
図10に示す例では、階調値GI(1,1,1)が「255」であり、画像データGD[t0]の示す階調値Gg(1,1,1)が「128」であるため、誤差E(1,1,1)は、最高階調値GI-1に「1」を加算し更に階調値Gg(1,1,1)を減算した値、すなわち「128」となる。
次に、誤差分配部223は、期間t1において、誤差E(1,1,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t0]の示す階調値Gg(2,1,1)から分配値EB(1,0,0)を減算することで、階調値Gg(2,1,1)を変更する。また、誤差分配部223は、期間t1において、誤差E(1,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t0]の示す階調値Gg(1,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(1,2,1)を変更する。
図9及び
図10に示す例では、誤差E(1,1,1)が「128」であり、画像データGD[t0]の示す階調値Gg(2,1,1)が「128」であり、分配率B(1,0,0)が「10/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(1,0,0)を、「128*(10/16)」、すなわち、「80」と算出し、更に式(2)に基づき画像データGD[t1]の示す階調値Gg(2,1,1)を、「128-80」、すなわち、「48」と算出し、当該画像データGD[t1]の示す階調値Gg(2,1,1)を「48」に設定する。
同様にして、誤差E(1,1,1)が「128」であり、画像データGD[t0]の示す階調値Gg(1,2,1)が「128」であり、分配率B(0,1,0)が「6/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,1,0)を、「128*(6/16)」、すなわち、「48」と算出し、更に式(2)に基づき画像データGD[t1]の示す階調値Gg(1,2,1)を、「128-48」、すなわち、「80」と算出し、当該画像データGD[t1]の示す階調値Gg(1,2,1)を「80」に設定する。
【0059】
図9及び
図10に示す例において、期間t1において対象画素PxTとして選択された画素Px(1,1,1)の+X方向には、画素Px(2,1,1)が存在する。このため、画素選択部221は、期間t2において、画素Px(2,1,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t2において、画素Px(2,1,1)を対象画素PxTとした誤差拡散処理を実行する。
【0060】
具体的には、演算処理部222は、期間t2において、まず、画像データGD[t1]の示す階調値Gg(2,1,1)が、閾値Th(2,1,1)以上であるか否かを判定する。
図9及び
図10に示す例では、画像データGD[t1]の示す階調値Gg(2,1,1)が「48」であり、閾値Th(2,1,1)が「128」であるため、「Gg(2,1,1)<Th(2,1,1)」が成立する。このため、演算処理部222は、階調値GI(2,1,1)を、最低階調値GI-0すなわち「0」に設定する。
そして、誤差分配部223は、期間t2において、階調値GI(2,1,1)から、画像データGD[t1]の示す階調値Gg(2,1,1)を減算することで、誤差E(2,1,1)を算出する。
図9及び
図10に示す例では、階調値GI(2,1,1)が「0」であり、画像データGD[t1]の示す階調値Gg(2,1,1)が「48」であるため、誤差E(2,1,1)は、最低階調値GI-0から階調値Gg(2,1,1)を減算した値、すなわち「-48」となる。
次に、誤差分配部223は、期間t2において、誤差E(2,1,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t1]の示す階調値Gg(3,1,1)から分配値EB(1,0,0)を減算することで、階調値Gg(3,1,1)を変更する。また、誤差分配部223は、期間t2において、誤差E(2,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t1]の示す階調値Gg(2,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(2,2,1)を変更する。
図9及び
図10に示す例では、誤差E(2,1,1)が「-48」であり、画像データGD[t1]の示す階調値Gg(3,1,1)が「128」であり、分配率B(1,0,0)が「10/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(1,0,0)を、「(-48)*(10/16)」、すなわち、「-30」と算出し、更に式(2)に基づき画像データGD[t2]の示す階調値Gg(3,1,1)を、「128-(-30)」、すなわち、「158」と算出し、当該画像データGD[t2]の示す階調値Gg(3,1,1)を「158」に設定する。
同様にして、誤差E(2,1,1)が「-48」であり、画像データGD[t1]の示す階調値Gg(2,2,1)が「128」であり、分配率B(0,1,0)が「6/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,1,0)を、「(-48)*(6/16)」、すなわち、「-18」と算出し、更に式(2)に基づき画像データGD[t2]の示す階調値Gg(2,2,1)を、「128-(-18)」、すなわち、「146」と算出し、当該画像データGD[t2]の示す階調値Gg(2,2,1)を「146」に設定する。
【0061】
図9及び
図10に示す例において、期間t2において対象画素PxTとして選択された画素Px(2,1,1)の+X方向には、画素Px(3,1,1)が存在する。このため、画素選択部221は、期間t3において、画素Px(3,1,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t3において、画素Px(3,1,1)を対象画素PxTとした誤差拡散処理を実行する。
【0062】
具体的には、演算処理部222は、期間t3において、まず、画像データGD[t2]の示す階調値Gg(3,1,1)が、閾値Th(3,1,1)以上であるか否かを判定する。
図9及び
図10に示す例では、画像データGD[t2]の示す階調値Gg(3,1,1)が「158」であり、閾値Th(3,1,1)が「128」であるため、「Gg(3,1,1)≧Th(3,1,1)」が成立する。このため、演算処理部222は、階調値GI(3,1,1)を、最高階調値GI-1すなわち「255」に設定する。
そして、誤差分配部223は、期間t3において、階調値GI(3,1,1)に「1」を加算した値から、画像データGD[t2]の示す階調値Gg(3,1,1)を減算することで、誤差E(3,1,1)を算出する。
図9及び
図10に示す例では、階調値GI(3,1,1)が「255」であり、画像データGD[t2]の示す階調値Gg(3,1,1)が「158」であるため、誤差E(3,1,1)は「98」となる。
次に、誤差分配部223は、期間t3において、誤差E(3,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t2]の示す階調値Gg(3,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(3,2,1)を変更する。なお、画素Px(3,1,1)の+X方向には画素Pxが存在しないため、誤差分配部223は、期間t3において、分配値EB(1,0,0)の算出は行わない。
図9及び
図10に示す例では、誤差E(3,1,1)が「98」であり、画像データGD[t2]の示す階調値Gg(3,2,1)が「128」であるため、誤差分配部223は、画像データGD[t3]の示す階調値Gg(3,2,1)を「91」に設定する。
【0063】
図9及び
図10に示す例において、期間t3において対象画素PxTとして選択された画素Px(3,1,1)の+X方向には、画素Pxが存在しない。一方、期間t3において対象画素PxTとして選択された画素Px(3,1,1)の+Y方向には、画素Pxが存在する。このため、画素選択部221は、期間t4において、画素Px(1,2,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t4において、画素Px(1,2,1)を対象画素PxTとした誤差拡散処理を実行する。
【0064】
具体的には、演算処理部222は、期間t4において、まず、画像データGD[t3]の示す階調値Gg(1,2,1)が、閾値Th(1,2,1)以上であるか否かを判定する。
図9及び
図10に示す例では、画像データGD[t3]の示す階調値Gg(1,2,1)が「80」であり、閾値Th(1,2,1)が「128」であるため、「Gg(1,2,1)<Th(1,2,1)」が成立する。このため、演算処理部222は、階調値GI(1,2,1)を、最低階調値GI-0すなわち「0」に設定する。
そして、誤差分配部223は、期間t4において、階調値GI(1,2,1)から、画像データGD[t3]の示す階調値Gg(1,2,1)を減算することで、誤差E(1,2,1)を算出する。
図9及び
図10に示す例では、階調値GI(1,2,1)が「0」であり、画像データGD[t3]の示す階調値Gg(1,2,1)が「80」であるため、誤差E(1,2,1)は「-80」となる。
次に、誤差分配部223は、期間t4において、誤差E(1,2,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t3]の示す階調値Gg(2,2,1)から分配値EB(1,0,0)を減算することで、階調値Gg(2,2,1)を変更する。また、誤差分配部223は、期間t4において、誤差E(1,2,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t3]の示す階調値Gg(1,3,1)から分配値EB(0,1,0)を減算することで、階調値Gg(1,3,1)を変更する。
図9及び
図10に示す例では、誤差E(1,2,1)が「-80」であり、画像データGD[t3]の示す階調値Gg(2,2,1)が「146」であり、画像データGD[t3]の示す階調値Gg(1,3,1)が「128」であるため、誤差分配部223は、画像データGD[t4]の示す階調値Gg(2,2,1)を「189」に設定し、画像データGD[t4]の示す階調値Gg(1,3,1)を「165」に設定する。
【0065】
その後、表示データ生成部22は、期間t5~期間t9において、画素Px(2,2,1)、画素Px(3,2,1)、画素Px(1,3,1)、画素Px(2,3,1)、及び、画素Px(3,3,1)を対象画素PxTとした誤差拡散処理を実行する。
【0066】
図9及び
図10に示す例において、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+X方向には、画素Pxが存在しない。また、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+Y方向には、画素Pxが存在しない。一方、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+Z方向には、画素Pxが存在する。このため、画素選択部221は、期間t10において、画素Px(1,1,2)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t10において、画素Px(1,1,2)を対象画素PxTとした誤差拡散処理を実行する。
【0067】
具体的には、演算処理部222は、期間t10において、まず、画像データGD[t9]の示す階調値Gg(1,1,2)が、閾値Th(1,1,2)以上であるか否かを判定する。
図9及び
図10に示す例では、画像データGD[t9]の示す階調値Gg(1,1,2)が「128」であり、閾値Th(1,1,2)が「128」であるため、「Gg(1,1,2)≧Th(1,1,2)」が成立する。このため、演算処理部222は、階調値GI(1,1,2)を、最高階調値GI-1すなわち「255」に設定する。
そして、誤差分配部223は、期間t10において、階調値GI(1,1,2)に「1」を加算した値から、画像データGD[t9]の示す階調値Gg(1,1,2)を減算することで、誤差E(1,1,2)を算出する。
図9及び
図10に示す例では、階調値GI(1,1,2)が「255」であり、画像データGD[t9]の示す階調値Gg(1,1,2)が「128」であるため、誤差E(1,1,2)は「128」となる。
次に、誤差分配部223は、期間t10において、誤差E(1,1,2)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t9]の示す階調値Gg(2,1,2)から分配値EB(1,0,0)を減算することで、階調値Gg(2,1,2)を変更する。また、誤差分配部223は、期間t10において、誤差E(1,1,2)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t9]の示す階調値Gg(1,2,2)から分配値EB(0,1,0)を減算することで、階調値Gg(1,2,2)を変更する。
図9及び
図10に示す例では、誤差E(1,1,2)が「128」であり、画像データGD[t9]の示す階調値Gg(2,1,2)が「128」であり、画像データGD[t9]の示す階調値Gg(1,2,2)が「128」であるため、誤差分配部223は、画像データGD[t10]の示す階調値Gg(2,1,2)を「48」に設定し、画像データGD[t10]の示す階調値Gg(1,2,2)を「80」に設定する。
【0068】
その後、表示データ生成部22は、期間t11~期間t27において、画素Px(2,1,2)~画素Px(3,3,3)を対象画素PxTとした誤差拡散処理を実行する。
この結果、
図10に示すように、参考例では、期間t27において、階調値GI(1,1,1)、階調値GI(3,1,1)、階調値GI(2,2,1)、階調値GI(1,3,1)、階調値GI(3,3,1)、階調値GI(1,1,2)、階調値GI(3,1,2)、階調値GI(2,2,2)、階調値GI(1,3,2)、階調値GI(3,3,2)、階調値GI(1,1,3)、階調値GI(3,1,3)、階調値GI(2,2,3)、階調値GI(1,3,3)、及び、階調値GI(3,3,3)が最高階調値GI-1となり、これら以外の階調値GI(mx,my,mz)が最低階調値GI-0となるような、表示データImgが生成される。すなわち、参考例では、
図10に示すように、XY平面に平行な平面において、階調値GI(mx,my,mz)が最高階調値GI-1となるドット形成画素Px-1の分散性が高くなるような、表示データImgを生成することができる。
【0069】
図11及び
図12は、期間t27において生成された参考例に係る表示データImgを説明するための説明図である。このうち、
図11は、参考例に係る表示データImgを、XZ平面に平行な平面において表した図であり、
図12は、参考例に係る表示データImgを、YZ平面に平行な平面において表した図である。
【0070】
図11及び
図12に示すように、参考例においては、X=X[1]且つY=Y[1]の位置、X=X[1]且つY=Y[3]の位置、X=X[2]且つY=Y[2]の位置、X=X[3]且つY=Y[1]の位置、及び、X=X[3]且つY=Y[3]の位置において、階調値GI(mx,my,mz)が最高階調値GI-1となるドット形成画素Px-1が、Z軸方向に連続するように形成される。換言すれば、参考例では、誤差分配処理において、XY平面内での誤差Eの分配のみが行われ、Z軸方向への誤差Eの分配が行われないため、Z=Z[1]における表示データImgの値の配置と、Z=Z[2]における表示データImgの値の配置と、Z=Z[3]における表示データImgの値の配置とが、同じになる。このため、参考例では、対象物Objの表面SFが、XZ平面に平行な平面、または、YZ平面に平行な平面を有する場合に、当該平面において、Z軸方向に延在するような筋状の模様が形成されることになる。換言すれば、参考例では、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドット形成画素Px-1の分散性を高くすることができない。このため、参考例では、対象物Objの表面SFのうち、XZ平面に平行な平面、及び、YZ平面に平行な平面において、中間階調の画像Gを形成する場合に、当該画像Gの画像品質が悪くなるという問題がある。
【0071】
なお、参考例では、
図8に示すような、誤差拡散データGK-Z1を用いて表示データ生成処理を実行したが、
図13に示すような、誤差拡散データGK-Z2を用いて表示データ生成処理を実行してもよいし、
図14に示すような、誤差拡散データGK-Z3を用いて表示データ生成処理を実行してもよい。
【0072】
図13は、誤差拡散データGK-Z2を説明するための説明図である。
【0073】
図13に示すように、誤差拡散データGK-Z2は、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx+1,my+1,mz)と、画素Px(mx-1,my+1,mz)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Z2は、分配率B(1,0,0)が分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が分配率B(1,1,0)よりも大きくなり、分配率B(-1,1,0)が分配率B(1,1,0)よりも大きくなり、且つ、分配率B(0,1,0)が分配率B(-1,1,0)よりも大きくなるように、各分配率Bを定めるデータである。
【0074】
図14は、誤差拡散データGK-Z3を説明するための説明図である。
【0075】
図14に示すように、誤差拡散データGK-Z3は、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx+2,my,mz)と、画素Px(mx-2,my+1,mz)と、画素Px(mx-1,my+1,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx+1,my+1,mz)と、画素Px(mx+2,my+1,mz)と、画素Px(mx-2,my+2,mz)と、画素Px(mx-1,my+2,mz)と、画素Px(mx,my+2,mz)と、画素Px(mx+1,my+2,mz)と、画素Px(mx+2,my+2,mz)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Z3は、分配率B(1,0,0)、及び、分配率B(0,1,0)が、分配率B(2,0,0)、分配率B(-1,1,0)、分配率B(1,1,0)、及び、分配率B(0,2,0)よりも大きく、分配率B(2,0,0)、分配率B(-1,1,0)、分配率B(1,1,0)、及び、分配率B(0,2,0)が、分配率B(-2,1,0)、分配率B(2,1,0)、分配率B(-1,2,0)、及び、分配率B(1,2,0)よりも大きく、且つ、分配率B(-2,1,0)、分配率B(2,1,0)、分配率B(-1,2,0)、及び、分配率B(1,2,0)が、分配率B(-2,2,0)、及び、分配率B(2,2,0)よりも大きくなるように、各分配率Bを定めるデータである。
【0076】
以上のように、誤差拡散データGK-Z2、及び、誤差拡散データGK-Z3は、XY平面内での誤差Eの分配のみが行われ、Z軸方向への誤差Eの分配を行わないことを定めるデータである。このため、参考例において、誤差拡散データGK-Z1の代わりに、誤差拡散データGK-Z2または誤差拡散データGK-Z3を用いて表示データ生成処理が実行される場合においても、誤差分配処理において、XY平面内での誤差Eの分配のみが行われ、Z軸方向への誤差Eの分配が行われることはない。よって、参考例において、誤差拡散データGK-Z1の代わりに、誤差拡散データGK-Z2または誤差拡散データGK-Z3を用いて表示データ生成処理が実行される場合においても、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドット形成画素Px-1の分散性を高くすることができず、対象物Objの表面SFに形成される画像Gの画像品質が悪くなるという問題が、依然として存在する。
【0077】
<<5.本実施形態に係る表示データ生成処理>>
以下では、
図15乃至
図18を参照しつつ、記録システムSysにおいて実行される表示データ生成処理について説明する。
【0078】
なお、上述のとおり、記録システムSysは、
図7に示す誤差拡散データGKを用いて、誤差拡散処理を実行する。そして、誤差拡散データGKは、上述のとおり、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx,my,mz+1)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGKは、上述のとおり、分配率B(1,0,0)が分配率B(0,1,0)よりも大きく、且つ、分配率B(0,1,0)が分配率B(0,0,1)よりも大きくなるように、分配率B(1,0,0)、分配率B(0,1,0)、及び、分配率B(0,0,1)を定めるデータである。換言すれば、本実施形態は、誤差分配部223が、誤差分配処理において、対象画素PxTのZ軸方向の画素Pxに対して誤差Eを分配する点において、参考例と相違する。なお、
図15乃至
図18に示す例においても、分配率B(1,0,0)が「8/16」であり、分配率B(0,1,0)が「5/16」であり、分配率B(0,0,1)が「3/16」である場合を想定する。
【0079】
図15及び
図16は、本実施形態に係る表示データ生成処理を説明するための説明図である。
【0080】
なお、
図15及び
図16に示す例では、
図9及び
図10に示す例と同様に、「Mx=3」であり、「My=3」であり、「Mz=3」であり、「M=3*3*3=27」であり、画像形成空間SPにおいて、27個の画素Pxが存在する場合を想定する。また、
図15及び
図16に示す例では、
図9及び
図10に示す例と同様に、階調値Gg-minが「0」であり、階調値Gg-maxが「255」であり、閾値Th(mx,my,mz)が「128」である場合を想定する。また、
図15及び
図16に示す例では、画像形成空間SPを構成するM個の画素Px(mx,my,mz)に対応するM個の階調値Gg(mx,my,mz)の全てが、「128」である場合を想定する。
【0081】
図15に示すように、画像データ取得部21は、期間t0において、M個の階調値Gg(mx,my,mz)の全てが「128」であるような、画像データGD[t0]を取得する。
【0082】
次に、表示データ生成部22は、期間t1において、画素Px(1,1,1)を対象画素PxTとして選択し、誤差拡散処理を実行する。
【0083】
具体的には、演算処理部222は、期間t1において、まず、画像データGD[t0]の示す階調値Gg(1,1,1)が、閾値Th(1,1,1)以上であるか否かを判定する。
図15及び
図16に示す例では、画像データGD[t0]の示す階調値Gg(1,1,1)が「128」であり、閾値Th(1,1,1)が「128」であるため、「Gg(1,1,1)≧Th(1,1,1)」が成立する。このため、演算処理部222は、階調値GI(1,1,1)を、最高階調値GI-1すなわち「255」に設定する。
そして、誤差分配部223は、期間t1において、階調値GI(1,1,1)に「1」を加算した値から、画像データGD[t0]の示す階調値Gg(1,1,1)を減算することで、誤差E(1,1,1)を算出する。
図15及び
図16に示す例では、階調値GI(1,1,1)が「255」であり、画像データGD[t0]の示す階調値Gg(1,1,1)が「128」であるため、誤差E(1,1,1)は最高階調値GI-1に「1」を加算し更に階調値Gg(1,1,1)を減算した値、すなわち「128」となる。
次に、誤差分配部223は、期間t1において、誤差E(1,1,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t0]の示す階調値Gg(2,1,1)から分配値EB(1,0,0)を減算することで、階調値Gg(2,1,1)を変更する。また、誤差分配部223は、期間t1において、誤差E(1,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t0]の示す階調値Gg(1,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(1,2,1)を変更する。また、誤差分配部223は、期間t1において、誤差E(1,1,1)及び分配率B(0,0,1)を乗算することで、分配値EB(0,0,1)を算出し、画像データGD[t0]の示す階調値Gg(1,1,2)から分配値EB(0,0,1)を減算することで、階調値Gg(1,1,2)を変更する。
図15及び
図16に示す例では、誤差E(1,1,1)が「128」であり、画像データGD[t0]の示す階調値Gg(2,1,1)が「128」であり、分配率B(1,0,0)が「8/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(1,0,0)を、「128*(8/16)」、すなわち、「64」と算出し、更に式(2)に基づき画像データGD[t1]の示す階調値Gg(2,1,1)を、「128-64」、すなわち、「64」と算出し、当該画像データGD[t1]の示す階調値Gg(2,1,1)を「64」に設定する。
同様にして、誤差E(1,1,1)が「128」であり、画像データGD[t0]の示す階調値Gg(1,2,1)が「128」であり、分配率B(0,1,0)が「5/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,1,0)を、「128*(5/16)」、すなわち、「40」と算出し、更に式(2)に基づき画像データGD[t1]の示す階調値Gg(1,2,1)を、「128-40」、すなわち、「88」と算出し、当該画像データGD[t1]の示す階調値Gg(1,2,1)を「88」に設定する。
同様にして、誤差E(1,1,1)が「128」であり、画像データGD[t0]の示す階調値Gg(1,1,2)が「128」であり、分配率B(0,0,1)が「3/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,0,1)を、「128*(3/16)」、すなわち、「24」と算出し、更に式(2)に基づき画像データGD[t1]の示す階調値Gg(1,1,2)を、「128-24」、すなわち、「104」と算出し、当該画像データGD[t1]の示す階調値Gg(1,1,2)を「104」に設定する。
【0084】
図15及び
図16に示す例において、期間t1において対象画素PxTとして選択された画素Px(1,1,1)の+X方向には、画素Px(2,1,1)が存在する。このため、画素選択部221は、期間t2において、画素Px(2,1,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t2において、画素Px(2,1,1)を対象画素PxTとした誤差拡散処理を実行する。
【0085】
具体的には、演算処理部222は、期間t2において、まず、画像データGD[t1]の示す階調値Gg(2,1,1)が、閾値Th(2,1,1)以上であるか否かを判定する。
図15及び
図16に示す例では、画像データGD[t1]の示す階調値Gg(2,1,1)が「64」であり、閾値Th(2,1,1)が「128」であるため、「Gg(2,1,1)<Th(2,1,1)」が成立する。このため、演算処理部222は、階調値GI(2,1,1)を、最低階調値GI-0すなわち「0」に設定する。
そして、誤差分配部223は、期間t2において、階調値GI(2,1,1)から、画像データGD[t1]の示す階調値Gg(2,1,1)を減算することで、誤差E(2,1,1)を算出する。
図15及び
図16に示す例では、階調値GI(2,1,1)が「0」であり、画像データGD[t1]の示す階調値Gg(2,1,1)が「64」であるため、誤差E(2,1,1)は、最低階調値GI-0から階調値Gg(2,1,1)を減算した値、すなわち「-64」となる。
次に、誤差分配部223は、期間t2において、誤差E(2,1,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t1]の示す階調値Gg(3,1,1)から分配値EB(1,0,0)を減算することで、階調値Gg(3,1,1)を変更する。また、誤差分配部223は、期間t2において、誤差E(2,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t1]の示す階調値Gg(2,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(2,2,1)を変更する。また、誤差分配部223は、期間t2において、誤差E(2,1,1)及び分配率B(0,0,1)を乗算することで、分配値EB(0,0,1)を算出し、画像データGD[t1]の示す階調値Gg(2,1,2)から分配値EB(0,1,0)を減算することで、階調値Gg(2,1,2)を変更する。
図15及び
図16に示す例では、誤差E(2,1,1)が「-64」であり、画像データGD[t1]の示す階調値Gg(3,1,1)が「128」であり、分配率B(1,0,0)が「8/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(1,0,0)を、「(-64)*(8/16)」、すなわち、「-32」と算出し、更に式(2)に基づき画像データGD[t2]の示す階調値Gg(3,1,1)を、「128-(-32)」、すなわち、「160」と算出し、当該画像データGD[t2]の示す階調値Gg(3,1,1)を「160」に設定する。
同様にして、誤差E(2,1,1)が「-64」であり、画像データGD[t1]の示す階調値Gg(2,2,1)が「128」であり、分配率B(0,1,0)が「5/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,1,0)を、「(-64)*(5/16)」、すなわち、「-20」と算出し、更に式(2)に基づき画像データGD[t2]の示す階調値Gg(2,2,1)を、「128-(-20)」、すなわち、「148」と算出し、当該画像データGD[t2]の示す階調値Gg(2,2,1)を「148」に設定する。
同様にして、誤差E(2,1,1)が「-64」であり、画像データGD[t1]の示す階調値Gg(2,1,2)が「128」であり、分配率B(0,0,1)が「3/16」であるため、誤差分配部223は、式(3)に基いて分配値EB(0,0,1)を、「(-64)*(3/16)」、すなわち、「-12」と算出し、更に式(2)に基づき画像データGD[t2]の示す階調値Gg(2,1,2)を、「128-(-12)」、すなわち、「140」と算出し、当該画像データGD[t2]の示す階調値Gg(2,1,2)を「140」に設定する。
【0086】
図15及び
図16に示す例において、期間t2において対象画素PxTとして選択された画素Px(2,1,1)の+X方向には、画素Px(3,1,1)が存在する。このため、画素選択部221は、期間t3において、画素Px(3,1,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t3において、画素Px(3,1,1)を対象画素PxTとした誤差拡散処理を実行する。
【0087】
具体的には、演算処理部222は、期間t3において、まず、画像データGD[t2]の示す階調値Gg(3,1,1)が、閾値Th(3,1,1)以上であるか否かを判定する。
図15及び
図16に示す例では、画像データGD[t2]の示す階調値Gg(3,1,1)が「160」であり、閾値Th(3,1,1)が「128」であるため、「Gg(3,1,1)≧Th(3,1,1)」が成立する。このため、演算処理部222は、階調値GI(3,1,1)を、最高階調値GI-1すなわち「255」に設定する。
そして、誤差分配部223は、期間t3において、階調値GI(3,1,1)に「1」を加算した値から、画像データGD[t2]の示す階調値Gg(3,1,1)を減算することで、誤差E(3,1,1)を算出する。
図9及び
図10に示す例では、階調値GI(3,1,1)が「255」であり、画像データGD[t2]の示す階調値Gg(3,1,1)が「160」であるため、誤差E(3,1,1)は「96」となる。
次に、誤差分配部223は、期間t3において、誤差E(3,1,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t2]の示す階調値Gg(3,2,1)から分配値EB(0,1,0)を減算することで、階調値Gg(3,2,1)を変更する。また、誤差分配部223は、期間t3において、誤差E(3,1,1)及び分配率B(0,0,1)を乗算することで、分配値EB(0,0,1)を算出し、画像データGD[t2]の示す階調値Gg(3,1,2)から分配値EB(0,0,1)を減算することで、階調値Gg(3,1,2)を変更する。なお、画素Px(3,1,1)の+X方向には画素Pxが存在しないため、誤差分配部223は、期間t3において、分配値EB(1,0,0)の算出は行わない。
図15及び
図16に示す例では、誤差E(3,1,1)が「96」であり、画像データGD[t2]の示す階調値Gg(3,2,1)が「128」であり、画像データGD[t2]の示す階調値Gg(3,1,2)が「128」であるため、誤差分配部223は、画像データGD[t3]の示す階調値Gg(3,2,1)を「98」に設定し、画像データGD[t3]の示す階調値Gg(3,1,2)を「110」に設定する。
【0088】
図15及び
図16に示す例において、期間t3において対象画素PxTとして選択された画素Px(3,1,1)の+X方向には、画素Pxが存在しない。一方、期間t3において対象画素PxTとして選択された画素Px(3,1,1)の+Y方向には、画素Pxが存在する。このため、画素選択部221は、期間t4において、画素Px(1,2,1)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t4において、画素Px(1,2,1)を対象画素PxTとした誤差拡散処理を実行する。
【0089】
具体的には、演算処理部222は、期間t4において、まず、画像データGD[t3]の示す階調値Gg(1,2,1)が、閾値Th(1,2,1)以上であるか否かを判定する。
図15及び
図16に示す例では、画像データGD[t3]の示す階調値Gg(1,2,1)が「88」であり、閾値Th(1,2,1)が「128」であるため、「Gg(1,2,1)<Th(1,2,1)」が成立する。このため、演算処理部222は、階調値GI(1,2,1)を、最低階調値GI-0すなわち「0」に設定する。
そして、誤差分配部223は、期間t4において、階調値GI(1,2,1)から、画像データGD[t3]の示す階調値Gg(1,2,1)を減算することで、誤差E(1,2,1)を算出する。
図9及び
図10に示す例では、階調値GI(1,2,1)が「0」であり、画像データGD[t3]の示す階調値Gg(1,2,1)が「88」であるため、誤差E(1,2,1)は「-88」となる。
次に、誤差分配部223は、期間t4において、誤差E(1,2,1)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t3]の示す階調値Gg(2,2,1)から分配値EB(1,0,0)を減算することで、階調値Gg(2,2,1)を変更する。また、誤差分配部223は、期間t4において、誤差E(1,2,1)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t3]の示す階調値Gg(1,3,1)から分配値EB(0,1,0)を減算することで、階調値Gg(1,3,1)を変更する。また、誤差分配部223は、期間t4において、誤差E(1,2,1)及び分配率B(0,0,1)を乗算することで、分配値EB(0,0,1)を算出し、画像データGD[t3]の示す階調値Gg(1,2,2)から分配値EB(0,0,1)を減算することで、階調値Gg(1,2,2)を変更する。
図15及び
図16に示す例では、誤差E(1,2,1)が「-88」であり、画像データGD[t3]の示す階調値Gg(2,2,1)が「148」であり、画像データGD[t3]の示す階調値Gg(1,3,1)が「128」であり、画像データGD[t3]の示す階調値Gg(1,2,2)が「128」であるため、誤差分配部223は、画像データGD[t4]の示す階調値Gg(2,2,1)を「192」に設定し、画像データGD[t4]の示す階調値Gg(1,3,1)を「156」に設定する。画像データGD[t4]の示す階調値Gg(1,3,1)を「145」に設定する。
【0090】
その後、表示データ生成部22は、期間t5~期間t9において、画素Px(2,2,1)、画素Px(3,2,1)、画素Px(1,3,1)、画素Px(2,3,1)、及び、画素Px(3,3,1)を対象画素PxTとした誤差拡散処理を実行する。
【0091】
図15及び
図16に示す例において、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+X方向には、画素Pxが存在しない。また、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+Y方向には、画素Pxが存在しない。一方、期間t9において対象画素PxTとして選択された画素Px(3,3,1)の+Z方向には、画素Pxが存在する。このため、画素選択部221は、期間t10において、画素Px(1,1,2)を対象画素PxTとして選択する。そして、表示データ生成部22は、期間t10において、画素Px(1,1,2)を対象画素PxTとした誤差拡散処理を実行する。
【0092】
具体的には、演算処理部222は、期間t10において、まず、画像データGD[t9]の示す階調値Gg(1,1,2)が、閾値Th(1,1,2)以上であるか否かを判定する。
図15及び
図16に示す例では、画像データGD[t9]の示す階調値Gg(1,1,2)が「104」であり、閾値Th(1,1,2)が「128」であるため、「Gg(1,1,2)<Th(1,1,2)」が成立する。このため、演算処理部222は、階調値GI(1,1,2)を、最低階調値GI-0すなわち「0」に設定する。
そして、誤差分配部223は、期間t10において、階調値GI(1,1,2)から、画像データGD[t9]の示す階調値Gg(1,1,2)を減算することで、誤差E(1,1,2)を算出する。
図15及び
図16に示す例では、階調値GI(1,1,2)が「0」であり、画像データGD[t9]の示す階調値Gg(1,1,2)が「104」であるため、誤差E(1,1,2)は「-104」となる。
次に、誤差分配部223は、期間t10において、誤差E(1,1,2)及び分配率B(1,0,0)を乗算することで、分配値EB(1,0,0)を算出し、画像データGD[t9]の示す階調値Gg(2,1,2)から分配値EB(1,0,0)を減算することで、階調値Gg(2,1,2)を変更する。また、誤差分配部223は、期間t10において、誤差E(1,1,2)及び分配率B(0,1,0)を乗算することで、分配値EB(0,1,0)を算出し、画像データGD[t9]の示す階調値Gg(1,2,2)から分配値EB(0,1,0)を減算することで、階調値Gg(1,2,2)を変更する。また、誤差分配部223は、期間t10において、誤差E(1,1,2)及び分配率B(0,0,1)を乗算することで、分配値EB(0,0,1)を算出し、画像データGD[t9]の示す階調値Gg(1,1,3)から分配値EB(0,0,1)を減算することで、階調値Gg(1,1,3)を変更する。
図15及び
図16に示す例では、誤差E(1,1,2)が「-104」であり、画像データGD[t9]の示す階調値Gg(2,1,2)が「140」であり、画像データGD[t9]の示す階調値Gg(1,2,2)が「145」であり、画像データGD[t9]の示す階調値Gg(1,1,3)が「128」であるため、誤差分配部223は、画像データGD[t10]の示す階調値Gg(2,1,2)を「192」に設定し、画像データGD[t10]の示す階調値Gg(1,2,2)を「178」に設定し、画像データGD[t10]の示す階調値Gg(1,1,3)を「148」に設定する。
【0093】
その後、表示データ生成部22は、期間t11~期間t27において、画素Px(2,1,2)~画素Px(3,3,3)を対象画素PxTとした誤差拡散処理を実行する。
この結果、
図16に示すように、本実施形態では、期間t27において、階調値GI(1,1,1)、階調値GI(3,1,1)、階調値GI(2,2,1)、階調値GI(1,3,1)、階調値GI(3,3,1)、階調値GI(2,1,2)、階調値GI(1,2,2)、階調値GI(3,2,2)、階調値GI(2,3,2)、階調値GI(1,1,3)、階調値GI(3,1,3)、階調値GI(2,2,3)、階調値GI(1,3,3)、及び、階調値GI(3,3,3)が最高階調値GI-1となり、これら以外の階調値GI(mx,my,mz)が最低階調値GI-0となるような、表示データImgが生成される。すなわち、本実施形態では、
図10に示すように、XY平面に平行な平面において、階調値GI(mx,my,mz)が最高階調値GI-1となるドット形成画素Px-1の分散性が高くなるような、表示データImgを生成することができる。
【0094】
図17及び
図18は、期間t27において生成された本実施形態に係る表示データImgを説明するための説明図である。このうち、
図17は、本実施形態に係る表示データImgを、XZ平面に平行な平面において表した図であり、
図18は、本実施形態に係る表示データImgを、YZ平面に平行な平面において表した図である。
【0095】
図17及び
図18に示すように、本実施形態では、誤差分配処理において、XY平面内における誤差Eの分配に加えて、Z軸方向への誤差Eの分配が行われる。このため、本実施形態では、XY平面に平行な平面に加えて、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドット形成画素Px-1の分散性を高くすることができる。すなわち、本実施形態では、参考例と比較して、対象物Objの表面SFのうち、XY平面に平行な平面に加えて、XZ平面に平行な平面、及び、YZ平面に平行な平面において、中間階調の画像Gを形成する場合に、当該画像Gの画像品質を高くすることが可能となる。
【0096】
<<6.本実施形態の効果>>
図19は、画像データGDの示す階調値Gg(mx,my,mz)が中間階調値Gg-midである場合に、当該画像データGDに基づいて生成された表示データImgの示す複数の階調値GI(mx,my,mz)のうち、最高階調値GI-1に対応する複数のドット形成画素Px-1の空間周波数特性について説明するための説明図である。具体的には、
図19は、画像データGDの示す階調値Gg(mx,my,mz)が中間階調値Gg-midであり、当該画像データGDに基づいて表示データImgが生成された場合であって、画像形成空間SPを所定の平面で切断し、当該所定の平面における複数のドット形成画素Px-1の分布を空間領域から空間周波数領域へと変換した場合において、当該所定の平面における複数のドット形成画素Px-1の分布の空間周波数と、当該所定の平面における複数のドット形成画素Px-1の分布の各周波数成分の量と、の関係を示す曲線FBを表している。
ここで、中間階調値Gg-midとは、階調値Gg-minと階調値Gg-maxとの間の階調値である。より具体的には、中間階調値Gg-midとは、例えば、以下の式(7)で表される階調値であってもよい。
(1-γ3)*Gg-min + γ3*Gg-max ≦ Gg-mid
≦ (1-γ4)*Gg-min + γ4*Gg-max …… 式(7)
なお、式(7)において、値γ3は、例えば、「0.2≦γ3≦0.5」を満たす実数であり、また、値γ4は、例えば、「0.5≦γ4≦0.7」を満たす実数である。
【0097】
図19に示すように、曲線FBは、所定の平面における複数のドット形成画素Px-1の分布の空間周波数のうち、最も高い周波数である最高周波数fmaxと中間周波数fmidとの間の周波数成分が、最も低い周波数である最低周波数fminと中間周波数fmidとの間の周波数成分よりも、多くなるという特性を有する。ここで、中間周波数fmidとは、中間周波数fmidと最高周波数fmaxとの中間の周波数である。より具体的には、中間周波数fmidとは、例えば、「fmid = {fmin + fmax} ÷ 2」で表される周波数であってもよい。
以下では、空間周波数領域において、最高周波数fmaxと中間周波数fmidとの間の周波数成分が、最低周波数fminと中間周波数fmidとの間の周波数成分よりも多くなるという特性を、「所定の空間周波数特性」と称する。
なお、
図19に示されるように、曲線FBは、中間周波数fmidよりも最高周波数fmax側にピークを有する。このため、本実施形態において、曲線FBが、中間周波数fmidよりも最高周波数fmax側にピークを有することを、「所定の空間周波数特性」と称してもよい。
より具体的には、本実施形態において、所定の空間周波数特性とは、ブルーノイズ特性である。但し、本実施形態では、所定の空間周波数特性が、ブルーノイズ特性である場合に限定されるわけではない。本実施形態において、所定の空間周波数特性とは、ホワイトノイズ特性と比較して、空間周波数領域において高周波数側に周波数成分が多くなる周波数特性であればよい。例えば、本実施形態において、所定の空間周波数特性とは、パープルノイズ特性であってもよい。
【0098】
なお、本実施形態において、所定の平面として、平面PL1及び平面PL2の2つの平面を採用することができる。具体的には、本実施形態において、画像データGDの示す階調値Gg(mx,my,mz)が中間階調値Gg-midであり、当該画像データGDに基づいて表示データImgが生成された場合において、画像形成空間SPを切断する平面PL1における複数のドット形成画素Px-1の分布が、所定の空間周波数特性を有すると共に、画像形成空間SPを切断する平面PL2における複数のドット形成画素Px-1の分布が、所定の空間周波数特性を有する。
ここで、平面PL1及び平面PL2は、互いに平行ではない平面である。換言すれば、平面PL1の法線ベクトルと、平面PL2の法線ベクトルとは、交差する。例えば、平面PL1の法線ベクトルと、平面PL2の法線ベクトルとは、直交してもよい。具体的には、平面PL1は、Z軸方向に延在する法線ベクトルを有する平面であってもよい。より具体的には、平面PL1は、XY平面に平行な平面であってもよい。また、平面PL2は、X軸方向に延在する法線ベクトルを有する平面であってもよい。より具体的には、平面PL2は、YZ平面に平行な平面であってもよい。
【0099】
以上のように、本実施形態によれば、平面PL1における複数のドット形成画素Px-1の分布が、空間周波数領域において、中間周波数fmidより高い高周波数成分が中間周波数fmidより低い低周波数成分よりも多くなる周波数特性を有し、また、平面PL1とは平行ではない平面PL2における複数のドット形成画素Px-1の分布が、空間周波数領域において、中間周波数fmidより高い高周波数成分が中間周波数fmidより低い低周波数成分よりも多くなる周波数特性を有するように、対象物Objの表面SFにドットを配置することができる。このため、本実施形態によれば、対象物Objの形状が2次元平面以外の形状を有する場合であっても、対象物Objの表面におけるドットの配置の分散性を高くすることができる。
【0100】
また、本実施形態において、誤差分配部223は、対象画素PxTにおける誤差Eを、X軸方向及びY軸方向のみならず、Z軸方向に対しても分配する。このため、本実施形態によれば、対象物Objの表面SFのうち、XY平面に平行な平面に加えて、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドットの配置の分散性を高くすることができる。
【0101】
また、本実施形態では、誤差拡散処理の対象画素をまず+X方向にシフトし、次に+X方向に最大となった(その画素よりも+X方向に別の画素がない)ときに+Y方向に1画素隣接し、且つ、+X方向に最小の画素に移って再度+X方向へのシフトを行う。更に、+X方向及び+Y方向に最大となった(その画素よりも+X方向に別の画素がなく、+Y方向にも別の画素がない)ときに+Z方向に1画素隣接し、且つ、+X方向及び+Y方向に最小の画素に移って再度+X方向へのシフトを行う。つまり、+X方向、+Y方向、+Z方向に誤差拡散処理の対象画素をシフトするが、そのときの優先度を+X方向が最も高く、+Y方向が次に高く、+Z方向が最も低くなるといえる。
そして、このとき、+X方向への分配率に対応する分配率B(1,0,0)を最も大きく、+Y方向への分配率に対応する分配率B(0,1,0)を次に大きく、+Z方向への分配率に対応する分配率B(0,0,1)を最も小さくしている。つまり、対象画素をシフトするときの優先度が高い方向ほど、分配率が大きくなる。
これは以下のような理由のためである。ある対象画素Px(mx,my,mz)に対して誤差拡散処理を行うとき、対象画素Px(mx,my,mz)には、それまでに行われた誤差拡散処理により、最大で画素Px(mx-1,my,mz)、画素Px(mx,my-1,mz)、画素Px(mx,my,mz-1)の3画素における誤差が分配される。この場合、上記のように+X方向、+Y方向、+Z方向の順で優先度が低くなるとすると、上記の3画素は、まず画素Px(mx,my,mz-1)に対して誤差拡散処理が行われ、その後に画素Px(mx,my-1,mz)に対して誤差拡散処理が行われ、最後に画素Px(mx-1,my,mz)に対して誤差拡散処理が行われている。誤差拡散処理は処理した画素数が多くなるほど正確になるため、画素Px(mx,my,mz-1)における誤差拡散処理よりも画素Px(mx,my-1,mz)に対する誤差拡散処理の方が、更に画素Px(mx,my-1,mz)に対する誤差拡散処理よりもPx(mx-1,my,mz)に対する誤差拡散処理の方が、信頼度が高い。ゆえに、対象画素Px(mx,my,mz)に対して分配される誤差は、最も信頼性の高い画素Px(mx-1,my,mz)の比率が最も大きく、最も信頼性の低い画素Px(mx,my,mz-1)の比率が最も小さいことが好ましい。
【0102】
また、本実施形態において、画素Px(mx,my+1,mz)に対する他の画素Pxからの誤差Eの分配の回数は、画素Px(mx+1,my,mz)に対する他の画素Pxからの誤差Eの分配の回数よりも多くなる場合がある。そして、本実施形態では、分配率B(1,0,0)が、分配率B(0,1,0)よりも大きくなるように定められる。このため、本実施形態では、分配率B(1,0,0)が分配率B(0,1,0)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高めることが可能となる。
また、本実施形態において、画素Px(mx,my,mz+1)に対する他の画素Pxからの誤差Eの分配の回数は、画素Px(mx,my+1,mz)に対する他の画素Pxからの誤差Eの分配の回数よりも多くなる場合がある。これに対して、本実施形態では、分配率B(0,1,0)が、分配率B(0,0,1)よりも大きくなるように定められる。このため、本実施形態では、分配率B(0,1,0)が分配率B(0,0,1)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高めることが可能となる。
【0103】
<<7.実施形態の纏め>>
以上において説明したように、本実施形態に係る端末装置1は、3次元の画像形成空間SPにおいて画像Gfを表す場合に画像形成空間SPにおけるM個の画素Pxの各々が表示すべき画像Gfの階調値Gg(mx,my,mz)を示す画像データGDを取得する画像データ取得部21と、画像データGDの示す階調値Gg(mx,my,mz)を量子化することで、表示データImgを生成する表示データ生成部22と、を備え、表示データ生成部22は、M個の画素Pxの中から、画素Px(mx,my,mz)を選択する画素選択部221と、画素Px(mx,my,mz)に対応する階調値Gg(mx,my,mz)の量子化に基づく誤差E(mx,my,mz)を、画素Px(mx,my,mz)の+X方向に位置する画素Px(mx+1,my,mz)に対して、分配率B(1,0,0)で分配し、画素Px(mx,my,mz)の+Y方向に位置する画素Px(mx,my+1,mz)に対して、分配率B(0,1,0)で分配し、画素Px(mx,my,mz)の+Z方向に位置する画素Px(mx,my,mz+1)に対して、分配率B(0,0,1)で分配する、誤差分配部223と、を備え、+Y方向は、+X方向に交差する方向であり、+Z方向は、+X方向及び+Y方向により規定されるXY平面の延在方向とは異なる方向である、ことを特徴とする。
すなわち、本実施形態において、誤差分配部223は、XY平面内における誤差E(mx,my,mz)の分配に加えて、+Z方向への誤差E(mx,my,mz)の分配を行う。このため、本実施形態によれば、3次元的な形状を有する対象物Objの表面SFに対して画像Gを形成する場合であっても、当該画像Gにおいてドットの粒状感が生じることを抑制することが可能となる。
なお、本実施形態において、端末装置1は「画像処理装置」の一例であり、画像データ取得部21は「取得部」の一例であり、表示データ生成部22は「生成部」の一例であり、画素選択部221は「選択部」の一例であり、誤差分配部223は「分配部」の一例であり、画像形成空間SPは「3次元空間」の一例であり、画素Px(mx,my,mz)は「一の画素」の一例であり、画素Px(mx+1,my,mz)は「第1画素」の一例であり、画素Px(mx,my+1,mz)は「第2画素」の一例であり、画素Px(mx,my,mz+1)は「第3画素」の一例であり、+X方向は「第1方向」の一例であり、+Y方向は「第2方向」の一例であり、+Z方向は「第3方向」の一例であり、分配率B(1,0,0)は「第1の分配率」の一例であり、分配率B(0,1,0)は「第2の分配率」の一例であり、分配率B(0,0,1)は「第3の分配率」の一例である。
【0104】
また、本実施形態に係る端末装置1において、画素選択部221は、画素Px(mx,my,mz)の+X方向に、画像形成空間SPにおけるM個の画素Pxのうち何れかの画素Pxが存在する場合、画素Px(mx,my,mz)を選択した後に、画素Px(mx,my,mz)の+X方向に位置する他の画素Pxを選択する、ことを特徴としてもよい。
【0105】
また、本実施形態に係る端末装置1において、画像形成空間SPにおけるM個の画素Pxは、+X方向に延在する画素列PxLを(My*Mz)個含み、画素選択部221は、画素Px(mx,my,mz)の+X方向に、画像形成空間SPにおけるM個の画素Pxのうち何れの画素Pxも存在しない場合、画素Px(mx,my,mz)を選択した後に、画素Px(mx,my,mz)を含む画素列PxL[my][mz]の+Y方向に位置する画素列PxL[my+1][mz]の中から、他の画素Pxを選択する、ことを特徴としてもよい。
なお、本実施形態において、画素列PxL[my][mz]は「一の画素列」の一例であり、画素列PxL[my+1][mz]は「他の画素列」の一例である。
【0106】
また、本実施形態に係る端末装置1において、画像形成空間SPにおけるM個の画素Pxは、XY平面と並行な画素面PxPをMz個含み、画素選択部221は、画素Px(mx,my,mz)の+X方向に、画像形成空間SPにおけるM個の画素Pxのうち何れの画素Pxも存在せず、かつ、画素Px(mx,my,mz)を含む画素列PxL[my][mz]の+Y方向に、画像形成空間SPにおける(My*Mz)個の画素列PxLのうち何れの画素列PxLも存在しない場合、画素Px(mx,my,mz)を選択した後に、画素Px(mx,my,mz)を含む画素面PxP[mz]の+Z方向に位置する画素面PxP[mz+1]の中から、他の画素Pxを選択する、ことを特徴としてもよい。
すなわち、本実施形態において、画素選択部221は、画素面PxP[mz]における画素Pxの選択が完了した後に、画素面PxP[mz+1]から画素Pxを選択する。このため、本実施形態によれば、3次元の画像形成空間SPにおけるM個の画素Pxを対象として誤差拡散処理を行うことが可能となり、3次元的な形状を有する対象物Objの表面SFに対して画像Gを形成する場合であっても、当該画像Gにおいてドットの粒状感が生じることを抑制することが可能となる。
なお、本実施形態において、画素面PxP[mz]は「一の画素面」の一例であり、画素面PxP[mz+1]は「他の画素面」の一例である。
【0107】
また、本実施形態に係る端末装置1において、分配率B(1,0,0)は、分配率B(0,1,0)、及び、分配率B(0,0,1)よりも大きい、ことを特徴としてもよい。
このため、本実施形態によれば、分配率B(1,0,0)が、分配率B(0,1,0)または分配率B(0,0,1)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高くすることが可能となる。
【0108】
また、本実施形態に係る端末装置1において、分配率B(0,1,0)は、分配率B(0,0,1)よりも大きい、ことを特徴としてもよい。
このため、本実施形態によれば、分配率B(0,1,0)が、分配率B(0,0,1)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高くすることが可能となる。
【0109】
また、本実施形態に係る端末装置1において、画素Px(mx+1,my,mz)は、画素Px(mx,my,mz)の+X方向において画素Px(mx,my,mz)に隣接する画素Pxであり、画素Px(mx,my+1,mz)は、画素Px(mx,my,mz)の+Y方向において画素Px(mx,my,mz)に隣接する画素Pxであり、画素Px(mx,my,mz+1)は、画素Px(mx,my,mz)の+Z方向において画素Px(mx,my,mz)に隣接する画素Pxである、ことを特徴としてもよい。
【0110】
また、本実施形態に係る端末装置1において、+X方向は、+Y方向及び+Z方向に直交する方向であり、+Y方向は、+Z方向に直交する方向である、ことを特徴としてもよい。
【0111】
また、本実施形態に係る記録装置5は、3次元形状の対象物Objに対して画像Gを形成する記録装置5であって、インクを吐出するヘッドユニット7と、誤差拡散法を用いる誤差拡散処理により配置が定められた複数のドットであって、ヘッドユニット7から吐出されたインクにより形成される複数のドットによって、対象物Objに対して画像Gが形成されるように、ヘッドユニット7からのインクの吐出を制御する記録制御ユニット6と、を備え、記録制御ユニット6は、対象物Objが平面PL1を有する場合、平面PL1における複数のドットの分布が、空間周波数領域において中間周波数fmidより高い高周波成分が中間周波数fmidより低い低周波成分よりも多くなる周波数特性を有し、対象物Objが平面PL1とは平行ではない平面PL2を有する場合、平面PL2における複数のドットの分布が、空間周波数領域において中間周波数fmidより高い高周波成分が中間周波数fmidより低い低周波成分よりも多くなる周波数特性を有するように、ヘッドユニット7からのインクの吐出を制御する、ことを特徴とする。
このため、本実施形態によれば、対象物Objの形状が2次元平面以外の形状を有する場合であっても、対象物Objの表面におけるドットの配置の分散性を高くすることができる。
なお、本実施形態において、対象物Objは「対象物」の一例であり、インクは「液体」の一例であり、記録制御ユニット6は「制御部」の一例であり、平面PL1は「第1面」の一例であり、平面PL2は「第2面」の一例であり、中間周波数fmidは「所定の周波数」の一例である。
【0112】
また、本実施形態に係る記録装置5において、平面PL1における複数のドットの分布は、空間周波数領域において、ホワイトノイズ特性とは異なる周波数特性を有し、平面PL2における複数のドットの分布は、空間周波数領域において、ホワイトノイズ特性とは異なる周波数特性を有する、ことを特徴としてもよい。
【0113】
また、本実施形態に係る記録装置5において、平面PL1における複数のドットの分布は、空間周波数領域において、ブルーノイズ特性を有し、平面PL2における複数のドットの分布は、空間周波数領域において、ブルーノイズ特性を有する、ことを特徴としてもよい。
【0114】
<<B.変形例>>
以上に例示した各形態は多様に変形され得る。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様は、相互に矛盾しない範囲で適宜に併合され得る。
【0115】
<変形例1>
上述した実施形態において、誤差分配部223は、誤差拡散処理において、
図7に示す誤差拡散データGKを用いたが、本発明はこのような態様に限定されるものではない。誤差分配部223は、誤差拡散処理において、XY平面内における誤差Eの分配に加えて、Z軸方向への誤差Eの分配が可能となるような、誤差拡散データを用いればよい。例えば、誤差分配部223は、誤差拡散処理において、
図20に示す誤差拡散データGK-Aを用いてもよいし、
図21に示す誤差拡散データGK-Bを用いてもよいし、
図22に示す誤差拡散データGK-Cを用いてもよいし、
図23に示す誤差拡散データGK-Dを用いてもよいし、または、
図24に示す誤差拡散データGK-Eを用いてもよい。
【0116】
図20は、誤差拡散データGK-Aを説明するための説明図である。
【0117】
図20に示すように、誤差拡散データGK-Aは、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx,my,mz+1)と、画素Px(mx+2,my,mz)と、画素Px(mx,my+2,mz)と、画素Px(mx,my,mz+2)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Aは、分配率B(1,0,0)が分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が分配率B(1,1,0)よりも大きくなり、分配率B(2,0,0)が分配率B(0,2,0)よりも大きくなり、分配率B(0,2,0)が分配率B(0,0,2)よりも大きくなるように、各分配率Bを定めるデータである。
【0118】
図21は、誤差拡散データGK-Bを説明するための説明図である。
【0119】
図21に示すように、誤差拡散データGK-Bは、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx,my,mz+1)と、画素Px(mx+2,my,mz)と、画素Px(mx,my+2,mz)と、画素Px(mx,my,mz+2)と、画素Px(mx+1,my+1,mz)と、画素Px(mx,my+1,mz+1)と、画素Px(mx+1,my,mz+1)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Bは、分配率B(1,0,0)が分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が分配率B(1,1,0)よりも大きくなり、分配率B(2,0,0)が分配率B(0,2,0)よりも大きくなり、分配率B(0,2,0)が分配率B(1,2,0)よりも大きくなり、分配率B(1,1,0)が分配率B(1,0,1)よりも大きくなり、分配率B(1,0,1)が分配率B(0,1,1)よりも大きくなるように、各分配率Bを定めるデータである。
【0120】
図22は、誤差拡散データGK-Cを説明するための説明図である。
【0121】
図22に示すように、誤差拡散データGK-Cは、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx+1,my,mz+1)と、画素Px(mx-1,my+1,mz)と、画素Px(mx-1,my+1,mz+1)と、画素Px(mx,my,mz+1)と、画素Px(mx,my+1,mz)と、画素Px(mx,my+1,mz+1)と、画素Px(mx+1,my+1,mz)と、画素Px(mx+1,my+1,mz+1)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Cは、分配率B(1,0,0)が、分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が、分配率B(0,0,1)よりも大きくなり、分配率B(0,0,1)が、分配率B(1,1,0)よりも大きくなり、分配率B(1,1,0)が、分配率B(0,1,1)よりも大きくなり、分配率B(0,1,1)が、分配率B(1,0,1)、分配率B(-1,1,0)、及び、分配率B(1,1,1)よりも大きくなり、分配率B(1,0,1)、分配率B(-1,1,0)、及び、分配率B(1,1,1)が、分配率B(-1,1,1)よりも大きくなるように、各分配率Bを定めるデータである。
【0122】
図23は、誤差拡散データGK-Dを説明するための説明図である。
【0123】
図23に示すように、誤差拡散データGK-Dは、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx,my,mz+1)と、画素Px(mx,my,mz+2)と、画素Px(mx+1,my,mz)と、画素Px(mx+1,my,mz+1)と、画素Px(mx+2,my,mz)と、画素Px(mx-1,my+1,mz)と、画素Px(mx-1,my+1,mz+1)と、画素Px(mx,my+1,mz)と、画素Px(mx,my+1,mz+1)と、画素Px(mx+1,my+1,mz)と、画素Px(mx+1,my+1,mz+1)と、画素Px(mx,my+2,mz)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Dは、分配率B(1,0,0)が、分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が、分配率B(0,0,1)よりも大きくなり、分配率B(0,0,1)が、分配率B(2,0,0)よりも大きくなり、分配率B(2,0,0)が、分配率B(0,2,0)よりも大きくなり、分配率B(0,2,0)が、分配率B(0,0,2)よりも大きくなり、分配率B(0,0,2)が、分配率B(1,0,1)、分配率B(0,1,1)、及び、分配率B(1,1,0)よりも大きくなり、分配率B(1,0,1)、分配率B(0,1,1)、及び、分配率B(1,1,0)が、分配率B(-1,1,0)、分配率B(-1,1,1)、及び、分配率B(1,1,1)よりも大きくなるように、各分配率Bを定めるデータである。
【0124】
図24は、誤差拡散データGK-Eを説明するための説明図である。
【0125】
図24に示すように、誤差拡散データGK-Eは、画素Px(mx,my,mz)が対象画素PxTである場合に、画素Px(mx+1,my,mz)と、画素Px(mx+1,my+1,mz)と、画素Px(mx,my+1,mz)と、画素Px(mx-1,my+1,mz)と、画素Px(mx-1,my-1,mz+1)と、画素Px(mx,my-1,mz+1)と、画素Px(mx+1,my-1,mz+1)と、画素Px(mx-1,my,mz+1)と、画素Px(mx,my,mz+1)と、画素Px(mx+1,my,mz+1)と、画素Px(mx-1,my+1,mz+1)と、画素Px(mx,my+1,mz+1)と、画素Px(mx+1,my+1,mz+1)とを、周囲画素PxSとして指定するデータである。
また、誤差拡散データGK-Eは、分配率B(1,0,0)が、分配率B(0,1,0)よりも大きくなり、分配率B(0,1,0)が、分配率B(0,0,1)よりも大きくなり、分配率B(0,0,1)が、分配率B(1,1,0)よりも大きくなり、分配率B(1,1,0)が、分配率B(-1,1,0)よりも大きくなり、分配率B(-1,1,0)が、分配率B(-1,0,1)、及び、分配率B(1,0,1)よりも大きくなり、分配率B(-1,0,1)、及び、分配率B(1,0,1)が、分配率B(0,-1,1)、及び、分配率B(0,1,1)よりも大きくなり、分配率B(0,-1,1)、及び、分配率B(0,1,1)が、分配率B(-1,-1,1)、分配率B(1,-1,1)、分配率B(-1,1,1)、及び、分配率B(1,1,1)よりも大きくなるように、各分配率Bを定めるデータである。
【0126】
以上のように、本変形例によれば、誤差拡散処理において、誤差拡散データGK-A、誤差拡散データGK-B、誤差拡散データGK-C、誤差拡散データGK-D、または、誤差拡散データGK-Eを用いる。誤差拡散データGK-A、誤差拡散データGK-B、誤差拡散データGK-C、誤差拡散データGK-D、及び、誤差拡散データGK-Eは、いずれも、誤差拡散処理において、XY平面内における誤差Eの分配に加えて、Z軸方向への誤差Eの分配を行うための誤差拡散データである。このため、本変形例によれば、対象物Objの表面SFのうち、XY平面に平行な平面に加えて、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドットの配置の分散性を高くすることができる。
【0127】
以上のように、本変形例に係る端末装置1において、誤差分配部223は、画素Px(mx,my,mz)に対応する階調値Gg(mx,my,mz)の量子化に基づく誤差E(mx,my,mz)を、画素Px(mx+1,my,mz)の+X方向に位置する画素Px(mx+2,my,mz)に対して、分配率B(2,0,0)で分配し、画素Px(mx,my+1,mz)の+Y方向に位置する画素Px(mx,my+2,mz)に対して、分配率B(0,2,0)で分配し、画素Px(mx,my,mz+1)の+Z方向に位置する画素Px(mx,my,mz+2)に対して、分配率B(0,0,2)で分配する、ことを特徴とする。
このため、本変形例によれば、3次元的な形状を有する対象物Objの表面SFに対して画像Gを形成する場合であっても、当該画像Gにおいてドットの粒状感が生じることを抑制することが可能となる。
なお、本変形例において、画素Px(mx+2,my,mz)は「第4画素」の一例であり、画素Px(mx,my+2,mz)は「第5画素」の一例であり、画素Px(mx,my,mz+2)は「第6画素」の一例であり、分配率B(2,0,0)は「第4の分配率」の一例であり、分配率B(0,2,0)は「第5の分配率」の一例であり、分配率B(0,0,2)は「第6の分配率」の一例である。
【0128】
また、本変形例に係る端末装置1において、分配率B(2,0,0)は、分配率B(0,2,0)、及び、分配率B(0,0,2)よりも大きく、分配率B(0,2,0)は、分配率B(0,0,2)よりも大きい、ことを特徴としてもよい。
このため、本変形例によれば、分配率B(2,0,0)が、分配率B(0,2,0)または分配率B(0,0,2)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高くすることが可能となる。また、本変形例によれば、分配率B(0,2,0)が、分配率B(0,0,2)以下である態様と比較して、画像形成空間SPにおけるM個の画素Pxの各々に対する誤差Eの分配の均一性を高くすることが可能となる。
【0129】
また、本変形例に係る端末装置1において、誤差分配部223は、画素Px(mx,my,mz)に対応する階調値Gg(mx,my,mz)の量子化に基づく誤差E(mx,my,mz)を、画素Px(mx+1,my,mz)の+Y方向に位置する画素Px(mx+1,my+1,mz)に対して、分配率B(1,1,0)で分配し、画素Px(mx+1,my,mz)の+Z方向に位置する画素Px(mx+1,my,mz+1)に対して、分配率B(1,0,1)で分配し、画素Px(mx,my+1,mz)の+Z方向に位置する画素Px(mx,my+1,mz+1)に対して、分配率B(0,1,1)で分配する、ことを特徴としてもよい。
このため、本変形例によれば、3次元的な形状を有する対象物Objの表面SFに対して画像Gを形成する場合であっても、当該画像Gにおいてドットの粒状感が生じることを抑制することが可能となる。
なお、本変形例において、画素Px(mx+1,my+1,mz)は「第7画素」の一例であり、画素Px(mx+1,my,mz+1)は「第8画素」の一例であり、画素Px(mx,my+1,mz+1)は「第9画素」の一例であり、分配率B(1,1,0)は「第7の分配率」の一例であり、分配率B(1,0,1)は「第8の分配率」の一例であり、分配率B(0,1,1)は「第9の分配率」の一例である。
【0130】
また、本変形例に係る端末装置1において、分配率B(1,1,0)は、分配率B(1,0,1)、及び、分配率B(0,1,1)よりも大きく、分配率B(1,0,1)は、分配率B(0,1,1)よりも大きい、ことを特徴としてもよい。
【0131】
<変形例2>
上述した実施形態及び変形例1において、誤差分配部223は、誤差分配処理において、対象画素PxTである画素Px(mx,my,mz)に対応する誤差E(mx,my,mz)を、周囲画素PxSである画素Px(mx+dx,my+dy,mz+dz)に対応する階調値Gg(mx+dx,my+dy,mz+dz)に対して分配したが、本発明はこのような態様に限定されるものではない。誤差分配部223は、誤差分配処理において、対象画素PxTである画素Px(mx,my,mz)に対応する誤差E(mx,my,mz)を、周囲画素PxSである画素Px(mx+dx,my+dy,mz+dz)に対応する閾値Th(mx+dx,my+dy,mz+dz)に対して分配してもよい。
【0132】
図25は、本変形例に係る記録システムSysが、表示データ生成処理を実行する場合における、記録システムSysの動作の一例を示すフローチャートである。なお、
図25に示すフローチャートは、誤差分配処理として、ステップS17の処理に代えて、後述するステップS30の処理を行う点を除き、
図6に示すフローチャートと同様である。
【0133】
図25に示すように、本変形例に係る記録システムSysの具備する表示データ生成部22は、表示データ生成処理において、上述したステップS10~S16の処理を実行する。
その後、本変形例に係る誤差分配部223は、誤差分配処理として、誤差拡散データGKを用いて、誤差E(mx,my,mz)を、対象画素PxTの周囲に位置する1または複数の周囲画素PxSに対応する1または複数の閾値Thに分配する(S30)。具体的には、本変形例に係る誤差分配部223は、ステップS30の誤差分配処理において、周囲画素PxSである画素Px(mx+dx,my+dy,mz+dz)が存在する場合に、当該画素Px(mx+dx,my+dy,mz+dz)に対応する閾値Th(mx+dx,my+dy,mz+dz)を、以下の式(8)に基づいて変更する。
Th(mx+dx,my+dy,mz+dz)
= Th(mx+dx,my+dy,mz+dz)
+ EB(dx,dy,dz) …… 式(8)
すなわち、本変形例に係る誤差分配部223は、ステップS30の誤差分配処理において、誤差E(mx,my,mz)と分配率B(dx,dy,dz)とを乗算した値である分配値EB(dx,dy,dz)を、閾値Th(mx+dx,my+dy,mz+dz)に加算することにより、閾値Th(mx+dx,my+dy,mz+dz)を変更する。
その後、本変形例に係る表示データ生成部22は、上述したステップS18~S23の処理を実行する。
【0134】
以上のように、本変形例によれば、誤差分配処理において、XY平面内における誤差Eの分配に加えて、Z軸方向への誤差Eの分配を行う。このため、本変形例によれば、対象物Objの表面SFのうち、XY平面に平行な平面に加えて、XZ平面に平行な平面、及び、YZ平面に平行な平面において、ドットの配置の分散性を高くすることができる。
【0135】
<変形例3>
上述した実施形態並びに変形例1及び2では、誤差拡散処理において、演算処理部222が設定する階調値GI(mx,my,mz)が、最高階調値GI-1及び最低階調値GI-0の2値である場合を例示したが、本発明はこのような態様に限定されるものではない。誤差拡散処理において、演算処理部222が設定する階調値GI(mx,my,mz)は、3値以上であってもよい。
【0136】
図26及び
図27は、本変形例に係る記録システムSysが、表示データ生成処理を実行する場合における、記録システムSysの動作の一例を示すフローチャートである。なお、
図26及び
図27に示すフローチャートは、1画素に対する誤差拡散処理として、ステップS100の処理に代えて、ステップS40、S41、S42、及び、S44を含むステップS400の処理を行う点と、ステップS14の処理に代えて、ステップS43の処理を行う点と、ステップS16の処理に代えて、ステップS45の処理を行う点と、を除き、
図6に示すフローチャートと同様である。
【0137】
図26に示すように、本変形例に係る表示データ生成部22は、表示データ生成処理において、上述したステップS10~S11の処理を実行する。
その後、本変形例に係る演算処理部222は、画像データGDが示す対象画素PxTにおける画像Gfの階調値、すなわち、階調値Gg(mx,my,mz)を、基準値KKで除算することで、商GgA(mx,my,mz)と、剰余GgB(mx,my,mz)とを算出する(S40)。なお、本変形例において基準値KKとは、以下の式(9)を満たす整数である。
0 < KK ≦ {Gg-max - Gg-min}÷2 …… 式(9)
なお、本変形例では、一例として、階調値Gg-minが「0」であり、階調値Gg-maxが「256」である場合を想定する。そして、本変形例では、一例として、基準値KKが「64」である場合を想定する。
【0138】
その後、本変形例に係る演算処理部222は、剰余GgB(mx,my,mz)が、閾値Th(mx,my,mz)以上であるか否かを判定する(S41)。なお、本変形例では、閾値Th(mx,my,mz)が、以下の式(10)を満たす値である場合を想定する。
γ5*KK ≦ Th(mx,my,mz) ≦ γ6*KK …… 式(10)
ここで、値γ5は例えば、「0.3≦γ5≦0.5」を満たす実数であり、また、値γ6は例えば、「0.5≦γ6≦0.7」を満たす実数である。より具体的には、本実施形態では、一例として、閾値Th(mx,my,mz)が、「32」である場合を想定する。
但し、閾値Th(mx,my,mz)は、階調値Gg-maxから階調値Gg-minを減算した値が、基準値KKの整数倍ではない場合には、以下の式(11)を満たす整数であってもよい。
(1-γ7)*{KK*GgA(mx,my,mz)}
+ γ7*{KK*(1+GgA(mx,my,mz))}
≦ Th(mx,my,mz)
≦ (1-γ8)*{KK*GgA(mx,my,mz)}
+ γ8*{KK*(1+GgA(mx,my,mz))} …… 式(11)
ここで、値γ7は例えば、「0.3≦γ7≦0.5」を満たす実数であり、また、値γ8は例えば、「0.5≦γ8≦0.7」を満たす実数である。
【0139】
そして、本変形例に係る演算処理部222は、ステップS41における判定の結果が肯定の場合、対象画素PxTである画素Px(mx,my,mz)に対応する階調値GI(mx,my,mz)を、「1+GgA(mx,my,mz)」に設定する(S42)。
その後、本変形例に係る誤差分配部223は、剰余GgB(mx,my,mz)及び基準値KKに基づいて、誤差E(mx,my,mz)を算出する(S43)。具体的には、誤差分配部223は、ステップS43において、以下の式(12)に基づいて誤差E(mx,my,mz)を算出する。
E(mx,my,mz) = KK - GgB(mx,my,mz)
…… 式(12)
【0140】
他方、本変形例に係る演算処理部222は、ステップS41における判定の結果が否定の場合、対象画素PxTである画素Px(mx,my,mz)に対応する階調値GI(mx,my,mz)を、「GgA(mx,my,mz)」に設定する(S44)。
その後、本変形例に係る誤差分配部223は、剰余GgB(mx,my,mz)に「-1」を乗算した値を誤差E(mx,my,mz)として設定する(S45)。
【0141】
そして、本変形例に係る表示データ生成部22は、上述したステップS17~S23の処理を実行する。
【0142】
以上のように、本変形例によれば、階調値GI(mx,my,mz)が3値以上であるため、階調値GI(mx,my,mz)が2値である場合と比較して、対象物Objの表面SFに形成される画像Gを、画像Gfに近い画像にすることが可能となる。
【0143】
<変形例4>
上述した実施形態並びに変形例1乃至3において、画像データGDの示す画像Gf、及び、表示データImgの示す画像Gは、複数の色を含んでもよい。
【0144】
本変形例では、画像データGDの示す画像Gf、及び、表示データImgの示す画像Gが、シアン、マゼンタ、イエロー、及び、ブラックの、4つの色により表される場合を想定する。
そして、本変形例では、画像データGDが、対象物Objの表面SFに画像Gfを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示すべきシアンの階調値を示す、画像データGD-Cyと、対象物Objの表面SFに画像Gfを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示すべきマゼンタの階調値を示す、画像データGD-Mgと、対象物Objの表面SFに画像Gfを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示すべきイエローの階調値を示す、画像データGD-Ylと、対象物Objの表面SFに画像Gfを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示すべきブラックの階調値を示す、画像データGD-Bkと、を含む場合を想定する。
また、本変形例では、表示データImgが、対象物Objの表面SFに画像Gを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示するシアンの階調値を示す、表示データImg-Cyと、対象物Objの表面SFに画像Gを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示するマゼンタの階調値を示す、表示データImg-Mgと、対象物Objの表面SFに画像Gを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示するイエローの階調値を示す、表示データImg-Ylと、対象物Objの表面SFに画像Gを形成するために、画像形成空間SPに含まれるM個の画素Pxの各々が表示するブラックの階調値を示す、表示データImg-Bkと、を含む場合を想定する。
【0145】
また、本変形例では、本変形例に係る記録システムSysの具備する記憶ユニット3において、画像データGD-Cyに対して誤差拡散処理を行うための誤差拡散データGK-Cyと、画像データGD-Mgに対して誤差拡散処理を行うための誤差拡散データGK-Mgと、画像データGD-Ylに対して誤差拡散処理を行うための誤差拡散データGK-Ylと、画像データGD-Bkに対して誤差拡散処理を行うための誤差拡散データGK-Bkと、を記憶している。ここで、誤差拡散データGK-Cy、誤差拡散データGK-Mg、誤差拡散データGK-Yl、及び、誤差拡散データGK-Bkとしては、誤差拡散データGK、誤差拡散データGK-A、誤差拡散データGK-B、誤差拡散データGK-C、及び、誤差拡散データGK-Dのうちの、何れかと同一のデータであってもよい。また、誤差拡散データGK-Cy、誤差拡散データGK-Mg、誤差拡散データGK-Yl、及び、誤差拡散データGK-Bkは、互いに等しい分配率Bを示すデータであってもよいし、互いに異なる分配率Bを示すデータであってもよい。
【0146】
また、本変形例において、本変形例に係る演算処理部222は、画像データGD-Cyに対して誤差拡散処理を施すと共に、画像データGD-Mgに対して誤差拡散処理を施し、画像データGD-Ylに対して誤差拡散処理を施し、画像データGD-Bkに対して誤差拡散処理を施す。また、本変形例に係る誤差分配部223は、画像データGD-Cyに対して誤差拡散データGK-Cyを用いて誤差拡散処理を施すと共に、画像データGD-Mgに対して誤差拡散データGK-Mgを用いて誤差拡散処理を施し、画像データGD-Ylに対して誤差拡散データGK-Ylを用いて誤差拡散処理を施し、画像データGD-Bkに対して誤差拡散データGK-Bkを用いて誤差拡散処理を施す。これにより、本変形例に係る表示データ生成部22は、画像データGD-Cyに基づいて表示データImg-Cyを生成すると共に、画像データGD-Mgに基づいて表示データImg-Mgを生成し、画像データGD-Ylに基づいて表示データImg-Ylを生成し、画像データGD-Bkに基づいて表示データImg-Bkを生成する。
【0147】
以上のように、本変形例によれば、画像データGDの示す画像Gf、及び、表示データImgの示す画像Gの有する複数の色と1対1に対応するように、複数の誤差拡散データが設けられるため、画像データGDの示す画像Gf、及び、表示データImgの示す画像Gが、カラーの画像である場合に、画像Gにおいて粒状感が生じることを抑制することが可能となる。
【0148】
以上のように、本変形例に係る端末装置1において、画像データGDは、画像形成空間SPにおいてシアンの画像を表す場合に画像形成空間SPにおけるM個の画素Pxの各々が表示すべきシアンの階調値を示す画像データGD-Cyと、画像形成空間SPにおいてマゼンタの画像を表す場合に画像形成空間SPにおけるM個の画素Pxの各々が表示すべきマゼンタの階調値を示す画像データGD-Mgと、を含み、表示データ生成部22は、画像データGD-Cyの示すシアンの階調値を量子化することで、表示データImg-Cyを生成し、画像データGD-Mgの示すマゼンタの階調値を量子化することで、表示データImg-Mgを生成し、誤差分配部223は、画素Px(mx,my,mz)に対応するシアンの階調値の量子化に基づく誤差Eを、画素Px(mx,my,mz)の+X方向に位置する画素Px(mx+1,my,mz)に対して、分配率B(1,0,0)で分配し、画素Px(mx,my,mz)の+Y方向に位置する画素Px(mx,my+1,mz)に対して、分配率B(0,1,0)で分配し、画素Px(mx,my,mz)の+Z方向に位置する画素Px(mx,my,mz+1)に対して、分配率B(0,0,1)で分配し、画素Px(mx,my,mz)に対応するマゼンタの階調値の量子化に基づく誤差Eを、画素Px(mx,my,mz)の+X方向に位置する画素Px(mx+1,my,mz)に対して、分配率B(1,0,0)で分配し、画素Px(mx,my,mz)の+Y方向に位置する画素Px(mx,my+1,mz)に対して、分配率B(0,1,0)で分配し、画素Px(mx,my,mz)の+Z方向に位置する画素Px(mx,my,mz+1)に対して、分配率B(0,0,1)で分配する、ことを特徴とする。
このため、本変形例によれば、3次元の形状を有する対象物Objの表面SFにカラーの画像Gを印刷する場合に、当該画像Gにおいて粒状感が生じることを抑制することが可能となる。
なお、本変形例において、シアンは「第1の色」の一例であり、マゼンタは「第2の色」の一例であり、シアンの画像は「第1画像」の一例であり、マゼンタの画像は「第2画像」の一例であり、シアンの階調値は「第1階調値」の一例であり、マゼンタの階調値は「第2階調値」の一例であり、画像データGD-Cyは「第1画像データ」の一例であり、画像データGD-Mgは「第2画像データ」の一例であり、表示データImg-Cyは「第1表示データ」の一例であり、表示データImg-Mgは「第2表示データ」の一例である。
【0149】
<変形例5>
上述した実施形態並びに変形例1乃至4において、値Mx、値My、及び、値Mzは、以下の式(13)を満たす値であってもよいし、または、以下の式(14)を満たす値であってもよい。なお、以下の式(13)及び式(14)において、αは2以上の自然数である。
Mx = My =Mz = α2 …… 式(13)
Mx = My =Mz = 2α …… 式(14)
【0150】
<変形例6>
上述した実施形態並びに変形例1乃至5において、端末制御ユニット2、及び、記憶ユニット3は、記録装置5に搭載されていてもよい。
また、上述した実施形態並びに変形例1乃至5において、端末装置1は、記録制御ユニット6と、ヘッドユニット7と、インク供給ユニット8と、ロボットハンド9とを具備してもよい。
【0151】
<変形例7>
上述した実施形態並びに変形例1乃至6において、ロボットハンド9は、画像形成空間SPにおけるヘッドユニット7の位置及び姿勢を変化させるが、本発明はこのような態様に限定されるものではない。ロボットハンド9は、画像形成空間SPにおける対象物Objの位置及び姿勢を変化させることが可能であってもよい。この場合、ヘッドユニット7は、画像形成空間SPにおいて位置及び姿勢が固定されていてもよい。
<変形例8>
上述した実施形態並びに変形例1乃至7において、ステップS18にて画素選択部221が「mx=Mx」を満たし、ステップS20にて画素選択部221が「my=My」を満たさないと判定した場合、ステップS21にて値mxを「1」に設定し、且つ、値myに「1」を加算したが、本発明はこのような態様に限定されるものではない。画素選択部221は、ステップS21にて値mxを「Mx」のままに設定し、且つ、値myに「1」を加算しても良い。つまり、画素Px(Mx,my,mz)の次に誤差拡散処理を行う画素を、画素Px(1,my+1,mz)ではなく、画素Px(Mx,my+1,mz)としても良い。
但し、この場合、画素Px(Mx,my+1,mz)に対する誤差拡散処理のステップS18において、上述した実施形態並びに変形例1乃至7では「mx=Mx」を満たすか否かを判定していたところを、「mx=1」を満たすか否かを判定するように変更する。更に、画素Px(Mx,my+1,mz)に対する誤差拡散処理のステップS19において、上述した実施形態並びに変形例1乃至7では値mxに「1」を加算していたところを、値mxに「-1」を加算するように変更する。そして、画素Px(1,my+1,mz)に対する誤差拡散処理において、ステップS18、ステップS19及びステップS21の条件を元に戻す。つまり、画素Px(1,my+1,mz)の次に誤差拡散処理を行う画素は、画素Px(1,my+2,mz)となり、その次は画素Px(2,my+2,mz)となる。以降、同様にしてステップS18、ステップS19及びステップS21の条件を交互に切り替える。
この誤差拡散処理によれば、画素Px(Mx,my,mz)が含まれるX軸方向に延在する画素列を順次誤差拡散処理するときには誤差拡散処理を行う対象画素を+X方向に順次シフトするのに対し、画素Px(Mx,my+1,mz)が含まれるX軸方向に延在する画素列を順次誤差拡散処理するときには誤差拡散処理を行う対象画素を-X方向に順次シフトする。以降、+X方向へのシフトと-X方向へのシフトを交互に繰り返すことになる。
また、上記ではステップS18、ステップS19、ステップS21の条件を、ステップS18にて「mx=Mx」または「mx=1」を満たしたときに交互に切り替えたが、同様にして、ステップS18、ステップS19、ステップS23の条件を切り替えても良い。つまり、ステップS18にて画素選択部221が「mx=Mx」を満たし、ステップS20にて画素選択部221が「my=My」を満たし、ステップS22にて画素選択部221が「mz=Mz」を満たさないと判定した場合、ステップS23にて値mxをそのままの値(つまり「Mx」或いは「1」のいずれか)に設定し、値myをそのままの値(つまり「My」或いは「1」のいずれか)に設定し、且つ、値mzに「1」を加算しても良い。このときも、上記と同様に、ステップS18およびステップS19の条件を切り替える。つまり、そのときのステップS18の条件が「mx=Mx」を満たすか否かであれば「mx=1」を満たすか否かに切り替え、逆に「mx=1」を満たすか否かであれば「mx=Mx」を満たすか否かに切り替える。同じく、そのときのステップS19の条件が値mxに「1」を加算するであれば値mxに「-1」を加算するに切り替え、逆に値mxに「-1」を加算するであれば値mxに「1」を加算するに切り替える。
なお、ステップS19の条件を切り替えるとき、
図7~
図8、
図20~
図23、
図27の誤差拡散データのうち、値dxの正負を逆転させることが好ましい。例えば、誤差拡散データにおいて、dx=1であればdx=-1に切り替え、dx=-2であればdx=2に切り替え、dx=0であればそのままとすることが好ましい。
【符号の説明】
【0152】
1…端末装置、2…端末制御ユニット、3…記憶ユニット、5…記録装置、6…記録制御ユニット、7…ヘッドユニット、8…インク供給ユニット、9…ロボットハンド、21…画像データ取得部、22…表示データ生成部、61…ヘッド制御部、62…ハンド制御部、71…駆動信号供給部、72…記録ヘッド、221…画素選択部、222…演算処理部、223…誤差分配部、D…吐出部、Sys…記録システム。