(57)【要約】【課題】ある画像データについて解像度変換を行う際に、あらかじめ用意された係数を使用して負荷の低減を図りつつ、画像の品質の低下を低減する。【解決手段】所定方向の原画像データの１画素区間を等間隔にｄ個に区分する複数の位置にそれぞれ関連づけられた重み係数を、原画像データ（所定方向の画素数がＮｐ１）の画素の画素値に掛けて重み付け和を計算し、新画像データ（画素数がＮｐ２）の画素値を計算する。（ａ）ｉ／ｄ（ｉ＝０〜ｄ）の中で（Ｎｐ１／Ｎｐ２）の小数部分に近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和である係数Ｃｒを計算する。（ｂ）画素数が（Ｃｒ×Ｎｐ２）に最も近い整数Ｎｐ３である第３の画像データを生成する。その際、第１の画像データの画像の端に画素を加えるか、画像の端から画素を除く。（ｃ）重み係数を、第３の画像データの画素の画素値に適用して、第２の画像データの画素の画素値を計算する。【選択図】図３
2010114767.tif 000002
【特許請求の範囲】
【請求項１】
所定の方向に沿った原画像データの１画素区間内を等間隔にｄ個（ｄは２以上の整数）に区分する複数の位置にそれぞれ関連づけられた１以上の重み係数を、前記原画像データの１以上の対応する画素の画素値に掛けて、重み付け和を計算することによって、新画像データの画素の画素値を得て、前記新画像データを生成する画像処理装置であって、
前記原画像データとしての第１の画像データの前記所定の方向に沿った画素数を、第１の画素数Ｎｐ１（Ｎｐ１は正の整数）とし、
前記新画像データとしての第２の画像データの前記所定の方向に対応する方向に沿った画素数を第２の画素数Ｎｐ２（Ｎｐ２は、Ｎｐ１とは異なる正の整数）としたとき、
前記画像処理装置は、
（ａ）ｉ／ｄ（ｉは、０以上ｄ以下の各整数）の中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和である係数Ｃｒを計算する係数決定部と、
（ｂ）前記所定の方向に沿った画素数が（Ｃｒ×Ｎｐ２）に最も近い整数であるＮｐ３である第３の画像データを生成する中間画像データ生成部であって、前記第１の画像データの画像の端に画素を加えること、前記第１の画像データの画像の端から画素を除くこと、または、前記第１の画像データを前記第３の画像データとすることにより、前記第３の画像データを生成する中間画像データ生成部と、
（ｃ）前記重み係数を、前記第３の画像データの１以上の画素の画素値に掛けて重み付け和を計算することによって、前記第２の画像データの画素の画素値を計算して、前記第２の画像データを生成する変換画像データ生成部と、を含む画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記係数決定部は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも小さい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算し、
前記中間画像データ生成部は、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成する、画像処理装置。
【請求項３】
請求項１記載の画像処理装置であって、
前記係数決定部は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも大きい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算し、
前記中間画像データ生成部は、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する、画像処理装置。
【請求項４】
請求項１記載の画像処理装置であって、
前記係数決定部は、前記ｉ／ｄの中で前記小数部分に最も近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算し、
前記中間画像データ生成部は、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より小さいときには、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成し、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より大きいときには、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する、画像処理装置。
【請求項５】
所定の方向に沿った原画像データの１画素区間内を等間隔にｄ個（ｄは２以上の整数）に区分する複数の位置にそれぞれ関連づけられた１以上の重み係数を、前記原画像データの１以上の画素の画素値に掛けて、重み付け和を計算することによって、新画像データの画素の画素値を得て、前記新画像データを生成する画像処理方法であり、
前記所定の方向に沿った画素数が第１の画素数Ｎｐ１（Ｎｐ１は正の整数）である前記原画像データとしての第１の画像データに基づいて、前記所定の方向に対応する方向に沿った画素数が第２の画素数Ｎｐ２（Ｎｐ２は、Ｎｐ１とは異なる正の整数）である前記新画像データとしての第２の画像データを生成する際に、
（ａ）ｉ／ｄ（ｉは、０以上ｄ以下の各整数）の中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和である係数Ｃｒを計算する工程と、
（ｂ）前記所定の方向に沿った画素数が（Ｃｒ×Ｎｐ２）に最も近い整数であるＮｐ３である第３の画像データを生成する工程であって、前記第１の画像データの画像の端に画素を加えること、前記第１の画像データの画像の端から画素を除くこと、または、前記第１の画像データを前記第３の画像データとすることにより、前記第３の画像データを生成する工程と、
（ｃ）前記重み係数を、前記第３の画像データの１以上の画素の画素値に掛けて重み付け和を計算することによって、前記第２の画像データの画素の画素値を計算して、前記第２の画像データを生成する工程と、を含む画像処理方法。
【請求項６】
請求項５記載の方法であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも小さい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成する工程である、方法。
【請求項７】
請求項５記載の方法であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも大きい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する工程である、方法。
【請求項８】
請求項５記載の方法であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より小さいときには、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成し、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より大きいときには、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する工程である、方法。
【請求項９】
コンピュータにおいて実行され、所定の方向に沿った原画像データの１画素区間内を等間隔にｄ個（ｄは２以上の整数）に区分する複数の位置にそれぞれ関連づけられた１以上の重み係数を、前記原画像データの１以上の画素の画素値に掛けて、重み付け和を計算することによって、新画像データの画素の画素値を得て、前記新画像データを生成するためのコンピュータプログラムであり、
前記所定の方向に沿った画素数が第１の画素数Ｎｐ１（Ｎｐ１は正の整数）である前記原画像データとしての第１の画像データに基づいて、前記所定の方向に対応する方向に沿った画素数が第２の画素数Ｎｐ２（Ｎｐ２は、Ｎｐ１とは異なる正の整数）である前記新画像データとしての第２の画像データを生成する際に、
（ａ）ｉ／ｄ（ｉは、０以上ｄ以下の各整数）の中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和である係数Ｃｒを計算する第１の機能と、
（ｂ）前記所定の方向に沿った画素数が（Ｃｒ×Ｎｐ２）に最も近い整数であるＮｐ３である第３の画像データを生成する工程であって、前記第１の画像データの画像の端に画素を加えること、前記第１の画像データの画像の端から画素を除くこと、または、前記第１の画像データを前記第３の画像データとすることにより、前記第３の画像データを生成する第２の機能と、
（ｃ）前記重み係数を、前記第３の画像データの１以上の画素の画素値に掛けて重み付け和を計算することによって、前記第２の画像データの画素の画素値を計算して、前記第２の画像データを生成する第３の機能と、前記コンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ある画像データに基づいて解像度変換を行い、その画像データの画像よりも画素数が多い画像の画像データ、またはその画像データの画像よりも画素数が少ない画像の画像データを得る技術に関する。
【背景技術】
【０００２】
従来より、画素ごとの色を階調値で表す画像データにつき、解像度変換を行う技術が存在する。たとえば、ある従来技術においては、解像度変換の画像を構成する複数の画素の画素位置（以下、「新画素位置」という」）を算出した後に、これらの各画素の画素値を補間処理によって計算する。
【０００３】
しかし、各画素の画素値を計算によって求めると、システムへの負荷が大きく、処理に時間を要する。
【０００４】
一方で、あらかじめ用意した係数（フィルタ係数）を用いて、それらを用いた重み付け和によって新画素位置の画素値を計算する方法が存在する。その方法においては、解像度変換前の画像を構成する画素（旧画素）がちょうどその位置に存在しない、ある新画素位置の画素値を計算する際、その新画素位置の近傍に存在する旧画素の複数の画素値にそれら重み係数を掛けて、それらの重み付け和によって新画素位置の画素値を計算する方法が存在する。
【０００５】
しかし、あらかじめ用意された重み係数は、あらかじめ決められた画素位置（たとえば、旧画素の１画素区間中の左から１／４，２／４，３／４の位置）についてのみ用意することができる。このため、任意の倍率に適した重みを提供できるわけではない。よって、あらかじめ用意された重み係数を用いて新画素位置の画素値を計算すると、ほとんどの場合において、各画素の画素値を毎回、計算によって求める場合に比べて、生成される画像の品質が低くなる。
【０００６】
【特許文献１】特開平１１−３５３４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は、従来技術における上述の課題の少なくとも一部を取り扱うためのものであり、ある画像データについて解像度変換を行う際に、あらかじめ用意された係数を使用して負荷の低減を図りつつ、画像の品質の低下を低減することを目的とする。
【課題を解決するための手段】
【０００８】
１．第１の態様：
上述の課題の少なくとも一部を解決するため、本発明では、所定の方向に沿った原画像データの１画素区間内を等間隔にｄ個（ｄは２以上の整数）に区分する複数の位置にそれぞれ関連づけられた１以上の重み係数を、前記原画像データの１以上の画素の画素値に掛けて、重み付け和を計算することによって、新画像データの画素の画素値を得て、前記新画像データを生成する画像処理方法において、以下の処理を行う。
【０００９】
前記所定の方向に沿った画素数が第１の画素数Ｎｐ１（Ｎｐ１は正の整数）である前記原画像データとしての第１の画像データに基づいて、前記所定の方向に対応する方向に沿った画素数が第２の画素数Ｎｐ２（Ｎｐ２は、Ｎｐ１とは異なる正の整数）である前記新画像データとしての第２の画像データを生成する。その際、以下の処理を行う。
【００１０】
（ａ）ｉ／ｄ（ｉは、０以上ｄ以下の各整数）の中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和である係数Ｃｒを計算する。なお、「ｉ／ｄ（ｉは、０以上ｄ以下の各整数）の中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値」とは、より具体的には、「ｉ／ｄの『ｉ』に０以上ｄ以下の各整数を代入した場合に得られる（ｄ＋１）個の値の中で、（Ｎｐ１／Ｎｐ２）の小数部分に最も近いまたは２番目に近い値」という意味である。
（ｂ）前記所定の方向に沿った画素数が（Ｃｒ×Ｎｐ２）に最も近い整数であるＮｐ３である第３の画像データを生成する工程であって、前記第１の画像データの画像の端に画素を加えること、前記第１の画像データの画像の端から画素を除くこと、または、前記第１の画像データを前記第３の画像データとすることにより、前記第３の画像データを生成する。
（ｃ）前記重み係数を、前記第３の画像データの１以上の画素の画素値に掛けて重み付け和を計算することによって、前記第２の画像データの画素の画素値を計算して、前記第２の画像データを生成する。
【００１１】
このような態様においては、新たに生成される第２の画像データの画素位置が、あらかじめ用意されている重み係数が対応する位置に一致するように、第３の画像データが生成される。そして、第２の画像データは、その第３の画像データに基づいて生成される。このため、あらかじめ用意されている重み係数の性能を生かして、第２の画像データの画素値を計算することができる。よって、画像データの所定の方向について解像度変換を行う際に、あらかじめ用意された重み係数を使用して負荷の低減を図りつつ、画像の品質の低下を低減することができる。
【００１２】
本明細書において、「重み付け和」は、「重み付け平均」を含む概念である。すなわち、「重み付け和」には、各値に係数を掛けたものを合計する処理のほか、各値に係数を掛けたものを合計し、その合計値を係数の合計で割る処理をも含む。
【００１３】
また、工程（ｂ）は、「前記第１の画像データの画像の端に画素を加えること」、「前記第１の画像データの画像の端から画素を除くこと」、および「前記第１の画像データを前記第３の画像データとすること」のうちのいずれかを実行しない態様とすることもできる。すなわち、工程（ｂ）は、いずれかを実行する工程であればよい。
【００１４】
上記の態様において、Ｎｐ２＞Ｎｐ１であるときには、（Ｎｐ１／Ｎｐ２）の整数部分は０となる。そして、第１の画像データの画像を拡大した画像を表す第２の画像データが得られる。
一方、Ｎｐ２＜Ｎｐ１であるときには、第１の画像データの画像を縮小した画像を表す第２の画像データが得られる。
【００１５】
なお、上記（ａ）〜（ｃ）の処理を、画像の水平方向および垂直方向のそれぞれについて行うことが好ましい。そのような態様とすれば、水平方向および垂直方向のそれぞれについて、画像を拡大および縮小することができる。
【００１６】
２．第２の態様：
上記第１の態様であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも小さい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成する工程であることが好ましい。
【００１７】
このような態様とすれば、第１の画像データの画像のうち、ユーザーが重視すると思われる中央部分を含む画像を表す第２の画像データを生成することができる。なお、工程（ｂ）においては、第１の画像データの画素以外の画素を含まないような第３の画像データを生成することが好ましい。
【００１８】
３．第３の態様：
上記第１の態様であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近いまたは２番目に近い値であって、前記小数部分よりも大きい値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する工程であることが好ましい。
【００１９】
このような態様とすれば、第１の画像データに含まれる画像をすべて含む画像を表す第２の画像データを生成することができる。
【００２０】
４．第４の態様：
上記第１の態様であって、
前記工程（ａ）は、前記ｉ／ｄの中で前記小数部分に最も近い値と、（Ｎｐ１／Ｎｐ２）の整数部分と、の和を、前記係数Ｃｒとして計算する工程であり、
前記工程（ｂ）は、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より小さいときには、前記第１の画像データの画素のうち、前記所定の方向に沿った中央の画素は少なくとも残し、前記所定の方向に沿った両端の連続する１以上の画素をそれぞれ除くことにより、前記第３の画像データを生成し、
前記ｉ／ｄの中で前記小数部分に最も近い値が、前記小数部分より大きいときには、前記第１の画像データの画像に対して、前記所定の方向に沿った両端に１以上の画素をそれぞれ加えることにより、前記第３の画像データを生成する工程であることが好ましい。
【００２１】
このような態様とすれば、ｉ／ｄの中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近い値が、（Ｎｐ１／Ｎｐ２）の小数部分よりも大きい値であるときには、第１の画像データに含まれる画像をすべて含む画像を表す第２の画像データを生成することができる。また、ｉ／ｄの中で（Ｎｐ１／Ｎｐ２）の小数部分に最も近い値が、（Ｎｐ１／Ｎｐ２）の小数部分よりも小さい値であるときにも、常に（Ｎｐ１／Ｎｐ２）の小数部分よりも小さい値が採用される態様に比べて、第１の画像データの画像のうち第２の画像データの画像に含まれなくなる部分を小さくすることができる。
【００２２】
なお、本発明は、以下に示すような種々の態様で実現することが可能である。
（１）画像生成方法、画像処理方法、画像データ生成方法。
（２）画像生成装置、画像処理装置、画像データ生成装置。
（３）上記の装置や方法を実現するためのコンピュータプログラム。
（４）上記の装置や方法を実現するためのコンピュータプログラムを記録した記録媒体。
（５）上記の装置や方法を実現するためのコンピュータプログラムを含み搬送波内に具現化されたデータ信号。
【発明を実施するための最良の形態】
【００２３】
Ａ．第１実施例：
Ａ１．装置構成：
図１は、本発明の実施例である画像処理装置の概略構成を示す説明図である。この画像処理装置は、画像データに対して所定の画像処理を行うパーソナルコンピュータ１００と、パーソナルコンピュータ１００に情報を入力する装置としてのキーボード１２０、マウス１３０および光学ディスクドライブ１４０と、情報を出力する装置としてのディスプレイ１１０およびプリンタ２２と、を備えている。コンピュータ１００は、ＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４を備えている。ＲＡＭ１０４は、固定ディスクと半導体メモリとを含む。
【００２４】
コンピュータ１００では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作する。このアプリケーションプログラム９５が実行されることで、コンピュータ１００のＣＰＵ１０２は様々な機能を実現する。
【００２５】
アプリケーションプログラム９５が実行され、キーボード１２０やマウス１３０からユーザーの指示が入力されると、ＣＰＵ１０２は、光学ディスクドライブ１４０内のＤＶＤやＣＤ−Ｒ等の光学ディスクからメモリ内に画像データを読み込む。ＣＰＵ１０２は、画像データに対して所定の画像処理を行って、ビデオドライバを介して画像をディスプレイ１１０に表示する。また、ＣＰＵ１０２は、画像処理を行った画像データを、プリンタドライバを介してプリンタ２２に印刷させることもできる。さらに、ＣＰＵ１０２は、キーボード１２０やマウス１３０を介したユーザーの指示に従って、画像のレタッチや解像度変換などの処理を行うこともできる。
【００２６】
パーソナルコンピュータ１００は、アプリケーションプログラム９５のデータとして、ＲＡＭ１０４内に、フィルタ係数Ｃｆを保持している。「フィルタ係数」とは、画像データの垂直方向または水平方向の解像度変換に使用される係数であって、原画像データの垂直方向または水平方向の１画素区間内を等間隔にｄ個（ｄは２以上の整数）に区分する複数の位置にそれぞれ関連づけられた１以上の重み係数である。一組のフィルタ係数は、原画像データの垂直方向または水平方向（以下、「基準方向」という）に沿って並ぶ１以上の画素の画素値に掛けて、それらの重み付け和を計算することによって、新画像データの一つの画素の画素値を計算するのに使用される。なお、画素の画素値は、画素の色の濃度や明るさの階調を表す値である。
【００２７】
Ａ２．フィルタ係数：
以下では、フィルタ係数の原理的な使用方法とともにフィルタ係数の構成を説明することによって、フィルタ係数がどのような画素位置に対して最適化されているかを説明する。
【００２８】
図２は、フィルタ係数の使用方法の一例とともに、位置Ｐｐｃ１１に対応づけられたフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］を一例として示す図である。図２の上段には、基準方向Ｄ１に沿って並ぶ原画像データとしての第１の画像データＰ１の画素位置Ｐｐ１を示す。第１の画像データＰ１は、外形が長方形の画像のデータである。基準方向Ｄ１は、ここでは、第１の画像データＰ１の画像の外形の長辺の方向とする。以下、第１の画像データＰ１の長方形の画像の長辺の方向を便宜的に「水平方向」と呼ぶ。これに対して、第１の画像データＰ１の長方形の画像の短辺の方向を便宜的に「垂直方向」と呼ぶ。図２の例において、第１の画像データＰ１は、水平方向の幅が７２０画素の画像データである。
【００２９】
図２の中段には、基準方向Ｄ１に対応する方向Ｄ２に沿って並ぶ新画像データとしての第２の画像データＰ２の画素位置Ｐｐ２を示す。第２の画像データＰ２は、第１の画像データＰ１を基準方向Ｄ１に沿って解像度変換して得られる画像データである。したがって、第２の画像データＰ２も、外形が長方形の画像のデータである。以下、第２の画像データＰ２の画像において第１の画像データＰ１の「水平方向」に対応する方向を、便宜的に第２の画像データＰ２の画像の「水平方向」と呼ぶ。図２の例において、第２の画像データＰ２は、水平方向Ｄ２に沿った幅が１０２４画素の画像データである。すなわち、第２の画像データＰ２の画像は、基準方向としての水平方向について第１の画像データＰ１の画像を拡大して得られる画像である。
【００３０】
図２の上段および中段において、それぞれ中に数字が付された丸が、画素の中心位置（本明細書において「画素位置」という」）を示す。図２の上段に示される０〜３の各画素位置に位置する第１の画像データＰ１の画素を画素Ｐｘ１０〜Ｐｘ１３と表記する。図２の中段に示される０〜４の各画素位置に位置する第２の画像データＰ２の画素を画素Ｐｘ２０〜Ｐｘ２４と表記する。
【００３１】
図２の例において、互いに対応する水平方向Ｄ１，Ｄ２の画素数は、第１の画像データＰ１に比べて第２の画像データＰ２の方が多い。このため、同じ画像を表す場合には、図２に示すように、第２の画像データＰ２の画素位置Ｐｐ２の間隔の方が、第１の画像データＰ１の画素位置Ｐｐ１の間隔よりも短くなる。たとえば、第１の画像データＰ１の画素位置の間隔を「１」とすると、第２の画像データＰ２の画素位置の間隔は、「７２０／１０２４＝０．７０３１２５」である。よって、第２の画像データＰ２の各画素Ｐｘ２０，Ｐｘ２１，Ｐｘ２２，Ｐｘ２３，．．．の画素位置は、順に、０，０．７０３１２５，１．４０６２５，２．１０９３７５．．．等となる（図２の上段参照）。
【００３２】
図２の下段には、フィルタ係数が保持される位置Ｐｐｃ０〜Ｐｐｃ１６が示されている。図２の例において、位置Ｐｐｃ０とＰｐｃ１６は、原画像データの隣接する二つの画素の画素位置に一致する。フィルタ係数が保持される位置Ｐｐｃ０〜Ｐｐｃ１６は、原画像データの隣接する二つの画素位置に挟まれた区間に相当する区間を１６等分する位置である。すなわち、本実施例においては、ｄ＝１６である。区間左端の位置を「０」とし、右端の位置を「１」としたときの、位置Ｐｐｃ０〜Ｐｐｃ１６の位置を表す値０，０．０６２５，．．．〜０．９３７５，１を図２の下段に示している。
【００３３】
図２の例においては、位置Ｐｐｃ０〜Ｐｐｃ１６には、それぞれ４個ずつのフィルタ係数が関連づけられている。位置Ｐｐｃｉ（ｉ＝１〜１６）に対応づけられた４個のフィルタ係数を［Ｃｉａ，Ｃｉｂ，Ｃｉｃ，Ｃｉｄ］と表記する（ｉ＝１〜１６）。たとえば、位置Ｐｐｃ１１には、［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］が関連づけられている。
【００３４】
たとえば、第１の画像データＰ１を基準方向Ｄ１について解像度変換して第２の画像データＰ２を得る際、第２の画像データＰ２において、左端の画素Ｐｘ２０の画素値Ｖ２０は、第１の画像データＰ１の左端の画素Ｐｘ１０の画素値Ｖ１０と同じ値とすることができる。しかし、第２の画像データＰ２において、左端から２番目に位置する画素Ｐｘ２１に対応する位置「１」（図２上段において画素位置「０．７０３１２５」に相当）には、第１の画像データＰ１の画素は存在しない。このため、第２の画像データＰ２の画素Ｐｘ２１の画素値Ｖ２１は以下のように計算される。
【００３５】
すなわち、フィルタ係数が保持される位置Ｐｐｃ０〜Ｐｐｃ１６のうち、画素Ｐｘ２１の画素位置を第１の画像データの画素位置で表現したときの値（０．７０３１２５）の小数部分に最も近い位置が選択される。図２の例では、位置Ｐｐｃ１１（０．６８７５）である（図２において一点鎖線で示す区間の対応関係参照）。そして、画素Ｐｘ２１の画素値Ｖ２１は、位置Ｐｐｃ１１に対応づけられたフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］と、画素Ｐｘ２１の画素位置の近傍に存在する第１の画像データの画素Ｐｘ１０，Ｐｘ１１，Ｐｘ１２の画素値Ｖ１０，Ｐ１１，Ｖ１２を使用して、以下のように計算される。
【００３６】
Ｖ２１＝（Ｃ１１ａ）×Ｖ１ｘ＋（Ｃ１１ｂ）×Ｖ１０＋（Ｃ１１ｃ）×Ｖ１１＋（Ｃ１１ｄ）×Ｖ１２  ・・・  （１）
【００３７】
式（１）は、画素Ｐｘ２１の右側で最も画素Ｐｘ２１に近い位置にある第１の画像データの画素Ｐｘ１１の画素値Ｖ１１と（第３項）、画素Ｐｘ２１の右側で２番目に画素Ｐｘ２１に近い位置にある第１の画像データの画素Ｐｘ１２の画素値Ｖ１２と（第４項）、画素Ｐｘ２１の左側で最も画素Ｐｘ２１に近い位置にある第１の画像データの画素Ｐｘ１０の画素値Ｖ１０と（第２項）、Ｖ１ｘと（第１項）、の重み付け和を計算する式である。重み係数として、フィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］が使用される。
【００３８】
Ｖ１ｘは、たとえば、画素Ｐｘ２１の左側で最も画素Ｐｘ２１に近い位置にある第１の画像データの画素Ｐｘ１０の画素値Ｖ１０とすることができる。また、画素値の最小値または最大値とすることができる。Ｖ１ｘは、画素Ｐｘ２１の右側で２番目に画素Ｐｘ２１に近い位置にある第１の画像データの画素が存在しないために便宜的に使用される値である。画素値を計算すべき第２の画像データの画素がより中央よりの画素である場合には、式（１）の第１項は、画素値を求める画素の右側で２番目にその画素に近い位置にある第１の画像データの画素の画素値にフィルタ係数（Ｃ１１ａ）を掛けて得られる項となる。
【００３９】
同様に、第２の画像データＰ２の画素Ｐｘ２２の画素値Ｖ２２を計算する際には、位置Ｐｐｃ０〜Ｐｐｃ１６のうち、画素Ｐｘ２２の画素位置（１．４０６２５）の小数部分（０．４０６２５）に最も近い位置が選択される（図２において二点鎖線で示す区間の対応関係参照）。図２の例ではＰｐｃ７（０．４３７５）である。そして、以下同様に、画素Ｐｘ２２の左側で最も近い２個の第１の画像データの画素Ｐｘ１１，Ｐｘ１０、および右側で最も近い第１の画像データの２個の画素Ｐｘ１３，Ｐｘ１４の画素値を使用して、画素値を計算することができる。
【００４０】
他の画素Ｐｘ２３，Ｐｘ２４，．．．についても、第２の画像データＰ２の画素位置であって、対応する位置に第１の画像データＰ１の画素が存在しないものについては、同様の手順で、その画素の位置に最も近い位置に対応づけられたフィルタ係数の組と、その画素の画素位置近傍（図２の例では、左側で最も近い２個の画素、および右側で最も近い２個の画素位置）に存在する第１の画像データの画素の画素値を使用して、画素値を計算することができる。
【００４１】
すなわち、第２の画像データＰ２の画素Ｐｘ２ｋ（ｋは、０以上Ｎｐ２以下の整数。Ｎｐ２は、第２の画像データＰ２の方向Ｄ２の画素数）の画素値Ｖ２ｋ（ｋは、０以上Ｎｐ２以下の整数）を計算する際には、位置Ｐｐｃ０〜Ｐｐｃ１６のうち、第１の画像データの画素位置で表現したときの画素Ｐｘ２ｋの画素位置の小数部分に最も近い位置のフィルタ係数が選択される。選択されたフィルタ係数を、［Ｃｓｋａ，Ｃｓｋｂ，Ｃｓｋｃ，Ｃｓｋｄ］と表記する。このとき、画素Ｐｘ２ｋの画素値Ｖ２ｋは以下の式（２）にしたがって計算される。
【００４２】
Ｖ２ｋ＝（Ｃｓｋａ）×Ｖ１ｐ＋（Ｃｓｋｂ）×Ｖ１ｑ＋（Ｃｓｋｃ）×Ｖ１ｒ＋（Ｃｓｋｄ）×Ｖ１ｓ  ・・・  （２）
Ｖ１ｐ：画素Ｐｘ２ｋの左側で２番目に画素Ｐｘ２ｋに近い位置にある第１の画像データの画素Ｐ１ｐの画素値。
Ｖ１ｑ：画素Ｐｘ２ｋの左側で最も画素Ｐｘ２ｋに近い位置にある第１の画像データの画素Ｐ１ｑの画素値。
Ｖ１ｒ：画素Ｐｘ２ｋの右側で最も画素Ｐｘ２ｋに近い位置にある第１の画像データの画素Ｐ１ｒの画素値。
Ｖ１ｓ：画素Ｐｘ２ｋの右側で２番目に画素Ｐｘ２ｋに近い位置にある第１の画像データの画素Ｐ１ｓの画素値。
【００４３】
なお、第２の画像データＰ２の画素Ｐｘ２ｋが画像の端の近傍にあり、画素Ｐ１ｐ，Ｐ１ｑ，Ｐ１ｒ，Ｐ１ｓのいずれか（Ｐ１ｘとする）が第１の画素データ中に存在しない場合には、画素Ｐ１ｐ，Ｐ１ｑ，Ｐ１ｒ，Ｐ１ｓの画素で存在するもののうちでＰ１ｘの位置に最も近い位置の画素の画素値が、対応する画素値として使用される。
【００４４】
また、新画像データとしての第２の画像データＰ２の画素位置であって、原画像データとしての第１の画像データＰ１の画素位置で表したときにその値が整数となるような画素位置の画素については、対応する画素位置にある原画像データの画素の画素値そのものが新画像データの対応する位置の画素の画素値となるように、フィルタ係数が定められる。
【００４５】
また、フィルタ係数は、基準方向に沿って画像を拡大または縮小するために使用される。このため、基準方向に垂直な方向については上記の処理後も画素数は維持される。よって、基準方向について上記の処理を行った後に、基準方向に垂直な方向についても同様な処理を行うことにより、縦横の比率を維持した状態で画像の拡大または縮小を行うことができる。
【００４６】
フィルタ係数は、一例として以上で説明したように使用される。このようなフィルタ係数を使用して、新たに生成する画像データの画素値を計算することによって、新たに生成する画像データの各画素位置に基づいて毎回、計算により補間を行う態様に比べて、解像度変換に要する負荷を低減することができる。
【００４７】
ただし、各フィルタ係数は、画素位置を第１の画像データの画素位置で表記した場合の小数部分が、位置Ｐｐｃ０，Ｐｐｃ．．．Ｐｐｃ１５，Ｐｐｃ１６（０，０．０６２５，．．．〜０．９３７５，１）に「一致する」画素位置にある画素の画素値を計算するのに最適な値に定められている。よって、画素位置を第１の画像データの画素位置で表記した場合の小数部分と「最も近い」位置Ｐｐｃ０，Ｐｐｃ．．．Ｐｐｃ１５，Ｐｐｃ１６のフィルタ係数が選択され使用される上記の使用方法においては、必ずしもフィルタ係数の性能が最大限に発揮されるわけではない。
【００４８】
以上で説明した各位置Ｐｐｃ０〜Ｐｐｃ１６にそれぞれ対応づけられた［Ｃｉａ，Ｃｉｂ，Ｃｉｃ，Ｃｉｄ］（ｉ＝１〜１６）の集合を、本実施例において「フィルタ係数Ｃｆ」と呼ぶ。パーソナルコンピュータ１００は、アプリケーションプログラム９５のデータとして、ＲＡＭ１０４内に、フィルタ係数Ｃｆを保持している。
【００４９】
なお、以上のフィルタ係数の使用方法は、フィルタ係数の性質および利点を説明するために、フィルタ係数の基本的な使用態様を例示したものであり、本実施例における画素値の計算方法そのものを示すわけではない。
【００５０】
Ａ３．画像データを解像度変換するための全体の手順：
図３は、第１実施例において画像データを解像度変換する手順を示すフローチャートである。アプリケーションプログラム９５が実行され、キーボード１２０やマウス１３０からユーザーの指示が入力されると、ＣＰＵ１０２は、まず、ステップＳ１０で、光学ディスクドライブ１４０内のＤＶＤやＣＤ−Ｒ等の光学ディスクからメモリ内に原画像データとしての第１の画像データを読み込む。この第１の画像データの基準方向Ｄ１としての水平方向の画素数Ｎｐ１は、ここでは７２０であるものとする。なお、Ｎｐ１は、任意の正の整数を取りうる。
【００５１】
ステップＳ２０で、ＣＰＵ１０２は、ユーザーから、生成すべき第２の画像データの水平方向の画素数Ｎｐ２（Ｎｐ２は正の整数）に関する情報を受け取る。たとえば、ＣＰＵ１０２は、アプリケーションプログラム９５の解像度変換の操作画面を通じて、第１の画像データの基準方向Ｄ１に対応する方向に沿った第２の画像データの画素数Ｎｐ２を受け取ることができる。ここでは、Ｎｐ２＝１０２４であるものとする。なお、Ｎｐ２は、任意の正の整数を取りうる。
【００５２】
なお、ＣＰＵ１０２は、ユーザーから第２の画像データの画素数Ｎｐ２を直接入力されることもでき、解像度変換の倍率Ｍ＝（Ｎｐ２／Ｎｐ１）の形で、第２の画像データの水平方向の画素数Ｎｐ２（Ｎｐ２は正の整数）に関する情報をユーザーから受け取ることもできる。その場合には、ＣＰＵ１０２は、Ｎｐ２＝Ｍ×Ｎｐ１から第２の画像データの水平方向の画素数Ｎｐ２を得ることができる。
【００５３】
ステップＳ３０では、ＣＰＵ１０２は、ｉ／ｄ（ｉは、０以上ｄ以下の各整数。ｄは、２以上の整数。本実施例においてｄ＝１６）の中から、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２以下であり、かつ小数部分ｄ１２に最も近いものを選択する。以下、ステップＳ３０で選択されたｉ／ｄを「ｉ０／ｄ」と表記する。
【００５４】
Ｎｐ１＝７２０、Ｎｐ２＝１０２４である場合には、（Ｎｐ１／Ｎｐ２）は、０．７０３１２５である。よって、１／１６，２／１６，３／１６，．．．，１５／１６，１６／１６の中で、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２（＝０．７０３１２５）に最も近いもの（ｉ０／ｄ）は、１１／１６＝０．６８７２５である。
【００５５】
なお、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２は、「（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２に最も近いｉ１／ｄ」と、「（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２に２番目に近いｉ２／ｄ」とに挟まれて存在するはずである。ここで、ｉ１とｉ２は、０〜１６のいずれかの整数であって、連続する整数である（図２の例において、Ｐｐｃ１１＝０．６８７２５とＰｐｃ１２＝０．７５参照）。このため、ステップＳ３０で選択されるｉ０／ｄは、ｉ／ｄ（ｉ＝０〜ｄ。ｄ＝１６）のうち、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２に最も近いものか、または２番目に近いものである。
【００５６】
ステップＳ４０では、ＣＰＵ１０２は、以下の式（３）に基づいて所定の係数であるカーネルＣｒを計算する。
【００５７】
Ｃｒ＝｛（Ｎｐ１／Ｎｐ２）の整数部分｝＋（ｉ０／ｄ）  ・・・  （３）
＝｛０．７０３１２５の整数部分｝＋０．６８７２５
＝０．６８７２５
【００５８】
なお、図３のステップＳ３０，Ｓ４０の機能を実現するＣＰＵ１０２の機能部を、係数決定部１０２ａとして図１に示す。
【００５９】
図３のステップＳ５０では、ＣＰＵ１０２は、まず、（Ｃｒ×Ｎｐ２）に最も近い整数Ｎｐ３を計算する。ここでは、０．６８７２５×１０２４＝７０３．７４４である。よって、Ｎｐ３＝７０４である。
【００６０】
そして、ＣＰＵ１０２は、ステップＳ５０で、第１の画像データＰ１に基づいて、第１の画像データＰ１の基準方向Ｄ１に対応する方向Ｄ３の画素数がＮｐ３である第３の画像データＰ３を生成する。なお、以下では、第３の画像データＰ３の画像において第１の画像データＰ１の「水平方向」に対応する方向を、便宜的に第３の画像データＰ３の画像の「水平方向」と呼ぶ。
【００６１】
ステップＳ５０では、より具体的には、基準方向の画素数がＮｐ１である第１の画像データＰ１の両端の画素を等しい数だけ削除して、中央の画素を含み画素数がＮｐ３である画像データを第３の画像データＰ３として生成する。なお、Ｎｐ３とＮｐ１の差が奇数である場合は、第１の画像データの画像の左側または右側から削除される画素数を、他方に対して１だけ増やすことができる。また、本明細書において、「所定の方向に沿った中央の画素」とは、所定の方向に沿った全画素の数が奇数の場合には、中央の１個の画素を意味し、所定の方向に沿った全画素の数が偶数の場合には、中央の２個の画素を意味する。
【００６２】
本実施例においては、ＣＰＵ１０２は、ステップＳ５０において、第１の画像データＰ１の水平方向の両端の画素を８画素ずつ削除して、中央の画素を含む幅７０４画素の画像データを第３の画像データＰ３として生成する。
【００６３】
なお、ステップＳ３０で選択されたｉ０／ｄが、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２と等しい場合には、上記式（３）で得られるＣｒは、（Ｎｐ１／Ｎｐ２）と等しくなる。よって、Ｎｐ３＝Ｃｒ×Ｎｐ２は、Ｎｐ１となる。このため、ステップＳ３０で選択されたｉ０／ｄが、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２と等しい場合には、ステップＳ５０では、第１の画像データから画素の削除をおこなわず、第１の画像データをそのまま第３の画像データとする。
【００６４】
これら図３のステップＳ５０の機能を実現するＣＰＵ１０２の機能部を、中間画像データ生成部１０２ｂとして図１に示す。
【００６５】
図３のステップＳ６０では、ＣＰＵ１０２は、第３の画像データＰ３（本実施例において、水平方向の画素数Ｎｐ３が７０４画素）に基づいて、第２の画像データＰ２（本実施例において、水平方向の画素数Ｎｐ２が１０２４画素）を生成する。その際、第２の画像データＰ２の画素位置であって、対応する位置に第３の画像データＰ３の画素が存在しないものについては、その画素位置に対応づけられたフィルタ係数の組を使用して、その画素の画素位置近傍に存在する第３の画像データの画素の画素値について、重み付け和を計算することにより、画素値が計算される。上記の「その画素位置に対応づけられたフィルタ係数群」とは、より詳しくは、その画素位置を元画像データとしての第１の画像データの画素位置で表現したときの小数部分に一致する位置に関連づけられているフィルタ係数群である。
【００６６】
図４は、本実施例におけるフィルタ係数の使用方法を示す図である。図４の上段には、第１の画像データの基準方向Ｄ１（水平方向）に対応する方向Ｄ３（水平方向）に沿って並ぶ第３の画像データＰ３の画素位置Ｐｐ３を示す。図４の中段には、図２と同様に、方向Ｄ２（水平方向）に沿って並ぶ新画像データとしての第２の画像データＰ２の画素位置Ｐｐ２を示す。図４の上段に示される０〜３の各画素位置に位置する第３の画像データＰ３の画素を画素Ｐｘ３０〜Ｐｘ３３と表記する。図４中において、図２に示される符号と同じ符号は、図２中で示される各符号が付された要素と同じ要素を表す。
【００６７】
図４において、第３の画像データＰ３は、水平方向Ｄ３に沿った幅が７０４画素の画像データである。第２の画像データＰ２は、水平方向Ｄ２に沿った幅が１０２４画素の画像データである。このため、第３の画像データＰ３の画素位置の間隔を「１」とすると、第２の画像データＰ２の画素位置の間隔は、「７０４／１０２４＝０．６８７５」である。なお、この値は式（３）で得られるカーネルＣｒに等しい。
【００６８】
第２の画像データＰ２の各画素Ｐｘ２０，Ｐｘ２１，Ｐｘ２２，．．．の画素位置を、第３の画像データＰ３の画素位置で表現すると、順に、０．６８７５，１．３７５，２．０６２５．．．等となる。これらはいずれもフィルタ係数が保持されている画素間隔、１／１６＝０．０６２５の整数倍の数である。これは、（ｉ）第３の画像データＰ３の画素の間隔を１としたときの第２の画像データの各画素の位置は、「第３の画像データＰ３の画素の間隔を１としたときの第２の画像データの画素の間隔」であるカーネルＣｒの整数倍（左端からｎ番目の画素については（ｎ−１）倍。ｎ＝１〜Ｎｐ２）であり、かつ、（ｉｉ）カーネルＣｒ自体が「フィルタ係数が保持されている画素間隔、１／１６＝０．０６２５」の整数倍の数となるように、第３の画像データＰ３の画素数Ｎｐ３が定められているためである（図３のステップＳ３０，Ｓ４０参照）。よって、第２の画像データＰ２の各画素Ｐｘ２０，Ｐｘ２１，Ｐｘ２２，．．．の画素位置を、第３の画像データＰ３の画素位置で表現したときの小数部分に対応する位置には、常にフィルタ係の組［Ｃｉａ，Ｃｉｂ，Ｃｉｃ，Ｃｉｄ］（ｉ＝０〜１６のいずれか）が保持されていることになる（図４参照）。
【００６９】
ステップＳ６０において、第２の画像データＰ２の画素Ｐｘ２ｊ（ｊは、０以上１０２３以下の整数）の画素値Ｖ２ｊ（ｊは、０以上１０２３以下の整数）を計算する際には、位置Ｐｐｃ０〜Ｐｐｃ１６のうち、画素Ｐｘ２ｊの画素位置の小数部分に一致する位置のフィルタ係数が選択される。
【００７０】
ステップＳ６０では、以下の式（４）に基づいて、画素Ｐｘ２ｊの画素値が計算される。なお、画素Ｐｘ２ｊの画素位置の小数部分と一致する位置のフィルタ係数を、［Ｃｍｊａ，Ｃｍｊｂ，Ｃｍｊｃ，Ｃｍｊｄ］と表記する。
【００７１】
Ｖ２ｊ＝（Ｃｍｊａ）×Ｖ３ｐ＋（Ｃｍｊｂ）×Ｖ３ｑ＋（Ｃｍｊｃ）×Ｖ３ｒ＋（Ｃｍｊｄ）×Ｖ３ｓ  ・・・  （４）
Ｖ３ｐ：画素Ｐｘ２ｊの左側で２番目に画素Ｐｘ２ｊに近い位置にある第３の画像データの画素Ｐ３ｐの画素値。
Ｖ３ｑ：画素Ｐｘ２ｊの左側で最も画素Ｐｘ２ｊに近い位置にある第３の画像データの画素Ｐ３ｑの画素値。
Ｖ３ｒ：画素Ｐｘ２ｊの右側で最も画素Ｐｘ２ｊに近い位置にある第３の画像データの画素Ｐ３ｒの画素値。
Ｖ３ｓ：画素Ｐｘ２ｊの右側で２番目に画素Ｐｘ２ｊに近い位置にある第３の画像データの画素Ｐ３ｓの画素値。
【００７２】
なお、第２の画像データＰ２の画素Ｐｘ２ｊが画像の端の近傍にあり、画素Ｐ３ｐ，Ｐ３ｑ，Ｐ３ｒ，Ｐ３ｓのいずれか（Ｐ３ｘとする）が存在しない場合には、画素Ｐ３ｐ，Ｐ３ｑ，Ｐ３ｒ，Ｐ３ｓの画素で存在するもののうちでＰ３ｘの位置に最も近い位置の画素の画素値が、対応する画素値として使用される。
【００７３】
図５は、図３のステップＳ５０，Ｓ６０において、水平方向の画素数Ｎｐ３が７０４画素である第３の画像データＰ３に基づいて、水平方向の画素数Ｎｐ２が１０２４画素である第２の画像データＰ２が生成される処理の結果を表す図である。四角のマスが、画像データＰ１，Ｐ２，Ｐ３における各画素を表し、マスの中の数字が、左端からの画素の番号を表す。水平方向Ｄ１の幅が７２０画素である第１の画像データＰ１の画素（図５上段において０番〜７１９番の画素）のうち、両端の画素ＰｘｄＬ，ＰｘｄＲ が削除された残りの画素で、水平方向Ｄ３の幅が７０４画素である第３の画像データの画素（図５上段において８番〜７１１番の画素）が構成される。そして、第３の画像データの画素の画素値に基づいて、水平方向の幅が１０２４画素である第２の画像データＰ２の画素（図５下段において０番〜１０２３番の画素）が生成される。
【００７４】
なお、図３のステップＳ６０の機能を実現するＣＰＵ１０２の機能部を、変換画像データ生成部１０２ｃとして図１に示す。
【００７５】
以上の処理により、水平方向について７２０画素から１０２４画素に拡大された画像が生成される。その後、生成された画像について、垂直方向についても同様の処理を行うことで、垂直方向と水平方向の比率がほぼ維持された拡大画像を生成することができる。垂直方向についての処理は、水平方向についての処理と略同様であるので、説明を省略する。
【００７６】
本実施例では、以上で説明したように、新たに生成される画素の画素位置が、常にフィルタ係数が保持されている位置に対応する位置となる（図３のステップＳ５０，Ｓ６０、ならびに図４参照）。このため、フィルタ係数の性能を最大限に発揮して第２の画像データＰ２を生成することができる。すなわち、あらかじめ用意するフィルタ係数を、それぞれが対応する位置（図４のＰｐｃ１〜Ｐｐｃ１５参照）に対して最適に定めることで、第２の画像データＰ２を生成する際に、画像の品質が高い画像データを生成することができる。
【００７７】
なお、以上では、画像を拡大する場合を例に説明した。しかし、第１の画像データの画素数Ｎｐ１と第２の画像データの画素数Ｎｐ２は、それぞれ任意の正の整数を取りうる。このため、Ｎｐ２＜Ｎｐ１の場合には、図３の処理の結果、画像は縮小される。Ｎｐ２＜Ｎｐ１の場合についても、上記と同様の処理を行うことができる。
【００７８】
なお、第１実施例においては、第１の画像データＰ１の画像の一部が第２の画像データＰ２には含まれないこととなる。しかし、第１の画像データＰ１の画像のうち、ユーザーが重視すると考えられる画像の中央部分は、第２の画像データの画像に反映される。また、フィルタ係数を十分細かい刻み間隔（たとえば、１画素間隔の１／１６以下）で設けておけば、第２の画像データＰ２に含まれない画像部分は、十分小さくなる。このため、フィルタ係数を十分細かい刻み間隔で設けておけば、第２の画像データの生成において、ユーザーが問題とするほどの大きさの画像部分が削除されることはない。そして、第１実施例によれば、解像度変換に際して、画像の両側に、第１の画像データに起因しない画像部分（たとえば黒の画像部分）を付加する態様に比べて、生成された画像がユーザーに奇異な印象を与えにくい。
【００７９】
Ａ４．比較例：
上記実施例では、第１の画像データＰ１に基づいて、フィルタ係数の適用に適した画素数を有する第３の画像データＰ３が生成され（図３のステップＳ５０）、その第３の画像データＰ３にフィルタ係数が適用されて、第２の画像データＰ２が生成される（同、ステップＳ６０）。これに対して、この比較例においては、第１の画像データＰ１に対してそのままフィルタ係数が適用されて、第２の画像データＰ２が生成される。
【００８０】
図６は、比較例において画像データを解像度変換する手順を示すフローチャートである。比較例の処理においては、実施例の図３の処理におけるステップＳ５０を含まない。また、比較例の処理においては、実施例の図３の処理におけるステップＳ６０に代えてステップＳ６０ｃを行う。比較例の処理の他のステップは、図３の処理の対応するステップと同じである。以下、相違点を中心に説明する。
【００８１】
ステップＳ６０ｃでは、ＣＰＵ１０２は、水平方向の画素数が７２０画素である第１の画像データＰ１に基づいて、水平方向の画素数が１０２４画素である第３の画像データＰ３を生成する。その際、第２の画像データＰ２の画素位置であって、対応する位置に第３の画像データＰ３の画素が存在しないものについては、以下のように決定されるフィルタ係数群と、その画素の画素位置近傍に存在する第１の画像データの画素の画素値を使用して、画素値が計算される。
【００８２】
比較例のステップＳ６０ｃにおいては、第２の画像データＰ２において左端からｎ番目（ｎは１以上Ｎｐ２以下の整数。ここではＮｐ２＝１０２４）の画素に対しては、カーネルＣｒの（ｎ−１）倍の小数部分に一致する位置のフィルタ係数が適用される。言い換えれば、左端からｎ番目画素は、カーネルＣｒの（ｎ−１）倍の位置に存在するものとみなされて、フィルタ係数が適用される。
【００８３】
たとえば、第２の画像データにおいて左端から２番目の画素Ｐｘ２１については、カーネルＣｒ＝０．６８７５の１倍の小数部分に一致する位置Ｐｐｃ１１＝０．６８７５のフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］が適用される。
【００８４】
しかし、実際には、第２の画像データにおいて左端から２番目の画素Ｐｘ２１の画素位置を第１の画像データＰ１の画素位置で表現した場合には、０．７０３１２５となる（図２参照）。位置Ｐｐｃ１１＝０．６８７５のフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］は、画素位置０．７０３１２５に最適化されたフィルタ係数ではない。このため、画素Ｐｘ２１の画素値Ｖ２１を計算するために、位置Ｐｐｃ１１＝０．６８７５のフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］を適用すると、フィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］の性能が最大限に発揮されず、得られる画素値Ｖ２１に誤差が混入する。
【００８５】
同様に、第２の画像データにおいて左端から３番目の画素Ｐｘ２２については、カーネルＣｒ＝０．６８７５の２倍（１．３７５）の小数部分に一致する位置Ｐｐｃ６＝０．３７５のフィルタ係数［Ｃ６ａ，Ｃ６ｂ，Ｃ６ｃ，Ｃ６ｄ］が適用される。しかし、実際には、第２の画像データの画素Ｐｘ２２の画素位置を第１の画像データＰ１の画素位置で表現した場合には、１．４０６２５となる（図２参照）。位置Ｐｐｃ６＝０．３７５のフィルタ係数［Ｃ６ａ，Ｃ６ｂ，Ｃ６ｃ，Ｃ６ｄ］は、画素位置１．４０６２５に最適化されたフィルタ係数ではない。このため、画素Ｐｘ２２の画素値Ｖ２２を計算するために、位置Ｐｐｃ６のフィルタ係数［Ｃ６ａ，Ｃ６ｂ，Ｃ６ｃ，Ｃ６ｄ］を適用すると、得られる画素値Ｖ２２に誤差が混入する。
【００８６】
図７は、比較例において、「第２の画像データのｎ番目の画素Ｐｘ２ｎの画素位置」（ｎは１以上Ｎｐ２以下の整数。ここではＮｐ２＝１０２４）を「原画像データである第１の画像データＰ１の画素位置」で表現した場合の値（表中で「元画素位置」と表記）と、フィルタ係数を選択する際に便宜的に使用される位置［Ｃｒ×（ｎ−１）］とのずれを示す表である。なお、表の上段には、第２の画像データ画素の番号ｎを示す。また、表の最上段には、第1の画像データの画素間隔を１としたときの第２の画像データの画素間隔を示す。そして、表の２段目には、カーネルＣｒを示す。図７から分かるように、「元画素位置」と、フィルタ係数を選択する際に便宜的に使用される位置［Ｃｒ×（ｎ−１）］とのずれは、右端の画素では約１６画素分にも相当する。
【００８７】
図８は、本実施例において、「第２の画像データのｎ番目の画素Ｐｘ２ｎの画素位置」（ｎは１以上Ｎｐ２以下の整数。ここではＮｐ２＝１０２４）を「原画像データである第３の画像データＰ３の画素位置」で表現した場合の値（表中で「元画素位置」と表記）と、フィルタ係数を選択する際に使用されるＣｒ×（ｎ−１）とのずれを示す表である。図８において、表の表記方法は図７と略同様である。図８から分かるように、本実施例においては、元画素位置と、［Ｃｒ×（ｎ−１）］との間にずれは生じない。本実施例においても、実際には、新たな画像データの画素値を計算する際に、左端からｎ番目画素は、カーネルＣｒの（ｎ−１）倍の位置に存在するものとみなされて、フィルタ係数が適用される。しかし、図８の表より、本実施例によれば、常に最適なフィルタ係数が適用されることが分かる。よって、本実施例によれば、解像度変換において、比較例に比べて品質の高い画像が得られる。
【００８８】
なお、比較例では、新たな画像データの各画素の画素値を計算する際には、カーネルの（ｎ−１）倍の位置の小数部分に対応するフィルタが適用される。これに対して、新たな画像データの各画素の画素位置をいちいち計算して、その小数部分に最も近いフィルタ係数を適用することもできる（上記Ａ２の説明参照）。しかし、そのような態様においても、前述のように、ずれのためにフィルタ係数の性能が最大限に発揮されず、本実施例に比べて画像の品質が劣ることには変わりはない。さらに、そのような態様は画素位置の計算のためにＣＰＵ１０２に与える負荷が大きく、解像度変換に要する時間が本実施例に比べて大幅に増大する。
【００８９】
Ｂ．第２実施例：
第２実施例では、第１実施例の解像度変換の処理中、図３のステップＳ３０の処理に代えてステップＳ３２の処理が行われる。また、図３のステップＳ５０の処理に代えてステップＳ５２〜Ｓ５６の処理が行われる。第２実施例の他の点は、第１実施例と同じである。
【００９０】
図９は、第２実施例において画像データを解像度変換する手順を示すフローチャートである。第１実施例では、図３のステップＳ３０において、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２以下であり、かつ小数部分ｄ１２に最も近いｉ／ｄ（ｉは、０以上ｄ以下の各整数。ｄ＝１６）が選択される。これに対して、第２実施例のステップＳ３２においては、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２に最も近いｉ／ｄ（ｉは、０以上ｄ以下の各整数。ｄ＝１６）が選択される。このため、ステップＳ３２で選択されるｉ０／ｄは、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２よりも小さいこともあれば、大きいこともある。
【００９１】
ステップＳ５２では、ｉ０／ｄが、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２よりも大きいか否かが判定される。ｉ０／ｄが、小数部分ｄ１２以下である場合には、処理はステップＳ５４に進む。一方、ｉ０／ｄが、小数部分ｄ１２より大きい場合には、処理はステップＳ５６に進む。
【００９２】
ステップＳ５４における処理は、図３のステップＳ５０における処理と同じである。
【００９３】
ステップＳ５６においては、ＣＰＵ１０２は、まず、（Ｃｒ×Ｎｐ２）に最も近い整数Ｎｐ３を計算する。ｉ０／ｄが（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２より大きい場合には、Ｎｐ３＝Ｃｒ×Ｎｐ２は、Ｎｐ１よりも大きい値となる。このため、ステップＳ５６において、ＣＰＵ１０２は、第１の画像データＰ１の水平方向の両端の画素を等しい数だけ付加して、第３の画像データＰ３として生成する。付加する画素の画素値は、０である。なお、Ｎｐ３とＮｐ１の差が奇数である場合は、左側または右側に付加される画素数を、他方に対して１だけ増やすことができる。以下の処理は第１実施例と同じである。
【００９４】
このような態様とすれば、ステップＳ５６の処理が行われる場合には、第１の画像データの両端から画像が削除されることなく第２の画像データが生成される。
【００９５】
また、ステップＳ５４の処理が行われる場合にも、常に（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２以下のｉ０／ｄが選択される第１実施例に比べて（図３のステップＳ３０参照）、削除される画像部分の大きさを小さくすることができる。第１実施例の態様においては、ステップＳ３０において、「（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２より小さい」という条件を満たすために、ｉ／ｄ（ｉは、０以上ｄ以下の各整数。ｄ＝１６）中で、「（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２」に２番目に近いものが、ｉ０／ｄとして選択されることがある。これに対して、第２実施例では、ステップＳ３２において、常に、ｉ／ｄ（ｉは、０以上ｄ以下の各整数。ｄ＝１６）中で、「（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２」に最も近いものが、ｉ０／ｄとして選択される。このため、ステップＳ５４の処理が行われる場合にも、第１実施例に比べて、削除される画像部分の大きさを小さくすることができる。
【００９６】
Ｃ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００９７】
Ｃ１．変形例１：
上記実施例においては、第１の画像データの画像の両端から画素を削除し（図３のステップＳ５０，図９のステップＳ５４参照）、または画像の両端に画素を付加することで（図６のステップＳ５６）、第３の画像データを生成する。しかし、第１の画像データの画像の一端から画素を削除し、または画像の一端に画素を付加することで、第３の画像データを生成する態様とすることもできる。なお、第１の画像データの画像の一端から画素を削除する態様においても、基準方向に沿った中央の画素については、第３の画像データの画像に反映されることが好ましい。
【００９８】
Ｃ２．変形例２：
上記実施例においては、フィルタ係数は、１画素区間を１６等分する位置について設けられている（図２，図４参照）。しかし、フィルタ係数は、１画素区間をより細かく区分する位置について設けることもでき、１画素区間をより大きく区分する位置について設けることもできる。ただし、フィルタ係数は、１画素区間を１６よりも多くの区間に均等に区分する位置について設けることが好ましい。
【００９９】
Ｃ３．変形例３：
上記第１実施例では、ｉ／ｄ（ｉ＝０〜１６）の中から、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２以下であり、かつ小数部分ｄ１２に最も近いものが選択される（図３のステップＳ３０参照）。しかし、ｉ／ｄ（ｉ＝０〜１６）の中から、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２以上であり、かつ小数部分ｄ１２に最も近いものが選択される態様とすることもできる。
【０１００】
そのような態様においては、図３のステップＳ５０の処理に変えて、図９のステップＳ５２の様な処理が行われる。ただし、選択されたｉ０／ｄが、（Ｎｐ１／Ｎｐ２）の小数部分ｄ１２と等しい場合には、第１の画像データに対して画素の付加おこなわず、第１の画像データをそのまま第３の画像データとする。
【０１０１】
このような態様とすれば、常に第１の画像データの画像をすべて含む第２の画像データを生成することができる。
【０１０２】
なお、第１の画像データに画素を付加して第３の画像データを生成する処理においては、第１の画像データの画像に加えられる画素の画素値は、第１の画像データに基づいて生成された画素値とすることができる。たとえば、第１の画像データの画像の端の画素の画素値と同じ画素値とすることができる。また、第１の画像データの画像に加えられる画素は、第１の画像データによらない所定の色（たとえば黒色や白色）の画素や、所定の模様を構成する画素とすることができる。
【０１０３】
Ｃ４．変形例４：
上記実施例においては、画像の外形の長辺方向の処理を先に行い、その後、短辺方向の処理を行うものとした。しかし、画像の外形の短辺方向の処理を先に行い、その後、長辺方向の処理を行うこともできる。
【０１０４】
Ｃ５．変形例５：
上記実施例においては、画像処理装置は、コンピュータ１００である。しかし、図３や図９の処理を行う画像処理装置は、様々な態様で実現することができる。たとえば、画像データを受け取るための入力端子などの画像データ入力部と、液晶ライトバルブユニットおよび投射光学系を含み画像データに基づいて画像を表示することができる画像出力部と、画像データ入力部を介して受け取った第１の画像データに基づいて第２の画像データを生成する画像処理部と、を備えるプロジェクタとすることができる。なお、プロジェクタにおいては、第１の画像データの画像の両端に黒色の画素が付加されても（図９のＳ５６参照）、ユーザーは、投射される画像から奇異な印象を受ける可能性は低い。
【０１０５】
また、図３や図９の処理を行う画像処理装置は、たとえば、光学ディスクや、半導体メモリ（フラッシュメモリ、ＳＤカードなど）を読み取ることができる記録媒体読み取り部や、媒体表面に形成された画像を読み取ることができるスキャナなどのデータ読み取り部、さらには画像データの入力端子といった画像データ入力部を備え、液晶ディスプレイなどの画像を表示することができる画像出力部を備えた、一体型プリンタとすることもできる。
【０１０６】
すなわち、画像処理装置としては、画像データを受け取ることができる画像データ入力部と、第１の画像データに基づいて第２の画像データを生成することができる画像処理部と、第２の画像データに基づいて画像を出力することができる画像出力部と、を備える態様とすることが好ましい。
【０１０７】
Ｃ６．変形例６：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェア（コンピュータプログラム）に置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、図１に示した計数決定部、中間画像データ生成部、変換画像生成部による処理をハードウェア回路で行うこととしてもよい。
【０１０８】
上述の機能を実現するコンピュータプログラムは、フロッピディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
【０１０９】
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
【０１１０】
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ、ＤＶＤのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施例である画像処理装置の概略構成を示す説明図。
【図２】フィルタ係数の使用方法の一例とともに、位置Ｐｐｃ１１に対応づけられたフィルタ係数［Ｃ１１ａ，Ｃ１１ｂ，Ｃ１１ｃ，Ｃ１１ｄ］を示す図。
【図３】第１実施例において画像データを解像度変換する手順を示すフローチャート。
【図４】本実施例におけるフィルタ係数の使用方法を示す図。
【図５】第３の画像データＰ３に基づいて、第２の画像データＰ２が生成される処理の結果を表す図。
【図６】比較例において画像データを解像度変換する手順を示すフローチャート。
【図７】比較例における「第２の画像データのｎ番目の画素Ｐｘ２ｎの画素位置」と、フィルタ係数を選択する際に使用されるＣｒ×（ｎ−１）とのずれを示す表。
【図８】実施例における「第２の画像データのｎ番目の画素Ｐｘ２ｎの画素位置」と、フィルタ係数を選択する際に使用されるＣｒ×（ｎ−１）とのずれを示す表。
【図９】第２実施例において画像データを解像度変換する手順を示すフローチャート。
【符号の説明】
【０１１２】
２２…プリンタ
９５…アプリケーションプログラム
１００…パーソナルコンピュータ
１０２…ＣＰＵ
１０２ａ…係数決定部
１０２ｂ…中間画像データ生成部
１０２ｃ…変換画像データ生成部
１０３…ＲＯＭ
１０４…ＲＡＭ
１１０…ディスプレイ
１２０…キーボード
１３０…マウス
１４０…光学ディスクドライブ
Ｃ１１ａ〜Ｃ１１ｄ…位置Ｐｐｃ１１に対応するフィルタ係数
Ｃｆ…フィルタ係数
Ｃｒ…カーネル（係数）
Ｄ１…基準方向（実施例において画像データＰ１の水平方向）
Ｄ２…基準方向Ｄ１に対応する方向（実施例において画像データＰ２の水平方向）
Ｄ３…基準方向Ｄ１に対応する方向（実施例において画像データＰ３の水平方向）
Ｐｐ１…第１の画像データＰ１の画素位置
Ｐｐ２…第２の画像データＰ２の画素位置
Ｐｐ３…第３の画像データＰ３の画素位置
Ｐｐｃ０〜Ｐｐｃ１６…フィルタ係数が保持される位置
Ｐｘ１０〜Ｐｘ１３…第１の画像データＰ１の画素
ＰｘｄＬ…第１の画像データＰ１から第３の画像データＰ３が生成される際に画像の左端から削除される画素
ＰｘｄＲ…第１の画像データＰ１から第３の画像データＰ３が生成される際に画像の右端から削除される画素
Ｐｘ２０〜Ｐｘ２３…第２の画像データＰ２の画素
Ｐｘ３０〜Ｐｘ３３…第３の画像データＰ３の画素
ｎ…元画像データの画素の番号
【図１】
2010114767.tif 000003
【図２】
2010114767.tif 000004
【図３】
2010114767.tif 000005
【図４】
2010114767.tif 000006
【図５】
2010114767.tif 000007
【図６】
2010114767.tif 000008
【図７】
2010114767.tif 000009
【図８】
2010114767.tif 000010
【図９】
2010114767.tif 000011