(57)【要約】【課題】画質の低下を最小化しつつ演算量も減少することができるデジタル画像スケーリング方法を提供する。【解決手段】ターゲットイメージに対するソースイメージのスケーリング比率により横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるようにソースイメージとターゲットイメージの最小処理ユニットのサイズを決定する過程と、ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が２ｎとなる整数の加重値を求める過程と、ソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素値と、そのソース画素と離隔された距離に対応する加重値を使用し、ターゲットイメージを生成する過程とを備える。【選択図】　図５
2004110776.tif 000002
【特許請求の範囲】
【請求項１】
内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージそれぞれの最小処理ユニットのサイズを決定する過程と、
前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求める過程と、
前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素値と、そのソース画素と離隔された距離に対応する加重値を使用して求め、前記ターゲットイメージを生成する過程とを備えることを特徴とする画像スケーリング方法。
【請求項２】
前記加重値が数式１
【数１】
2004110776.tif 000014
により求められ、前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値が数式２
【数２】
2004110776.tif 000015
により求められる請求項１記載の画像スケーリング方法。
これら数式において、ｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックス、Ｖｗ［ｉ］は加重値の貯蔵配列、Ｒｓはスケーリング比率で、ソースイメージのサイズ／ターゲットイメージのサイズ、ｎは自然数、Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列、Ｉｎｄｅｘ［ｉ］はターゲット画素の生成のための演算基準となるソース画素インデックスの貯蔵配列として（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ　ｘ　ｉ）であり、≪ｎは最上位ビット側へのｎビットシフトを示し、≫ｎは最下位ビット側へのｎビットシフトを示す。
【請求項３】
前記ターゲットイメージの生成過程が、
前記ソースイメージの画素行のそれぞれに対して横方向に前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのそれぞれのターゲット画素値を前記数式３
【数３】
2004110776.tif 000016
により求め、前記横方向にスケーリングされた画像を生成する過程と、
前記横方向にスケーリングされた画像の画素列のそれぞれに対して縦方向に前記ソースイメージの最小処理ユニット単位に対応する前記ターゲットイメージの最小処理ユニットのそれぞれのターゲット画素値を前記数式４
【数４】
2004110776.tif 000017
により求めて前記ターゲットイメージを生成する過程とからなる請求項２記載の画像スケーリング方法。
【請求項４】
前記加重値を求める過程が、前記ｉｎｄｅｘ［ｉ］を求めることを含む請求項２または請求項３記載の画像スケーリング方法。
【請求項５】
前記ｎが８、９、１０のうちいずれか一つに定められる請求項４記載の画像スケーリング方法。
【請求項６】
内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、
前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、
前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求める過程と、
前記ソースイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックにそれぞれ対応するように前記ターゲットイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素値とそのソース画素と離隔された距離に対応する加重値を使用して求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする画像スケーリング方法。
【請求項７】
前記加重値が数式５
【数５】
2004110776.tif 000018
により求められ、前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値が数式６
【数６】
2004110776.tif 000019
により求められる請求項６記載の画像スケーリング方法。
これら数式において、ｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックス、Ｖｗ［ｉ］は加重値の貯蔵配列、Ｒｓはスケーリング比率で、ソースイメージのサイズ／ターゲットイメージのサイズ、ｎは自然数、Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列、Ｉｎｄｅｘ［ｉ］はターゲット画素の生成のための演算基準となるソース画素インデックスの貯蔵配列として、（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ　ｘ　ｉ）であり、≪ｎは最上位ビット側へのｎビットシフトを示し、≫ｎは最下位ビット側へのｎビットシフトを示す。
【請求項８】
前記ターゲットイメージ生成過程が、
前記ソースイメージの最小処理ブロックの画素行のそれぞれに対して前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値を前記数式７
【数７】
2004110776.tif 000020
により求めて前記横方向にスケーリングされた最小処理ブロックを生成する過程と、
前記横方向にスケーリングされた最小処理ブロックの画素列のそれぞれに対して前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値を前記数式７により求めて前記ターゲットイメージの最小処理ブロックを生成する過程とを備える請求項７記載の画像スケーリング方法。
【請求項９】
前記ターゲットイメージの生成過程が、前記ソースイメージをダウンスケーリングする場合には前記ソースイメージの始めから前記ターゲットイメージの最小処理ブロックを生成し始め、前記ソースイメージをアップスケーリングする場合には前記ソースイメージの終わりから前記ターゲットイメージの最小処理ブロックを生成し始める請求項８記載の画像スケーリング方法。
【請求項１０】
前記加重値を求める過程が、前記ｉｎｄｅｘ［ｉ］を求めることを含む請求項７〜請求項９のうちいずれか一つに記載の画像スケーリング方法。
【請求項１１】
前記ｎが８、９、１０のうちいずれか一つに定められる請求項１０記載の画像スケーリング方法。
【請求項１２】
内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、
前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、
前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求め、それぞれの加重値を一つの画素が有する画素値とそれぞれ掛けてルックアップテーブルを生成する過程と、
前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値をそれぞれ該当ターゲット画素値に反映するソース画素値とその離隔された距離に対応するように前記ルックアップテーブルを参照した演算により求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする画像スケーリング方法。
【請求項１３】
前記加重値が数式８
【数８】
2004110776.tif 000021
により求められ、前記ルックアップテーブルが数式９
【数９】
2004110776.tif 000022
により生成され、前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値が数式１０
【数１０】
2004110776.tif 000023
により求められる請求項１２記載の画像スケーリング方法。
これら数式において、ｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックス、Ｖｗ［ｉ］は加重値の貯蔵配列、Ｒｓはスケーリング比率で、ソースイメージのサイズ／ターゲットイメージのサイズ、ｎは自然数、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］［Ｔａｂｌｅ＿Ｉｎｄｅｘ］はインデックスｉと一つの画素が有する画素値に対するインデックスＴａｂｌｅ＿Ｉｎｄｅｘの配列からなるルックアップテーブル貯蔵配列、Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列、Ｉｎｄｅｘ［ｉ］はターゲット画素の生成のための演算基準となるソース画素インデックスの貯蔵配列として（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ　ｘ　ｉ）、Ｃｏｎｓｔはターゲットイメージの最小処理ユニットのサイズの１／２値に定められ、インデックスｉがターゲットイメージの最小処理ユニットのサイズの１／２より大きい場合には符号が反転され、≪ｎは最上位ビット側へのｎビットシフトを示し、≫ｎは最下位ビット側へのｎビットシフトを示す。
【請求項１４】
前記ターゲットイメージ生成過程が、
前記ソースイメージの画素行それぞれに対して横方向に前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素の値を前記数式１０により前記ルックアップテーブルを参照した演算により求めて、前記横方向にスケーリングされた画像を生成する過程と、
前記横方向にスケーリングされた画像の画素列それぞれに対して縦方向に前記ソースイメージの最小処理ユニット単位に対応する前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を前記数式１０
により前記ルックアップテーブルを参照した演算により求めて前記ターゲットイメージを生成する過程とからなる請求項１３記載の画像スケーリング方法。
【請求項１５】
前記加重値を求める過程が、前記ｉｎｄｅｘ［ｉ］を求めることを含む請求項１２または請求項１３記載の画像スケーリング方法。
【請求項１６】
前記ｎが８、９、１０のうちいずれか一つに定められる請求項１５記載の画像スケーリング方法。
【請求項１７】
内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、
前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、
前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求め、それぞれの加重値を一つの画素が有する画素値とをそれぞれ掛けてルックアップテーブルを生成する過程と、
前記ソースイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックにそれぞれ対応するように前記ターゲットイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素とその離隔された距離に対応するようにルックアップテーブルを参照した演算により求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする画像スケーリング方法。
【請求項１８】
前記加重値が数式１１
【数１１】
2004110776.tif 000024
により求められ、前記ルックアップテーブルが数式１２
【数１２】
2004110776.tif 000025
により生成され、前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値が数式１３
【数１３】
2004110776.tif 000026
により求められる請求項１７記載の画像スケーリング方法。
これら数式において、ｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックス、Ｖｗ［ｉ］は加重値の貯蔵配列、Ｒｓはスケーリング比率で、ソースイメージのサイズ／ターゲットイメージのサイズ、ｎは自然数、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］［Ｔａｂｌｅ＿Ｉｎｄｅｘ］はインデックスｉと一つの画素が有する画素値に対するインデックスＴａｂｌｅ＿Ｉｎｄｅｘの配列からなるルックアップテーブル貯蔵配列、Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列、Ｉｎｄｅｘ［ｉ］はターゲット画素の生成のための演算基準となるソース画素インデックスの貯蔵配列として（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ　ｘ　ｉ）、Ｃｏｎｓｔはターゲットイメージの最小処理ユニットのサイズの１／２値に定められ、インデックスｉがターゲットイメージの最小処理ユニットのサイズの１／２より大きい場合には符号が反転され、≪ｎは最上位ビット側へのｎビットシフトを示し、≫ｎは最下位ビット側へのｎビットシフトを示す。
【請求項１９】
前記ターゲットイメージ生成過程が、
前記ソースイメージの最小処理ブロックの画素行それぞれに対して前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値を前記数式１３により前記ルックアップテーブルを参照した演算により求め、前記横方向にスケーリングされた最小処理ブロックを生成する過程と、
前記横方向にスケーリングされた最小処理ブロックの画素列それぞれに対して前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値を前記数式１３により前記ルックアップテーブルを参照した演算により求めて前記ターゲットイメージの最小処理ブロックを生成する過程とを備える請求項１８記載の画像スケーリング方法。
【請求項２０】
前記ターゲットイメージの生成過程が、前記ソースイメージをダウンスケーリングする場合には前記ソースイメージの始めから前記ターゲットイメージの最小処理ブロックを生成し始め、前記ソースイメージをアップスケーリングする場合には前記ソースイメージの終わりから前記ターゲットイメージの最小処理ブロックを生成し始める請求項１９記載の画像スケーリング方法。
【請求項２１】
前記加重値を求める過程が、前記ｉｎｄｅｘ［ｉ］を求めることを含む請求項１８〜請求項２０のうちいずれか一つに記載の画像スケーリング方法。
【請求項２２】
前記ｎが８、９、１０のうちいずれか一つに定められる請求項２１記載の画像スケーリング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像スケーリング（ｓｃａｌｉｎｇ）方法に関し、特に内蔵形システム（ｅｍｂｅｄｄｅｄ　ｓｙｓｔｅｍ）においてデジタル画像を縮小または拡大してディスプレー（ｄｉｓｐｌａｙ）するための画像スケーリング方法に関するものである。
【０００２】
【従来の技術】
デジタル画像の普遍化により多様なサイズと形式のデジタル画像器機が商用化されて市販されている。デジタルＴＶ、ＨＤＴＶ（Ｈｉｇｈ　Ｄｅｆｉｎｉｔｉｏｎ　Ｔｅｌｅｖｉｓｉｏｎ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）、ＩＭＴ−２０００（Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｍｏｂｉｌｅ　Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ−２０００）端末機などのデジタル画像器機は従来のアナログ画像に比べて一層鮮明な画像を提供するだけでなく、デジタル画像処理のみにより可能な画面の分離、拡大、縮小、平滑化などの多様な画像処理機能を提供する。
【０００３】
上記のような各種デジタル画像処理機能の具現のためには多くのシステム資源が要求される。これにより、デジタルＴＶ、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｉｄｅｏ　Ｄｉｓｃ）プレーヤなどのように電力が十分に供給され、製品のサイズも十分に大きくてデジタル画像処理機能の具現に要求されるシステム資源に不足さがない場合には、各種デジタル画像処理機能を別の難しさなしに具現できる。しかし、ＩＭＴ−２０００移動通信端末機、ＰＤＡ、デジタルカムコーダ（ｃａｍｃｏｒｄｅｒ）などの内蔵形システムは製品のサイズが小さく、供給電力容量が少なく、プロセッサーの演算速度が低く、メモリ容量が少ないことなど、多くの制約事項を伴うので、デジタル画像処理機能の具現に難しさがあるだけでなく、その性能も制限的な場合が多い。
【０００４】
一方、デジタル画像処理の一つとして、画像を拡大／縮小する画像スケーリング技術は一般的にカメラから入力される画像に対して適用し、あるいはデジタル画像出力装置で部分拡大機能やＰＩＰ（Ｐｉｃｔｕｒｅ　Ｉｎ　Ｐｉｃｔｕｒｅ）機能を具現するのに応用された。しかし、最近のようにカラー／動画像移動通信端末機が普遍化した時点では標準ビデオＣＯＤＥＣ（ｃｏｄｅｒ／ｄｅｃｏｄｅｒ）と多様なサイズのＬＣＤ（ＬｉｑｕｉｄＣｒｙｓｔａｌ　Ｄｉｓｐｌａｙ）装置との間のインタフェース（ｉｎｔｅｒｆａｃｅ）問題を解決する非常に重要な技術となってきている。標準ビデオＣＯＤＥＣは１７６×１４４（ここで、１７６×１４４は横方向の画素（ｐｉｘｅｌ）数×縦方向の画素数の画像サイズを意味し、以下の説明でも画像サイズは上記と同様に示すこと）のＱＣＩＦ（Ｑｕａｄｒａｔｕｒｄｅ　Ｃｏｍｍｏｎ　Ｉｎｔｅｒｆａｃｅ　Ｆｏｒｍａｔ）サイズを主に支援するように設計されている。これに反して、各種端末機に採択されるＬＣＤ装置はディスプレーする画像のサイズが端末機のサイズと製造コストに合わせて多様に生産されるが、例えば、１２８×１９２のような小サイズから２４０×２４０のような大サイズまで多様のサイズのうちいずれか一つのサイズで生産される。それにより、標準ビデオＣＯＤＥＣから出力される画像をＬＣＤ装置の画面上にディスプレーするためには拡大または縮小の必要性が求められることである。
【０００５】
このように画像を拡大または縮小するための画像のスケーリング技術は複雑であり、多くの多様な技術が知られている。これは、拡大／縮小によりサイズが変わったときにもソースイメージの特性をその通り維持するための方法がそのほど多様であるという意味である。しかし、内蔵形システムのようにシステム資源が非常に脆弱なシステムに適した画像スケーリング技術はほとんど知られていない。これは画像スケーリング技術の具現には多くの演算量が伴うので、内蔵形システムに適用するのに適合しないと認識されてきたためである。画素単位の演算量のみを見ればあまり多くはないが、実際に使用される画像は数多くの画素の集合で、このような画像が秒当たり１０フレーム（ｆｒａｍｅ）以上の速度で出力されるので、実時間動画像の出力のためには相当な演算量を要求するようになる。これにより、現在まで知られている技術により画像スケーリング機能をハードウェアで具現すれば、複雑なハードウェアの設計及び高性能システムが要求されるので、携帯用デジタル画像器機のような内蔵形システムでは使用されていなかった。のみならず、ハードウェアで画像スケーリング機能を具現する場合にはいくつかの定められた形式のみを具現するしかないので、ソフトウェアで具現する場合に比べてアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）との円滑なインタフェースを得にくい。その反面、画像スケーリング機能をソフトウェアで具現すれば、入力及び出力で画素単位の制御が可能であり、ＬＣＤ出力応用プログラミングの設計に制約を受けない多様なアプリケーションが可能になり、いかなるビデオＣＯＤＥＣ及びＬＣＤ入出力インタフェースとの具現も可能なインタフェースが得られる。しかし、多くの演算量により内蔵形システムでは相当な高性能のチップを採用しても動画像を具現するのは不可能である。
【０００６】
上記したようなことを考えると、内蔵形システムのための画像スケーリング機能はソフトウェアで具現するのが望ましいが、ソフトウェアで具現しても無理のない程度の演算量を持つように演算量が少なくなければならない。画像スケーリング機能を具現する一番簡単な方法は、スケーリング比率によりソースイメージ（ｓｏｕｒｃｅ　ｉｍａｇｅ）の画素を単にダウンサンプリング（ｄｏｗｎ　ｓａｍｐｌｉｎｇ）して画素数を減少して縮小させ、あるいはソースイメージの画素を単にコピーして画素数を増加して拡大させる技術がある。画像を拡大するアップスケーリングの例を示す図１を参照してこのような技術を説明すれば、次のようである。図１に示すように、３つのソースイメージ画素、すなわちソース画素Ｐ１〜Ｐ３から９つの拡大画像画素、すなわちターゲット画素Ｐ１’〜Ｐ９’を生成する場合であれば、ターゲット画素Ｐ１’〜Ｐ３’はソース画素Ｐ１をコピーして生成し、ターゲット画素Ｐ４’〜Ｐ６’はソース画素Ｐ２をコピーして生成し、ターゲット画素Ｐ７’〜Ｐ９’はソース画素Ｐ３をコピーして生成する。これにより、演算しなくても画像のサイズを拡大することができるが、単純にソース画素をコピーすることなので拡大画像の画質が大きく落ちる。
【０００７】
拡大画像の画質を改善できる技術として、ソースイメージに対するターゲットイメージの画面サイズに比例してスケーリング比率だけの加重値を付与して補間（ｉｎｔｅｒｐｏｌａｔｉｏｎ）をするＤＤＡ（Ｄｉｇｉｔａｌ　Ｄｉｆｆｅｒｅｎｔｉａｌ　Ａｎａｌｙｚｅｒ）アルゴリズム（ａｌｇｏｒｉｔｈｍ）がある。上記した図１を参照して、ＤＤＡアルゴリズムにより画像を拡大するアップスケーリング（ｕｐ−ｓｃａｌｉｎｇ）の例を説明すれば、次のようである。図１に示したように、３つのソース画素Ｐ１〜Ｐ３から９つのターゲット画素Ｐ１’〜Ｐ９’を生成する場合であれば、ターゲット画素Ｐ１’〜Ｐ９’の画素値は下記の表１のようである。
【０００８】
【表１】
2004110776.tif 000003
【０００９】
すなわち、ターゲット画素Ｐ１’〜Ｐ９’は該当ターゲット画素値に反映される一つまたは二つの隣接したソース画素値に、ソースイメージのサイズと拡大画像のサイズのスケーリング比率による勾配（＝１／３）と、該当ターゲット画素が隣接したソース画素から離隔された距離に対応する加重値とを乗算した後、これら値を加算した値を有するようになる。これにより、補間（ｉｎｔｅｒｐｏｌａｔｉｏｎ）によりターゲット画素値に該当ターゲット画素が隣接するソース画素値を反映することにより、ソース画素をコピーする場合に比べて拡大画像の画質は改善されるが、単純にスケーリング比率による勾配と加重値とをソース画素値にかけ算することにより高画質の拡大画像を得にくい。また、それだけでなく、かけ算と共に除算の演算も含むので、演算量が多くなる。
【００１０】
上述したように、内蔵形システムのための画像スケーリング機能はソフトウェアで具現するのが望ましく、ソフトウェアで具現しても無理のないほど演算量が少ないことが望ましい。しかし、演算量が少ない画像スケーリング技術はスケーリングされた画像の画質が低下し、スケーリングされた画像の画質低下を減少させるためには演算量が多くなるので、内蔵形システムのためには画質の低下を最小化しながらも演算量を減少することができる画像スケーリングが必要である。
【００１１】
【発明が解決しようとする課題】
したがって本発明の目的は、内蔵形システムに適合したデジタル画像スケーリング方法を提供することにある。
また本発明の他の目的は、画質の低下を最小化しつつ演算量も減少することができるデジタル画像スケーリング方法を提供することにある。
【００１２】
【課題を達成するための手段】
上述した目的を達成するために本発明は、内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージそれぞれの最小処理ユニットのサイズを決定する過程と、前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求める過程と、前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素値と、そのソース画素と離隔された距離に対応する加重値を使用して求め、前記ターゲットイメージを生成する過程とを備えることを特徴とする。
【００１３】
上記他の目的を達成するために本発明は、内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求める過程と、前記ソースイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックにそれぞれ対応するように前記ターゲットイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素値とそのソース画素と離隔された距離に対応する加重値を使用して求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする。
【００１４】
また他の目的を達成するために本発明は、内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求め、それぞれの加重値を一つの画素が有する画素値とそれぞれ掛けてルックアップテーブルを生成する過程と、前記ソースイメージの最小処理ユニットに対応する前記ターゲットイメージの最小処理ユニットのターゲット画素値をそれぞれ該当ターゲット画素値に反映するソース画素値とその離隔された距離に対応するように前記ルックアップテーブルを参照した演算により求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする。
【００１５】
また本発明は、内蔵形システムでデジタルソースイメージを拡大または縮小してデジタルターゲットイメージを得るための画像スケーリング方法において、前記ターゲットイメージのサイズに対する前記ソースイメージのサイズのスケーリング比率により、前記ソースイメージと前記ターゲットイメージが横方向と縦方向に対してそれぞれ相互に同一の個数の最小処理ユニットに分割されるように前記ソースイメージと前記ターゲットイメージの最小処理ユニットのサイズをそれぞれ決定する過程と、前記ソースイメージの２つの隣接画素間を一定等分した地点にそれぞれ対応し、０〜２ｎ（ｎは自然数）に属し、２つの画素間の加重値和が前記２ｎとなる整数の加重値を求め、それぞれの加重値を一つの画素が有する画素値とをそれぞれ掛けてルックアップテーブルを生成する過程と、前記ソースイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックにそれぞれ対応するように前記ターゲットイメージの最小処理ユニット×最小処理ユニットからなる最小処理ブロックの最小処理ユニットそれぞれのターゲット画素値を該当ターゲット画素値に反映するソース画素とその離隔された距離に対応するようにルックアップテーブルを参照した演算により求めて前記ターゲットイメージを生成する過程とを備えることを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明の望ましい実施例を添付の図面を参照して詳細に説明する。下記では本発明の要旨を不明にする可能性のある公知の機能及び構成に対する詳しい説明は省略する。
【００１７】
まず、本発明は画像を拡大または縮小するとき、図２（ａ）及び図２（ｂ）に示すようにスケーリング比率（ｓｃａｌｉｎｇ　ｒａｔｉｏ）によりソースイメージとターゲットイメージを横方向と縦方向に対してそれぞれ相互に同一の個数のユニット（ｕｎｉｔ）に分割し、このように分割されたユニットに対して一つずつ順次にスケーリング処理を行う。本発明において、分割されたユニットを“最小処理ユニット”と称し、最小処理ユニット×最小処理ユニットからなるブロックを“最小処理ブロック”と称する。最小処理ユニットのサイズはソースイメージとターゲットイメージの横方向のサイズと縦方向のサイズに対してそれぞれ最大公約数を求めて決定する。
【００１８】
図２（ａ）に示す２４２×１９８サイズの画像を、図２（ｂ）に示す１７６×１４４サイズの画像に縮小するダウンスケーリング（ｄｏｗｎ−ｓｃａｌｉｎｇ）の場合に、２４２と１７６の最大公約数が２２であるので、図２（ａ）のソースイメージと図２（ｂ）のターゲットイメージが横方向には２２つの最小処理ユニットに分割され、縦方向には１８つの最小処理ユニットに分割される例を示すものである。そして、ソースイメージの最小処理ユニットは１１つの画素からなり、ターゲットイメージの最小処理ユニットは８つの画素からなる。こうすると、ソースイメージの最小処理ブロックのサイズは１１×１１となり、ターゲットイメージの最小処理ブロックのサイズは８×８となり、ソースイメージとターゲットイメージはサイズが相互に異なるが、同一の個数、すなわち２２×１８つの最小処理ブロックに分割される。後述するように、最小処理ブロックのサイズは少ないほど有利になるが、スケーリング比率により異なるようになり、最上の場合には２×２となる反面、最悪の場合にはターゲットイメージのサイズと同一になる。ここで、最上の場合とはスケーリング比率が２倍または０．５倍の場合を意味し、最悪の場合とはソースイメージのサイズとターゲットイメージのサイズとの間に最大公約数を探すことができない場合を意味する。
【００１９】
一方、本発明において加重値はソースイメージの２つの隣接画素間を一定等分した地点に対応し、０〜２ｎに属し、２つの画素間の加重値和が２ｎとなる整数に定められる。ここで、ｎは自然数で、以下の説明でも同様である。前記加重値はソースイメージから生成するターゲットイメージの画素値に反映されるソース画素からターゲット画素が離隔された距離に対応するようにソース画素値に掛けるための値である。隣接する２つの画素間の間隔をより多くの数で均等に分割すると、加重値がさらに細分化されるので、画像スケーリングによる演算がより精密に行われてターゲットイメージの画質がよくなる反面、演算量が増加する。また、ｎ値も大きいほど加重値をさらに細分化させうるので、画像スケーリングによる演算がより精密に行われてターゲットイメージの画質がよくなる反面、演算量が増加する。したがって、本発明による画像スケーリング技術を採用する内蔵形システムで要求される画像の精密度、すなわちターゲットイメージで要求される画質によりｎ値を適切に決定する。本発明の発明者が実験した結果、ＩＭＴ−２０００端末機、ＰＤＡなどに対してはｎを１０に選択すれば適切であるという結論が得られ、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）に対してはｎを８に選択すれば適切であるとういう結論が得られた。
【００２０】
図３Ａは隣接した２つの画素Ｐａ、Ｐｂ間を８等分し、ｎを１０に選択した場合に２つの画素Ｐａ、Ｐｂのうち画素Ｐａを基準として画素Ｐａから離隔された距離に対応する加重値を示す。このとき、２１０＝１０２４なので、画素Ｐａから１／８地点の加重値は１２８（＝１０２４×１／８）、２／８地点の加重値は２５６（＝１０２４×２／８）、…、８／８地点の加重値は１０２４（＝１０２４×８／８）となる。ここで、画素Ｐａから１／８地点は画素Ｐａを基準とすれば加重値が１２８であるが、画素Ｐｂを基準とすれば加重値は８９６である。２つの画素Ｐａ、Ｐｂ間の残りの地点の加重値もこれと同様であり、２つの画素Ｐａ、Ｐｂ間の加重値の和は１０２４となる。
【００２１】
上記したような加重値は下記の数式１４により求められるが、本発明の説明では図３Ａに示したように２つの隣接した画素間の間隔を８等分する場合を例として説明する。
【００２２】
【数１４】
2004110776.tif 000004
【００２３】
上記数式１４においてｉは加重値インデックス（ｉｎｄｅｘ）として、上記したように２つの隣接画素間の間隔を８等分するので、１〜８となる。Ｖｗ［ｉ］は加重値の貯蔵配列を意味する。Ｒｓはスケーリング比率で、ソースイメージのサイズ／ターゲットイメージのサイズである。≪ｎは最上位ビット側へのｎビットシフトを示し、ここで最上位ビット側へのｎビットシフトはＲｓ　ｘ　ｉ−（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ
ｘ　ｉ）に２ｎを掛けた結果となる。
【００２４】
例えば、ｎを１０として選択した場合、図３Ａに示したように隣接した２つのソース画素間の加重値の和は２１０＝１０２４となり、加重値はターゲット画素が自分の生成のための演算基準となるソース画素から離隔される距離に対応するように０〜１０２４に属する整数に定められる。
【００２５】
図３Ｂは図２（ａ）及び図２（ｂ）のようにソースイメージの最小処理ユニットのサイズが１１で、ターゲットイメージの最小処理ユニットのサイズが８の場合、ソースイメージの１１つのソース画素Ｐ１〜Ｐ１１からターゲットイメージの８つのターゲット画素Ｐ１’〜Ｐ８’を生成する例を示す。この場合、ターゲット画素Ｐ１’〜Ｐ７’は隣接する該当ターゲット画素値に反映すべき２つのソース画素の画素値を該当ターゲット画素が離隔された距離に対応するように反映して生成し、ターゲット画素Ｐ８’はソース画素Ｐ１１をその通り取って生成する。その反面、ソース画素Ｐ１をその通り取ってターゲット画素Ｐ１’を生成し、隣接する該当ターゲット画素値に反映する２つのソース画素の画素値を該当ターゲット画素が離隔された距離に対応するように反映してターゲット画素Ｐ２’〜Ｐ８’を生成しても同様である。
【００２６】
上記した図３Ｂで、ターゲット画素Ｐ１’〜Ｐ７’の画素値は隣接する２つのソース画素の画素値をそれぞれ該当ターゲット画素が離隔された距離に対応する加重値を掛け、この掛けられた２つの値を加算してから最下位ビットの方にｎビットシフトさせることにより得られる。デジタル画像において、一つの画素が８ビットデータで表示されると、画素値は０〜２５５のうちのいずれか一つの値となるが、このような画素値を最上位ビット方にｎビットシフトさせると、該当画素値２ｎを掛けた結果となり、その逆に最下位ビット方にｎビットシフトさせると、該当画素値を２ｎに割る結果となる。
【００２７】
図２（ａ）及び図２（ｂ）に示したように、ソースイメージの処理ユニットのサイズが１１で、ターゲットイメージの最小処理ユニットのサイズが８の場合に上記数式１４により加重値を求めると、下記の表２のようになり、これを図３Ａ、図３Ｂに示す。ただし、Ｖｗ［８］は画素Ｐｂを基準とする場合で、この場合には１０２４でなく０となる。
【００２８】
【表２】
2004110776.tif 000005
【００２９】
図３Ｂの例において、２つのソース画素Ｐ１、Ｐ２からターゲット画素Ｐ１’を生成する例を説明すれば、ターゲット画素Ｐ１’＝（Ｐ１×６４０＋Ｐ２×３８４）≫１０となる。ここで、≫１０は最下位ビット側への１０ビットシフトを意味するが、これは２つの画素間の加重値和が２１０（＝１０２４）となるようにｎを選択して上記数式１４により加重値を求めるとき、最上位ビット方に１０ビットシフトさせることにより、結果的には１０２４とのかけ算と同様なので、（Ｐ１×６４０＋Ｐ２×３８４）により得られた値を１０２４で除算して画素が有する値に戻すためのものである。このように、ターゲット画素Ｐ１’の生成は整数の加重値乗算、加算、そしてシフトのみで具現され、残りのターゲット画素Ｐ２’〜Ｐ７’も同様なので、ターゲット画素Ｐ８’はソース画素Ｐ１１の画素値をその通り取る。
【００３０】
したがって、ターゲット画素値に反映するソース画素と離隔された距離に対応し、２つの画素間の加重値の和が２ｎとなる整数の加重値を使用してターゲット画素値を生成するので、内蔵形システムで要求される画質を満足させ、かつ従来とは異なり乗算が含まれず、乗算も整数間の乗算だけでなり、ｎを乗算しあるいは除算する演算もビットシフトによりなされるので、演算量が大幅に減少する。
【００３１】
図４は、本発明の一実施例による画像スケーリング装置のブロック構成図を示す。画像スケーリング処理をするプロセッサー１００と画像データ、すなわち画素データを貯蔵する第１、第２フレームメモリ（ｆｒａｍｅ　ｍｅｍｏｒｙ）１０２、１０４で構成される。プロセッサー１００は本発明を採用する内蔵形システムの主制御プロセッサーを使用することもでき、別の専用プロセッサーを追加して使用することもできる。後述するように、第１フレームメモリ１０２は１フレームのソースイメージデータと、このソースイメージデータから生成されたターゲットイメージデータを貯蔵するのに使用され、第２フレームメモリ１０４はスケーリング処理中に必要な画像データを貯蔵するのに使用される。
【００３２】
本発明の第１実施例によるプロセッサー１００の画像スケーリング流れ図を段階２００〜２０６のように示す図５を参照すれば、第１フレームメモリ１０２に１フレームのソースイメージデータが貯蔵されている状態でプロセッサー１００は段階２００でターゲットイメージのサイズに対するソースイメージのサイズのスケーリング比率により最小処理ユニットのサイズを決定する。このとき、上述したように、ソースイメージとターゲットイメージそれぞれの最小処理ユニットはソースイメージとターゲットイメージの横方向と縦方向に対してそれぞれ相互に同一の個数で分割されるように決定する。
【００３３】
このように、最小処理ユニットを決定するプロセッサー１００の処理過程に対して図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する例を段階３００〜３０６のように示す図６を参照して詳細に説明する。まず、プロセッサー１００は段階３００でソースイメージのサイズＳｒｃを２４２に、ターゲットイメージサイズＤｅｓを１７６に、スケーリング比率ＲｓをＳｒｃ／Ｄｅｃに、カウント値Ｃｏｕｎｔを０に初期化する。次に、段階３０２〜３０４でＲｓ×Ｃｏｕｎｔ値が整数となるまでカウント値Ｃｏｕｎｔを１ずつ増加させる。すると、スケーリング比率Ｒｓに対する整数倍となり、Ｒｓ×Ｃｏｕｎｔ値が整数となる最小値が求められるが、スケーリング比率Ｒｓは２４２／１７６＝１．３７５なので、Ｒｓ×Ｃｏｕｎｔ値が整数となる最小値は１１であり、このときのカウント値Ｃｏｕｎｔは８となる。このようにＲｓ×Ｃｏｕｎｔ値が整数となる最小値が求められると、段階３０６でＲｓ×Ｃｏｕｎｔ値１１をソースイメージの最小処理ユニットのサイズに決定し、カウント値Ｃｏｕｎｔをターゲットイメージの最小処理ユニットのサイズに決定する。これにより、ソースイメージとターゲットイメージの最小処理ユニットのサイズが図２（ａ）及び図２（ｂ）に示したように決定される。
【００３４】
上記段階２００で、プロセッサー１００はソースイメージとターゲットイメージの最小処理ユニットのサイズを決定してから、段階２０２で数式１４により加重値を求める。このように、加重値を求めるプロセッサー１００の処理過程を図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する例を挙げて段階４００〜４０８のように示す図７を参照して詳細に説明する。まず、プロセッサー１００は段階４００でインデックスｉを１に初期化した後、段階４０２〜４０８でインデックスｉがターゲットイメージの最小処理ユニットのサイズと同一になるまで１ずつ増加させつつ、数式１４により加重値を求めると共に、ｉｎｄｅｘ［ｉ］　＝　（ｉｎｔｅｇｅｒ　ｃａｓｔ）　（Ｒｓ　ｘ　ｉ）により後述するように各ターゲット画素の生成のための演算基準となるソース画素を指定するソース画素インデックスを求める。ここで、ｉｎｄｅｘ［ｉ］はソース画素インデックスの貯蔵配列である。このとき、加重値は表２のように求められ、ソース画素のインデックスは下記の表３のように求められる。一方、上記した段階４０２に示す数式は数式１４と違って｛Ｒｓ　ｘ　ｉ　−　（ｉｎｔｅｇｅｒ　ｃａｓｔ）　（Ｒｓ　ｘ　ｉ）｝＜＜　ｎの結果に対して整数を取るのが省略されているが、これは図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する場合には｛Ｒｓ　ｘ　ｉ　−（ｉｎｔｅｇｅｒ　ｃａｓｔ）　（Ｒｓ　ｘ　ｉ）｝＜＜　ｎの結果が整数となるので省略したものである。
【００３５】
【表３】
2004110776.tif 000006
【００３６】
上記したようにプロセッサー１００は上記段階２０２で加重値を求めた後、段階２０４でソースイメージの画素行のそれぞれに対して横方向にソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットそれぞれのターゲット画素の値を下記の数式１５により求めて横方向にスケーリングされた画像を生成する。このとき、ソースイメージが図９（ａ）に示すようであれば、段階２０４によりソースイメージの画素行それぞれの最小処理ユニットが図９（ｂ）のように横方向にスケーリングされてターゲットイメージの最小処理ユニットが生成されるので、横方向にスケーリングされた画像が得られる。このように生成される横方向にスケーリングされた画像のデータは第２フレームメモリ１０４に貯蔵される。
【００３７】
【数１５】
2004110776.tif 000007
【００３８】
前記数式１５で、ｉ、Ｖｗ［ｉ］は数式１４と同一であり、ｉｎｄｅｘ［ｉ］はソース画素インデックスの貯蔵配列として、上記の（ｉｎｔｅｇｅｒ　ｃａｓｔ）　（Ｒｓ　ｘ　ｉ）である。Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列で、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列である。≫ｎは最下位ビット側へのｎビットシフトを示し、ここで最下位ビット側へのｎビットシフトは（２ｎ−Ｖｗ［ｉ］）　ｘＳｒｃ［Ｉｎｄｅｘ［ｉ］］＋Ｖｗ［ｉ］　ｘ　Ｓｒｃ［Ｉｎｄｅｘ［ｉ＋１］］を２ｎで除算した結果となる。
【００３９】
上記したように、横方向にスケーリングされた画像を得るために図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する場合の例を挙げて、ソースイメージの一つの最小処理ユニットからそれに対応するターゲットイメージの一つの最小処理ユニットを生成するプロセッサー１００の処理過程を段階５００〜５０６で示す図８を参照して詳細に説明する。プロセッサー１００は段階５００でインデックスｉを１に初期化した後、段階５０２〜５０６でインデックスｉがターゲットイメージの最小処理ユニットのサイズと同じようになるまで１ずつ増加させながら、数式１５によりターゲットイメージの最小処理ユニットのターゲット画素値を求める。これにより、求められるターゲットイメージの最小処理ユニットの８つのターゲット画素値は下記の表４のようである。
【００４０】
【表４】
2004110776.tif 000008
【００４１】
ここで、Ｓｒｃ［１］〜Ｓｒｃ［１１］は図３Ｂのようなソースイメージの一つの最小処理ユニットの画素Ｐ１〜Ｐ１１の画素値をそれぞれ意味する。例えば、図３Ｂの例において、２つのソース画素Ｐ１、Ｐ２からターゲット画素Ｐ１’を生成する例を表３を参照して説明すれば、ターゲット画素Ｐ１’値Ｄｅｓ［１］＝（Ｐ１×６４０＋Ｐ２×３８４）≫１０となる。ここで、≫１０は上述したように段階４０２で数式１４により加重値を求めるとき、最上位ビットの方に１０ビットシフトさせるので、（Ｐ１×６４０＋Ｐ２×３８４）により得られた値を１０２４に除算して画素が有する値に戻すことである。そして、ターゲット画素Ｐ８’値のＤｅｓ［８］はＳｒｃ［１２］がソースイメージの最小処理ユニットにないので、その値が０なので、ソース画素Ｐ１１値に１０２４を掛けてからさらに最下位ビット方に１０ビットシフトさせて得るようになるので、ソース画素Ｐ１１の値をその通り取った結果となる。
【００４２】
上記したように、段階５００〜５０６によりソースイメージの１つの最小処理ユニットからそれに対応するターゲットイメージの一つの最小処理ユニットを生成する過程を段階２０４でソースイメージの画素行それぞれの横方向に継続される最小処理ユニットに対して１つずつ順次に繰り返すことで、図９（ａ）のようなソースイメージから図９（ｂ）のように横方向にスケーリングされた画像が得られる。
【００４３】
上記のようにプロセッサー１００は段階２０４で横方向にスケーリングされた画像を生成してから、段階２０６で横方向にスケーリングされた画像の画素列をそれぞれに対して縦方向にソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットそれぞれのターゲット画素の値を数式１５により求めてターゲットイメージを生成する。このとき、ソースイメージの１つの最小処理ユニットからそれに対応するターゲットイメージの１つの最小処理ユニットを生成することは段階２０４と同様に段階５００〜５０６により遂行される。これにより、図９（ｂ）に示すように横方向にスケーリングされた画像が段階２０６により図９（ｃ）のように縦方向にスケーリングされるので、結果的に図９（ｃ）の画像は横方向及び縦方向にダウンスケーリングされたターゲットイメージとなる。このように生成されるターゲットイメージのデータはソースイメージのデータの代わりに第１フレームメモリ１０２に貯蔵される。
【００４４】
上記の説明ではソース画素インデックスｉｎｄｅｘ［ｉ］を段階４０４で求めることを説明したが、段階５０２で求めてもよい。段階５０２でソース画素インデックスを求めると、最小処理ユニットを処理する度に演算を行うべきなので演算量が多くなり、それにより段階４０４で求めることである。このように、段階４０４でソース画素インデックスｉｎｄｅｘ［ｉ］を求めると、最小処理ユニットを処理する度に演算する必要なしに１つのソースイメージに対して一度だけ演算を遂行すればよい。
【００４５】
一方、上記したように画像スケーリングをする場合、第２フレームメモリ１０４には図９（ｂ）のように横方向にスケーリングされた画像のデータを貯蔵しなければならないので、それほどのサイズを有する貯蔵容量が要求される。前述したように、内蔵形システムではメモリ容量も制約を受けるので、第２フレームメモリ１０４の貯蔵容量をできるだけ減少するのが望ましい。もし、ソースイメージ全体を横方向にスケーリングしてから縦方向にスケーリングしてターゲットイメージを生成する代わりに、最小処理ブロック単位でソースイメージからターゲットイメージを生成するとすれば、第２フレームメモリ１０４はターゲットイメージの最小処理ブロックのサイズのみ有すればよい。すなわち、上記例のようにダウンスケーリングをする場合にプロセッサー１００は第１フレームメモリ１０２に貯蔵されているソースイメージの始めからターゲットイメージを最小処理ブロック単位で生成し始める。このとき、ターゲットイメージの一つの最小処理ブロックを生成する間には画素の画像データを第２フレームメモリ１０４に貯蔵してから、該当する１つの最小処理ブロックを生成完了すれば、生成されたターゲットイメージの最小処理ブロックの画像データを第１フレームメモリ１０２に貯蔵する。このとき、第１フレームメモリ１０２でターゲットイメージの最小処理ブロックの画像データが貯蔵される貯蔵領域に貯蔵されているソースイメージのデータに対しては既にターゲットイメージの生成を完了したので、その代わりにターゲットイメージの最小処理ブロックの画像データを貯蔵してもよい。ただし、ソースイメージを拡大するアップスケーリングをする場合にはターゲットイメージの最小処理ブロックのサイズがソースイメージの最小処理ブロックのサイズより大きいので、上記のような方法を使用すればソースイメージのデータがターゲットイメージを生成する前になくなる。これに基づいてアップスケーリングをする場合にはプロセッサー１００は第１フレームメモリ１０２に貯蔵されているソースイメージの終わりからターゲットイメージを最小処理ブロック単位に生成し始める。このとき、ターゲットイメージの１つの最小処理ブロックを生成する間には画素の画像データを第２フレームメモリ１０４に貯蔵してから該当する一つの最小処理ブロックを生成完了すれば、生成された最小処理ブロックを第１フレームメモリ１０２の貯蔵領域中に端部分から貯蔵し始める。このために、第１フレームメモリ１０２は少なくとも拡大したターゲットイメージのサイズだけの貯蔵領域を有するが、アップスケーリングを始める前に１フレームのソースイメージが貯蔵されている状態で、第１フレームメモリ１０２の端部分にはソースイメージのサイズとターゲットイメージのサイズとの間の差に該当する貯蔵領域が空いているようになる。このようにソースイメージの終わりからターゲットイメージを最小処理ブロック単位に生成し始め、生成される最小処理ブロックを第１フレームメモリ１０２の空いている端部分の貯蔵領域から貯蔵し始めると、ターゲットイメージのデータを生成する前にソースイメージのデータがなくなる場合が発生しないようになる。
【００４６】
図１０は、最小処理ブロック単位でターゲットイメージを生成することを本発明の第２実施例によるプロセッサー１００の画像スケーリング流れ図を段階６００〜６０８に示すものである。プロセッサー１００は段階６００でスケーリング比率によりソースイメージとターゲットイメージの最小処理ユニットを決定し、段階６０２で加重値の数式１４により求める。この段階６００、６０２は図５の段階２００、２０２とそれぞれ同一なので、これに対する説明は省略する。その後、プロセッサー１００は段階６０４でソースイメージの最小処理ブロックの画素行それぞれに対してソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットのターゲット画素の値を数式１５により求めて横方向にスケーリングされた最小処理ブロックを生成する。このとき、ソースイメージの始めから横方向にスケーリングされた最小処理ブロックを生成し始める。そして、ソースイメージが図１２（ａ）のようであれば、段階６０４によりソースイメージの最小処理ブロックが図１２（ｂ）のように横方向にスケーリングされるので、横方向にスケーリングされた最小処理ブロックが得られる。このように生成される横方向にスケーリングされた最小処理ブロックのデータは第２フレームメモリ１０４に貯蔵される。
【００４７】
図１１は、段階６０４で横方向にスケーリングされた最小処理ブロックを得るために図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する場合を例に挙げ、ソースイメージの１つの最小処理ブロックからそれに対応する横方向にスケーリングされた１つの最小処理ブロックを生成するプロセッサー１００の処理過程を段階７００〜７１２に示すものである。これら段階７００〜７１２は、一つの最小処理ユニットの画像データを生成する図８の段階５００〜５０６をソースイメージの１つの最小処理ブロックの最小処理ユニットの個数だけ繰り返して横方向にスケーリングされた１つの最小処理ブロックを生成することを示す。このとき、一つの最小処理ブロックの最小処理ユニットの個数は画素行の個数と同一に１１つなので、図１１による段階７００〜７１２により横方向にスケーリングされた一つの最小処理ブロックが生成される。まず、プロセッサー１００は段階７００でカウント値Ｃｏｕｎｔを０に初期化し、段階７０２でターゲットイメージの最小処理ユニットのサイズ×Ｃｏｕｎｔをインデックスｉに定める。その後、段階７０４〜７０８で図８の段階５０２〜５０６のようにインデックスｉがターゲットイメージの最小処理ユニットのサイズと同一になるまで１つずつ増加させつつ、数式１５によりターゲットイメージの最小処理ユニットのターゲット画素値を求める。このとき、インデックスｉがターゲットイメージの最小処理ユニットのサイズと同じになると、すなわち一つの最小処理ユニットに対する処理が完了すると、段階７１０でカウント値Ｃｏｕｎｔを１だけ増加させてから、段階７１２でカウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズと同じであるかどうかを確認する。もし、カウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズに至っていないと、段階７０２に進んで次の最小処理ユニットに対する処理を繰り返す。このようにして、カウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズと同一になると、ソースイメージの一つの最小処理ブロックのすべての最小処理ユニットに対して横方向にスケーリング処理がすべて完了したので終了する。
【００４８】
上記のように、横方向にスケーリングされた一つの最小処理ブロックが生成されると、プロセッサー１００は段階６０６で横方向にスケーリングされた最小処理ブロックの画素列のそれぞれに対してソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットのターゲット画素値を段階６０４と同様に段階７００〜７１２により数式１５により求めて横方向及び縦方向にスケーリングされた最小処理ブロックを生成する。このとき、横方向にスケーリングされた最小処理ブロックが図１２（ｂ）と同じであれば、段階６０６により図１２（ｃ）のように横方向及び縦方向にスケーリングされた最小処理ブロック、すなわちターゲットイメージの一つの最小処理ブロックが生成される。このように生成される横方向にスケーリングされた最小処理ブロックのデータは上述したように第２フレームメモリ１０４に貯蔵される。この後、プロセッサー１００は段階６０８でターゲットイメージの最小処理ブロックをすべて生成完了したかどうかを検査し、まだ完了しないと段階６０４に進んで次の最小処理ブロックを生成する。こうしてターゲットイメージの最小処理ブロックをすべて生成完了すれば終了する。
【００４９】
したがって、第２フレームメモリ１０４にはソースイメージの一つの最小処理ブロックからターゲットイメージの一つの最小処理ブロックを生成する途中で必要な画像データ、すなわち図１２（ｂ）のように横方向にスケーリングされた１つの最小処理ブロックのみを貯蔵すればよいので、横方向にスケーリングされた１つの最小処理ブロックのサイズだけの貯蔵容量のみを有すればよい。つまり、本発明の第１実施例に比して要求されるメモリの容量が大幅に減少する。
【００５０】
一方、上記したような本発明の第１及び第２実施例によれば、内蔵形システムで要求される画質を満足させつつ、従来と違って除算の演算が含まれず、乗算も整数間の乗算だけで行われ、ｎを掛けたり割ったりする演算もビットシフトにより遂行されるので、演算量が大幅に減少するが、ターゲットイメージのそれぞれのターゲット画素を生成する度に数式１５による演算が２回、すなわち横方向にスケーリングするとき１回、さらに縦方向にスケーリングするとき１回遂行される。これに対して、上記の本発明の第１及び第２実施例を説明すれば、図３Ｂのように最小処理ユニット単位でソースイメージからターゲットイメージを生成する過程が横方向と縦方向に対して反復されることが分かる。すなわち、１１つのソース画素Ｐ１〜Ｐ１１から８つのターゲット画素Ｐ１’〜Ｐ８’を生成する演算は常に数式１５により同一に行われ、デジタル画像の画素値は上述したように例えば０〜２５５のうちの一つの値を有するので、ソース画素Ｐ１〜Ｐ１１の画素値により演算に使用される値のみ異なるようになる。この点を考えるとき、ソース画素が有する画素値、例えば０から２５５までについて予め加重値を掛けてルックアップテーブル（ｌｏｏｋ−ｕｐ　ｔａｂｌｅ）を生成しておけば、それぞれのターゲット画素を生成するとき前記数式１５でソース画素と加重値を乗算する演算は省略可能になる。
【００５１】
図１３は上記のようにルックアップテーブルを使用してターゲットイメージを生成するための本発明の他の実施例による画像スケーリング装置のブロック構成図をしめすものであって、図４の画像スケーリング装置でルックアップテーブルを貯蔵するためのルックアップテーブルメモリ１０６を追加して構成するものである。プロセッサー１００はソースイメージからターゲットイメージを生成処理する前に後述するようにルックアップテーブルを生成してルックアップテーブルメモリ１０６に貯蔵して置いてから使用する。
【００５２】
図１４はこのルックアップテーブルを使用する本発明の第３実施例によるプロセッサー１００の画像スケーリング処理過程を段階８００〜８０６に示す流れ図である。まず、プロセッサー１００は段階８００でスケーリング比率によりソースイメージとターゲットイメージの最小処理ユニットを決定する。段階８００は図５の段階２００と同一なので、その説明は省略する。その後、プロセッサー１００は段階８０２で加重値を数式１４により求め、下記の数式１６によりそれぞれの加重値を一つの画素が有することができる画素値のそれぞれと掛けてルックアップテーブルを生成する。
【００５３】
【数１６】
2004110776.tif 000009
【００５４】
数式１６でｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックス、Ｖｗ［ｉ］はターゲットイメージの最小処理ユニットのターゲット画素に対する加重値貯蔵配列、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］［Ｔａｂｌｅ＿Ｉｎｄｅｘ］はインデックスｉと一つの画素が有する画素値に対するインデックスＴａｂｌｅ＿Ｉｎｄｅｘの配列からなるルックアップテーブル貯蔵配列を示す。
【００５５】
上記段階８０２によりルックアップテーブルを生成するプロセッサー１００の具体流れ図を段階９００〜９１６に示す図１５を参照すれば、まずプロセッサー１００は段階９００でインデックスｉを１に初期化した後、段階９０２で数式１４により加重値を求める。次に、段階９０４でテーブルインデックスＴａｂｌｅ＿Ｉｎｄｅｘを０に初期化した後、段階９０６〜９１０でテーブルインデックスＴａｂｌｅ＿Ｉｎｄｅｘが２５５を超えるまでテーブルインデックスＴａｂｌｅ＿Ｉｎｄｅｘを１ずつ増加させつつ数式１６により一つのインデックスｉ値に対応する一つの加重値に対するルックアップテーブルを生成する。これにより、一つのインデックスｉ値に対応する一つの加重値に対して０から２５５までの値からなるルックアップテーブルが生成されると、段階９１２で図７の段階４０４と同一にソース画素インデックスを求める。その後、段階９１４でインデックスｉがターゲットイメージの最小処理ユニットのサイズが同じであるかどうかを検査し、まだ同一になければ段階９１６でインデックスｉを１増加させた後、段階９０２から繰り返す。このようにして、インデックスｉがターゲットイメージの最小処理ユニットのサイズと同じになるまで段階９０２〜９１６を繰り返すことで、下記の表５のようなルックアップテーブルＬｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］［Ｔａｂｌｅ＿Ｉｎｄｅｘ］が生成されるとともに、表３のようなインデックス配列Ｉｎｄｅｘ［ｉ］が生成されてルックアップテーブルメモリ１０６に貯蔵される。
【００５６】
【表５】
2004110776.tif 000010
【００５７】
表５でＶｗ［１］〜Ｖｗ［８］は表３と同一であり、Ｖｗ［１］×１≫１０、Ｖｗ［１］×２≫１０、Ｖｗ［１］×３≫１０、…などは実際には乗算及びシフトされた値がルックアップテーブルに生成されて貯蔵されるものであるが、便宜上数式で示すことである。
【００５８】
上記したようにルックアップテーブルを生成してルックアップテーブルメモリ１０６に貯蔵した後、プロセッサー１００は段階８０４でソースイメージの画素行のそれぞれに対して横方向にソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を数式１７により表５のルックアップテーブルを参照した演算により求めて横方向にスケーリングされた画像を生成する。
【００５９】
【数１７】
2004110776.tif 000011
【００６０】
数式１７で、ｉはターゲットイメージの最小処理ユニットのターゲット画素に対するインデックスで、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］［Ｔａｂｌｅ＿Ｉｎｄｅｘ］はインデックスｉと一つの画素が有する画素値に対するインデックスＴａｂｌｅ＿Ｉｎｄｅｘの配列からなるルックアップテーブル貯蔵配列であり、Ｄｅｓ［ｉ］はターゲットイメージの最小処理ユニットの貯蔵配列、Ｓｒｃ［ｉｎｄｅｘ［ｉ］］はソースイメージの最小処理ユニットの貯蔵配列であり、Ｉｎｄｅｘ［ｉ］はターゲット画素の生成のための演算基準となるソース画素インデックスの貯蔵配列として前述したように（ｉｎｔｅｇｅｒ　ｃａｓｔ）（Ｒｓ×Ｉ）であり、Ｃｏｎｓｔは後述するようにターゲットイメージの最小処理ユニットのサイズの１／２値に初期化し、インデックスｉがターゲットイメージの最小処理ユニットのサイズの１／２より大きい場合には符号が反転される。
【００６１】
上記したようにルックアップテーブルを使用して横方向にスケーリングされた画像を得るために、図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する場合の例を挙げてソースイメージの一つの最小処理ユニットからそれに対応するターゲットイメージの一つの最小処理ユニットを生成するプロセッサー１００の処理過程を段階１０００〜１０１０に示す図１６を参照して詳細に説明する。まず、プロセッサー１００は段階１０００でインデックスｉを１に初期化し、Ｃｏｎｓｔ値をターゲットイメージの最小処理ユニットのサイズの１／２、すなわち４に定めた後、段階１００２〜１０１０でインデックスｉがターゲットイメージの最小処理ユニットのサイズと同じになるまで１ずつ増加させつつ、数式１７によりターゲットイメージの最小処理ユニットのターゲット画素の値を求める。このとき、Ｃｏｎｓｔ値はインデックスｉがターゲットイメージの最小処理ユニットのサイズの１／２より大きくなると、段階１０１０で符号が反転される。これにより求められるターゲットイメージの最小処理ユニットの８つのターゲット画素値は前記表４のように求められる。しかし、ソース画素値と加重値の乗算及びビットシフトは上記したようにルックアップテーブルを生成するとき、既に遂行されたのでそれぞれのターゲット画素値は表５に示すルックアップテーブルでＬｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ＋Ｃｏｎｓｔ］［Ｓｒｃ［Ｉｎｄｅｘ［ｉ］］］に該当する値と、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［ｉ］　［Ｓｒｃ［Ｉｎｄｅｘ［ｉ］＋１］］値を取って加算をすれば得られる。
【００６２】
上記の段階１０００〜１０１０によりソースイメージの一つの最小処理ユニットからそれに対応するターゲットイメージの一つの最小処理ユニットを生成する過程を段階８０４でソースイメージの画素行の横方向にそれぞれ連結される最小処理ユニットに対して一つずつ順次に反復することで、図９（ａ）からソースイメージが図９（ｂ）のように横方向にスケーリングされた画像が得られる。
【００６３】
上記プロセッサー１００は段階８０４で横方向にスケーリングされた画像を生成してから、段階８０６で横方向にスケーリングされた画像の画素列のそれぞれに対して縦方向にソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットそれぞれのターゲット画素値を数式１７により表５のルックアップテーブルを参照した演算により求めてターゲットイメージを生成する。このとき、ソースイメージの最小処理ユニットからそれに対応するターゲットイメージの一つの最小処理ユニットを生成することは、段階８０４と同様に段階１０００〜１０１０によりなる。これにより、図９（ｂ）のように横方向にスケーリングされた画像が段階８０６により図９（ｃ）のように縦方向にスケーリングされるので、結果的に図９（ｃ）の画像は横方向及び縦方向にダウンスケーリングされたターゲットイメージとなる。このように生成されるターゲットイメージのデータはソースイメージのデータの代わりに第１フレームメモリ１０２に貯蔵される。
【００６４】
したがって、ソース画素が有する画素値に対して予め加重値を掛けてルックアップテーブルを生成しておいた後、それぞれのターゲット画素を生成するとき、数式１５でソース画素と加重値を乗算する演算を省略できるので、プロセッサー１００の負荷を減少し、スケーリングの処理速度が速くなる。
【００６５】
通常に、内蔵形システムでソースイメージのサイズとターゲットイメージのサイズは固定される場合が多く、もし使用者の選択などにより変更可能に具現されるとしてもフレームごとに変更されない。そこで、このように生成されたルックアップテーブルは内蔵形システムの電源が“オン”されている間、またはソースイメージのサイズとターゲットイメージのサイズが変更される前まで使用可能であり、最悪の状況を考慮しても少なくとも１フレームに対して使用されうる。もし、本発明を採用した内蔵形システムがソースイメージのサイズとターゲットイメージのサイズは固定されている製品であれば、すなわち標準ビデオＣＯＤＥＣから出力される画像をＬＣＤの画像サイズに合わせてディスプレーするだけであれば、上記のルックアップテーブルは変更される必要がないので、製造企業で不揮発性メモリに貯蔵させておけば、実際スケーリング処理時にルックアップテーブルの生成を省略することも可能になる。
【００６６】
一方、上記のルックアップテーブルを使用してスケーリング処理をする本発明は図１０に示す本発明の第２実施例のように、最小処理ブロック単位でターゲットイメージを生成することと結合して実施することもできる。図１７はこのための本発明の第４実施例によるプロセッサー１００の画像スケーリング流れ図を段階１１００〜１１０８で示すものである。まず、プロセッサー１００は段階１１００でスケーリング比率によりソースイメージとターゲットイメージの最小処理ユニットを決定し、段階１１０２で加重値を数式１４により求め、数式１６により表５のようなルックアップテーブルを生成する。この段階１１００、１１０２は図１４の段階８００、８０２とそれぞれ同一なので、これに対する説明は省略する。その後、プロセッサー１００は段階１１０４でソースイメージの最小処理ブロックの画素行それぞれに対してソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットのターゲット画素値を数式１７により表５のルックアップテーブルを参照した演算により求めて横方向にスケーリングされた最小処理ブロックを生成する。このとき、ソースイメージの始めから横方向にスケーリングされた最小処理ブロックを生成し始める。そして、ソースイメージが図１２（ａ）と同一であるとすれば、段階１１０４によりソースイメージの最小処理ブロックが図１２（ｂ）のように横方向にスケーリングされるので、横方向にスケーリングされた最小処理ブロックが得られる。このように生成される横方向にスケーリングされた最小処理ブロックのデータは第２フレームメモリ１０４に貯蔵される。
【００６７】
図１８は、段階８０４で横方向にスケーリングされた最小処理ブロックを得るために図２（ａ）のような２４２×１９８サイズのソースイメージを図２（ｂ）のような１７６×１４４サイズのターゲットイメージに縮小する場合の例を挙げてソースイメージの一つの最小処理ブロックからそれに対応する横方向にスケーリングされた一つの最小処理ブロックを生成するプロセッサー１００の処理過程を段階１２００〜１２１６に示すものである。この段階１２００〜１２１６は上述のルックアップテーブルを参照して一つの最小処理ユニットの画像データを生成する図１６の段階１０００〜１０１０をソースイメージの一つの最小処理ブロックの最小処理ユニットの個数だけ繰り返して横方向にスケーリングされた一つの最小処理ブロックを生成することを示すものである。このとき、一つの最小処理ブロックの最小処理ユニットの個数は画素行の個数と同一に１１つなので、図１８による段階１２００〜１２１６により横方向にスケーリングされた一つの最小処理ブロックが生成される。まず、プロセッサー１００は段階１２００でカウント値Ｃｏｕｎｔを０に初期化し、段階１２０２でターゲットイメージの最小処理ユニットサイズ×Ｃｏｕｎｔをインデックスｉに決めるとともに、Ｃｏｎｓｔ値をターゲットイメージの最小処理ユニットのサイズの１／２、すなわち４に定める。その後、段階１２０４〜１２１２で図１６の段階１００２〜１０１０と同様にインデックスｉがターゲットイメージの最小処理ユニットのサイズと同じになるまで１ずつ増加させつつ、数式１７により表５のルックアップテーブルを参照した演算によりターゲットイメージの最小処理ユニットのターゲット画素値を求める。このとき、インデックスｉがターゲットイメージの最小処理ユニットのサイズと同一であれば、すなわち一つの最小処理ユニットに対する処理が完了すると、段階１２１４でカウント値Ｃｏｕｎｔを１増加させてから、段階１２１６でカウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズと同じであるかどうかを確認する。もし、カウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズに到達しないと、段階１２０２に進んで次の最小処理ユニットに対する処理を反復する。このようにして、カウント値Ｃｏｕｎｔがソースイメージの最小処理ユニットのサイズと同一になると、ソースイメージの一つの最小処理ブロックのすべての最小処理ユニットに対して横方向にスケーリング処理がすべて完了したので終了する。
【００６８】
上記したように横方向にスケーリングされた一つの最小処理ブロックが生成されると、プロセッサー１００は段階１１０６で横方向にスケーリングされた最小処理ブロックの画素列のそれぞれに対してソースイメージの最小処理ユニットに対応するターゲットイメージの最小処理ユニットのターゲット画素値を段階１１０４と同様に段階１２００〜１２１６により数式１７により表５のルックアップテーブルを参照した演算により求めて横方向及び縦方向にスケーリングされた最小処理ブロックを生成する。このとき、横方向にスケーリングされた最小処理ブロックが図１２（ｂ）のようであれば、段階１１０６により図１２（ｃ）のように横方向及び縦方向にスケーリングされた最小処理ブロック、すなわちターゲットイメージの一つの最小処理ブロックが生成される。このように生成される横方向にスケーリングされた最小処理ブロックのデータは、上述したように第１フレームメモリ１０４に貯蔵される。その後、プロセッサー１００は段階１１０８でターゲットイメージの最小処理ブロックをすべて生成完了したかどうかを検査し、まだ完了しないと段階１１０４に進んで次の最小処理ブロックを生成する。このようにターゲットイメージの最小処理ブロックをすべて生成完了すれば終了する。
【００６９】
したがって、ルックアップテーブルを使用することによりプロセッサー１００の負荷が減少するようになってスケーリング処理速度が速くなるだけでなく、第２フレームメモリ１０４の貯蔵容量を横方向にスケーリングされた１つの最小処理ブロックのサイズだけ減少することができる。
【００７０】
参考的に図２（ａ）のような２４２×１９８サイズの画像を図２（ｂ）のような１７６×１４４サイズの縮小するダウンスケーリングをする場合において、ルックアップテーブルを用いて横方向に縮小するプログラムの例をＡＮＳＩ（Ａｍｅｒｉｃａｎ　Ｎａｔｉｏｎａｌ　Ｓｔａｎｄａｒｄｓ　Ｉｎｓｔｉｔｕｔｅ）−Ｃ言語（ｌａｎｇｕａｇｅ）を使用して示すと、次のようである。下記のプログラムは図３（ｂ）と違って、ターゲット画素Ｐ１’の画素値はソース画素Ｐ１の画素値をその通り取って残りのターゲット画素Ｐ２’〜Ｐ８’の画素値は隣接する２つのソース画素の画素値を反映して生成する場合の例である。
【００７１】
ｆｏｒ　（ｉ＝０；　ｉ＜１９８；　ｉ＋＋）
ｆｏｒ　（ｊ＝０；　ｊ＜２２；　ｊ＋＋）
｛ｓｃｒＩｎｄｅｘ＝ｉ＊２４２＋ｊ＊１１）；
ｄｅｓＩｎｄｅｘ＝ｉ＊１７６＋ｊ＊８）；
ｄｅｓ［ｄｅｓＩｎｄｅｘ］＝ｓｒｃ［ｓｒｃＩｎｄｅｘ］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋１］＝ｔｂ３７５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋２］＋ｔｂ６２５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋１］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋２］＝ｔｂ７５０ｓｒｃ［ｓｒｃＩｎｄｅｘ＋３］＋ｔｂ２５０［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋２］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋３］＝ｔｂ１２５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５］＋ｔｂ８７５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋４］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋４］＝（ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５］＋ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６］）≫１；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋５］＝ｔｂ１２５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６］＋ｔｂ８７５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋７］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋６］＝ｔｂ７５０ｓｒｃ［ｓｒｃＩｎｄｅｘ＋８］＋ｔｂ２５０［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋９］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋７］＝ｔｂ３７５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋９］＋ｔｂ６２５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋１０］］；｝
【００７２】
すなわち、全体画像に対して画素行を処理して２４２つのうち１７６つの画素が得られ、最小処理ブロックが２２回反復実行されつつ該当処理が終了する。このように横方向処理の場合、処理結果による画素値が横方向に隣接する画素の画素値なので、４つの画素値を並列に、すなわち３２ビットで貯蔵すれば効率性が高くなる。
【００７３】
上記したように、横方向にスケーリングされた画像をルックアップテーブルを用いて縦方向に縮小するプログラムをＡＮＳＩ−Ｃ言語を使用すれば、次のようである。
【００７４】
ｆｏｒ　（ｉ＝０；　ｉ＜１８；　ｉ＋＋）
ｆｏｒ　（ｊ＝０；　ｊ＜１７６；　ｊ＋＋）
｛ｓｃｒＩｎｄｅｘ＝ｉ＊１１＊１７６＋ｊ；
ｄｅｓＩｎｄｅｘ＝ｉ＊８＊１７６＋ｊ；
ｄｅｓ［ｄｅｓＩｎｄｅｘ］＝ｓｒｃ［ｓｒｃＩｎｄｅｘ］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋１＊１７６］＝ｔｂ３７５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋２＊１７６］＋ｔｂ６２５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋１＊１７６］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋２＊１７６］＝ｔｂ７５０ｓｒｃ［ｓｒｃＩｎｄｅｘ＋３＊１７６］＋ｔｂ２５０［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋２＊１７６］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋３＊１７６］＝ｔｂ１２５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５＊１７６］＋ｔｂ８７５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋４＊１７６］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋４＊１７６］＝（ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５＊１７６］＋ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６＊１７６］）≫１；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋５＊１７６］＝ｔｂ１２５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６＊１７６］＋ｔｂ８７５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋７＊１７６］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋６＊１７６］＝ｔｂ７５０ｓｒｃ［ｓｒｃＩｎｄｅｘ＋８＊１７６］＋ｔｂ２５０［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋９＊１７６］］；
ｄｅｓ［ｄｅｓＩｎｄｅｘ＋７＊１７６］＝ｔｂ３７５ｓｒｃ［ｓｒｃＩｎｄｅｘ＋９＊１７６］＋ｔｂ６２５［ｓｒｃ［ｓｒｃＩｎｄｅｘ＋１０＊１７６］］；｝
【００７５】
すなわち、全体画像に対して画素列を処理して１９８つのうち１４４つの画素が得られ、最小処理ブロックが１８回反復実行されつつ該当処理が終了する。
【００７６】
上記したようにソースイメージを横方向に縮小するプログラムと縦方向に縮小するプログラムにおいてｔｂ１２５［　］〜ｔｂ８７５［　］は、下記の表６のようなルックアップテーブルを意味する。
【００７７】
【表６】
2004110776.tif 000012
【００７８】
表６で、ｔｂ１２５［ｉ］、ｔｂ２５０［ｉ］、ｔｂ３７５［ｉ］、ｔｂ６２５［ｉ］、ｔｂ７５０［ｉ］、ｔｂ８７５［ｉ］はそれぞれ（ｕｎｓｉｇｎｅｄ　ｃｈａｒ）に与えられた画素値０〜２５５に対して図３Ａで画素Ｐａから１／８、２／８、３／８、５／８、６／８、７／８地点の加重値に対するルックアップテーブルを意味する。例えば、表２で加重値がＶｗ［１］＝３８４の場合では、上記の表５のＬｏｏｋｕｐ＿Ｔａｂｌｅ［１］［１］、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［１］［２］、…、Ｌｏｏｋｕｐ＿Ｔａｂｌｅ［１］［２５５］がｔｂ３７５［ｉ］に該当する。したがって、表６のルックアップテーブルは表５と実質的に同じである。ただし、表６で表５と違って加重値が５１２の場合に該当するルックアップテーブル、すなわちｔｂ５００［ｉ］はない。これは上記のプログラムから分かるように、ｄｅｓ［ｄｅｓＩｎｄｅｘ＋４］は２つのソース画素値ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５］、ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６］と加算した後、最下位ビット方に１ビットシフトさせるとよく、ｄｅｓ［ｄｅｓＩｎｄｅｘ＋４＊１７６］は２つのソース画素値ｓｒｃ［ｓｒｃＩｎｄｅｘ＋５＊１７６］、ｓｒｃ［ｓｒｃＩｎｄｅｘ＋６＊１７６］を加算した後、最下位ビット方に１ビットシフトさせるとよいので、別途のルックアップテーブルがなくてもよいためである。
【００７９】
一方、本発明の発明者が試験したことによれば、本発明は最小処理ブロックのサイズが８×８の場合、ＣＩＦを基準としてスケーリング比率は５０％〜２００％まで画質の低下なしに適用可能な結果が得られた。そして、２つの隣接画素間を８等分して加重値演算を行う場合、ルックアップテーブルを表５、表６のように生成して使用すれば、８段階の縮小、４段階の拡大が可能である。また、２つの隣接画素間を１６等分して加重値の演算をする場合には表６に加えて表７のようなルックアップテーブルを生成して使用すれば１６段階の縮小、８段階の拡大が可能になる。
【００８０】
【表７】
2004110776.tif 000013
【００８１】
上記したように２つの隣接画素間をさらに細部的に等分してルックアップテーブルの個数を増加させて使用すれば、加重値がさらに細分化され、演算がより精密に行われるので、ターゲットイメージの画質がよくなるが、演算量が多くなる。したがって、一定個数の段階のみで拡大、縮小が可能なようにルックアップテーブルを生成させ、スケーリング比率がこのような拡大、縮小段階と正確に合わない場合には近似値を有するルックアップテーブルを使用するのが望ましい。
【００８２】
【発明の効果】
したがって本発明は、デジタル画像スケーリングを具現することにおいて、２つの画素間の加重値和が２ｎとなる整数の加重値を使用して整数間の乗算と加算及びビットシフトによる演算によりターゲット画素値を生成することにより、画質の低下を最小化しながら演算量も減少できるので、内蔵形システムでも多様な画像スケーリングを容易に具現することができる効果がある。
【００８３】
一方、上述した本発明の説明では具体的の実施例に関して説明したが、本発明の範囲を外れない限り多様な変形が実施可能である。特に、本発明の実施例では具体的の例として２４２×１９８サイズの画像を１７６×１４４サイズに縮小するダウンスケーリングの例を挙げたが、ソースイメージとターゲットイメージのサイズが異になっても同様に適用される。したがって、発明の範囲は説明された実施例により定められてはいけないし、特許請求の範囲と特許請求の範囲と均等なことにより定められるべきである。
【図面の簡単な説明】
【図１】通常の画像アップ−スケーリングの一例を説明するための例示図。
【図２】本発明によりソースイメージとターゲットイメージが最小処理ユニット及び最小処理ブロックに分割されることを示す例示図。
【図３Ａ】本発明により２つの隣接画素間を８等分する場合の加重値の例を示す例示図。
【図３Ｂ】本発明によりソースイメージからターゲットイメージの画素値を生成することを説明するための例示図。
【図４】本発明の一実施例による画像スケーリング装置のブロック構成図。
【図５】本発明の第１実施例による画像スケーリング流れ図。
【図６】本発明の実施例による最小処理ユニットの決定流れ図。
【図７】本発明の実施例による加重値演算流れ図。
【図８】図５によるターゲットイメージの最小処理ユニットの生成流れ図。
【図９】図５によりターゲットイメージが生成されることを説明するための例示図。
【図１０】本発明の第２実施例による画像スケーリング流れ図。
【図１１】図１０によるターゲットイメージの最小処理ブロックの生成流れ図。
【図１２】図１１によりターゲットイメージが生成されることを説明するための例示図。
【図１３】本発明の他実施例による画像スケーリング装置のブロック構成図。
【図１４】本発明の第３実施例による画像スケーリング流れ図。
【図１５】本発明の実施例によるルックアップテーブルの生成流れ図。
【図１６】図１５によるターゲットイメージの最小処理ユニットの生成流れ図。
【図１７】本発明の第４実施例による画像スケーリング流れ図。
【図１８】図１７によるターゲットイメージの最小処理ブロック生成流れ図。
【符号の説明】
１００　　プロセッサー
１０２　　第１フレームメモリ
１０４　　第２フレームメモリ
【図１】
2004110776.tif 000027
【図２】
2004110776.tif 000028
【図３Ａ】
2004110776.tif 000029
【図３Ｂ】
2004110776.tif 000030
【図４】
2004110776.tif 000031
【図５】
2004110776.tif 000032
【図６】
2004110776.tif 000033
【図７】
2004110776.tif 000034
【図８】
2004110776.tif 000035
【図９】
2004110776.tif 000036
【図１０】
2004110776.tif 000037
【図１１】
2004110776.tif 000038
【図１２】
2004110776.tif 000039
【図１３】
2004110776.tif 000040
【図１４】
2004110776.tif 000041
【図１５】
2004110776.tif 000042
【図１６】
2004110776.tif 000043
【図１７】
2004110776.tif 000044
【図１８】
2004110776.tif 000045