(57)【要約】      （修正有）【課題】高速かつ高画質に画像のサイズを変更する画像処理装置を提供する。【解決手段】画像処理装置２は、複数の基本変倍を予め用意しておき、これらの基本変倍を組み合わせることにより、任意の倍率の変倍処理を実現する。基本変倍とは、既定サイズの基本処理ブロックを、既定サイズの変倍ブロックに変倍する処理であり、変倍ブロックの画素値を算出するための重み付け係数が予め対応付けられている。この重み付け係数は、総和が１となる条件の他は拘束条件がないため、比較的自由に設計でき、重み付け係数の分母を２のべき乗としたり、ゼロとなる重み付け係数を利用することにより、変倍処理を簡単化または高速化できる。【選択図】図２
2008054271.tif 000002
【特許請求の範囲】
【請求項１】
既定の重み付け係数が含まれた係数セット群から、適用すべき係数セットを選択する係数選択手段と、
前記係数選択手段により選択された係数セットと、入力画像に含まれる複数の画素値とに基づいて、この入力画像を変倍した変倍画像に用いられる画素値を算出する画素値算出手段と
を有する画像処理装置。
【請求項２】
前記係数セットそれぞれに含まれる重み付け係数の総和は１であり、かつ、これらの重み付け係数の分母は２のべき乗である
請求項１に記載の画像処理装置。
【請求項３】
互いに異なる複数の前記係数セットは、同じ値の重み付け係数を少なくとも１つ有している
請求項１に記載の画像処理装置。
【請求項４】
入力画像のサイズ及び変倍画像のサイズに基づいて、前記係数セットと、変倍画像に含まれる画素とを互いに対応付けるテーブルを生成するテーブル生成手段
をさらに有し、
前記係数選択手段は、前記テーブル生成手段により生成されたテーブルに基づいて、変倍画像に含まれる画素値の算出に用いる前記係数セットを選択し、
前記画素値算出手段は、前記係数選択手段により選択された係数セットと、前記入力画像の画素値とに基づいて、変倍画像の画素値を算出する
請求項１に記載の画像処理装置。
【請求項５】
前記係数セットには、入力画像における移動量が対応付けられており、
前記画素値算出手段は、前記係数選択手段により選択された係数セットに対応する移動量に基づいて、変倍画像の画素値を算出するために用いる入力画像の画素値位置を決定する
請求項１に記載の画像処理装置。
【請求項６】
選択可能な係数セットの範囲を決定する範囲設定手段
をさらに有し、
前記係数選択手段は、前記範囲設定手段により設定された範囲に含まれる係数セット群の中から、適用すべき係数セットを選択する
請求項１に記載の画像処理装置。
【請求項７】
前記画素値算出手段により算出された変倍画像の画素値に対して、入力画像又はユーザの指示に対応するフィルタ処理を行うフィルタ処理手段
をさらに有する請求項１に記載の画像処理装置。
【請求項８】
入力画像が二値画像である場合に、この入力画像に対して多値化処理を施す多値化手段
をさらに有し、
前記画素値算出手段は、前記多値化手段により多値化された入力画像の画素値に基づいて、変倍画像の画素値を算出し、
前記画素値算出手段により算出された変倍画像の画素値に対して、入力画像に応じた二値化方式の二値化処理を施す二値化手段
をさらに有する請求項１に記載の画像処理装置。
【請求項９】
出力画像が２値画像である場合に、入力画像と出力画像の面積比に比例して２値化閾値を変動させて二値化処理を施す二値化手段
をさらに有する請求項１に記載の画像処理装置。
【請求項１０】
既定の重み付け係数が含まれた係数セット群から、適用すべき係数セットを選択するステップと、
選択された前記係数セットと、入力画像に含まれる複数の画素値とに基づいて、この入力画像を変倍した変倍画像に用いられる画素値を算出するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のサイズを変更する画像処理装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、２値画像に対して、変換画素を原画像に投影した際に原画像に対する変換画素の位置が予め設定された８つの領域のどこにあるかに応じて、各領域ごとに予め設定された論理演算を適用して変換画素の濃度を算出する高速投影法を開示する。
また、特許文献２は、連続階調画像に対して、ブロック毎に高周波成分が多いか否かを判断し、その判断結果に応じて縮小方式を切り替える方式を開示する。
また、特許文献３は、連続階調画像に対して、ブロック毎に最大濃度の画素を選択し、選択された画素を間引き画素値に採用する方式を開示する。
また、特許文献４は、連続階調画像に対して、投影法における、原画像に対する縮小率が相互に素となる自然数で表されるときに、単位周期テーブルを利用して、変換画像の各画素と原画像の画素との相対位置関係の計算を簡略化する方法を開示する。
また、特許文献５は、２値画像に対して、細線があると判定された場合に細線値を採用する方法を開示する。
【特許文献１】特開昭５８−９７９５８号公報
【特許文献２】特開平１１−３２８３８６号公報
【特許文献３】特開平９−２１８９４５号公報
【特許文献４】特開平９−９１４１２号公報
【特許文献５】特開平６−２２３１７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、高速かつ高画質に画像のサイズを変更する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［画像処理装置］
上記目的を達成するために、本発明にかかる画像処理装置は、既定の重み付け係数が含まれた係数セット群から、適用すべき係数セットを選択する係数選択手段と、前記係数選択手段により選択された係数セットと、入力画像に含まれる複数の画素値とに基づいて、この入力画像の変倍画像に用いられる画素値を算出する画素値算出手段とを有する。
【０００５】
好適には、前記係数セットそれぞれに含まれる重み付け係数の総和は１であり、かつ、これらの重み付け係数の分母は２のべき乗である。
【０００６】
好適には、互いに異なる複数の前記係数セットは、同じ値の重み付け係数を少なくとも１つ有している。
【０００７】
好適には、入力画像のサイズ及び変倍画像のサイズに基づいて、前記係数セットと、変倍画像に含まれる画素とを互いに対応付けるテーブルを生成するテーブル生成手段をさらに有し、前記係数選択手段は、前記テーブル生成手段により生成されたテーブルに基づいて、縮小変倍画像に含まれる画素値の算出に用いる前記係数セットを選択し、前記画素値算出手段は、前記係数選択手段により選択された係数セットと、前記入力画像の画素値とに基づいて、変倍画像の画素値を算出する。
【０００８】
好適には、前記係数セットには、入力画像における移動量が対応付けられており、前記画素値算出手段は、前記係数選択手段により選択された係数セットに対応する移動量に基づいて、変倍画像の画素値を算出するために用いる入力画像の画素値位置を決定する。
【０００９】
好適には、選択可能な係数セットの範囲を決定する範囲設定手段をさらに有し、前記係数選択手段は、前記範囲設定手段により設定された範囲に含まれる係数セット群の中から、適用すべき係数セットを選択する。
【００１０】
好適には、前記画素値算出手段により算出された変倍画像の画素値に対して、入力画像又はユーザの指示に対応するフィルタ処理を行うフィルタ処理手段をさらに有する。
【００１１】
好適には、入力画像が二値画像である場合に、この入力画像に対して多値化処理を施す多値化手段をさらに有し、前記画素値算出手段は、前記多値化手段により多値化された入力画像の画素値に基づいて、変倍画像の画素値を算出し、前記画素値算出手段により算出された変倍画像の画素値に対して、入力画像に応じた二値化方式の二値化処理を施す二値化手段をさらに有する。
【００１２】
［プログラム］
また、本発明にかかるプログラムは、既定の重み付け係数が含まれた係数セット群から、適用すべき係数セットを選択するステップと、選択された前記係数セットと、入力画像に含まれる複数の画素値とに基づいて、この入力画像の変倍画像に用いられる画素値を算出するステップとをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明の画像処理装置によれば、高速かつ高画質に画像のサイズを変更することができる。
【発明を実施するための最良の形態】
【００１４】
［背景］
まず、本発明の理解を助けるために、その背景及び概略を説明する。
近年の電子文書の広汎な流通により、一般的にデジタル画像を高品質に表示または印刷することが求められている。高品質に表示または印刷するためには、画像の画質改善技術が必要となるが、とりわけ、異なる解像度を持った出力機器に画像を高画質出力するための技術が重要となる。例えば、ディスプレイ解像度７５ｄｐｉの画像を６００ｄｐｉプリンタに出力する場合には、８倍の画像拡大が必要となる。また、例えば６００ｄｐｉでスキャンされた画像を４００ｄｐｉで保存したりプリントしたりする場合には２／３倍の画像縮小が必要となる。
【００１５】
画像を高画質に変倍（拡大や縮小など）するという課題は、デジタル画像共通の課題である。そして、一般に使われているデジタル画像には幾つかの種類があり、画像の持つ性質が異なっているため、高画質に変倍する際には、それぞれの性質を捉えた処理方法が必要となる。実際、連続階調画像の拡大方法として、本願出願人が先に出願した特開２００３−２８３８１１号の方法を使用することによって、高画質な拡大画像を得ることができる。
【００１６】
次に、後述する第１〜第６の実施形態（以下、本実施形態と総称する）が主眼とする画像の縮小方法及び低倍率拡大方法に目を向ける。なお、以下では、便宜上、主走査方向（１次元方向）についてのみ説明するが、副走査方向及び２次元方向に関しても同様である。更に、以下では、第１〜第３の実施形態が主眼とする画像の縮小に特化して説明するが、第４の実施形態が主眼とする縮小及び低倍率拡大を含んだ変倍についても全く同様である。
画像の縮小方法としては、処理時間の観点からは単純間引き法（最近傍法）が優れており、画質の観点からは投影縮小法（投影法）が優れているといえる。
単純間引き法は、図１（Ａ）に示すように、４画素（各画素値はｆ１〜ｆ４）を３画素（各画素値はｇ１〜ｇ３）に縮小する場合に、縮小画素値ｇｉ（本図では、ｉ＝１〜３）として、縮小後の画像を原画像上に重ね合わせた際に、ｇｉに最も近い位置にある原画像上の１画素値ｆｊ（本図では、ｊ＝１〜４）を採用する。
例えば、図１（Ａ）に例示する主走査方向の４画素を３画素に縮小する場合には、図１（Ｂ）に示すような計算方法で行う。このように、単純間引き法は、任意の縮小率に対して少ない演算量で済み、後述する投影縮小法と比べて高速化効果が大きい。しかしながら、単純間引き法は、原画像の全ての画素情報を使用しないため、線要素の消えや、ジャギーの発生が起こり、画質が大きく劣化する傾向がある。
【００１７】
投影縮小法は、図１（Ｄ）に例示するように、縮小画素値をｇｉ（本図では、ｉ＝１〜３）として、縮小後の画素を原画像（ｆ１〜ｆ４）上に投影し重ね合わせた際に、ｇｉと重なり合う原画像上の画素値群ｆｊの面積比率和を採用する。本例のように、主走査方向の４画素を３画素に投影縮小法で縮小する場合には、図１（Ｃ）に示すような計算方法で行う。投影縮小法は、１／２倍などの単純な比率の縮小の場合には演算量がそれほど大きくならないが、任意の縮小率の縮小を行う場合、一般に演算量が大きく増大する傾向がある。このように、投影縮小法は、安定した画質を得る縮小方法であるが、処理負荷が掛かる傾向があるため、より簡易な演算で済む単純間引き法が利用される場合も多い。
【００１８】
これらの他に、特許文献１〜５に開示された縮小方法も存在するが、いずれも部分的に画像縮小処理の画質や速度の問題を解決できるが、投影法並みの画質で単純間引き並みの速度を実現しようとする場合に限度があったり、柔軟に画質と速度のバランスを変えることが困難であったり、連続階調画像用の処理に対応できていなかったり、一部の画像部位に特化したことにより他の画像部位で画質ディフェクトが出る場合があるなどの問題があった。
【００１９】
そこで、本実施形態の画像処理装置２は、図１（Ｅ）に例示するように、総和が１となる重み付け係数行列Ｐ＝｛ｐｉｊ｝を用いて、元画像に含まれる複数の画素値の重み付き和を縮小画像の画素値として算出する。この重み付け係数行列Ｐは、要素の総和が１となる条件の他は拘束条件がないため、画質と処理速度のバランスに応じて変えることができる。また、重み付け係数行列Ｐの設計がより自由になるため、重み付け係数行列Ｐの各要素の分母を２のべき乗としたり、ゼロとなる重み付け係数行列Ｐを利用することにより、縮小処理が大きく簡単化または高速化できる。
より具体的には、画像処理装置２は、図２に例示するように、複数の基本縮小を予め用意しておき、これらの基本縮小を組み合わせることにより、任意の倍率の縮小処理を実現する。基本縮小とは、既定サイズの基本処理ブロックを、既定サイズの縮小ブロックに縮小する処理であり、図２に例示するように、縮小ブロックの画素値を算出するための重み付け係数が予め対応付けられている。なお、基本処理ブロックは、入力画像（元画像）上に設定される画像領域であり、縮小ブロックは、出力画像（縮小画像）を構成する画像領域である。
【００２０】
例えば、基本縮小０は、図２（Ａ）に例示するように、１×１サイズの基本処理ブロックを１×１サイズの縮小ブロックに変換する処理であり、重み付け係数は１である。なお、ｍ×ｎサイズとは、主走査方向にｍ画素、副走査方向にｎ画素の画像領域を示す。
また、基本縮小１は、図２（Ｂ）に例示するように、２×１サイズの基本処理ブロックを１×１サイズの縮小ブロックに変換する処理であり、重み付け係数は、画素値ｆ１に対して１／２であり、画素値ｆ２に対して１／２である。
また、基本縮小２は、図２（Ｃ）に例示するように、３×１サイズの基本処理ブロックを２×１サイズの縮小ブロックに変換する処理であり、画素値ｇ１の重み付け係数は、画素値ｆ１に対して３／４であり、画素値ｆ２に対して１／４であり、画素値ｇ２の重み付け係数は、画素値ｆ２に対して１／４であり、画素値ｆ３に対して３／４である。ここで、出力画像の１つの画素値ｇに対して用いられる重み付け係数を係数セットとよぶ。
また、基本縮小３は、図２（Ｄ）に例示するように、４×１サイズの基本処理ブロックを３×１サイズの縮小ブロックに変換する処理であり、画素値ｇ１の係数セットは、画素値（ｆ１，ｆ２）に対して（３／４，１／４）であり、画素値ｇ２の係数セットは、画素値（ｆ２，ｆ３）に対して（１／２，１／２）であり、画素値ｇ３の係数セットは、画素値（ｆ３，ｆ４）に対して（１／４，３／４）である。
また、基本縮小４は、図２（Ｅ）に例示するように、５×１サイズの基本処理ブロックを４×１サイズの縮小ブロックに変換する処理であり、画素値ｇ１の係数セットは、画素値（ｆ１，ｆ２）に対して（３／４，１／４）であり、画素値ｇ２の係数セットは、画素値（ｆ２，ｆ３）に対して（１／２，１／２）であり、画素値ｇ３の係数セットは、画素値（ｆ３，ｆ４）に対して（１／２，１／２）であり、画素値ｇ４の係数セットは、画素値（ｆ４，ｆ５）に対して（１／４，３／４）である。
これらの重み付け係数は、いずれも分母が２のべき乗である。また、基本縮小１〜４は、入力画像に含まれる複数の画素値に基づいて出力画像の画素値を算出するため、投影縮小法に近い効果が得られる。
各係数セットに応じて１画素を算出する処理を、断片縮小と呼ぶ。各基本縮小は、それぞれ１画素を算出する複数の断片縮小の組み合わせによって構成されており、複数の基本縮小で断片縮小が共有されていてもよい。例えば、図２に例示した５つの基本縮小は、計１１個の断片縮小により構成されているが、共通の断片縮小を共有化することで、必要な断片縮小は４個に削減される。このように、複数の基本縮小で断片縮小を共有することで、処理の定型化、重み付け係数のテーブルサイズの小型化、又は演算結果の再利用等が可能になる。後述するように、断片縮小（係数セット）はインデクス番号を与えておき、縮小時にテーブル化して使用する。なお、第４の実施形態のように、縮小と低倍率拡大を両方含んだ変倍までを対象とする場合には、基本縮小、断片縮小は、それぞれ、基本変倍、断片変倍と呼び変えて使うことになるが、機能的な意味で両者は全く同じものである。
【００２１】
［ハードウェア構成］
次に、本実施形態における画像処理装置２のハードウェア構成を説明する。
図３は、画像処理装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図３に例示するように、画像処理装置２は、ＣＰＵ２０２及びメモリ２０４などを含む制御装置２０、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２６から構成される。
画像処理装置２は、例えば、プリンタ装置１０の内部に設けられ、入力された画像データ（入力画像）を任意の倍率で変倍する。
【００２２】
［画像処理プログラム］
図４は、制御装置２０（図３）により実行される画像処理プログラム５の機能構成を例示する図である。
図４に例示するように、画像処理プログラム５は、データ入力部５００、記憶部５１０、テーブル生成部５２０、画像処理部５３０、制御部５４０、及びデータ出力部５５０を有する。
画像処理プログラム５は、例えば、記録媒体２４０に格納されており、この記録媒体２４０を介して画像処理装置２にインストールされる。
なお、画像処理プログラム５の全部又は一部をＡＳＩＣなどのハードウェアで実現してもよい。
【００２３】
画像処理プログラム５において、データ入力部５００は、通信装置２２（図３）又は記憶装置２４（図３）を介して、入力画像の画像データを、及び、この入力画像に対して要求される出力サイズ（又は変倍率など）を取得し、取得された画像データ及び出力サイズを記憶部５１０に出力する。
【００２４】
記憶部５１０は、データ入力部５００から入力された画像データ及び出力サイズを記憶する。
また、記憶部５１０は、テーブル生成部５２０、画像処理部５３０及び制御部５４０に対して、ワークエリアを提供する。
【００２５】
テーブル生成部５２０は、入力された画像データのサイズ（入力サイズ）と、要求される出力サイズとに応じて、断片変倍を特定するためのインデクス番号が配列されたテーブルを生成する。
本例では、図５（Ｂ）に例示するように、入力画像のサイズがＷ×Ｈであり、出力サイズ（変倍後のサイズ）がｗ×ｈである場合を具体例とするため、テーブル生成部５２０は、この入力サイズＷ×Ｈ及び出力サイズｗ×ｈに応じて、横方向のテーブルｔｗ（ｉ）と、縦方向のテーブルｔｈ（ｊ）とを生成する。なお、ｉ＝１,…,ｗであり、ｊ＝１,…,ｈである。
【００２６】
画像処理部５３０は、記憶部５１０に記憶されている画像データと、テーブル生成部５２０により生成されたテーブルとを用いて、変倍画像の画素値を算出する。より具体的には、画像処理部５３０は、図５（Ａ）に例示するインクリメント量（断片変倍に対応付けられたインクリメント量）に応じて、入力画像の参照画素位置を決定し、決定された参照画素位置にある少なくとも１つの画素値と、テーブル値（すなわち、断片変倍のインデクス番号）に対応する係数セット（断片変倍）とから、重み付き和を算出し、算出された重み付き和を変倍画素の画素値とする。例えば、図５（Ｂ）に例示するように、変倍画像（この例では縮小画像）中の（ｘ，ｙ）＝（２，３）座標の画素値を算出する場合には、テーブル値ｔｈ（２）＝１であり、テーブル値ｔｈ（３）＝２であるから、画像処理部５３０は、横方向のインデクス番号が１であり、縦方向のインデクス番号が２である係数セット（断片変倍）を選択し、この係数セットを用いて、変倍画素（２，３）の画素値を算出する。
【００２７】
制御部５４０は、画像処理プログラム５に含まれる他の構成を制御する。
例えば、制御部５４０は、要求される縮小率が１／２未満である場合に、各縮小処理の縮小率が１／２以上となるように、多段の縮小処理に分解し、これらの縮小処理を重畳的に行うよう他の構成を制御する。
【００２８】
データ出力部５５０は、画像処理部５３０により変倍された画像（変倍画像）の画像データを、通信装置２２又は記憶装置２４に出力する。
【００２９】
［実施形態１］
次に、第１の実施形態を説明する。第１の実施形態では画像の縮小を対象とし、画像処理部５３０は、基本縮小として、図６（Ａ）に示す１→１、２→１を使用する。なお、これらの基本縮小の組み合わせで任意の縮小を行うことができるのは明らかである。次に、断片縮小への分解を行う。本例では、図６（Ｂ）に示す４種類の断片縮小を使用し、これらにテーブル番号を与える。例えば、同じく図６（Ｂ）に示すテーブル番号を与えればよい。ここで、図６（Ｂ）の各断片縮小内の分数値は、本発明の一般化された重み付き縮小の概念における重み値である。更に、各断片縮小に対して入力画像上でのインクリメント量（移動量）を定めると良い。これは、縮小画素を順次決めて行く際に、縮小画素が入力画像上のどの位置にあるかを縮小処理時に計算しなくて済むようにするためのものである。ここでの、それぞれ横と縦のインクリメント量は、図６（Ｂ）で各断片縮小を構成している、横と縦の画素総数でそれぞれ与えられる。例えば、図６（Ｂ）左下に示す断片縮小を使用した場合、横方向のインクリメント量は１で、縦方向のインクリメント量は２である。つまり、次の画素を処理するために、入力画像上の参照位置を横方向に１画素移動させれば良い。また、１ラインの縮小処理が終わって次のラインに処理を移す際に、原画像上では２ライン先に参照位置を移動させれば良い。このように、各断片縮小に対して入力画像上のインクリメント量を与えると、縮小処理時の入力画像上の参照画素位置の計算も簡単化することができる。このようなインクリメント量を使用する前提に立つと、本実施形態のように、各断片縮小の横方向か縦方向どちらかを固定した際に、もう一方の方向に対するインクリメント量が一定値でなければならない点に注意する。
【００３０】
なお、本例の場合、図６（Ｃ）に示すように、図６（Ｂ）に示す断片縮小そのものが基本縮小に対応している。また、前述したように、縦方向及び横方向の組み合わせによって、断片縮小の処理が変わることに注意する。例えば、横方向には２→１で、縦方向にも２→１の基本縮小が必要となる場合には、図６（Ｂ）右下に示すように縦横両方に２→１縮小する断片縮小が使用される。以上の準備を予め行っておく。
【００３１】
以下、入力画素Ｗ×Ｈの画像をｗ×ｈに縮小する処理を説明する。ここでは、ｗ／Ｗ≧１／２、ｈ／Ｈ≧１／２として説明する。まず、テーブル生成部５２０は、横方向、縦方向、それぞれテーブルｔｗ（ｉ）、ｔｈ（ｊ）（ｉ＝１、…、ｗ、ｊ＝１、…、ｈ）を作成する。各テーブルは以下のように機械的に決めることができる。
ｔｗ（ｉ）＝（（ｉ＋１）＊Ｗ）／ｗ−（（ｉ）＊Ｗ）／ｗ−１    （ｉ＝１、…、ｗ）
ｔｈ（ｊ）＝（（ｊ＋１）＊Ｈ）／ｈ−（（ｊ）＊Ｈ）／ｈ−１    （ｊ＝１、…、ｈ）
なお、ここでは、ｔｗ（ｉ）、ｔｈ（ｊ）は、縮小画像中の注目画素を処理するのに、横方向と縦方向、それぞれ入力画像から参照する画素数を算出し、その値から１を除算した値となっている。
【００３２】
テーブル生成部５２０によりテーブルが作成されたら、後は、画像処理部５３０が、作成されたテーブルを用いて、縮小画素値を順に計算してゆけば良い。画像の左上から横方向に縮小処理を進めてゆく。ｗ×ｈサイズの縮小画像中の座標（ｉ、ｊ）の画素値の算出は、横と縦のテーブル番号ｔｗ（ｉ）、ｔｈ（ｊ）で指示される断片縮小を使用する。例えば、ｔｗ（ｉ）＝０、ｔｈ（ｊ）＝１であれば、図６（Ｂ）の左下に示す断片縮小を使用して、入力画像上の対象画素である縦方向に続く２画素ａ、ｂに対して、１／２ａ＋１／２ｂを算出して座標（ｉ、ｊ）の縮小画素値とすればよい。次の座標（ｉ＋１、ｊ）の計算の際には、予め上述したインクリメント量を参照し、入力画像上の参照位置を画素ａの一画素右側に移動させる。また、１ラインの処理が終わり、ｊ＋１ライン目の処理に移る際に、入力画像上の縦方向に画素ａから見て２ライン下に移動させ、横方向は座標０に戻す。このようにして、テーブルを参照し、断片縮小を実行し、各断片縮小に付随した入力画像の参照位置のインクリメントを実行しながら、各縮小画素を決めてゆき、全ての縮小画素を決めたら、データ出力部５５０が縮小画像を出力して処理を終える。
【００３３】
なお、以上の説明は、縮小比率がｗ／Ｗ≧１／２、ｈ／Ｈ≧１／２であることを前提に説明したが、ｗ／Ｗ<１／２、あるいはｈ／Ｈ<１／２の場合には、制御部５４０は、テーブル生成部５２０及び画像処理部５３０を制御して、一旦ｗ１／Ｗ≧１／２、ｈ１／Ｈ≧１／２を満たすｗ１、ｈ１を用意させ、上述の方法でＷ×Ｈサイズの入力画像をｗ１×ｈ１サイズに縮小させ、更にｗ１×ｈ１サイズをｗ×ｈサイズに縮小させれば良い。なお、ここで更にｗ／ｗ１<１／２、あるいはｈ／ｈ１<１／２の場合には、更にｗ２、ｈ２というように、段階的に縮小すれば良い。例えば、Ｗ＝１２８０、Ｈ＝９６０、ｗ＝６００、ｈ＝４００の場合には、ｗ１＝６４０、ｈ１＝４８０として、１２８０×９６０→６４０×４８０→６００×４００の順で縮小を行えば良い。なお、このようにｗ１、ｈ１を選択すると、初めの縮小は高速な１／２平均値縮小を使用できる。
【００３４】
第１の実施形態において、図６（Ｂ）に示した断片縮小の重み自体は、各参照画素の平均値そのものを採用しており、断片縮小自体は通常の投影法と同じである。しかしながら、画像全体で見た場合には、各断片縮小が組み合わされて一般化された重み付き縮小を実現しており、通常の投影法とは異なる結果を与えることができる。実際、本実施形態による縮小画像は、単純間引き法に比べて細線の消えやジャギーが大きく緩和されて高画質であり、かつ投影法よりも大きく高速化された処理となっている。
【００３５】
［実施形態２］
次に、第２の実施形態を説明する。第２の実施形態でも画像の縮小を対象とし、基本縮小として、図７（Ａ）に示す１→１、２→１、３→２、４→３、５→４を使用する。第１の実施形態よりも基本縮小の数が増えているが、やはりこれらの基本縮小の組み合わせで任意の縮小を行うことができるのは明らかである。次に、断片縮小への分解を行う。本例では、図７（Ｂ）に示す２５種類の断片縮小を使用し、これらにテーブル番号を与える。例えば、同じく図７（Ｂ）に示すテーブル番号を与えればよい。図７（Ｂ）の各断片縮小内の分数値は、一般化された重み付き縮小の概念における重み値である。第１の実施形態と同様に、各断片縮小に入力画像上でのインクリメント量を与える。ここでも、それぞれ横と縦のインクリメント量は、図７（Ｂ）で各断片縮小を構成する横と縦の画素総数でそれぞれ与えられる。但し、テーブル番号２、３、４に対応する断片縮小には、１／２画素サイズの画素が図示してあるが、このうち、各断片縮小において、右側もしくは下側にある１／２サイズ画素は、インクリメント量に含めないことを意味している。例えば、横方向のテーブル番号２や４の断片縮小群は、いずれも横方向のインクリメント量は１であることに注意する。
【００３６】
なお、本例の場合、図７（Ｃ）に示すテーブル番号の組み合わせによって、各基本縮小を定める。多くの断片縮小が共有化されていることが理解できる。
【００３７】
以下、入力画素Ｗ×Ｈの画像をｗ×ｈに縮小する処理を説明する。ここでも、ｗ／Ｗ≧１／２、ｈ／Ｈ≧１／２として説明する。まず、テーブル生成部５２０は、横方向、縦方向、それぞれテーブルｔｗ（ｉ）、ｔｈ（ｊ）（ｉ＝１、…、ｗ、ｊ＝１、…、ｈ）を作成する。各テーブルは、第１の実施形態と同様に、まず、
ｔｗ（ｉ）＝（（ｉ＋１）＊Ｗ）／ｗ−（（ｉ）＊Ｗ）／ｗ−１    （ｉ＝１、…、ｗ）
ｔｈ（ｊ）＝（（ｊ＋１）＊Ｈ）／ｈ−（（ｊ）＊Ｈ）／ｈ−１    （ｊ＝１、…、ｈ）
で定める。これによって、第１の実施形態と同じ０１のテーブル番号が与えられ、０が基本縮小１→１、１が基本縮小２→１に対応する。次に、横方向と縦方向の各テーブル中の番号列に関して、以下の置換処理を行う。
０１→２３            （基本縮小３→２に対応）
００１→２４３        （基本縮小４→３に対応）
０００１→２４４３    （基本縮小５→４に対応）以上によって、横縦それぞれのテーブルに０から４までのテーブル番号が割り付けられた。
【００３８】
テーブルを作成したら、後は、画像処理部５３０が、このテーブルを用いて、縮小画素値を順に計算してゆけば良い。画像の左上から横方向に縮小処理を進めれば良い。以下の縮小処理は、第１の実施形態と全く同じである。縮小率がｗ／Ｗ<１／２、あるいはｈ／Ｈ<１／２の場合にも第１の実施形態と同様に行えば良い。つまり、第１の実施形態と第２の実施形態の違いは、基本縮小と断片縮小の作成方法、更にテーブルとインクリメント量の値の違いのみであり、処理自体は全く同じものとなっている。
【００３９】
本実施形態においては、図７（Ｂ）に示した断片縮小の重みとして、各参照画素の面積比平均値以外の値も採用している。これは重みの計算を高速化するための工夫であり、実際に本実施形態の重みは、全て２＾ｎ（２のべき乗）による除算で済むようにしており、シフト演算による高速化を行うことができるようになっている。例えば、横と縦のテーブル番号が共に２で与えられる断片縮小は、投影法の概念では４／９、２／９、２／９、１／９の重みであるところを本実施形態では３／８、２／８、２／８、１／８として使用している。前述したように、このような一般化された重み付き縮小の概念では、ブロック自体の局所的な平均値は縮小前後で保存しないものの、図１（Ｅ）に示す拘束条件は満たしているために、画像全体として見た場合には縮小前後の濃度変化という点で大きな影響を及ぼしていない。
【００４０】
第２の実施形態による縮小画像は、第１の実施形態に比べて、更に細線の消えやジャギーが緩和されて高画質であり、画質の観点では、純粋な投影法に近づいている。速度に関しては、第１の実施形態よりも若干処理時間が掛かる程度であり、投影法よりもまだ充分高速に処理することができる。つまり、第２の実施形態の方法は、充分軽い処理負荷で、投影法並みの画質を得ることができている。
【００４１】
第１の実施形態と第２の実施形態の例を見ることで、様々な縮小処理を実現することができることが理解できる。このうち、第１の実施形態は最も高速な部類に属し、第２の実施形態はやや高画質な部類に属している。もちろん、基本縮小及び断片縮小の選択の仕方によって、より高画質な部類の縮小を構成することもできるし、以下の第３の実施形態に説明するように、第１の実施形態と第２の実施形態の間の部類を構成することもできる。このように、対象機器やシステム環境に応じて、予め基本縮小と断片縮小を選択しておくことによって、速度／画質のバランスを柔軟に選択することが可能となっている。あるいは複数の基本縮小の係数セットを予め用意しておき、ユーザの指定したモードによって切り替えてもよい。
【００４２】
［実施形態３］
次に、第３の実施形態を説明する。第３の実施形態でも画像の縮小を対象とし、基本縮小として、図８（Ａ）に示す１→１、２→１、３→２を使用する。やはりこれらの基本縮小の組み合わせで任意の縮小を行うことができるのは明らかである。次に、断片縮小への分解を行う。本例では、図８（Ｂ）に示す９種類の断片縮小を使用し、例えば、同じく図８（Ｂ）に示すテーブル番号を与えればよい。図８（Ｂ）の各断片縮小内の分数値は、一般化された重み付き縮小の概念における重み値である。また、第２の実施形態と同様、各断片縮小に与える入力画像上でのインクリメント量は、図８（Ｂ）で各断片縮小を構成する横と縦の画素総数でそれぞれ与えられる。更に図８（Ｃ）に示すテーブル番号の組み合わせによって、各基本縮小を定める。やはりいくつかの断片縮小が共有化されている。
【００４３】
以下、入力画素Ｗ×Ｈの画像をｗ×ｈに縮小する処理を説明する。ここでも、ｗ／Ｗ≧１／２、ｈ／Ｈ≧１／２として説明する。横方向、縦方向、それぞれのテーブルｔｗ（ｉ）、ｔｈ（ｊ）（ｉ＝１、…、ｗ、ｊ＝１、…、ｈ）を、第１の実施形態と同様に、まず、
ｔｗ（ｉ）＝（（ｉ＋１）＊Ｗ）／ｗ−（（ｉ）＊Ｗ）／ｗ−１    （ｉ＝１、…、ｗ）
ｔｈ（ｊ）＝（（ｊ＋１）＊Ｈ）／ｈ−（（ｊ）＊Ｈ）／ｈ−１    （ｊ＝１、…、ｈ）
で定める。これによって、第１の実施形態と同じ０１のテーブル番号が与えられ、０が基本縮小１→１、１が基本縮小２→１に対応する。次に、テーブル生成部５２０は、横方向と縦方向の各テーブル中の番号列に関して、以下の置換処理を行う。
０１→２１            （基本縮小３→２に対応）
以上によって、横縦それぞれのテーブルに０から２までのテーブル番号が割り付けられた。
【００４４】
テーブルを作成したら、後は、画像処理部５３０が、このテーブルを用いて、縮小画素値を順に計算してゆけば良いが、これは第１及び第２の実施形態と同様である。本例でも、第１及び第２の実施形態との違いは基本縮小と断片縮小の作成方法、更にテーブルとインクリメント量の値の違いのみであり、処理自体は全く同じである。本実施形態でも、図８（Ｂ）に示した断片縮小の重みとして、２＾ｎによる除算で済むようにしており、シフト演算による高速化を行うことができるようにしている。第３の実施形態による縮小画像は、第１の実施形態に比べて、更に細線の消えやジャギーが緩和されて高画質であり、かつ第２の実施形態よりも高速である。
【００４５】
［実施形態４］
次に、第４の実施形態を説明する。
第１から第３の実施形態では、縮小処理のみを行うよう構成していたが、本実施形態では、縮小に加えて、低倍率（２倍以下）の拡大あるいは、縦横で拡大/縮小が異なるような場合を対象として、入力画素Ｗ×Ｈの画像をｗ×ｈに変倍する処理を説明する。本実施形態では、２≧ｗ／Ｗ>０、２≧ｈ／Ｈ>０として説明する。なお、２倍以上の拡大が必要となる場合には、特開２００３−１４３３９９号公報や特開２００３−２８３８１１号公報などに開示された高品位な画像拡大処理を適用すれば良い。
【００４６】
初めに、変倍率が２≧ｗ／Ｗ≧０．５、２≧ｈ／Ｈ≧０．５の場合を説明する。
第４の実施形態では、基本変倍として、図９（Ａ）の左側に示す１→１（インクリメント１）、２→１、３→２、４→３、５→４、１→１（インクリメント０）、２→３、３→４、４→５、を使用する。なお、インクリメント量の違いにより、１→１の基本変倍は２種類用意している。
ここで、基本変倍とは、基本縮小及び基本拡大を含む概念であり、断片変倍とは、断片縮小及び断片拡大を含む概念である。本例では、任意変倍を対象とし、これらの基本変倍の組み合わせで任意の変倍を行うことができる。断片変倍への分解は、本例では、図９（Ｂ）に示す４９種類の断片変倍を使用し、これらにテーブル番号を与える。例えば、同じく図９（Ｂ）に示すテーブル番号を与えればよい。図９（Ｂ）の各断片変倍内の分数値は、一般化重み付き変倍の概念における重み値である。各断片変倍に原画像上でのインクリメント量を与える。それぞれ横と縦のインクリメント量は、図９（Ｂ）で各断片変倍を構成する横と縦の画素総数でそれぞれ与える。テーブル番号−２、−１、２、３、４に対応する断片変倍には、１／２画素サイズの画素が図示してあるが、このうち、各断片変倍において、右側もしくは下側にある１／２サイズ画素は、インクリメント量に含めないことを意味する。さらには、テーブル番号−１に関する画素も、インクリメント量に含めないことを意味する。つまり、テーブル番号−２、−１、０、１、２、３、４、の断片変倍のインクリメント量はそれぞれ、１、０、１、２、２、１、１、となる。従って、テーブル番号−２と３、テーブル番号−１と０、テーブル番号１と４の断片変倍は重み値自体はそれぞれ共有化されているが、インクリメント量のみが異なっている。
【００４７】
なお、本例の場合、図９（Ａ）の右側に示すテーブル番号の組み合わせによって、各基本変倍を定める。
【００４８】
テーブル生成部５２０（図４）は、変換テーブルの作成処理として、まず、横方向、縦方向、それぞれテーブルｔｗ（ｉ）、ｔｈ（ｊ）（ｉ＝１、…、ｗ、ｊ＝１、…、ｈ）を作成する。各テーブルを、
ｔｗ（ｉ）＝（（ｉ＋１）＊Ｗ）／ｗ−（（ｉ）＊Ｗ）／ｗ−１    （ｉ＝１、…、ｗ）
ｔｈ（ｊ）＝（（ｊ＋１）＊Ｈ）／ｈ−（（ｊ）＊Ｈ）／ｈ−１    （ｊ＝１、…、ｈ）
で定める。これによって、本実施形態の場合、０、１、−１のテーブル番号が与えられ、０が基本変倍１→１（インクリメント量１）、１が基本変倍２→１、−１が基本変倍１→１（インクリメント量０）、にそれぞれ対応する。なお、このテーブル番号の初期設定の仕方から、−１と１が、それぞれｔｗ列、ｔｈ列の中に同時に現れることはない。つまり、拡大ならば０、１のみ現れ、縮小ならば０、−１のみが現れ、例えば、縦が拡大、横が縮小ならばｔｈは０、１、ｔｗは０、−１のみとなる。
次に、テーブル生成部５２０は、横方向と縦方向の各テーブル中の番号列に関して、以下の置換処理を行う。
０１→２３            （基本変倍３→２に対応）
００１→２４３        （基本変倍４→３に対応）
０００１→２４４３    （基本変倍５→４に対応）
０（−１）→（−１）４                  （基本変倍２→３に対応）
００（−１）→（−１）（−２）２         （基本変倍３→４に対応）
０００（−１）→（−１）（−２）４２     （基本変倍４→５に対応）
以上によって、横縦それぞれのテーブルに−２から４までのテーブル番号が割り付けられた。なお、基本変倍２→３、３→４、４→５は、本来はそれぞれ（−１）４０、（−１）（−２）２０、（−１）（−２）４２０、で与えられるが、上記置換処理では、最後の０の置換を行わないが、これは変倍率の適応範囲の拡大と処理簡略化のためである。例えば基本変倍２→３を例に説明すると、０（−１）０の列は（−１）４０に置換するので３つ目の０→０の置換はもともと必要ない。また０（−１）（−１）の列は（−１）４（−１）という置換と考えることで、１．５倍から２倍までの拡大にも対応することができる。
【００４９】
テーブルを作成したら、後は、画像処理部５３０が第１〜第３の実施形態と全く同様に変倍画素値を順に計算してゆけば良い。本実施形態の場合、縮小時には実施形態１と全く同じ画質を与え、更に拡大を含む変倍も行うことができる。予め縮小のみ使用するような場合には実施形態１の構成としておき、任意変倍も必要であるような場合には本実施形態の構成としても良い。
【００５０】
次に、変倍率が０．５>ｗ／Ｗまたは０．５>ｈ／Ｈの場合を説明する。変換テーブルｔｗ（ｉ）、ｔｈ（ｊ）（ｉ＝１、…、ｗ、ｊ＝１、…、ｈ）を、これまでと同様、
ｔｗ（ｉ）＝（（ｉ＋１）＊Ｗ）／ｗ−（（ｉ）＊Ｗ）／ｗ−１    （ｉ＝１、…、ｗ）
ｔｈ（ｊ）＝（（ｊ＋１）＊Ｈ）／ｈ−（（ｊ）＊Ｈ）／ｈ−１    （ｊ＝１、…、ｈ）
で定める。このとき、例えば０．５>ｗ／Ｗならば、ｔｗはｎ＝（ｉｎｔ）（Ｗ／ｗ）−１に対して、ｎ、ｎ＋１の値のみで構成される。ここで、（ｉｎｔ）（＊）は＊の小数部分を切り捨てる演算である。
テーブルを作成したら、後はこれまでの変倍後画素値を順に計算してゆく。変倍後画像の（ｉ、ｊ）座標の変倍後画素値は、原画像上の該当位置から、（ｔｗ（ｉ）＋１）×（ｔｈ（ｊ）＋１）サイズブロック内全画素の平均値とすれば良い。なお、平均値演算の際の除算値（ｔｗ（ｉ）＋１）×（ｔｈ（ｊ）＋１）は、一般に２＾ｎ値でないが、これは、０．５倍以下の変倍率の場合、縮小後の画素数が充分に少なく、従って最後の除算処理自体の総量が小さく、速度低下の影響が少ないことを見越してのことである。その意味では、必要に応じて、例えば０．２５倍から０．５倍までなど、まだある程度変倍率が大きい部分では、これまで同様に基本変倍や断片変倍に分解して処理するようにしても良い。なお、例えばこのような０．２５から０．５倍以下を断片変倍に分解して処理するためには、０．５倍から１．０倍までの断片変倍に加えて、３画素を１画素に縮める断片変倍、４画素を１画素に縮める断片変倍、をそれぞれ縦横方向の組み合わせとして追加する必要があり、テーブルが増大する傾向がある。そのため、テーブル参照の時間バランスを見て決めても良い。縦と横で大きく変倍率が異なるなどの場合にも、変倍率に応じて、基本変倍に分解するか直接平均値を採用するか、使い分けても良い。このように、０．０倍から０．５倍の範囲でも直接処理できる構成は、１／２＾ｎを前段に置く構成よりもメモリ使用量を節約でき、また高速化することができる。
【００５１】
［実施形態５］
変倍処理後にシャープフィルタを掛けることで、投影法特有のぼけた印象をシャープ化し、見た目の画質を向上することができる。
そこで、第５の実施形態における画像処理プログラム５２は、図１０（Ａ）に例示するように、フィルタ処理部５６０を追加した構成をとる。
このような投影法特有のぼけた印象は、文字や線画を含む画像（例えば地図画像）などで起こりやすいため、本例のフィルタ処理部５６０は、入力画像が文字線画の場合、あるいは文字線画モードのようなモードが指定された場合のみ、第１〜第４の実施形態の中のいずれかの方法で変倍した後の画像（すなわち、画像処理部５３０により変倍された画像）に対して、シャープフィルタを掛ける。
シャープフィルタは、例えば、図１０（Ｂ）に例示するものとすれば良い。
なお、原画像が１６色画像などの限定色画像の場合、上記第１〜第４の実施形態の処理によって、中間調の値が発生しぼけた印象が出る場合がある。一方、最近傍法で処理した場合には、細線の消えなどの画質劣化が大きいが、変倍後の画像の発色は原画像に近いため、ぼけた印象は少なく、その点で好ましい印象となる場合もある。しかしながら、本実施形態によれば、ぼけて中間調となった画像に対してシャープフィルタが掛けられシャープ化され、ぼけた印象が改善されて更に発色も原画像に近くすることができる。もちろん、変倍処理としては第１〜第４の実施形態の方法を使用するため、細線の消えなどの画質劣化の心配もない。
【００５２】
［実施形態６］
第６の実施形態では、入力画像が２値画像の場合の処理を説明する。第１〜第５の実施形態では、２４ビットカラー画像や８ビットグレー画像などの多値画像を対象にしていた。
そこで、本実施形態の画像処理プログラム５４は、図１１（Ａ）に例示するように、画像処理部５３０による処理（すなわち、第１〜第５の実施形態における処理）の前段に、２値画像を多値化する処理（例えば、８ビットグレー画像化する多値化処理）を行う二値多値変換部５７０と、画像処理部５３０による処理の後段に、多値画像を２値化する処理（例えば、８ビットグレー画像を２値化する２値化処理）を行う多値二値変換部５８０とを追加した構成をとる。なお、多値二値変換部５８０は必須の構成ではなく必要に応じて設けられる。
本例の構成により、２値画像に対して、第１〜第５の実施形態で説明した変倍処理を適用することができる。
【００５３】
入力された２値画像を多値化する方法として、二値多値変換部５７０は、例えば、単純多値化を適用する。
なお、入力された２値画像が誤差拡散画像で、変倍率が０．８〜１．２程度である場合のみ、フィルタ処理部５６０が、単純多値化後の画像に対して、ローパスフィルタ（ＬＰＦ）を掛けることが望ましい。入力された画像が誤差拡散画像であるか否かが判別できない場合には、入力された２値画像全てに対して、変倍率が０．８〜１．２程度のときにローパスフィルタ処理を行えば良い。
ローパスフィルタは、例えば図１１（Ｂ）に例示するものとすれば良い。
【００５４】
画像処理部５３０は、上記の多値化処理がなされた多値画像に対して、変倍処理を適用する。変倍処理は、例えば、第４の実施形態で説明した方法を使えばよい。
そして、多値二値変換部５８０は、変倍処理がなされた多値画像に対して、２値化処理を適用する。なお、「１ビット画像入力→アンチエイリアス変倍→８ビット画像出力」の場合には、最後の２値化処理は必要ない。また、「１ビット画像入力→変倍→１ビット画像出力」の場合には、最後の２値化は単純２値化、誤差拡散による２値化などを使用する。また、入力画像が単純２値化系画像の場合（文字画像に多い）には、最後の２値化は単純２値化が良い。また、入力画像が誤差拡散画像の場合（イメージ画像に多い）には、最後の２値化は誤差拡散が良い。
なお、両者の中間的なタイプとして、ハーフトーンマスク（例えばＢａｙｅｒ２値化）でも良い。入力画像の種別が判別できない場合には、誤差拡散かこのタイプを使用するのが好適である。
【００５５】
また、多値二値変換部５８０は、処理が縮小であり、かつ単純２値化を使用する場合に、縮小率の２乗に比例して閾値を変動させることで、文字や線の消えを防ぎながら高画質に２値化できる。
最後の２値化処理の切り替えは、入力画像のタイプやモード別に行っても良いし、変倍率別に行っても良い。例えば、高縮小率の場合には、誤差拡散またはＢａｙｅｒ２値化を使用し、低縮小率〜拡大の場合には単純２値化を使用しても良い。
【図面の簡単な説明】
【００５６】
【図１】画像の縮小処理を説明する図である。
【図２】基本縮小を例示する図である。
【図３】画像処理装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図４】制御装置２０（図３）により実行される画像処理方法を実現する画像処理プログラム５の機能構成を例示する図である。
【図５】画像処理部５３０による処理の概要を説明する図である。
【図６】第１の実施形態における基本縮小、断片縮小及びテーブル番号を例示する図である。
【図７】第２の実施形態における基本縮小、断片縮小及びテーブル番号を例示する図である。
【図８】第３の実施形態における基本縮小、断片縮小及びテーブル番号を例示する図である。
【図９】第４の実施形態における基本変倍、断片変倍及びテーブル番号を例示する図である。
【図１０】（Ａ）は、第２の画像処理プログラム５２の機能構成を例示し、（Ｂ）は、シャープフィルタを例示する図である。
【図１１】（Ａ）は、第３の画像処理プログラム５４の機能構成を例示し、（Ｂ）は、ローパスフィルタを例示する図である。
【符号の説明】
【００５７】
２・・・画像処理装置
５・・・画像処理プログラム
５００・・・データ入力部
５１０・・・記憶部
５２０・・・テーブル生成部
５３０・・・画像処理部
５４０・・・制御部
５５０・・・データ出力部
５６０・・・フィルタ処理部
５７０・・・二値多値変換部
５８０・・・多値二値変換部
【図１】
2008054271.tif 000003
【図２】
2008054271.tif 000004
【図３】
2008054271.tif 000005
【図４】
2008054271.tif 000006
【図５】
2008054271.tif 000007
【図６】
2008054271.tif 000008
【図７】
2008054271.tif 000009
【図８】
2008054271.tif 000010
【図９】
2008054271.tif 000011
【図１０】
2008054271.tif 000012
【図１１】
2008054271.tif 000013