(57)【要約】【課題】演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても高速に実行でき、細線消失の発生を防止できてソフトウェア処理に適した画像縮小方法を提供する。【解決手段】Ｓ１３で、ソース画像のＸ方向の画素数Ｎｓと２Ｎとを比較しＮｓが２Ｎ以下になった場合にＳ１４に移り、２２Ｎをデスティネーション画像の水平方向の画素数Ｎｄで割った値を算出してαとする。Ｓ１７において、残差Ｅがデスティネーション画像の水平方向の画素数Ｎｄ未満の場合に、Ｓ１９でデスティネーション画像の画素をＰｄ＝Ｐｓ（Ｘｓ）＋（α×Ｅ×（Ｐｓ（Ｘｓ＋１）−Ｐｓ（Ｘｓ）））／２２Ｎとして求める。２２Ｎでの除算はシフト演算で代用できるので高速に演算できる。【選択図】      図１
2004355216.tif 000002
【特許請求の範囲】
【請求項１】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎを決定する第１のステップと、
前記Ｎを用いて得られた２２Ｎを前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第２のステップと、
第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第３のステップと、
前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第４のステップと、
前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第４のステップに戻る第５のステップと、
前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を２Ｎビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第６のステップと、
前記デスティネーション画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第７のステップと、
を備えることを特徴とする画像縮小方法。
【請求項２】
前記第１の数は小数点以下が切り捨てられた整数であることを特徴とする請求項１に記載の画像縮小方法。
【請求項３】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａを用いて得られた２２Ｎａを前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を２Ｎａビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を有する第１の処理手順と、
前記第１方向とは直交する第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂを用いて得られた２２Ｎｂを前記デスティネーション画像の第２方向の画素数で除して第３の数を算出する第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を２Ｎｂビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を有する第２の処理手順と、
を備えることを特徴とする画像縮小方法。
【請求項４】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａを用いて得られた２２Ｎａを前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を２Ｎａビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を前記ソース画像の前記第１方向とは直交する第２方向に並んだラインのそれぞれに対して実行して前記第１方向縮小画像を生成する第１の処理手順と、
前記第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂを用いて得られた２２Ｎｂを前記デスティネーション画像の第２方向の画素数で除して第３の数を算出する第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を２Ｎｂビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を前記第１方向縮小画像の前記第１方向に並んだラインのそれぞれに対して実行する第２の処理手順と、
を備えることを特徴とする画像縮小方法。
【請求項５】
前記第１の数は小数点以下が切り捨てられた整数であり、
前記第３の数は小数点以下が切り捨てられた整数であることを特徴とする請求項３または４に記載の画像縮小方法。
【請求項６】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎを決定する第１のステップと、
前記Ｎと予め定めた正の整数Ｍとを用いて定めた２（Ｎ＋Ｍ）を前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第２のステップと、
第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第３のステップと、
前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第４のステップと、
前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数としソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第４のステップに戻る第５のステップと、
前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を（Ｎ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第６のステップと、
前記デスティネーション画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第７のステップと、
を備えることを特徴とする画像縮小方法。
【請求項７】
前記第１の数は小数点以下が切り捨てられた整数であることを特徴とする請求項６に記載の画像縮小方法。
【請求項８】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａと予め定めた正の整数Ｍとを用いて定めた２（Ｎａ＋Ｍ）を前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を（Ｎａ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を前記ソース画像の前記第１方向とは直交する第２方向に並んだラインのそれぞれに対して実行して前記第１方向縮小画像を生成する第１の処理手順と、
前記第１方向とは直交する第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂと予め定めた正の整数Ｍを用いて定めた２（Ｎｂ＋Ｍ）を前記デスティネーション画像の第２方向の画素数で除して第３の数を算出する第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を（Ｎｂ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を有する第２の処理手順と、
を備えることを特徴とする画像縮小方法。
【請求項９】
ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａと予め定めた正の整数Ｍとを用いて定めた２（Ｎａ＋Ｍ）を前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を（Ｎａ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を有する第１の処理手順と、
前記第１方向とは直交する第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂと予め定めた正の整数Ｍを用いて定めた２（Ｎｂ＋Ｍ）を前記デスティネーション画像の第２方向の画素数で除して第３の数を算出する第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を（Ｎｂ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を有する第２の処理手順と、を前記第１方向縮小画像の前記第１方向に並んだラインのそれぞれに対して実行する第２の処理手順と、
を備えることを特徴とする画像縮小方法。
【請求項１０】
前記第１の数は小数点以下が切り捨てられた整数であり、
前記第３の数は小数点以下が切り捨てられた整数であることを特徴とする請求項８または９に記載の画像縮小方法。
【請求項１１】
前記Ｍは４以上で１４以下の整数であることを特徴とする請求項６乃至１０の何れかに記載の画像縮小方法。
【請求項１２】
ソース画像から縮小されたデスティネーション画像をコンピュータに生成させる画像縮小処理プログラムにおいて、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａを用いて得られた２２Ｎａを前記デスティネーション画像の第１方向の画素数で除して整商を第１の数とする第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を２Ｎａビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を前記ソース画像の前記第１方向とは直交する第２方向に並んだラインのそれぞれに対して実行して前記第１方向縮小画像を生成する第１の処理手順と、
前記第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂを用いて得られた２２Ｎｂを前記デスティネーション画像の第２方向の画素数で除して整商を第３の数とする第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を２Ｎｂビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を前記第１方向縮小画像の前記第１方向に並んだラインのそれぞれに対して実行する第２の処理手順と、
を有することを特徴とする画像縮小処理プログラム。
【請求項１３】
ソース画像から縮小されたデスティネーション画像をコンピュータに生成させる画像縮小処理プログラムにおいて、
２Ｎａが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎａを決定する第１方向の第１のステップと、前記Ｎａと予め定めた正の整数Ｍとを用いて定めた２（Ｎａ＋Ｍ）を前記デスティネーション画像の第１方向の画素数で除して整商を第１の数とする第１方向の第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第１方向の第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第１方向の第４のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第１方向の第４のステップに戻る第１方向の第５のステップと、前記第１方向の第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに第１方向縮小画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記第１方向縮小画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を（Ｎａ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第１方向の第６のステップと、前記第１方向縮小画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第１方向の第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第１方向の第７のステップと、を有する第１の処理手順と、
前記第１方向とは直交する第２方向に対して、２Ｎｂが前記ソース画像の第２方向の画素数以上になる整数のうち最も小さい整数Ｎｂを決定する第２方向の第１のステップと、前記Ｎｂと予め定めた正の整数Ｍを用いて定めた２（Ｎｂ＋Ｍ）を前記デスティネーション画像の第２方向の画素数で除して整商を第３の数とする第２方向の第２のステップと、第４の数に前記ソース画像の第２方向の画素数を加えて新たな第４の数とする第２方向の第３のステップと、前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるか否かを判断する第２方向の第４のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数以上であるときに前記第４の数から前記デスティネーション画像の第２方向の画素数を減じて新たに第４の数とし前記第１方向縮小画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに前記第２方向の第４のステップに戻る第２方向の第５のステップと、前記第２方向の第４のステップで前記第４の数が前記デスティネーション画像の第２方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第２方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記第１方向縮小画像における対象画素よりも１だけ増大した第２方向の座標値の位置にある画素の画素情報値から前記第１方向縮小画像における対象画素の画素情報値を減じた値に前記第３の数および前記第４の数を乗じて得られた値を（Ｎｂ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記第１方向縮小画像における対象画素の画素情報値に加えることにより得る第２方向の第６のステップと、デスティネーション画像における対象画素の第２方向の座標値が前記デスティネーション画像の第２方向の画素数と同一であるかを判断し同一でないときに前記第２方向の第３のステップに戻り、同一であるときに第２方向の１ライン分の処理を終了する第２方向の第７のステップと、を有する第２の処理手順と、を前記第１方向縮小画像の前記第１方向に並んだラインのそれぞれに対して実行する第２の処理手順と、
を有することを特徴とする画像縮小処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像縮小方法に関し、特に、細線消去を防止する画像縮小方法および画像縮小処理プログラムに関する。
【０００２】
【従来の技術】
従来、画像の縮小方法には、縮小後の画素に最も近い縮小前の画像の画素を選択してコピーすることにより縮小画像を作成する最近傍法（ニアレストネイバ）と呼ばれる縮小方法がある。しかし、最近傍法では、縮小前の画像（ソース画像）のパタンと適用される縮小率とによっては、縮小後の画像（デスティネーション画像）で画素情報が完全に欠落してしまうことがある（例えば、特許文献１参照。）。
【０００３】
図６は、最近傍法による画像縮小のフローチャートである。まず、Ｘ方向に連続した画像を縮小する手順を、図６のフローチャートに従って説明する。ここで、縮小の対象となる画像（ソース画像と呼ぶ）の水平方向の画素数をＮｓ、縮小後の画像（デスティネーション画像と呼ぶ）の水平方向の画素数をＮｄとする。また、ソース画像の画素ステップで定義されたＸ座標での座標値をＸｓ、デスティネーション画像の画素ステップで定義されたＸ座標での座標値をＸｄとし、またそれらの位置にある画素をＰｓ（Ｘｓ）、Ｐｄ（Ｘｄ）で表す。また、ソース画像の画素がデスティネーション画像の画素として選択されるか否かを判定するために残差Ｅを用いる。
【０００４】
図６のフローチャートでは、先ずステップＳ４１において、ソース画像のＸ座標値Ｘｓ、デスティネーション画像のＸ座標値Ｘｄおよび残差Ｅをそれぞれ０に初期化する。次に、ステップＳ４２において、残差Ｅにソースの水平方向の画素数Ｎｓを加えてこれを新たな残差Ｅとする［Ｅ＋Ｎｓ→Ｅ］。
【０００５】
次に、ステップＳ４３において、残差Ｅがデスティネーション画像の水平方向の画素数Ｎｄ以上であるかを判定し、残差ＥがＮｄ以上である場合にはステップＳ４４にて残差Ｅからデスティネーション画像の水平方向の画素数Ｎｄを減じてこれを新たな残差Ｅとし［Ｅ−Ｎｄ→Ｅ］、Ｘｓの値をインクリメント［Ｘｓ＋１→Ｘｓ］してからステップＳ４３に戻る。ステップＳ４３において、残差ＥがＮｄ未満の場合には、ステップＳ４５に進み、Ｘｄの値をインクリメント［Ｘｄ＋１→Ｘｄ］した後に、ソース画像中の画素Ｐｓ（Ｘｓ）をデスティネーション画像中の画素Ｐｓ（Ｘｄ）にコピーする［Ｐｓ（Ｘｓ）→Ｐｓ（Ｘｄ）］。
【０００６】
ステップＳ４１〜Ｓ４５の操作により、ステップＳ４３の条件を満たさない場合のソース画像の画素のみがデスティネーション画像にコピーされる。ステップＳ４６において、デスティネーション画像のＸ座標値Ｘｄの値をデスティネーション画像の水平方向の画素数Ｎｄと比較し、ＸｄがＮｄよりも小さい場合ステップＳ４２にもどる。また、ＸｄとＮｄが等しい場合は操作を終了する。以上の操作により、ステップＳ４２〜Ｓ４６までのループが繰り返される。
【０００７】
このように、最近傍法によって縮小を行う時には、Ｎｓ、及びＮｄの値によって決定されるサンプリング位置に従って、画像の縮小が行われる。このフローチャートでは、水平方向の縮小のみを示したが、垂直方向にも同様のアルゴリズムを用いて縮小する。最近傍法による画像縮小方法では、加算、減算の繰り返しで処理を実現することができるため、乗算器や除算器を持たないコンピュータにおいても縮小処理が高速に実行できる。
【０００８】
しかしながら、図７（ａ）のような画像に対して図６のフローに従って最近傍法で縮小処理を実施する場合には、Ｘｓが３，７，１１，１５の値をとるときにステップＳ４３の条件が満たされてしまうのでＰｓ（３），Ｐｓ（７），Ｐｓ（１１），Ｐｓ（１５）はデスティネーション画像の画素としてコピーされない。このため、図７（ｂ）に示すように、上段の１水平ラインのソース画像は下段の１水平ラインのデスティネーション画像に縮小される。その結果、図７（ｃ）に示すように、画素の欠落により細線が消失するなどソース画像が持つ表現が損なわれ、デスティネーション画像の画質が劣化する。
【０００９】
最近傍法による画質の劣化を改善するために、デスティネーション画像の画素情報をその画素に隣接する２つのソース画像の画素情報と画素との距離を用いて加重平均して決定する線形補完法がある（例えば、特許文献２参照。）。
【００１０】
この方法は、図６のフローチャートのステップＳ４５における［Ｐｓ（Ｘｓ）→Ｐｄ（Ｘｄ）］の演算を［｛（１−ｅ）×Ｐｓ（Ｘｓ）＋ｅ×Ｐｓ（Ｘｓ＋１）｝→Ｐｄ（Ｘｄ）］の演算に変更したものに相当する。ここで、ｅ，（１−ｅ）はソース画像の隣接した画素間の距離を１とした場合のデスティネーション画像の画素からの距離であり、図７（ｂ）において処理対象のデスティネーション画像の画素をＸｄ＝２の位置の画素すなわちＰｄ（２）とすると、Ｐｄ（２）よりも前方（図では左側）にあってＰｄ（２）と最も近いＸｓ＝２の位置のソース画像の画素すなわちＰｓ（２）とのＸ方向の距離がｅであり、Ｐｄ（２）よりも後方（図では右側）にあってＰｄ（２）と最も近いＸｓ＝３の位置のソース画像の画素すなわちＰｓ（３）とのＸ方向の距離が（１−ｅ）である。線形補完法を用いることにより、最近傍法で生じる水平方向あるいは垂直方向への直線の欠落が防止され、ソース画像により忠実な縮小画像が得られる。
【００１１】
【特許文献１】
特開２００１−１１９５６９号公報（段落０００４−０００６、図３）
【特許文献２】
特開平７−１７０３９３号公報（段落００２８−００２９、図３）
【００１２】
【発明が解決しようとする課題】
しかしながら、線形補完法では、ソース画像の画素数Ｎｓおよびデスティネーション画像の画素数Ｎｄをもとにデスティネーション画像のそれぞれの画素に対応させて、前方にある最近傍のソース画像の画素までの距離ｅを計算する必要がある。ステップＳ４５の段階では残差Ｅ＝ｅ×Ｎｄの関係にあるので、線形補完法に変更した場合のステップ４５の操作［｛（１−ｅ）×Ｐｓ（Ｘｓ）＋ｅ×Ｐｓ（Ｘｓ＋１）｝→Ｐｄ（Ｘｄ）］は、残差Ｅとデスティネーション画像の画素数Ｎｄを用いて表すと［｛（１−Ｅ）×Ｐｓ（Ｘｓ）＋Ｅ×Ｐｓ（Ｘｓ＋１）｝／Ｎｄ→Ｐｄ（Ｘｄ）］となるのでデスティネーション画像の画素ＰＳ（Ｘｄ）を計算する毎にＮｄによる除算が必要であり、さらに除算の際に商の整数部分である整商のみをとり小数点以下を切り捨てる場合には誤差が大きくなるので、小数点以下の桁までの精度の除算を行う必要があった。このため、演算機能が加算、減算などに限られたコンピュータ環境で、線形補完法を用いた画像縮小をソフトウェア処理により、誤差を抑制し且つ高速に行うことは困難であった。
【００１３】
本発明の目的は、上記した線形補完法に準じた方法で、演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても高速に実行でき、ソフトウェア処理に適した画像縮小方法を提供することにある。
【００１４】
【課題を解決するための手段】
本発明の画像縮小方法は、ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、２Ｎが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎを決定する第１のステップと、前記Ｎを用いて得られた２２Ｎを前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第４のステップと、前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数とし前記ソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第４のステップに戻る第５のステップと、前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、前記ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を２Ｎビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第６のステップと、前記デスティネーション画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第７のステップと、を備えることを特徴とする。第１〜第７のステップを第１方向に適用してデスティネーション画像として第１方向のみが縮小された第１方向縮小画像を得た後に、上記の第１〜第７のステップにおける第１方向をこれと直交する第２方向に置き換えて第１方向縮小画像をソース画像として第２方向の処理を同様に行うことにより縦横共に縮小されたデスティネーション画像が得られる。
【００１５】
本発明の別の画像縮小方法は、ソース画像を縮小してデスティネーション画像を生成する画像縮小方法において、２Ｎが前記ソース画像の第１方向の画素数以上になる整数のうち最も小さい整数Ｎを決定する第１のステップと、前記Ｎと予め定めた正の整数Ｍとを用いて定めた２（Ｎ＋Ｍ）を前記デスティネーション画像の第１方向の画素数で除して第１の数を算出する第２のステップと、第２の数に前記ソース画像の第１方向の画素数を加えて新たな第２の数とする第３のステップと、前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるか否かを判断する第４のステップと、前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数以上であるときに前記第２の数から前記デスティネーション画像の第１方向の画素数を減じて新たに第２の数としソース画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに前記第４のステップに戻る第５のステップと、前記第４のステップで前記第２の数が前記デスティネーション画像の第１方向の画素数未満であるときに前記デスティネーション画像における対象画素を指す第１方向の座標値を１だけ増大させたのちに、前記デスティネーション画像における対象画素の画素情報値を、ソース画像における対象画素よりも１だけ増大した第１方向の座標値の位置にある画素の画素情報値から前記ソース画像における対象画素の画素情報値を減じた値に前記第１の数および前記第２の数を乗じて得られた値を（Ｎ＋Ｍ）ビット分下位桁方向にシフトして得られた補完値を前記ソース画像における対象画素の画素情報値に加えることにより得る第６のステップと、前記デスティネーション画像における対象画素の第１方向の座標値が前記デスティネーション画像の第１方向の画素数と同一であるかを判断し同一でないときに前記第３のステップに戻り、同一であるときに第１方向の１ライン分の処理を終了する第７のステップと、を備えることを特徴とする。第１〜第７のステップを第１方向に適用してデスティネーション画像として第１方向のみが縮小された第１方向縮小画像を得た後に、上記の第１〜第７のステップにおける第１方向をこれと直交する第２方向に置き換えて第１方向縮小画像をソース画像として第２方向の処理を同様に行うことにより縦横共に縮小されたデスティネーション画像が得られる。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の画像縮小方法の一実施の形態のフローチャートである。図１のフローチャートはＸ方向の１ライン分の縮小フローを示し、ステップＳ１１，Ｓ１６，Ｓ１７，Ｓ１８，Ｓ２０では、それぞれ図６のＳ４１，Ｓ４２，Ｓ４３，Ｓ４４，Ｓ４６に対応し、同様の操作が行われる。ステップＳ１２〜Ｓ１４と、ステップＳ１９とでは本実施の形態に特徴的な操作が行われる。
【００１７】
図１のフローチャートにおいて、図６の従来例の説明と同様に、縮小の対象となるソース画像のＸ方向の画素数をＮｓ、縮小後のデスティネーション画像画像のＸ方向の画素数をＮｄとする。また、ソース画像の画素ステップで定義されたＸ座標での座標値をＸｓ、デスティネーション画像の画素ステップで定義されたＸ座標での座標値をＸｄとし、それらの位置にある画素をＰｓ（Ｘｓ）、Ｐｄ（Ｘｄ）で表す。また、第１の数であるαを用意しこれをＮｄの逆数と２２Ｎとの積と定義する。第２の数である残差Ｅは図６の従来例における残差Ｅと同様である。
【００１８】
先ずステップＳ１１において、ソース画像のＸ座標値Ｘｓ、デスティネーション画像のＸ座標値Ｘｄおよび残差Ｅをそれぞれ０に初期化する。次に、ステップＳ１２で整数Ｎを０に初期化する。
【００１９】
次に、ステップＳ１３で、ソース画像のＸ方向の画素数Ｎｓと２Ｎとを比較し、Ｎｓが２Ｎよりも大きい場合にはステップＳ１５でＮの値をインクリメントし、ステップＳ１３に戻り再度Ｎｓと２Ｎとを比較する。これを繰り返し、ステップＳ１３でＮｓが２Ｎ以下になった場合にステップＳ１４に移る。ステップＳ１４では２２Ｎをデスティネーション画像の水平方向の画素数Ｎｄで割った値を算出してαに格納し［２２Ｎ／Ｎｄ→α］、ステップＳ１６に進む。
【００２０】
次に、ステップＳ１６において、残差Ｅにソースの水平方向の画素数Ｎｓを加えてこれを新たな残差Ｅとする［Ｅ＋Ｎｓ→Ｅ］。
【００２１】
次に、ステップＳ１７において、残差Ｅがデスティネーション画像の水平方向の画素数Ｎｄ以上であるかを判定し、残差ＥがＮｄ以上である場合にはステップＳ１８にて残差Ｅからデスティネーション画像の水平方向の画素数Ｎｄを減じてこれを新たな残差Ｅとし［Ｅ−Ｎｄ→Ｅ］、Ｘｓの値をインクリメント［Ｘｓ＋１→Ｘｓ］してからステップＳ１７に戻る。ステップＳ１７において、残差ＥがＮｄ未満の場合には、ステップＳ１９に進み、Ｘｄの値をインクリメント［Ｘｄ＋１→Ｘｄ］した後に、デスティネーション画像の画素Ｐｄ（Ｘｄ）の彩度、明度、輝度等の画素情報値を、
Ｐｄ（Ｘｄ）＝α×｛Ｐｓ（Ｘｓ）×（Ｎｄ−Ｅ）＋Ｐｓ（Ｘｓ＋１）×Ｅ｝／２２Ｎ
の計算式で計算し、デスティネーション画像の画素Ｐｄ（Ｘｄ）の画素情報値を決定する［Ｐｓ（Ｘｓ）＋（α＊Ｅ＊（Ｐｓ（Ｘｓ＋１）−Ｐｓ（Ｘｓ）））＞＞２Ｎ→Ｐｓ（Ｘｄ）］。
【００２２】
なお、ステップＳ１９において、“＊”は（×と同様に）乗算を示し、“＞＞”は右方向（下位桁方向）シフトを示す。ステップ１９において（α×Ｅ×（Ｐｓ（Ｘｓ＋１）−Ｐｓ（Ｘｓ）））／２２Ｎが補完値を表す。
【００２３】
次に、ステップＳ２０において、デスティネーション画像のＸ座標値Ｘｄの値をデスティネーション画像の水平方向の画素数Ｎｄと比較し、ＸｄがＮｄよりも小さい場合ステップＳ１６にもどる。また、ＸｄとＮｄが等しい場合は操作を終了する。以上の操作により、ステップＳ１６〜Ｓ２０までのループが繰り返される。
【００２４】
図１のフローチャートでは、水平方向（Ｘ方向）の縮小フローのみを示したが、垂直方向（Ｙ方向）の縮小においても図１のフロー中でＸをＹに置き換えるだけで同様のアルゴリズムを適用できる。
【００２５】
ステップＳ１９では、隣接する画素Ｐｓ（Ｘｓ）、Ｐｓ（Ｘｓ＋１）の間の画素を、残差Ｅを用いて重みを考慮した計算を行っている。通常、一般的な重みを考慮した計算式は、
Ｐｄ（Ｘｄ）＝｛Ｐｓ（Ｘｓ）×（Ｎｄ−Ｅ）＋Ｐｓ（Ｘｓ＋１）×Ｅ｝／Ｎｄであるが、本実施の形態ではステップＳ１４にて［２２Ｎ／Ｎｄ→α］とし、
Ｐｄ（Ｘｄ）＝α×｛Ｐｓ（Ｘｓ）×（Ｎｄ−Ｅ）＋Ｐｓ（Ｘｓ＋１）×Ｅ  ｝／２２Ｎ
と近似したことにより，ソフトウェアで実現する場合，除算（１／Ｎｄ）の代わりにシフト演算（＞＞２Ｎ）を用いることができるため、演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても高速に処理することが可能である。
【００２６】
図２（ａ）は、ソース画像であり、図２（ｂ）は、図１のフローによる縮小処理を詳細に説明する図である。ソース画像のＸ方向の画素数Ｎｓ＝１６、縮小後のデスティネーション画像のＸ方向の画素数Ｎｄ＝１２である場合（すなわち３／４に縮小の場合）について説明する。なお、以下の説明では、コンピュータ内では２進法で表現され計算されるが、理解を容易にするために１０進表現を用いる。
【００２７】
ステップＳ１３とステップＳ１４のループを繰り返し、Ｎ＝４のときにステップＳ１４に進み、α＝２２Ｎ／Ｎｄ＝２８／１２が設定される。
【００２８】
次にステップＳ１７およびステップＳ１８を繰り返して残差ＥがＮｄ未満となったときにステップＳ１９を実行する。図２（ｂ）に示すように、デスティネーション側のＸ座標値Ｘｄ＝ｉ（ｉは１≦ｉ≦Ｎｄの整数）の画素Ｐｄ（ｉ）は、すでに説明したように一般的な線形補完法ではＰｄ（ｉ）＝｛（１−ｅ）×Ｐｓ（ｉ）＋ｅ×Ｐｓ（ｉ＋１）｝として計算されるが、本実施の形態ではステップＳ１９に従って計算される。
【００２９】
例えばＸｄ＝２の場合には、ステップＳ１７では残差Ｅ＝８（すなわちｅ＝Ｅ／Ｎｄ＝８／１２）のときに残差ＥがＮｄ未満となるので、一般的な線形補完法では、
Ｐｄ（２）＝｛４×Ｐｓ（２）＋８×Ｐｓ（３）｝／１２
となり、図２（ｂ）の上段のようにソース画像の画素Ｐｓ（２）の明度が１０で画素Ｐｓ（３）の明度が０であるとすると、デスティネーション画像の画素Ｐｄ（２）の明度は、
Ｐｄ（２）＝（４０＋０）／１２＝３．３３３３…となる。
【００３０】
しかしながら、この一般的な線形補完法では、除算において整商のみをとり小数点以下の切り捨てを行った場合には、Ｐｄ（２）＝３となり、誤差が大きい。
【００３１】
これに対し、本実施の形態では、ステップＳ１４の除算においてα＝２８／１２＝２１．３３３３…の小数点以下を切り捨ててα＝２１としても、ステップ１９における計算は
Ｐｄ（２）＝ＰＳ（２）＋α×Ｅ×（Ｐｓ（３）−Ｐｓ（２））／２２Ｎ
にα＝２１，Ｅ＝８，Ｐｓ（３）＝０，Ｐｓ（２）＝１０，Ｎ＝４として、
Ｐｄ（２）＝１０＋２１×８×（−１０）／２８＝３．４３７５
となり、本実施の形態では、一般的な線形補完法で除算時に整商のみをとり小数点以下を切り捨てたときよりも誤差を小さくすることができる。ステップＳ１４の除算はただ１回だけ計算すればよく、さらに整商のみを計算すればよいため除算が減算の繰り返しでできるので、処理速度の低下要因にはならない。また、コンピュータ内では数値は２進数で扱われるため、ステップ１９では除算がシフト演算により代用できるので、高速な縮小処理が可能となる。したがって、本実施の形態の画像縮小方法は、演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても誤差の発生を抑制でき且つ高速に実行できるため、ソフトウェア処理に適している。本実施の形態では、ステップ１４でα＝２２Ｎ／Ｎｄと定義したことにより、αの誤差がもっとも大きくなる状況、すなわちＮｓとＮｄとの差がきわめて小さい（縮小率が１に近く、Ｎｓ、Ｎｄがともにほぼ２Ｎである）状況においてもαが２Ｎ以上であることを保証し、ステップ１４で整商のみをとり小数点以下切り捨てることによる誤差の発生を抑圧している。
【００３２】
図３は、本発明の画像縮小方法を実行する画像処理システムのブロック図である。画像処理システムは、外部からソース画像を入力する機器である画像入力装置１と、記憶装置２と、画像縮小処理装置３と、ディスプレイ装置等の画像出力装置４とを含んで構成される。
【００３３】
記憶装置２は、その内部に、ソース画像の各画素の彩度、明度、輝度の情報を記憶するソース画像情報格納部２１および縮小後のデスティネーション画像の各画素のＹ，Ｃｂ，Ｃｒ情報を格納記憶するデスティネーション画像情報格納部２２を含んでいる。
【００３４】
画像縮小処理装置３は、その内部に、記憶装置２との間で１ライン分の画像情報の受け取り引渡しを行う画像データ調整部３１と、本発明の画像縮小方法に従って画像縮小処理を実行する画像データ計算部３２とを備えている。
【００３５】
次に、図１、図３を参照して１画面分の画像縮小処理の動作について説明する。画像入力装置１から与えられた画像情報は、ソース画像情報格納部２１に供給され、記憶される。画像データ調整部３１は、ソース画像情報格納部２１からＸ方向１ライン分の画像情報を受け取り、画像データ計算部３２に渡す。画像データ計算部３２は、図１のフローに従って画像情報を各画素のＹ、Ｃｂ、Ｃｒの成分について計算（縮小処理）し、縮小後の画像の画素情報を作成する。画像データ調整部３１は縮小後の画像情報をデスティネーション画像情報格納部２２に渡す。デスティネーション画像情報格納部２２はこの画像情報を受け取り格納する。この一連の処理を、Ｙ方向のライン数だけ実行することにより、Ｘ方向に縮小された画像（Ｘ方向縮小画像）がデスティネーション画像情報格納部２２に格納される。
【００３６】
次に、画像データ調整部３１がＸ方向縮小画像のＹ方向の１ライン分の画像情報を受け取り、画像データ計算部３２に渡す。Ｘ方向の１ラインの処理と同様に画像情報のデータをそれぞれＹ、Ｃｂ、Ｃｒの成分についてを計算（縮小処理）し、Ｙ方向に縮小後の画像の画素情報を作成する。画像データ調整部３１は縮小後の画像情報をデスティネーション画像情報格納部２２渡す。デスティネーション画像情報格納部２２はＹ方向の１ライン分の縮小後の画像データを格納する。この一連の処理をＸ方向のライン数だけ実行することによってＹ方向が画像縮小され、最終的にデスティネーション画像情報格納部２２にはＸ方向、Ｙ方向共に縮小処理された画像の情報が格納される。これを、出力装置４を介して出力する。
【００３７】
図３の画像縮小処理装置３は、専用の装置として構成してもよいが、コンピュータと縮小処理プログラムにより構成することが可能であり、この場合には、コンピュータが、予めコンピュータ内のプログラムメモリまたは記憶領域２の一部の領域に格納された縮小処理プログラムに従って図１の手順（およびＹ方向に対する図１と同様な手順）を実行する。
【００３８】
図４（ａ），（ｂ）は縮小前後の画像を示す図であり、図４（ａ）は図２（ａ）と同様に縮小前のソース画像を示し、図４（ｂ）は図３の画像処理システムを用いてＸ方向、およびＹ方向に図１と同様の手順を用いて縮小した後のデスティネーション画像を示す。最近傍法で問題となる細線消失の発生がなく線形補完法で得られる画像と遜色のないデスティネーション画像が得られる。
【００３９】
次に、本発明の他の実施の形態について説明する。図５は、本発明の第２の実施の形態のフローチャートであり、Ｘ方向の１ライン分の縮小フローを示している。本実施の形態が図１の第１の実施の形態と異なる点は、図１におけるステップＳ１４およびステップＳ１９に換えてステップＳ１４ａおよびステップＳ１９ａとした点であり、その他は第１の実施の形態と同様である。ステップＳ１４ａでは、［２（Ｍ＋Ｎ）／Ｎｄ→α］の操作を行い、ステップＳ１９では、［Ｘｄ＋１→Ｘｄ］の後に［Ｐｓ（Ｘｓ）＋（α＊Ｅ＊（Ｐｓ（Ｘｓ＋１）−Ｐｓ（Ｘｓ）））＞＞（Ｍ＋Ｎ）→Ｐｄ（Ｘｄ）］の操作をする。ここで、Ｍは１以上の正の整数であり、“＊”は（×と同様に）乗算を示し、“＞＞”は右方向（下位桁方向）シフトを示す。
【００４０】
本実施の形態において、Ｍが小さいときには、縮小率が小さい（すなわち（デスティネーション画像のサイズ／ソース画像のサイズ）が小さい）場合にはＮが大きくなるので誤差発生の問題はないが、縮小率が大きい（すなわち（デスティネーション画像のサイズ／ソース画像のサイズ）が１により近い）場合にはステップＳ１４ａで２（Ｍ＋Ｎ）／Ｎｄで整商をとり小数点以下を切り捨てると誤差が大きくなり問題となる。
【００４１】
逆にＭが大きいときには、縮小率が大きい場合においてもＮが小さくても誤差を小さく抑圧できるが、縮小率が小さい場合にはＮも大きいのでαのビットデータが必要以上に大きくなるため、データ量が非常に大きくなるなど無駄が生じる。
【００４２】
このため、Ｍの値は縮小率に基づいて適切に定められることが望ましく、図１の第１の実施の形態（本実施の形態においてＭ＝Ｎとした場合に相当）のようにしてもよいが、本実施の形態においてはＭを４≦Ｍ≦１４を満たす正整数の固定値にすることにより、ステップＳ１４ａにおいて商の小数点以下を切り捨てた場合に生じるαの誤差が最大でも１０％〜０．０１％に抑圧でき、且つαのビットデータも１４ビット以下となり、誤差とデータ量を両立できる。
【００４３】
本実施の形態においても、第１の実施の形態と同様に、ステップＳ１４ａの除算は整商のみを計算すればよく除算が減算の繰り返しでできることに加えて１回のみの除算であり、ステップ１９ａの除算はシフト演算により代用できるので、高速な縮小処理が可能であり、演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても誤差の発生を抑制でき且つ高速に実行できるため、ソフトウェア処理に適している。
【００４４】
図５のフローチャートでは、水平方向（Ｘ方向）の縮小フローのみを示したが、垂直方向（Ｙ方向）の縮小においても図５のフロー中でＸをＹに置き換えるだけで同様のアルゴリズムを適用できる。また、本実施の形態の図５のフローは、第１の実施の形態の図１のフローと同様に、図３の画像縮小処理装置３を含む画像処理システムを用いてＸ方向の縮小としてＹ方向のライン数だけ実行され、次に、Ｙ方向の縮小としてＸ方向のライン数だけ実行される。この場合に、画像縮小処理装置３は専用の装置であってもよく、コンピュータと縮小処理プログラムにより構成してもよいことは、第１の実施の形態を実行する場合と同様である。
【００４５】
【発明の効果】
以上に説明したように、本発明の画像縮小方法および画像縮小処理プログラムは、演算機能が加算、減算、シフト演算などに限られたコンピュータ環境においても高速に実行でき、且つ線形補完法に準じた方法であるためこれと同様に細線消去を回避できるので、画像縮小のソフトウェア処理に適している。
【図面の簡単な説明】
【図１】本発明の画像縮小方法の第１の実施の形態を示すフローチャートである。
【図２】（ａ）はソース画像であり，（ｂ）は、図１のフローによる縮小処理を詳細に説明する図である。
【図３】本発明の画像縮小方法を実行する画像処理システムのブロック図である。
【図４】（ａ）は縮小前のソース画像を示し、（ｂ）縮小後のデスティネーション画像を示す。
【図５】本発明の第２の実施の形態のフローチャートである。
【図６】従来例による画像縮小のフローチャートである。
【図７】（ａ）はソース画像であり、（ｂ）は図６の従来例の方法で縮小したデスティネーション画像の一例である。
【符号の説明】
１    画像入力装置
２    記憶装置
３    画像縮小処理装置
４    画像出力装置
【図１】
2004355216.tif 000003
【図２】
2004355216.tif 000004
【図３】
2004355216.tif 000005
【図４】
2004355216.tif 000006
【図５】
2004355216.tif 000007
【図６】
2004355216.tif 000008
【図７】
2004355216.tif 000009