(57)【要約】【課題】転送元の画像領域から転送先の画像領域に画像データを分割して転送する際、適切な転送元の分割幅を迅速かつ容易に算出でき、画質の劣化を低減することが可能な表示制御方法及び表示制御装置を提供すること。【解決手段】転送元の画像領域のサイズと、転送元の画像領域から画像データが転送される転送先の画像領域のサイズに基づいて転送倍率を算出し、それぞれ任意の整数値を有する複数の候補値に転送倍率を乗じて、複数の第１の算出値を算出し、第１の算出値を端数処理して、整数値を有する第２の算出値を算出し、第２の算出値と第２の算出値の算出元の候補値の比率を算出し、候補値毎に比率と転送倍率との間の差を比較し、比較結果に基づいて、複数の候補値の中から１の候補値を抽出し、抽出した候補値を、転送元の画像領域を互いに平行に分割するときの分割幅として決定する。【選択図】図４
2010186065.tif 000002
【特許請求の範囲】
【請求項１】
転送元の画像領域のサイズと、前記転送元の画像領域から画像データが転送される転送先の画像領域のサイズに基づいて転送倍率を算出するステップと、
それぞれ任意の整数値を有する複数の候補値に前記転送倍率を乗じて、複数の第１の算出値を算出するステップと、
前記第１の算出値を端数処理して、整数値を有する第２の算出値を算出するステップと、
前記第２の算出値と前記第２の算出値の算出元の前記候補値の比率を算出するステップと、
前記候補値毎に前記比率と前記転送倍率との間の差を比較するステップと、
前記比較結果に基づいて、前記複数の候補値の中から１の前記候補値を抽出するステップと、
前記抽出した候補値を、前記転送元の画像領域を互いに平行に分割するときの分割幅として決定するステップと、
を有する、表示制御方法。
【請求項２】
前記複数の候補値は、前記転送元の画像領域を互いに平行に分割するときの分割数に基づいて決定される、請求項１に記載の表示制御方法。
【請求項３】
前記第１の算出値を端数処理するときの丸め幅は１である、請求項１又は２に記載の表示制御方法。
【請求項４】
前記複数の候補値の中から１の前記候補値を抽出するステップは、前記複数の候補値の中で、前記比率と前記転送倍率との間の差が最小となる前記候補値を抽出する、請求項１〜３のいずれかに記載の表示制御方法。
【請求項５】
前記分割幅に基づいて、前記分割幅を有する画像データを第１の記憶部に保持された転送元の画像データから読み出すステップと、
前記読み出された前記分割幅を有する画像データに対して、拡大処理又は縮小処理するステップと、
前記拡大処理又は前記縮小処理された画像データを第２の記憶部に書き出すステップと、
前記第２の記憶部に書き出した前記画像データを表示装置に表示するステップと、
を有する、請求項１〜４のいずれかに記載の表示制御方法。
【請求項６】
転送元の画像領域のサイズと転送先の画像領域のサイズに基づいて転送倍率を算出する第１の算出部と、
それぞれ任意の整数値を有する複数の候補値に前記転送倍率を乗じて、複数の第１の算出値を算出する第２の算出部と、
前記第１の算出値を端数処理して、整数値を有する第２の算出値を算出する第３の算出部と、
前記第２の算出値と前記第２の算出値の算出元の前記候補値の比率を算出する第４の算出部と、
前記候補値毎に前記比率と前記転送倍率との間の差を比較する比較部と、
前記比較結果に基づいて、前記複数の候補値の中から１の前記候補値を抽出する抽出部と、
前記抽出した候補値を、前記転送元の画像領域を互いに平行に分割するときの分割幅として決定する分割幅決定部と、
を有する、表示制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御方法及び表示制御装置に関する。
【背景技術】
【０００２】
表示装置（ディスプレイ）に画像を表示するには、まず、ＶＲＡＭ（Video  Random  Access  Memory）に設けられたバッファに画像データが書き込まれる。そして、ＶＲＡＭの内容を表示装置に反映することによって、表示装置に画像が表示される。従って、ＶＲＡＭの内容を表示装置に反映させるタイミングの制御が悪いと、ＶＲＡＭに書き込まれている途中の画像データに対応する不完全な画像が表示装置に表示されてしまう。
【０００３】
そこで、ＶＲＡＭ上に同一サイズの第１のバッファと第２のバッファを設ける場合がある。そして、第１のバッファ及び第２のバッファのいずれか一方を画像データの書き込み用とし、他方を表示装置への反映用として、これらの用途を交互に切り替えることによって、表示装置に完全な画像が表示されるようにする。
【０００４】
また、ＶＲＡＭ上にフロントバッファを設け、ＶＲＡＭと異なるメインメモリにバックバッファを設ける場合がある。このときは、バックバッファを画像データの書き込み用とし、フロントバッファを表示装置への反映として、バックバッファの内容をフロントバッファに速やかに転送することによって、表示装置に完全な画像が表示されるようにする。特許文献１には、画像を表示するために用いるメモリの使用量を削減することができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−８６４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１の表示制御装置は、バックバッファから画像データを部分的に読み出し、読み出された画像データを拡大又は縮小処理する。バックバッファから画像データを分割し部分的に読み出す際、部分的に読み出される画像データの境界は、拡大又は縮小処理後の座標が整数となるように決定される。
【０００７】
例えば、図７を参照して説明する。図７は、縮小処理前の画像データ（図中左）及び縮小処理後の画像データ（図中右）を示す説明図である。また、図７の画像データは、水平線によって複数の分割領域に区切られることを示している。
【０００８】
図７（Ａ）は、縮小処理前の画像データ（転送元領域）の高さが７０であり、縮小処理後の画像データ（転送先領域）の高さが３０であるとき、転送元領域の分割幅を４９と２１にして２分割して処理する例である。転送先領域の分割幅を、それぞれ２１と９にすることによって、縮小処理後の座標が整数となる。また、転送元領域の２つの分割領域のいずれも同一の転送倍率（＝３０／７０）で縮小することができる。
【０００９】
一方、（１）転送元領域の高さ、（２）転送先領域の高さ、（３）分割幅として指定できる最大幅によっては、転送元の分割幅に転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出した値が小数部分を含む場合がある。小数部分を含むときは、拡大又は縮小処理後の座標を整数とするため、小数部分を切り上げ又は切り捨てして、切り上げ又は切り捨てした整数値を転送先の分割幅と決定する。転送元の分割幅に転送倍率を掛けて算出した値が小数点を含まず、整数であるときは、切り上げ又は切り捨て部分がないため、その算出値をそのまま転送先の分割幅として採用する。
【００１０】
従って、切り上げ又は切り捨てされた小数部分が大きいときは、転送元の分割幅に転送倍率を掛けて算出した値と、切り上げ又は切り捨て後の決定値との間の差が大きくなる。
【００１１】
また、分割領域毎の転送倍率は、同一であることが望ましいが、（１）転送元領域の高さ、（２）転送先領域の高さ、（３）分割幅として指定できる最大幅によっては、分割領域間の転送倍率に差が生じる場合があった。
【００１２】
従って、転送元の分割幅に転送倍率を掛けて算出した値と、切り上げ又は切り捨て後の決定値との間の差が大きかったり、分割領域間の転送倍率の差が大きかったりすると画質に劣化が生じるという問題があった。そこで、できるだけ画質の劣化を減少させる転送元領域の分割幅を算出する必要があるが、そのような算出手段は従来検討されていなかった。
【００１３】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、転送元の画像領域から転送先の画像領域に画像データを分割して転送する際、適切な転送元の分割幅を迅速かつ容易に算出でき、画質の劣化を低減することが可能な、新規かつ改良された表示制御方法及び表示制御装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明のある観点によれば、転送元の画像領域のサイズと、転送元の画像領域から画像データが転送される転送先の画像領域のサイズに基づいて転送倍率を算出するステップと、それぞれ任意の整数値を有する複数の候補値に転送倍率を乗じて、複数の第１の算出値を算出するステップと、第１の算出値を端数処理して、整数値を有する第２の算出値を算出するステップと、第２の算出値と第２の算出値の算出元の候補値の比率を算出するステップと、候補値毎に比率と転送倍率との間の差を比較するステップと、比較結果に基づいて、複数の候補値の中から１の候補値を抽出するステップと、抽出した候補値を、転送元の画像領域を互いに平行に分割するときの分割幅として決定するステップとを有する表示制御方法が提供される。
【００１５】
上記複数の候補値は、転送元の画像領域を互いに平行に分割するときの分割数に基づいて決定されてもよい。
【００１６】
上記第１の算出値を端数処理するときの丸め幅は１であってもよい。
【００１７】
上記複数の候補値の中から１の候補値を抽出するステップは、複数の候補値の中で、比率と転送倍率との間の差が最小となる候補値を抽出してもよい。
【００１８】
上記分割幅に基づいて、分割幅を有する画像データを第１の記憶部に保持された転送元の画像データから読み出すステップと、読み出された分割幅を有する画像データに対して、拡大処理又は縮小処理するステップと、拡大処理又は縮小処理された画像データを第２の記憶部に書き出すステップと、第２の記憶部に書き出した画像データを表示装置に表示するステップとを有してもよい。
【００１９】
また、上記課題を解決するために、本発明の別の観点によれば、転送元の画像領域のサイズと転送先の画像領域のサイズに基づいて転送倍率を算出する第１の算出部と、それぞれ任意の整数値を有する複数の候補値に転送倍率を乗じて、複数の第１の算出値を算出する第２の算出部と、第１の算出値を端数処理して、整数値を有する第２の算出値を算出する第３の算出部と、第２の算出値と第２の算出値の算出元の候補値の比率を算出する第４の算出部と、候補値毎に比率と転送倍率との間の差を比較する比較部と、比較結果に基づいて、複数の候補値の中から１の候補値を抽出する抽出部と、抽出した候補値を、転送元の画像領域を互いに平行に分割するときの分割幅として決定する分割幅決定部とを有する表示制御装置が提供される。
【発明の効果】
【００２０】
本発明によれば、転送元の画像領域から転送先の画像領域に画像データを分割して転送する際、適切な転送元の分割幅を迅速かつ容易に算出でき、画質の劣化を低減することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態に係る画像表示装置１００を示すブロック図である。
【図２】本実施形態に係る画像表示装置１００のデータの流れ、処理要求を示す説明図である。
【図３】本実施形態に係る画像表示装置１００の処理動作を示すフローチャートである。
【図４】図４は、本実施形態における最適な転送元の分割幅の算出方法を示すフローチャートである。
【図５】画像データの拡大又は縮小処理を示す説明図である。
【図６】画像データの転送処理を示す説明図である。
【図７】縮小処理前の画像データ（図中左）及び縮小処理後の画像データ（図中右）を示す説明図である。
【図８】縮小処理前の画像データ（図中左）及び縮小処理後の画像データ（図中右）を示す説明図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２３】
なお、説明は以下の順序で行うものとする。
１．本発明の一実施形態の構成
２．画像データの表示処理
３．転送倍率について
４．実現方式
５．分割について
６．転送元の分割幅算出方法
７．本実施形態の効果
【００２４】
＜１．本発明の一実施形態の構成＞
まず、図１を参照して、本発明の一実施形態に係る画像表示装置１００の構成について説明する。図１は、本実施形態に係る画像表示装置１００を示すブロック図である。
画像表示装置１００は、例えば液晶パネルディスプレイ、有機ＥＬディスプレイなどである。画像表示装置１００は、表示制御装置の一例であり、画像データに対応する画像をディスプレイ１２２に表示する。画像表示装置１００は、例えば、記憶媒体１２１などを介して外部から供給される画像データや、拡大したり、縮小したりした画像データに基づいて、画像をディスプレイ１２２に表示する。
【００２５】
画像表示装置１００は、例えば、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、バス１１４、入出力インタフェース１１５、入力部１１６、表示制御部１１７、記憶部１１８、通信部１１９、ドライブ１２０、記憶媒体１２１、ディスプレイ１２２などからなる。
【００２６】
ＣＰＵ１１１（Central  Processing  Unit）は、バス１１４と接続され、バス１１４を介して入出力インタフェース１１５と接続される。バス１１４は、ＲＯＭ（Read  Only  Memory）１１２及びＲＡＭ（Random  Access  Memory）１１３と接続される。ＣＰＵ１１１は、バッファ制御ミドルウェア１３２を実行する。
【００２７】
入出力インタフェース１１５は、入力部１１６、表示制御部１１７、記憶部１１８、通信部１１９及びドライブ１２０と接続される。
入力部１１６には、ユーザによって操作コマンドが入力される。
表示制御部１１７は、画像データに対応する画像をディスプレイ１２２に表示させる。表示制御部１１７は、フロントバッファ１４３によって保持されている画像データをディスプレイ１２２の表示に反映させる。
記憶部１１８は、例えばハードディスクドライブなどからなり、プログラムや各種データを格納する。
通信部１１９は、モデム、ＬＡＮ（Local  Area  Network）アダプタからなり、インターネットなどのネットワークを介した通信処理を実行する。
ドライブ１２０は、記憶媒体１２１に対してデータを読み書きする。記憶媒体１２１は、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Compact  Disc-Read  Only  Memory）、ＤＶＤを含む）、光磁気ディスク（ＭＤ（Mini  Disc）を含む）、又は半導体メモリなどである。記憶媒体１２１は、画像データを保持する。
【００２８】
ＲＡＭ１１３は、画像表示アプリケーション１３１、バッファ制御ミドルウェア１３２を格納し、ＲＡＭ１１３にはバックバッファ１３４が設けられる。
画像表示アプリケーション１３１は、ＣＰＵ１１１によって実行される。画像表示アプリケーション１３１は、画像表示装置１００の動作を制御するためアプリケーションプログラムである。
バッファ制御ミドルウェア１３２は、画像表示アプリケーション１３１から呼び出される複数のＡＰＩ（Application  Program  Interface）を提供する。
画像表示アプリケーション１３１及びバッファ制御ミドルウェア１３２は、記憶部１１８にインストールされており、入力部１１６に入力されるユーザからのコマンドに対応するＣＰＵ１１１の指令によって、記憶部１１８からＲＡＭ１１３にロードされる。
バックバッファ１３４は、記憶媒体１２１から読み出された画像データを格納する。
【００２９】
表示制御部１１７は、画像処理部１４１、ＶＲＡＭ１４２を有する。
画像処理部１４１は、バックバッファ１３４に保持され、バックバッファ１３４から読み出された画像データに対して拡大、縮小などの画像処理を行う。
ＶＲＡＭ１４２には、フロントバッファ１４３、画像処理部用作業領域１４４が設けられる。
フロントバッファ１４３は、画像処理部１４１による画像処理結果の画像データを保持する。フロントバッファ１４３は、書き込まれた画像データがディスプレイ１２２に反映される。画像処理部用作業領域１４４は、画像処理部１４１によって使用される領域である。
画像処理部１４１、バックバッファ１３４及びフロントバッファ１４３は、ＡＰＩにより制御される。ＡＰＩは、バッファ制御ミドルウェア１３２によって提供され、画像表示アプリケーション１３１によって呼び出され、画像処理部１４１、バックバッファ１３４及びフロントバッファ１４３を制御する。
【００３０】
＜２．画像データの表示処理＞
次に、図２及び図３を参照して、記憶媒体１２１上の画像データを拡大又は縮小処理してディスプレイ１２２に表示する処理について説明する。図２は、本実施形態に係る画像表示装置１００のデータの流れ、処理要求を示す説明図である。図２では、データの流れを実線の矢印で示し、処理要求を破線の矢印で示した。図３は、本実施形態に係る画像表示装置１００の処理動作を示すフローチャートである。
【００３１】
まず、ＲＡＭ１１３に読み込まれた画像表示アプリケーション１３１が、転送元の画像分割幅を算出し、ＣＰＵ１１１に処理要求する（ステップＳ１０１）。このとき、画像表示アプリケーション１３１は、転送元の分割幅に転送倍率を掛けて算出した値と、転送先の分割幅として決定する値との間の差が小さくなるように転送元領域の分割幅を算出する。
【００３２】
次に、ＣＰＵ１１１は、記憶媒体１２１から画像データを読み込む処理をする（ステップＳ１０２）。そして、記憶媒体１２１からの画像データが、ＲＡＭ１１３のバックバッファ１３４に格納される（ステップＳ１０３）。
【００３３】
そして、バックバッファ１３４に格納された画像データのうち、上部から順に、ステップＳ１０１で算出された転送元の画像分割幅に相当する領域が、ＶＲＡＭ１４２の画像処理部用作業領域１４４（一時領域）に読み込まれる（ステップＳ１０４）。なお、画像処理部用作業領域１４４に読み込まれる画像データは、デコード処理がされた後、読み込まれる。なお、画像データが、デコード処理を行わずにディスプレイに表示できる場合にも本実施形態を適用できる。そのときは、デコード処理が行われずに、画像処理部用作業領域１４４に画像データが読み込まれる。
【００３４】
次に、画像処理部１４１が、画像処理部用作業領域１４４上の画像データに対して拡大又は縮小処理をする（ステップＳ１０５）。そして、拡大又は縮小処理された画像データをフロントバッファ１４３（表示用領域）に格納する（ステップＳ１０６）。以上のステップＳ１０４〜ステップＳ１０６の処理は、バックバッファ１３４上の画像データ全体の処理が完了されるまで繰り返される（ステップＳ１０７）。
【００３５】
画像データ全体の処理が完了すると、バックバッファ１３４上の画像データ全体がフロントバッファ１４３に反映される。そして、フロントバッファ１４３上の画像データがディスプレイ１２２に表示される（ステップＳ１０８）。このとき、明示的な処理要求は不要である。
【００３６】
本実施形態の画像表示装置１００は、図５及び図６に示すように、バックバッファ１３４から画像データを部分的に読み出し、読み出された画像データを拡大又は縮小処理して、順次フロントバッファ１４３に画像データを転送する。図５は、画像データの拡大又は縮小処理を示す説明図である。図６は、画像データの転送処理を示す説明図である。
【００３７】
なお、上述した本実施形態では、ＲＡＭ１１３にバックバッファ１３４が設けられる場合について説明したが、バックバッファ１３４が設けられず、記憶媒体１２１から直接画像処理部用作業領域１４４に画像データが読み込まれてもよい。このときは、ステップＳ１０３は省略され、ステップＳ１０４では、記憶媒体１２１に格納された画像データのうち、上部から順に、ステップＳ１０１で算出された転送元の画像分割幅に相当する領域が、画像処理部用作業領域１４４に読み込まれる。
【００３８】
＜３．転送倍率について＞
次に、画像表示装置１００における転送倍率について説明する。
以下、本来の転送倍率とは、（転送先領域の高さ／転送元領域の高さ）である。転送元の分割幅に本来の転送倍率を掛けて算出した値は、転送先領域の高さ、転送元領域の高さ、転送元の分割幅などの条件によって、整数にならないときがある。このときは、転送先の分割幅は、転送元の分割幅に本来の転送倍率を掛けて算出した値（第１の算出値）を切り上げ又は切り捨て（端数処理）して得られる（第２の算出値）。このようにして、転送先の分割幅が決定されたときは、その分割領域の転送倍率は、（切り上げ又は切り捨てして得られた転送先の分割幅／転送元の分割幅）（＝第２の算出値と第２の算出値の算出元の候補値の比率）である。この転送倍率を、以下、新たに決定された転送倍率ともいう。
【００３９】
本来の転送倍率と新たに決定された転送倍率の間に差が生じない場合とは、転送元領域の分割幅に本来の転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出された値が、全ての分割領域について、整数であるときである。
【００４０】
例えば、図７を参照して説明する。図７は、縮小処理前の画像データ（図中左）及び縮小処理後の画像データ（図中右）を示す説明図である。また、図７の画像データは、水平線によって複数の分割領域に区切られることを示している。
【００４１】
図７（Ａ）は、縮小処理前の画像データ（転送元領域）の高さが７０であり、縮小処理後の画像データ（転送先領域）の高さが３０であるとき、転送元領域の分割幅を４９と２１にして２分割して処理する例である。転送先領域の分割幅を、それぞれ２１と９にすることによって、縮小処理後の座標が整数となる。また、転送元領域の２つの分割領域のいずれも同一の転送倍率（＝３０／７０）で縮小することができる。
【００４２】
しかし、諸条件によっては、転送元領域の分割幅に本来の転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出された値が、全ての分割領域について、整数にならない。諸条件とは、例えば（１）転送元領域の高さ、（２）転送先領域の高さ、及び（３）分割幅として指定できる最大幅である。
【００４３】
分割領域の分割幅に本来の転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出された値が、全ての分割領域について、整数になるためには、以下の条件を満たす必要がある。
【００４４】
ｓｒｃ＿ｈｅｉｇｈｔ      ：  転送元領域の高さ
ｄｓｔ＿ｈｅｉｇｈｔ      ：  転送先領域の高さ
ｍａｘ＿ｄｉｖ＿ｌｉｎｅ  ：  分割幅として指定できる最大幅
としたとき、
max_div_line≧src_height／｛src_heightとdst_heightの最大公約数｝
・・・（式１）
上記の条件を満たさない場合、本来の転送倍率と新たに決定された転送倍率の間に差が生じてしまう。
【００４５】
例えば、図７（Ａ）の例では、src_height＝70、dst_height＝30、max_div_line＝50であるとする。このとき、
src_height（＝70）／｛src_heightとdst_heightの最大公約数（＝10）｝（＝7）は、max_div_line（＝50）以下であるため、上記式１を満たす。従って、転送元領域の分割幅に本来の転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出された値は、全ての分割領域について、整数にすることができる。
【００４６】
一方、図７（Ｂ）の例では、src_height＝270、dst_height＝256、max_div_line＝64であるとする。このとき、
src_height（＝270）／｛src_heightとdst_heightの最大公約数（＝2）｝（＝135）は、max_div_line（＝64）より大きいため、上記式１を満たさない。従って、分割領域の分割幅に本来の転送倍率（＝転送先領域の高さ／転送元領域の高さ）を掛けて算出された値は、全ての分割領域について、整数にすることができない。
【００４７】
本実施形態では、上記の条件を満たさない場合についても、本来の転送倍率と新たに決定された転送倍率の間の差ができるだけ小さくなるような転送元の分割幅を算出する方法を提示する。
【００４８】
上述した通り、本実施形態の画像表示装置１００では、画像データに対して拡大、縮小処理を行い、画像データを別領域に転送する。このとき、転送元の領域と、転送先の領域の座標は整数でのみ指定可能である。
【００４９】
画像データを分割しつつ、拡大又は縮小処理を行う場合、転送先領域の座標は、分割した転送元領域の座標に転送倍率を掛けて算出されるため、算出された座標が小数になってしまうことがある。しかし、転送先の領域の座標は整数でのみ指定可能であるから、転送先領域の座標の小数部分を丸める必要がある。その結果、本来の転送倍率と、切り上げ又は切り捨て後の決定値に基づく転送倍率との間に差が生じ、特に分割境界部分の画質が劣化してしまう。
【００５０】
本実施形態では、本来の転送倍率と、切り上げ又は切り捨て後の決定値に基づく転送倍率との間の差ができるだけ小さくなるような分割幅を算出する方法を提案する。この分割幅にしたがって、分割を行うことで、分割境界部分の画質劣化を抑えることができる。
【００５１】
＜４．実現方式＞
本実施形態は、転送元の分割幅に転送倍率を掛けて算出した値と、転送先の分割幅として決定する値との間の差が小さくなる転送元の分割幅を算出する方法を提示するものであるため、ＶＲＡＭ１４２上の領域を管理したり、画像処理部１４１を制御したりする必要はない。このため、本実施形態は、画像データを表示する画像表示アプリケーション１３１で実現してもよいし、別途設けられたミドルウェアで実現してもよい。
【００５２】
画像表示アプリケーション１３１が実現する場合、画像表示アプリケーション１３１は、第１の算出部と、第２の算出部と、第３の算出部と、第４の算出部と、比較部と、抽出部と、分割幅決定部などを有する。第１の算出部は、転送元の画像領域のサイズと、転送元の画像領域から画像データが転送される転送先の画像領域のサイズに基づいて転送倍率を算出する。第２の算出部は、それぞれ任意の整数値を有する複数の候補値に転送倍率を乗じて、複数の第１の算出値を算出する。第３の算出部は、第１の算出値を端数処理して、整数値を有する第２の算出値を算出する。第４の算出部は、第２の算出値と第２の算出値の算出元の候補値の比率を算出する。比較部は、候補値毎に比率と転送倍率との間の差を比較する。抽出部は、比較結果に基づいて、複数の候補値の中から１の候補値を抽出する。分割幅決定部は、抽出した候補値を、転送元の画像領域を互いに平行に分割するときの分割幅として決定する。
【００５３】
上記複数の候補値は、転送元の画像領域を互いに平行に分割するときの分割数に基づいて決定される。また、上記第１の算出値を端数処理するときの丸め幅は例えば１である。更に、上記複数の候補値の中から１の候補値を抽出する場合、複数の候補値の中で、比率と転送倍率との間の差が最小となる候補値を抽出する。
【００５４】
＜５．分割について＞
（分割による利点）
本実施形態のように、記憶媒体１２１から読み出された画像データを分割することによって、以下のような利点がある。
（１）記憶媒体１２１からフロントバッファ１４３（表示用領域）に転送を行う際に一時領域としてメモリ領域（＝画像処理部用作業領域１４４）を使用する場合、ＶＲＡＭ１４２などのメモリ使用量を抑えることができる。
（２）フロントバッファ１４３（表示用領域）に保持された分割した画像を順次ディスプレイ１２２に表示していくことで、画像が表示され始めるまでの時間を短縮することができる。
（３）ハードウェアなどの制約で、一度に転送できる画像データのサイズに上限がある場合でも、その制約よりも大きな画像データを転送できる。
【００５５】
（分割方法の概要）
図５に示したように、画像データを水平方向に並行な直線で分割し、分割した１つの画像データだけを拡大（Ａ）又は縮小（Ｂ）して、フロントバッファ１４３（表示用領域）に順に反映していく。このとき、各分割領域の分割幅は同じとする。但し、最下部の分割領域については、他の領域の分割幅よりも小さな分割幅となってもよいとする。
【００５６】
（分割時の転送倍率の差）
転送元の分割幅に転送倍率を掛けて算出された値に基づいて、転送先での分割幅が決定される。この転送倍率を掛けて算出された値が整数であれば、転送先の分割幅はその値を採用する。このとき、転送元の分割幅に転送倍率を掛けて算出した値と、転送先の分割幅として決定する値との間の差は「０」となる。
【００５７】
しかし、各種条件（例えば、転送元領域の高さ、転送先領域の高さ、指定する分割幅）によっては、転送倍率を掛けて算出した値が整数とならない。そのため、転送先での分割幅を整数に決定するためには、算出された値のうち小数部分を切り上げ、又は切り捨てをする必要がある。この場合、転送元の分割幅に転送倍率を掛けて算出した値と、転送先の分割幅として決定する値との間に差が発生する。
【００５８】
（算出値の小数部分の切り上げ、切り捨てによる転送先の分割幅の決定）
上記「分割方法の概要」で示したように、最下部の分割領域以外については、転送元の分割幅は一定である。このため、転送倍率を掛けて算出された値が整数ではない場合、算出値の小数部分を単純に四捨五入することに決定すると、最下部の領域以外の領域は、全ての領域で同一値であるため、全ての領域で切り上げ、又は切り捨てされてしまう。
【００５９】
このような処理をすると、最下部の領域以外の領域では、同一の転送倍率にできるが、最下部の領域で切り上げ又は切下げされた値を吸収する必要があり、最下部の領域の転送倍率とその他の領域の転送倍率の差が大きくなる。そのため、画質の劣化が目立つ可能性が高くなってしまう。
【００６０】
そこで、転送倍率の差を低減するため、転送先の上からｎ段目の分割領域の分割幅を以下のように算出することにする。ここで、ｎは１以上の整数である。
転送先の分割幅＝｛（ｎ×転送元の分割幅×転送倍率）を四捨五入した値｝
−｛（（ｎ−１）×転送元の分割幅×転送倍率）を四捨五入した値｝
これにより、最下部の領域で吸収しなければならない値を低減することができ、最下部の領域の転送倍率とその他の領域の転送倍率の差が大きくなることを防止できる。
【００６１】
＜６．転送元の分割幅算出方法＞
（転送元の分割幅の算出）
以下では、転送元の分割幅に転送倍率を掛けて算出した値（以下、算出値ともいう。）と、転送先の分割幅として決定する値（以下、決定値ともいう。）との間の差が「０」又は実施に最適な小さな値（できるだけ小さな値）となる転送元の分割幅を算出する。算出された転送元の分割幅を用いれば、転送先での分割幅の小数部分の切り上げられる値、又は切り捨てられる値が、できるだけ小さくなる。その結果、本来の転送倍率と、新たに決定された転送倍率（＝転送先の分割幅として決定する値／転送元の分割幅）との差が小さくなる。以下では、この２つの転送倍率の差が「０」又は実施に最適な小さな値（できるだけ小さな値）となる転送元の分割幅を「最適な転送元の分割幅」という。
【００６２】
ここで、２つの転送倍率の差が「最小値」ではなく、「できるだけ小さな値」としている。即ち、転送先での分割幅の小数部分の切り上げ、切り捨てが「最小」になる場合、転送元の分割幅が小さくなりすぎることがある。このとき、本来の転送倍率と新たに決定された転送倍率の差は最小になるが、分割回数が増え、処理効率が落ちるため、好ましくない。
【００６３】
ここで、各値を以下のように定義する。
ｓｒｃ＿ｈ                ：  転送元領域の高さ
ｄｓｔ＿ｈ                ：  転送先領域の高さ
ｍａｘ＿ｄｉｖ＿ｌｉｎｅ  ：  分割幅として指定できる最大値（ユ−ザが指定）
ｍｉｎ＿ｄｉｖ＿ｌｉｎｅ  ：  分割幅として指定できる最小値
ｂｅｓｔ＿ｄｉｖ＿ｌｉｎｅ：  最適な分割幅
ｄｉｖ＿ｎｕｍ            ：  分割回数
ｍｉｎ＿ｄｉｖ＿ｎｕｍ    ：  分割回数の最小値
ＣＥＩＬ（）              ：  引き数の小数部分を切り上げて、整数を返す。
【００６４】
転送先での分割幅の小数部分は、転送元の分割幅の増減に合わせて、増減するわけではないため、単純な計算式で最適な転送元の分割幅を算出することができない。そこで、転送元の分割幅は、網羅的に、転送先での分割幅の小数部分の大小を調べることで、最適な分割幅を探す。
【００６５】
最適な転送元の分割幅の候補となるのは、整数であり、候補となる分割幅の上限と下限が存在するため、候補の数は有限である。分割幅の候補の上限値が大きく、下限値が小さいほど、候補の数が多くなるため、本来の転送倍率と新たに決定される転送倍率の差がより小さくなる分割幅が見つかる可能性が高い。
【００６６】
（転送元の分割幅の候補の上限  max_div_line）
max_div_lineは、画像を分割して転送するユーザ（アプリケーションなど）によって決定される値である。この値は、大きい方がより良いが、使用可能なメモリサイズなどのシステムの制約を考慮した上で決定される必要がある。
【００６７】
（転送元の分割幅の候補の下限  min_div_line）
分割回数の最大値が大きい程、分割幅として指定できる下限値min_div_lineは小さくなる。一方、一般的に分割回数が少ない方が、処理効率が良いので、分割回数はできるだけ少ない方が良い。
【００６８】
分割回数の最小値min_div_numは、転送元の分割幅の候補の上限max_div_lineに基づいて、以下のように算出できる。
min_div_num＝CEIL（src_h÷max_div_line）
分割回数div_numは、以下のように表せる。（ｍは０以上の整数）
div_num＝min_div_num＋ｍ
【００６９】
処理効率を優先するのであれば、ｍを小さくして、分割回数を少なくすれば良い。転送倍率の誤差を小さくしたいのであれば、ｍを大きくして分割回数を多くすれば良い。このとき、分割幅の候補が増えることで、本来の転送倍率と新たに決定される転送倍率の差が小さくなる分割幅が見つかる可能性が上がる。しかし、本来の転送倍率と新たに決定される転送倍率の差が小さくなる分割幅が見つかるとは限らないため、本来の転送倍率と新たに決定される転送倍率の差が必ず小さくなるわけではない。
【００７０】
転送元の分割幅の候補の下限min_div_lineは、分割回数div_numに基づいて、以下のように表せる。
min_div_line＝CEIL（src_h÷div_num）
【００７１】
最適な転送元の分割幅を求めるためには、以下の関係を満たす全てのdiv_lineについて、転送先での分割幅の小数部分を調べる必要がある。
min_div_line≦div_line≦max_div_line
【００７２】
転送元の分割幅に転送倍率を掛けて算出した値は、以下のように表せる。
転送元の分割幅に転送倍率を掛けて算出した値＝div_line×転送倍率
＝div_line×dst_h÷src_h
【００７３】
転送元の分割幅に転送倍率を掛けて算出した値の小数部分の切り上げ／切り捨ての大きさは、
div_line×dst_h％src_h
で調べることができる。ここでＡ％Ｂは、Ａ÷Ｂを計算したときの余りの値を算出することを表す。余りの値が大きいほど小数部分が大きくなり、余りの値が小さいほど小数部分が小さい。上記のdiv_line×dst_h％src_hによって算出される値をmod_valとする。
【００７４】
小数部分の切り捨てが小さい場合、mod_valは小さく、小数部分の切り上げが小さい場合、mod_valは大きくなる。mod_val、又は（src_h−mod_val）が最も小さくなるときのdiv_lineが最適な転送元の分割幅となる。
【００７５】
［最適な転送元の分割幅の算出方法］
次に、図４を参照して、本実施形態における最適な転送元の分割幅の算出方法を説明する。図４は、本実施形態における最適な転送元の分割幅の算出方法を示すフローチャートである。
【００７６】
まず、min_div_lineを上記の（転送元の分割幅の候補の下限  min_div_line）で示した方法で算出する（ステップＳ１１１）。
【００７７】
次に、div_lineにmax_div_lineを設定する（ステップＳ１１２）。なお、分割回数を少なくして処理効率を向上させるためには、mod_valが同じ値なら、div_lineは、大きい方を最適な転送元の分割幅と決定するほうが良い。ここでは、div_lineが大きい方から調べる場合について説明する。なお、上記mod_valは、常にsrc_h未満の値になるため、best_modにsrc_hを初めに設定しておく（ステップＳ１１２）。
【００７８】
そして、転送元の分割幅に転送倍率を掛けて算出した値の小数部分の切り上げ／切り捨ての大きさを算出する。即ち、
mod_val(＝div_line×dst_h％src_h)
を算出する（ステップＳ１１３）。
【００７９】
そして、mod_valは、(src_h−mod_val)以下か否かを判断する（ステップＳ１１４）。(src_h−mod_val)がmod_valよりも小さいならば、mod_valに(src_h−mod_val)を設定する（ステップＳ１１５）。本実施形態では、mod_val及び(src_h-mod_val)のいずれかが最小になるようなdiv_lineを求めるので、どちらか小さい方をmod_valとして扱うためである。
【００８０】
次に、mod_valは、best_mod以上か否かを判断する（ステップＳ１１６）。mod_valがbest_modよりも小さければ、そのmod_valをbest_modに設定し、このときのdiv_lineをbest_div_lineに設定する（ステップＳ１１７）。
【００８１】
その後、div_lineは、min_div_line以下か否かを判断する（ステップＳ１１８）。div_lineがmin_div_lineよりも大きければ、候補となるdiv_lineは他にあるため、div_lineを１減らす（ステップＳ１１９）。そして、ステップＳ１１３の処理から繰り返す。一方、div_lineがmin_div_line以下であれば、候補となるdiv_line全てを調べている。
【００８２】
そして、このときのbest_div_lineを最適な転送元の分割幅として（ステップＳ１２０）、一連の処理を完了する。なお、ステップＳ１１８の時点で、best_mod＝０であれば、best_div_lineは最適な分割幅となり、転送倍率の誤差は０となる。この場合、ステップＳ１２０にスキップし、処理を完了するとしてもよい。
【実施例】
【００８３】
本実施形態の実施例として、以下のような条件での最適な転送元の分割幅の算出の過程を説明する。図８は、縮小処理前の画像データ（図中左）及び縮小処理後の画像データ（図中右）を示す説明図である。図８の画像データは、水平線によって複数の分割領域に区切られることを示している。
ｓｒｃ＿ｈ                ：  ２７０
ｄｓｔ＿ｈ                ：  ２５６
ｍａｘ＿ｄｉｖ＿ｌｉｎｅ  ：  ６４
ｍ                        ：  ０  （処理効率優先とした。）
【００８４】
まず、転送元の分割幅の候補の下限min_div_lineを算出する。
分割回数の最小値min_div_num＝CEIL(src_h÷max_div_line)
＝CEIL(270÷64)
＝５
そして、ｍ＝０（処理効率優先）なので、
分割回数div_num＝min_div_num＋ｍ=５
となる。よって、
分割幅の候補の下限min_div_line＝CEIL(src_h÷div_num)
＝CEIL(270÷5)
＝５４
【００８５】
よって、以下の関係を満たす分割幅div_line全てについて、転送先での分割幅の小数部分を調べる。
５４（min_div_line）≦div_line≦６４（max_div_line）
そして、各div_lineについて、
mod_val（＝div_line×dst_h％src_h
＝div_line×256％270）
を算出する。
【００８６】
そして、最もmod_val、mod_val’（＝src_h−mod_val)が小さくなるdiv_lineを調べる。ここでは、div_lineが５４と５８と６４の場合のみ示すが（図８も同様）、実際は、５４〜６４の範囲の全ての整数について、mod_val、mod_val’を算出し、比較する必要がある。
【００８７】
div_line＝５４のとき：mod_val=５４、mod_val’=２１６
（div_line＝５５、５６、５７は省略）
div_line＝５８のとき：mod_val＝２６８、mod_val’＝２
（div_line＝５９、６０、６１、６２、６３は省略）
div_line＝６４のとき、mod_val＝１８４、mod_val’＝８６
【００８８】
本実施例では、div_line＝５８の場合にmod_val’＝２となり、これが最もmod_val、mod_val’が小さくなるときである。従って、このときのdiv_line（＝５８）が最適な転送元の分割幅となる。
【００８９】
以下、上述した実施例を参照しながら、本実施形態の効果を説明する。
ここで、誤差率（％）を以下のように定義する。
誤差率（％）
＝（｜転送先の分割幅（小数部分あり）−転送先の分割幅（小数部分なし）｜）
÷転送先の分割幅（小数部分なし）×１００
誤差率は、各分割領域における転送元の分割幅に転送倍率を掛けて算出した値（転送先の分割幅（小数部分あり））と、転送先の分割幅として決定する値（転送先の分割幅（小数部分なし））との間の差が、相対的にどのくらい大きいかを示す。
【００９０】
div_lineが５４，５８（＝最適な転送元の分割幅），６４の場合について説明する。それぞれの場合において、誤差率が最大となる分割領域は、図８に示す（＊）部分の分割領域である。誤差率が最大となる分割領域の分割幅と、誤差率の最大値（最大誤差率）は以下のようになる。
【００９１】
div_line＝５４のとき、各分割領域における誤差率を算出すると、誤差率が最大となる分割領域の分割幅は、３段目の分割領域である。転送先の上からｎ＝３段目の分割領域の分割幅は、次式で算出できる。
転送先の分割幅＝｛（ｎ×転送元の分割幅×転送倍率）を四捨五入した値｝
−｛（（ｎ−１）×転送元の分割幅×転送倍率）を四捨五入した値｝
＝｛（3×54×256／270）を四捨五入した値｝
−｛（（3−1）×54×256／270）を四捨五入した値｝
＝154−102
＝52
そして、３段目の分割領域の誤差率は以下のとおりである（他の段の誤差率は省略した）。
最大誤差率＝｜（（54×256÷270）−52）｜÷52×100＝1.54（％）
【００９２】
div_line＝５８のとき、各分割領域における誤差率を算出すると、誤差率が最大となる分割領域の分割幅は、最下部の分割領域である。
転送元の最下部の分割幅＝38  （∵270＝58×4＋38）
転送先の最下部の分割幅＝｛転送先領域の高さ｝
−｛（（ｎ−１）×転送元の分割幅×転送倍率）を四捨五入した値｝
＝｛256｝
−｛（（5−1）×58×256／270）を四捨五入した値｝
＝256−220
＝36
そして、最下部の分割領域の誤差率は以下のとおりである（他の段の誤差率は省略した）。
最大誤差率＝｜（（38×256÷270）−36）｜÷36×100＝0.0823（％）
【００９３】
div_line＝64のとき、各分割領域における誤差率を算出すると、誤差率が最大となる分割領域の分割幅は、最下部の分割領域である。
転送元の最下部の分割幅＝14  （∵270＝64＊4＋14）
転送先の最下部の分割幅＝｛転送先領域の高さ｝
−｛（（ｎ−１）×転送元の分割幅×転送倍率）を四捨五入した値｝
＝｛256｝
−｛（（5−1）×64×256／270）を四捨五入した値｝
＝256−243
＝13
そして、最下部の分割領域の誤差率は以下のとおりである（他の段の誤差率は省略した）。
最大誤差率｜（（14×256÷270）−13）｜÷13×100＝2.11（％）
【００９４】
上記の実施例では、本実施形態の算出方法によって算出される最適な分割幅は、５８であり、最適な分割幅（５８）で分割した結果、最大誤差率が他の分割幅に比べて大幅に小さくなっていることが分かる。
【００９５】
［本実施形態の適用コストと誤差率の改善］
次に、本実施形態の適用コストと誤差率の改善について説明する。
（適用コスト）
本実施形態を適用する場合は、上記の最適な分割幅算出処理が必要になるだけであり、新たにメモリ領域などを必要としない。また、算出処理では、繰り返し計算を行うが、繰り返し回数は、ユ−ザが指定する分割幅の値を越えることはなく、計算処理時間は画像データに対して画像処理したり、転送したりする処理時間と比較すると十分に小さい。そのため、本実施形態の適用コストは十分に小さい。
【００９６】
（誤差率の改善）
本実施形態の転送元の分割幅の算出方法を使用した場合、当該算出方法を使用せずに分割した場合と比較して、誤差率が大きくなることはなく、ほとんどの場合、誤差率は小さくなる。
【００９７】
分割幅の候補数（max_div_line−min_div_line＋１）が多いほど、本実施形態を適用すると、誤差率が小さくなる可能性が高くなる。但し、一般的に分割回数が少ない方が、処理効率が良いので、分割回数はできるだけ少ない方が良い。従って、処理効率と誤差率の低減の両者を勘案して分割回数（div_num＝min_div_num＋ｍ）のｍを指定し、分割回数を決定するとよい。
【００９８】
＜７．本実施形態の効果＞
本実施形態によれば、画像データを分割しつつ、拡大又は縮小処理を行う場合に伴う転送倍率の誤差を軽減することができる。これにより、画質の劣化を軽減することができる。即ち、本実施形態は、転送元の分割幅に転送倍率を乗じた後、端数処理して算出して得た値と転送元の分割幅との比率と、転送倍率との間の差を極力低減するように、転送元領域の分割幅を決定する。これにより、サイズが異なる画像領域に画像データを分割して転送する際、適切な転送元の分割幅を迅速かつ容易に算出でき、画質の劣化を低減することができる。
【００９９】
例えば、拡大又は縮小処理と分割による画質の劣化を許容できないために画像の分割を行っていない表示制御装置があったとする。このような表示制御装置において、本実施形態の転送元の分割幅の算出方法を採用することで、各種条件に依存するが、許容できる程度まで画質の劣化を軽減できる場合がある。この場合、当該表示制御装置において、画像の分割が可能になる。その結果、分割による利点を享受することができる。
【０１００】
即ち、（１）記憶媒体１２１からフロントバッファ１４３（表示用領域）に転送を行う際に一時領域としてメモリ領域（＝画像処理部用作業領域１４４）を使用する場合、ＶＲＡＭ１４２などのメモリ使用量を抑えることができる。
（２）フロントバッファ１４３（表示用領域）に保持された分割した画像を順次ディスプレイ１２２に表示していくことで、画像が表示され始めるまでの時間を短縮することができる。
（３）ハードウェアなどの制約で、一度に転送できる画像データのサイズに上限がある場合でも、その制約よりも大きな画像データを転送できる。
【０１０１】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１０２】
１００      画像表示装置
１１１      ＣＰＵ
１１２      ＲＯＭ
１１３      ＲＡＭ
１１４      バス
１１５      入出力インタフェース
１１６      入力部
１１７      表示制御部
１１８      記憶部
１１９      通信部
１２０      ドライブ
１２１      記憶媒体
１２２      ディスプレイ
１３１      画像表示アプリケーション
１３２      バッファ制御ミドルウェア
１４１      画像処理部
１４２      ＶＲＡＭ
１４３      フロントバッファ
１４４      画像処理部用作業領域
【図１】
2010186065.tif 000003
【図２】
2010186065.tif 000004
【図３】
2010186065.tif 000005
【図４】
2010186065.tif 000006
【図５】
2010186065.tif 000007
【図６】
2010186065.tif 000008
【図７】
2010186065.tif 000009
【図８】
2010186065.tif 000010