(57)【特許請求の範囲】
【請求項１】
描画方法であって、
１つまたは複数の描画コマンドと該１つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取る段階であって、前記パラメータは、ピクセルで計測された領域サイズを含む段階と、
描画コマンド及び描画コマンドのパラメータにしたがって、前記描画コマンドセットの各描画コマンドのＣＰＵ描画時間とＧＰＵ描画時間とを求める段階と、
前記描画コマンドセット中のすべての描画コマンドのＣＰＵ描画時間を合計して、現フレームの前記ＣＰＵ描画時間を取得する段階と、
前記描画コマンドセット中のすべての描画コマンドのＧＰＵ描画時間を合計して、現フレームの前記ＧＰＵ描画時間を取得する段階と
現フレームの前記ＣＰＵ描画時間が現フレームの前記ＧＰＵ描画時間よりも短い場合に、ＣＰＵを使用して現フレームを描画し、前記ＧＰＵ描画時間が前記ＣＰＵ描画時間よりも短い場合に、ＧＰＵを使用して現フレームを描画する段階と
を有することを特徴とする方法。
【請求項２】
描画コマンド及び描画コマンドのパラメータにしたがって、前記描画コマンドセットの各描画コマンドのＣＰＵ描画時間とＧＰＵ描画時間とを求める前記段階が、
各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を取得する段階と、
現フレームの前記描画コマンドセット中のすべての描画コマンドのＣＰＵ描画時間を合計して、現フレームの前記ＣＰＵ描画時間を取得する段階と、
現フレームの前記描画コマンドセット中のすべての描画コマンドのＧＰＵ描画時間を合計して、現フレームの前記ＧＰＵ描画時間を取得する段階と
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
ある描画コマンドおよび該ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間が前記所定の性能テーブル中に見つからない場合、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を算出する段階と、
算出されたＣＰＵ描画時間およびＧＰＵ描画時間と前記ある描画コマンドおよび前記ある描画コマンドのパラメータとを前記所定の性能テーブルに格納する段階と
をさらに有することを特徴とする請求項２に記載の方法。
【請求項４】
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を算出する前記段階が、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ＣＰＵと前記ＧＰＵとをそれぞれ使用して前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する画像オブジェクトを描画する段階と、
前記ＣＰＵと前記ＧＰＵとをそれぞれ使用して前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画する過程で、前記ＣＰＵと前記ＧＰＵとによって前記画像オブジェクトをそれぞれ描画するために前記ＣＰＵによって使用された時間および前記ＧＰＵによって使用された時間を記録する段階と
を含み、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画するために前記ＣＰＵによって使用された記録時間が、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間であり、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画するために前記ＧＰＵによって使用された記録時間が、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＧＰＵ描画時間であることを特徴とする請求項３に記載の方法。
【請求項５】
前記ＣＰＵを使用して現フレームを描画する場合に、現フレームのＣＰＵ描画結果をビットマップとして保存し、前記ＧＰＵを使用して現フレームを描画する場合に、現フレームのＧＰＵ描画結果をテクスチャとして保存する段階と、
前記ビットマップまたは前記テクスチャとして保存された描画結果を画面に表示する段階と
をさらに有することを特徴とする請求項１ないし４のいずれか１項に記載の方法。
【請求項６】
描画装置であって、
１つまたは複数の描画コマンドと該１つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取るように構成された受取モジュールであって、前記パラメータは、ピクセルで計測された領域サイズを含む、受取モジュールと、
描画コマンド及び描画コマンドのパラメータにしたがって、前記描画コマンドセットの各描画コマンドのＣＰＵ描画時間とＧＰＵ描画時間とを求め、前記描画コマンドセット中のすべての描画コマンドのＣＰＵ描画時間を合計して、現フレームの前記ＣＰＵ描画時間を取得するとともに、前記描画コマンドセット中のすべての描画コマンドのＧＰＵ描画時間を合計して、現フレームの前記ＧＰＵ描画時間を取得するように構成された判断モジュールと、
前記判断モジュールによって求められた現フレームの前記ＣＰＵ描画時間および前記ＧＰＵ描画時間のうち、現フレームの前記ＣＰＵ描画時間が現フレームの前記ＧＰＵ描画時間よりも短い場合に、ＣＰＵを使用して現フレームを描画し、現フレームの前記ＧＰＵ描画時間が現フレームの前記ＣＰＵ描画時間よりも短い場合に、ＧＰＵを使用して現フレームを描画するように構成された描画決定モジュールと
を具備することを特徴とする装置。
【請求項７】
前記判断モジュールが、
各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を取得するようにさらに構成されることを特徴とする請求項６に記載の装置。
【請求項８】
ある描画コマンドおよび該ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間が前記所定の性能テーブル中に見つからない場合、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を算出するように構成された計算モジュールと、
前記計算モジュールによって算出されたＣＰＵ描画時間およびＧＰＵ描画時間と前記ある描画コマンドおよび前記ある描画コマンドのパラメータとを前記所定の性能テーブルに格納するように構成された更新モジュールと
をさらに具備することを特徴とする請求項７に記載の装置。
【請求項９】
前記計算モジュールが、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間が前記判断モジュールによっても前記所定の性能テーブル中に見つからない場合、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ＣＰＵと前記ＧＰＵとをそれぞれ使用して前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する画像オブジェクトを描画し、
前記ＣＰＵと前記ＧＰＵとをそれぞれ使用して前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画する過程で、前記ＣＰＵと前記ＧＰＵとによって前記画像オブジェクトをそれぞれ描画するために前記ＣＰＵによって使用された時間および前記ＧＰＵによって使用された時間を記録するようにさらに構成され、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画するために前記ＣＰＵによって使用された記録時間が、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間であり、
前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応する前記画像オブジェクトを描画するために前記ＧＰＵによって使用された記録時間が、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＧＰＵ描画時間であることを特徴とする請求項８に記載の装置。
【請求項１０】
前記ＣＰＵを使用して現フレームを描画する場合に、現フレームのＣＰＵ描画結果をビットマップとして保存し、前記ＧＰＵを使用して現フレームを描画する場合に、現フレームのＧＰＵ描画結果をテクスチャとして保存するように構成された保存モジュールと、
前記ビットマップまたは前記テクスチャとして保存された描画結果を画面に表示するように構成された表示モジュールと
をさらに具備することを特徴とする請求項６ないし９のいずれか１項に記載の装置。
【請求項１１】
中央処理装置（ＣＰＵ）と、
グラフィック処理装置（ＧＰＵ）と、
前記ＣＰＵおよび前記ＧＰＵに接続された装置画面と
を具備し、
前記ＣＰＵは、
１つまたは複数の描画コマンドと該１つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取り、前記パラメータは、ピクセルで計測された領域サイズを含み、
描画コマンド及び描画コマンドのパラメータにしたがって、前記描画コマンドセットの各描画コマンドのＣＰＵ描画時間とＧＰＵ描画時間とを求め、
前記描画コマンドセット中のすべての描画コマンドのＣＰＵ描画時間を合計して、現フレームの前記ＣＰＵ描画時間を取得し、
前記描画コマンドセット中のすべての描画コマンドのＧＰＵ描画時間を合計して、現フレームの前記ＧＰＵ描画時間を取得し、
現フレームの前記ＣＰＵ描画時間が現フレームの前記ＧＰＵ描画時間よりも短い場合に、現フレームを描画し、現フレームの前記ＧＰＵ描画時間が現フレームの前記ＣＰＵ描画時間よりも短い場合に、前記ＧＰＵを使用して現フレームを描画するように構成され、
前記ＧＰＵは、現フレームを描画するように構成され、
前記装置画面は、前記ＣＰＵまたは前記ＧＰＵを使用して描画された現フレームの描画結果を表示するように構成されることを特徴とする端末装置。
【請求項１２】
前記ＣＰＵが、
各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を取得するようにさらに構成されることを特徴とする請求項１１に記載の端末装置。
【請求項１３】
前記ＣＰＵが、
前記描画コマンドセット中のある描画コマンドおよび該ある描画コマンドのパラメータについて、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間が前記所定の性能テーブル中に見つからない場合、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに従って、前記ある描画コマンドおよび前記ある描画コマンドのパラメータに対応するＣＰＵ描画時間およびＧＰＵ描画時間を算出し、
算出されたＣＰＵ描画時間およびＧＰＵ描画時間と前記ある描画コマンドおよび前記ある描画コマンドのパラメータとを前記所定の性能テーブルに格納するようにさらに構成されることを特徴とする請求項１２に記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術に関し、特に、描画の方法、装置、および端末に関する。
【背景技術】
【０００２】
2次元(Two Dimensional、2D)グラフィックライブラリは、コンピュータオペレーティングシステムのコアライブラリとして使用され、2Dグラフィックライブラリによって提供される個別の描画インターフェイスの性能は、システムがユーザーインターフェイス(User Interface、UI)での操作に応答する適時性に直接影響する。現在、2D描画の方式には、中央処理装置(Central Processing Unit、CPU)方式とグラフィック処理装置(Graphic Processing Unit、GPU)方式の2つがある。性能の観点で言うと、CPU方式は単純な小場面の描画に適しており、GPU方式は大場面の描画に適している。2D描画の場面は、操作の複雑さ(たとえば、幾何学的変換)と、描画過程に含まれる領域サイズとに関連する。小場面の描画にGPU描画方式を採用したり、大場面の描画にCPU描画方式を採用したりすると、性能が大幅に低下し、システムのUI性能に直接影響する。もう1つの実装方式は、描画されるフレームが属するアプリケーションプログラムによって判断され、開発者はアプリケーションプログラムでGPU方式を描画に採用するかどうかを設定できる。GPU描画方式が設定された場合、システムはGPU方式を採用して、コンテンツの各フレームをアプリケーションプログラムで描画する。それ以外の場合、CPU方式が描画に採用される。しかしながら、アプリケーションプログラムで構成された方式が採用される場合、GPU描画とCPU描画のどちらが開発中のアプリケーションプログラムにとって好ましいかは開発者にとって依然として不明である。したがって、一部の複雑なコンテンツのフレームが最終的にCPU方式で描画されたり、一部の単純なフレームがGPU方式で描画されたりすることが避けられず、それがまた2D描画の貧弱な性能につながる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の実施態様は、コンピュータシステムの表示性能をある程度向上させる描画の方法、装置、および端末を提供する。
【課題を解決するための手段】
【０００４】
第1の態様によると、本発明の一実施形態は、1つまたは複数の描画コマンドと1つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取る段階と、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドおよび1つまたは複数の描画コマンドのパラメータに従って、現フレームの中央処理装置(CPU)描画時間およびグラフィック処理装置(GPU)描画時間を求める段階と、CPU描画時間がGPU描画時間よりも短い場合に、CPUを使用して現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPUを使用して現フレームを描画する段階とを有する描画方法を提供する。
【０００５】
第1の態様に関連して、第1の実装方式では、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドおよび1つまたは複数の描画コマンドのパラメータに従って、現フレームのCPU描画時間およびGPU描画時間を求める段階は、現フレームの描画コマンドセット中の各描画コマンドおよび各描画コマンドのパラメータをトラバースする段階と、各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を取得する段階と、現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して、現フレームのCPU描画時間を取得する段階と、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して、現フレームのGPU描画時間を取得する段階とを含む。
【０００６】
第1の態様の第1の実装方式に関連して、第2の実装方式では、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間が所定の性能テーブルで見つからない場合、ある描画コマンドおよびある描画コマンドのパラメータに従って、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を算出し、算出されたCPU描画時間およびGPU描画時間とある描画コマンドおよびある描画コマンドのパラメータとを所定の性能テーブルに格納する。
【０００７】
第1の態様の第2の実装方式に関連して、第3の実装方式では、ある描画コマンドおよびある描画コマンドのパラメータに従って、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を算出する段階は、ある描画コマンドおよびある描画コマンドのパラメータに従って、CPUとGPUとをそれぞれ使用してある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画する段階と、CPUとGPUとをそれぞれ使用してある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画する過程で、CPUとGPUとによって画像オブジェクトをそれぞれ描画するためにCPUによって使用された時間およびGPUによって使用された時間を記録する段階とを含み、ある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画するためにCPUによって使用された記録時間は、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間であり、ある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画するためにGPUによって使用された記録時間は、ある描画コマンドおよびある描画コマンドのパラメータに対応するGPU描画時間である。
【０００８】
第1の態様、第1の態様の第1の実装方式、第1の態様の第2の実装方式、または第1の態様の第3の実装方式に関連して、第4の実装方式では、描画方法は、CPUを使用して現フレームを描画する場合に、現フレームのCPU描画結果をビットマップとして保存し、GPUを使用して現フレームを描画する場合に、現フレームのGPU描画結果をテクスチャとして保存する段階と、ビットマップまたはテクスチャとして保存された描画結果を画面に表示する段階とをさらに有する。
【０００９】
第2の態様によると、本発明の一実施形態は、1つまたは複数の描画コマンドと1つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取るように構成された受取モジュールと、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドおよび1つまたは複数の描画コマンドのパラメータに従って、現フレームの中央処理装置(CPU)描画時間およびグラフィック処理装置(GPU)描画時間を求めるように構成された判断モジュールと、CPU描画時間がGPU描画時間よりも短い場合に、CPUを使用して現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPUを使用して現フレームを描画するように構成された描画決定モジュールとを具備し、現フレームのCPU描画時間およびGPU描画時間が判断モジュールによって判断される描画装置を提供する。
【００１０】
第2の態様に関連して、第1の実装方式では、判断モジュールは、現フレームの描画コマンドセット中の各描画コマンドおよび各描画コマンドのパラメータをトラバースし、各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して、現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して、現フレームのGPU描画時間を取得するようにさらに構成される。
【００１１】
第2の態様の第1の実装方式に関連して、第2の実装方式では、描画装置は、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間が所定の性能テーブル中に見つからない場合、ある描画コマンドおよびある描画コマンドのパラメータに従って、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を算出するように構成された計算モジュールと、計算モジュールによって算出されたCPU描画時間およびGPU描画時間とある描画コマンドおよびある描画コマンドのパラメータとを所定の格納テーブルに格納するように構成された更新モジュールとをさらに具備する。
【００１２】
第2の態様の第2の実装方式に関連して、第3の実装方式では、計算モジュールは、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間が判断モジュールによっても所定の性能テーブル中に見つからない場合、ある描画コマンドおよびある描画コマンドのパラメータに従って、CPUとGPUとをそれぞれ使用してある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画し、CPUとGPUとをそれぞれ使用してある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画する過程で、CPUとGPUとによって画像オブジェクトをそれぞれ描画するためにCPUによって使用された時間およびGPUによって使用された時間を記録するようにさらに構成され、ある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画するためにCPUによって使用された記録時間が、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間であり、ある描画コマンドおよびある描画コマンドのパラメータに対応する画像オブジェクトを描画するためにGPUによって使用された記録時間が、ある描画コマンドおよびある描画コマンドのパラメータに対応するGPU描画時間である。
【００１３】
第2の態様、第2の態様の第1の実装方式、第2の態様の第2の実装方式、または第2の態様の第3の実装方式に関連して、第4の実装方式では、描画装置は、CPUを使用して現フレームを描画する場合に、現フレームのCPU描画結果をビットマップとして保存し、GPUを使用して現フレームを描画する場合に、現フレームのGPU描画結果をテクスチャとして保存するように構成された保存モジュールと、ビットマップまたはテクスチャとして保存された描画結果を画面に表示するように構成された表示モジュールとをさらに具備する。
【００１４】
第3の態様によると、本発明の一実施形態は、中央処理装置(CPU)と、グラフィック処理装置(GPU)と、装置画面とを具備し、CPUおよびGPUは、装置画面に接続され、CPUは、1つまたは複数の描画コマンドと1つまたは複数の描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取り、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドおよび1つまたは複数の描画コマンドのパラメータに従って、現フレームのCPU描画時間およびGPU描画時間を求め、CPU描画時間がGPU描画時間よりも短い場合に、現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPUを使用して現フレームを描画するように構成され、GPUは、現フレームを描画するように構成され、装置画面は、CPUまたはGPUを使用して描画された現フレームの描画結果を表示するように構成される端末装置をさらに提供する。
【００１５】
第3の態様に関連して、第1の実装方式では、CPUは、現フレームの描画コマンドセット中の各描画コマンドおよび各描画コマンドのパラメータをトラバースし、各描画コマンドおよび各描画コマンドのパラメータに従って、所定の性能テーブルで問い合わせを行って、各描画コマンドおよび各描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して、現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して、現フレームのGPU描画時間を取得するようにさらに構成される。
【００１６】
第3の態様の第1の実装方式に関連して、第2の実装方式では、CPUは、描画コマンドセット中のある描画コマンドおよびある描画コマンドのパラメータについて、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間が所定の性能テーブル中に見つからない場合、ある描画コマンドおよびある描画コマンドのパラメータに従って、ある描画コマンドおよびある描画コマンドのパラメータに対応するCPU描画時間およびGPU描画時間を算出し、算出されたCPU描画時間およびGPU描画時間とある描画コマンドおよびある描画コマンドのパラメータとを所定の性能テーブルに格納するようにさらに構成される。
【発明の効果】
【００１７】
本発明の実施態様によって提供される描画の方法、装置、および端末では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。
【００１８】
本発明の実施形態または先行技術の技術的解決策をより明確に説明するため、以下では、実施形態または先行技術を説明するために必要な添付の図面について簡単に説明する。以下の説明における添付の図面は、本発明の一部の実施形態を示しているにすぎず、当然ながら、当業者は、これらの添付の図面から創造的な労力なしに他の図面を導き出すことができる。
【図面の簡単な説明】
【００１９】
【図１】既存の端末の論理構造の概略図である。
【図２ａ】本発明の実施形態による描画方法の概略フローチャートである。
【図２ｂ】本発明の実施形態による別の描画方法の概略フローチャートである。
【図３ａ】本発明の実施形態によるさらに別の描画方法の概略フローチャートである。
【図３ｂ】本発明の実施形態によるさらにもう1つの別の描画方法の概略フローチャートである。
【図４ａ】本発明の実施形態による描画装置の概略構造図である。
【図４ｂ】本発明の実施形態による別の描画装置の概略構造図である。
【図４ｃ】本発明の実施形態によるさらに別の描画装置の概略構造図である。
【図５】本発明の実施形態による端末装置の概略構造図である。
【図６】本発明の実施形態による別の端末装置の概略構造図である。
【発明を実施するための形態】
【００２０】
以下では、本発明の実施形態における技術的解決策を、本発明の実施形態の添付の図面を参照しながら明確かつ完全に説明する。当然ながら、説明される実施形態は、本発明のすべての実施形態ではなく、一部の実施形態にすぎない。当業者によって本発明の実施形態に基づいて創造的な労力なしに取得される他のすべての実施形態は、本発明の保護範囲に含まれる。
【００２１】
図2aを参照すると、図2aは、本発明の実施形態によって提供される描画方法の概略フローチャートである。本発明のこの実施形態によって提供される描画方法は、コンピュータシステムに適用されうる。コンピュータシステムは、単一の物理ホストに存在していてよく、複数の物理ホストに分散していてもよい。詳細には、コンピュータシステムは、コンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス(たとえば、携帯電話、PDA等)、サーバ等の1つまたは複数の端末に存在していてよい。
【００２２】
本発明のこの実施形態によって提供される描画方法が適用される端末の論理構造を、図1を例として使用して説明する。この端末は、詳細にはスマートフォンでありうる。図に示すように、ハードウェア層は、CPUと、GPUとを含み、当然ながら、メモリ、入力/出力装置、ネットワークインターフェイス等と、オペレーティングシステムAndroidと、ハードウェア層で実行されるいくつかのアプリケーションプログラムとをさらに含みうる。オペレーティングシステムの中心部分として、2Dグラフィックライブラリエンジンは、CPU描画を実装するためのSkiaと、GPU描画を実装するためのOpenGL (Open Graphic Library)とを含む。加えて、この端末はさらに、表示駆動層のディスプレイドライバと、表示合成層のSurfaceFlingerと、ビュー、ウィジェット、およびキャンバスを含む表示フレームワークと、Androidオペレーティングシステムで一般に使用されるメインインターフェイスHome、アドレス帳Contacts、ブラウザ等を含むアプリケーションレイヤとを含む。この端末では、本発明の実施形態によって提供される描画方法を採用することで、CPU描画またはGPU描画を現フレームの描画コマンドセットに応じて動的に選択して、システムの描画性能を向上させることができる。
【００２３】
図2aに示すように、本発明の実施形態によって提供される描画方法は、以下を含む。
【００２４】
S101: 1つまたは複数の描画コマンドと、それらのコマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取る。
【００２５】
描画コマンドは、線形勾配とピクチャ勾配とを含みうり、対応するパラメータは、領域サイズ、座標、勾配色等を含みうる。描画コマンドは、方形、円、直線、または曲線の描画をさらに含みうり、対応するパラメータは、描画の開始座標と終了座標、線の種類、線の太さ、線の色等を含みうる。当業者は、上記の説明が例示のみを目的としていること、本発明の実施形態で説明される描画コマンドが任意の種類のコンピュータシステムで使用されうる任意の種類の描画コマンドをも含みうること、対応するパラメータが実際のパラメータ要件に応じて柔軟に判断されうること、および本発明の実施形態がその点について限定を含まないことを理解するはずである。
【００２６】
S102: 現フレームの描画コマンドセット中の1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとに応じて現フレームのCPU描画時間とGPU描画時間とを判断する。
【００２７】
CPU描画時間は、CPUが現フレームの描画コマンドセット全体を実行するために必要な時間であり、GPU描画時間は、GPUが現フレームの描画コマンドセット全体を実行するために必要な時間である。
【００２８】
S103: CPU描画時間がGPU描画時間よりも短い場合、CPUを使用して現フレームを描画する。
【００２９】
詳細には、CPU描画時間がGPU描画時間よりも短いことは、GPU描画時間とCPU描画時間との差異が特定のしきい値k1より大きいこととして実装されうる。たとえば、CPU描画時間がTCPU、GPU描画時間がTGPUの場合、TGPU-TCPU=t1、t1>k1であり、ここでt1>0である。
【００３０】
S104: GPU描画時間がCPU描画時間よりも短い場合、GPUを使用して現フレームを描画する。
【００３１】
詳細には、GPU描画時間がCPU描画時間よりも短いことは、CPU描画時間とGPU描画時間との差異が特定のしきい値k2より大きいこととして実装されうる。たとえば、CPU描画時間がTCPU、GPU描画時間がTGPUの場合、TCPU-TGPU=t2、t2>k2であり、ここでt2>0である。
【００３２】
留意すべきは、k1とk2とが、特定の値または数値範囲に個別に設定されうることである。k1とk2とは、互いに同一または異なるものとして設定されうる。
【００３３】
留意すべきは、現フレームのCPU描画時間が現フレームのGPU描画時間と等価である場合、または現フレームのCPU描画時間とGPU描画時間との間の差異の絶対値が、k3=2等と設定されうる特定のしきい値k3を超えないか、現フレームのCPU描画時間とGPU描画時間との間の差異が、k3=[-2,2]または[-3,4]等と設定されうる特定の範囲k3に含まれる場合、CPUを使用して現フレームを描画することにより取得される性能は、GPUを使用して現フレームを描画することにより取得される性能に近く、どちらの描画方式を採用するかは現在のシステムの現実的な条件に応じて選択されうる、ということである。本発明の実施形態は、その点について限定を含まない。
【００３４】
図1を例として使用すると、本発明の実施形態により提供される描画方法は、2Dグラフィックライブラリエンジン層に適用されうる。この層で、Skiaによって提供されるアプリケーションプログラムインターフェイス(Application Program Interface、API)を呼び出してCPU描画を実装するか、OpenGLによって提供されるAPIインターフェイスを呼び出してGPU描画を実装するかは、CPU描画時間およびGPU描画時間の状態に応じて動的に判断される。
【００３５】
さらに、図2bに示すように、本発明の実施形態は以下をさらに含む。
【００３６】
S105: CPUを使用して現フレームを描画する場合、現フレームのCPU描画結果をビットマップ(Bitmap)に保存する。
【００３７】
S106: GPUを使用して現フレームを描画する場合、現フレームのGPU描画結果をテクスチャ(Texture)に保存する。
【００３８】
ビットマップとテクスチャは、オペレーティングシステムで提供される2つの異なる種類のレンダリングチャネルである。ビットマップはメモリに対応し、行単位およびピクセル単位でアクセスされる。GPU描画方式が採用された場合、描画コンテンツは、すべての描画コマンドが実行された後、テクスチャに保存される。テクスチャもメモリに対応し、タイル(Tile)によってアクセスされる。
【００３９】
S107: ビットマップまたはテクスチャに保存された描画結果を画面に表示する。
【００４０】
図1を例として使用すると、表示合成層は、複数のタスクをサポートし、複数のアプリケーションプログラムのUIウィンドウを一度に表示できる。さらに、1つのアプリケーションプログラムに対して複数のウィンドウが作成されうる。すべてのウィンドウが描画された後、現在表示できるすべてのウィンドウを含むセットが、システムによって最終表示結果として表示される。合成が完了した後、表示駆動層のディスプレイドライバが呼び出されて、結果がフレームバッファ(FrameBuffer)にコピーされる。そして端末の液晶ディスプレイ(Liquid Crystal Display、LCD)ドライバ等のディスプレイドライバが、フレームバッファの内容を画面に表示する。
【００４１】
本発明の実施形態により提供される描画方法では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【００４２】
さらに、ビットマップまたはテクスチャの保存方式を選択することで、異なる描画方式に応じた表示用に異なるレンダリングチャネルを選択することができる。これにより、システムの表示性能がより効果的に改善される。
【００４３】
図3aを参照すると、図3aは、本発明の実施形態により提供される別の描画方法の概略フローチャートである。この方法は、コンピュータシステムに適用されうる。コンピュータシステムは、単一の物理ホストに存在していてよく、複数の物理ホストに分散していてもよい。詳細には、この方法は、図1に示す端末に適用されうる。この方法は以下を含む。
【００４４】
S101: 1つまたは複数の描画コマンドとそれらの描画コマンドにそれぞれ対応するパラメータとを含む、現フレームの描画コマンドセットを受け取る。
【００４５】
S1021: 各描画コマンドとその描画コマンドのパラメータとをトラバースする。
【００４６】
S1022: 各描画コマンドとその描画コマンドのパラメータとに応じて事前設定性能テーブルで問い合わせを行って、各描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とを取得する。
【００４７】
留意すべきは、本発明の実施形態では、CPU描画時間またはGPU描画時間が、同じ描画コマンドの異なるパラメータで変化する可能性があるということである。
【００４８】
S1023: 現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して、現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して、現フレームのGPU描画時間を取得する。
【００４９】
もちろん、本発明の実施形態は、先に記載した実施形態のS103およびS104をさらに含み、さらに、先に記載した実施形態の段階S105、S106、およびS107をさらに含みうる。詳細については本明細書ではこれ以上説明しない。
【００５０】
本発明の実施形態により提供される描画方法では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【００５１】
以下では、特定の実施形態を使用して、本発明によって提供される描画方法で現フレームのCPU描画時間とGPU描画時間とを取得する特定の実装について説明する。
【００５２】
図3bに示すように、この方法は以下を含む。
【００５３】
S201: 1つまたは複数の描画コマンドとそれらの描画コマンドにそれぞれ対応するパラメータとを含む、現フレームの描画コマンドセットを受け取る。
【００５４】
S202: 各描画コマンドとその描画コマンドのパラメータとをトラバースする。
【００５５】
S203: CPU描画時間とGPU描画時間とを事前設定性能テーブルで問い合わせる。
【００５６】
事前設定性能テーブルは以下のように図示される。
【００５７】
【表１】
0005963940.tif 000002
【００５８】
表1に一覧されているように、線形変換とピクチャ勾配とは、描画パラメータ、すなわち領域サイズにそれぞれ対応する2つの描画コマンドである。描画コマンドのGPUレンダリング時間およびCPUレンダリング時間(ミリ秒単位で計算される)は、描画コマンドと領域サイズとに応じて判断できる。たとえば、表1で、領域サイズが100*100ピクセル、描画操作がピクチャ勾配の場合、必要なGPUレンダリング時間とCPUレンダリング時間は、それぞれ108msと80msである。
【００５９】
留意すべきは、表1は例示のみを目的としており、表1の描画コマンドも例示のみを目的としていることである。本発明のいくつかの別の実施形態では、性能テーブルは、描画コマンドの2つ以上のパラメータを含みうる。通常、同じ描画コマンドの異なる描画パラメータは、性能テーブルで個別のレコードを有する。
【００６０】
描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間とCPU描画時間とが事前設定性能テーブルで見つかった場合は、段階S204に進む。それ以外の場合は、段階S205に進む。
【００６１】
S204: 描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間とCPU描画時間とを取得する。
【００６２】
S205: 描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間とCPU描画時間とを計算する。
【００６３】
詳細には、描画コマンドセット中のいずれかの描画コマンドとその描画コマンドのパラメータとについて、描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間とCPU描画時間とが事前設定性能テーブルで見つからない場合、計算過程が有効化され、描画コマンドとその描画コマンドのパラメータとが計算過程に渡され、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とが計算過程を使用して同時に計算される。
【００６４】
選択的に、計算方法は以下のとおりである。描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを、描画コマンドとその描画コマンドのパラメータとに応じてCPUとGPUとをそれぞれ使用して描画し、描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトをCPUとGPUとをそれぞれ使用して描画する過程で、CPUとGPUとによって画像オブジェクトをそれぞれ描画するために使用された時間を記録する。CPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間であり、GPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間である。
【００６５】
さらに、性能テーブルの適時な更新を実装するために、方法は以下をさらに含む。
【００６６】
S206: この計算時に取得されたCPU描画時間とGPU描画時間とを事前設定性能テーブルに追加して、同じパラメータを含む同じ描画コマンドが次回出現した場合に、CPU描画時間とGPU描画時間とを事前設定性能テーブルで問い合わせることにより直接取得できるようにする。
【００６７】
描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とがテーブルでの問い合わせまたは計算で取得された後、描画コマンドセットのトラバースが完了したかどうかが判断される。完了した場合は、段階S207に進む。まだ完了していない場合は、段階S202に戻って次の描画コマンドをトラバースする。
【００６８】
S207: 現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して、現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して、現フレームのGPU描画時間を取得する。
【００６９】
現フレームのCPU描画時間とGPU描画時間とが取得された後、本発明の先に記載した実施形態の方法に応じて、CPU描画またはGPU描画が選択されうる。さらに、描画結果が保存および表示される。詳細な段階については、本明細書では改めて説明しないので、先に記載した実施形態を参照されたい。
【００７０】
本発明のこの実施形態によって提供される描画方法では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【００７１】
図4aを参照すると、図4aは、本発明の実施形態によって提供される描画装置10の論理構造の概念図である。本発明のこの実施形態によって提供される描画装置10は、図1に示す端末システムの2Dグラフィックライブラリエンジン層に対応しうる。図4aに示すように、この装置は以下を含む。
この装置は、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取るように構成された受取モジュール11を含む。
ここで、描画コマンドは、線形勾配とピクチャ勾配とを含みうり、対応するパラメータは、領域サイズ、座標、勾配色等を含みうる。描画コマンドは、方形、円、直線、または曲線の描画をさらに含みうり、対応するパラメータは、描画の開始座標と終了座標、線の種類、線の太さ、線の色等を含みうる。当業者は、上記の説明が例示のみを目的としていること、本発明の実施形態で説明される描画コマンドが任意の種類のコンピュータシステムで使用されうる任意の種類の描画コマンドをも含みうること、対応するパラメータが実際のパラメータ要件に応じて柔軟に判断されうること、および本発明の実施形態がその点について限定を含まないことを理解するはずである。
この装置は、受取モジュール11によって受け取られた現フレームの描画コマンドセット中の描画コマンドとそれらの描画コマンドのパラメータとに応じて現フレームのCPU描画時間とGPU描画時間とを判断するように構成された判断モジュール12を含む。
この装置は、CPU描画時間がGPU描画時間よりも短い場合に、CPUを使用して現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPUを使用して現フレームを描画するように構成され、現フレームのCPU描画時間とGPU描画時間とが判断モジュール12によって判断される描画決定モジュール13を含む。
【００７２】
図4bを参照すると、CPUとGPUのどちらを呼び出して現フレームを描画するかが、描画決定モジュール13によって描画時間の比較結果に応じて選択される。呼び出しの方式は、図1に示すグラフィックライブラリSkiaおよびOpenGLで提供されるAPIを使用して実装されうる。図4bのCPUとGPUとは、端末装置のハードウェア層によって提供される2つの処理装置であり、本発明のこの実施形態によって提供される描画装置は、このハードウェア層に位置する。
【００７３】
さらに、図4cに示すように、描画装置10は以下をさらに含む。
描画装置10は、CPUを使用して現フレームを描画する場合に、現フレームのCPU描画結果をビットマップに保存し、GPUを使用して現フレームを描画する場合に、現フレームのGPU描画結果をテクスチャに保存するように構成された保存モジュール14を含む。
描画装置10は、ビットマップまたはテクスチャに保存された描画結果を画面に表示するように構成された表示モジュール15を含む。
【００７４】
図1を例として使用すると、表示モジュール15は、表示合成層のSurfaceFlingerを呼び出して画像を合成できる。合成が完了した後、ディスプレイドライバが呼び出されて、合成結果がフレームバッファframebufferにコピーされ、さらにディスプレイドライバがフレームバッファの内容を画面に表示する。
【００７５】
本発明のこの実施形態によって提供される描画装置では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【００７６】
さらに、ビットマップまたはテクスチャの保存方式を選択することで、異なる描画方式に応じた表示用に異なるレンダリングチャネルを選択することができる。これにより、システムの表示性能がより効果的に改善される。
【００７７】
留意すべきは、この明細書の実施形態が漸進的な態様で説明されていることであり、異なる実施形態間で同一または類似の部分については、各実施形態で別の実施形態との差異に専念できるよう、相互に参照がされうる。特に、装置の実施形態は、方法の実施形態に実質的に類似するため、比較的簡単に説明されており、方法の実施形態に類似する部分については、方法の実施形態が参照されうる。たとえば、判断モジュール12の特定の実装方法については、先に記載した実施形態のCPU描画時間とGPU描画時間とを取得するための方法が参照されうる。たとえば、取得方法で使用される表1の性能テーブルは、本発明の装置の一部でもあり、電源障害が発生した場合にデータ損失を生じさせない磁気ディスクに格納して、端末の電源のオンとオフを複数回繰り返した後でも履歴上の描画データが存在するようにできる。
【００７８】
図5を参照すると、図5は、本発明の実施形態によって提供される端末装置20の概略構造図である。図5に示すように、端末20は、CPU 21と、GPU 22と、装置画面23とを含み、CPU 21とGPU 22とは装置画面23に接続されている。
CPU 21は、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取り、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとに応じて現フレームのCPU描画時間とGPU描画時間とを判断し、CPU描画時間がGPU描画時間よりも短い場合に、現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPU 22を使用して現フレームを描画するように構成される。
【００７９】
詳細には、CPU 21は、現フレームの描画コマンドセット中の各描画コマンドとその描画コマンドのパラメータとをトラバースし、各描画コマンドとその描画コマンドのパラメータとに応じて事前設定性能テーブルで問い合わせを行って各描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とを取得し、現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して現フレームのGPU描画時間を取得するように構成される。
【００８０】
CPU 21は、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とが事前設定性能テーブルで見つからない場合に、描画コマンドとその描画コマンドのパラメータとに応じて、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とを計算し、計算されたCPU描画時間およびGPU描画時間と描画コマンドとその描画コマンドのパラメータとを事前格納テーブルに格納するようにさらに構成される。
【００８１】
計算方法は、以下のとおりでありうる。描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを、描画コマンドとその描画コマンドのパラメータとに応じてCPUとGPUとをそれぞれ使用して描画し、描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトをCPUとGPUとをそれぞれ使用して描画する過程で、CPUとGPUとによって画像オブジェクトをそれぞれ描画するために使用された時間を記録する。CPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間であり、GPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間である。
【００８２】
さらに、CPU 21は、CPUを使用して現フレームを描画する場合に、現フレームのCPU描画結果をビットマップに保存し、GPUを使用して現フレームを描画する場合に、現フレームのGPU描画結果をテクスチャに保存し、ビットマップまたはテクスチャに保存された描画結果を画面に表示するようにさらに構成される。
【００８３】
GPUは、現フレームを描画するように構成され、装置画面23は、CPU 21またはGPU 22を使用して描画された現フレームの描画結果を表示するように構成される。詳細には、装置画面23は、ビットマップまたはテクスチャに保存された描画結果を表示するように構成される。
【００８４】
本発明のこの実施形態によって提供される端末装置では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【００８５】
さらに、ビットマップまたはテクスチャの保存方式を選択することで、異なる描画方式に応じた表示用に異なるレンダリングチャネルを選択することができる。これにより、システムの表示性能がより効果的に改善される。
【００８６】
図6を参照すると、図6は、本発明の実施形態によって提供される別の端末装置30の概略構造図である。図6に示すように、端末装置30は、CPU 31と、GPU 32と、メモリ33と、表示画面34と、バス35とを含む。CPU 31と、GPU 32と、メモリ33と、表示画面34とは、バス35を使用して接続されている。
【００８７】
メモリ33は、コンピュータの1つまたは複数のフロッピー(登録商標)ディスク、USBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク、または光学ディスクとして実装されうる。
【００８８】
メモリ33は、以下の要素、実行可能モジュール、もしくはデータ構造、もしくはそれらのサブセット、またはそれらの拡張機能のセットを格納するように構成される。
メモリ33は、図1に示すHome、Contacts、Browserなど、さまざまなアプリケーションサービスを実装するために使用されるさまざまなアプリケーションプログラムを含む、アプリケーションプログラム331を含む。
メモリ33は、図1に示す表示フレームワーク、2Dグラフィックライブラリエンジン、表示合成層など、さまざまな基本サービスを実装してハードウェアベースのタスクを処理するために使用されるさまざまなシステムプログラムを含む、オペレーティングシステム332を含む。
【００８９】
本発明の実施形態では、CPUはメモリ33に格納されたプログラムを呼び出して以下の操作を行う(プログラムはオペレーティングシステム332に格納されていることもある)。
1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットを受け取り、現フレームの描画コマンドセット中の1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとに応じて現フレームの中央処理装置CPU描画時間とグラフィック処理装置GPU描画時間とを判断し、CPU描画時間がGPU描画時間よりも短い場合に、CPU 31を使用して現フレームを描画し、GPU描画時間がCPU描画時間よりも短い場合に、GPU 32を使用して現フレームを描画する。現フレームの描画コマンドセットは、オペレーティングシステム332自体から受け取られうるか、またはアプリケーションプログラム331から受け取られうる。
【００９０】
詳細には、CPU 31は、現フレームの描画コマンドセット中の各描画コマンドとその描画コマンドのパラメータとをトラバースし、各描画コマンドとその描画コマンドのパラメータとに応じて事前設定性能テーブルで問い合わせを行って各描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とを取得し、現フレームの描画コマンドセット中のすべての描画コマンドのCPU描画時間を合計して現フレームのCPU描画時間を取得し、現フレームの描画コマンドセット中のすべての描画コマンドのGPU描画時間を合計して現フレームのGPU描画時間を取得する。描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とが事前設定性能テーブルで見つからない場合、描画コマンドとその描画コマンドのパラメータとに応じて、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とが計算される。詳細には、計算過程が有効化され、描画コマンドとその描画コマンドのパラメータとが計算過程に渡され、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間とGPU描画時間とが計算過程を使用して同時に計算される。続いて、計算されたCPU描画時間およびGPU描画時間と描画コマンドとその描画コマンドのパラメータとが、事前設定性能テーブルに格納される。詳細な計算方法は以下のとおりでありうる。描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを、描画コマンドとその描画コマンドのパラメータとに応じてCPUとGPUとをそれぞれ使用して描画し、描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトをCPUとGPUとをそれぞれ使用して描画する過程で、CPUとGPUとによって画像オブジェクトをそれぞれ描画するために使用された時間を記録する。CPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するCPU描画時間であり、GPUによって描画コマンドとその描画コマンドのパラメータとに対応する画像オブジェクトを描画するために使用された記録時間は、描画コマンドとその描画コマンドのパラメータとに対応するGPU描画時間である。
【００９１】
事前設定性能テーブルは、メモリ33に格納されうる。好ましくは、事前設定性能テーブルは、電源障害が発生した場合にデータ損失を生じさせないメモリに格納される。一部の実装方式では、メモリ33はRAMと磁気ディスクとを含み、事前設定性能テーブルは磁気ディスクに格納されうる。
【００９２】
さらに、CPU 31は、CPUを使用して現フレームを描画する場合に、現フレームのCPU描画結果をビットマップに保存し、GPUを使用して現フレームを描画する場合に、現フレームのGPU描画結果をテクスチャに保存し、ビットマップまたはテクスチャに保存された描画結果を画面に表示するようにさらに構成される。
【００９３】
GPU 32は、グラフィックを描画するように構成され、CPU 31は、グラフィックを描画するようにさらに構成される。
【００９４】
表示画面34は、CPU 31またはGPU 32を使用して描画されたグラフィックを出力するように構成される。表示画面34は、タッチスクリーンでもよい。
【００９５】
さらに、本発明の実施形態によって提供される端末装置は入力装置36をさらに含みうり、ユーザーは入力装置36を使用してフレーム描画コマンドを入力できる。一部の別の実施形態では、フレーム描画コマンドは、オペレーティングシステムまたはアプリケーションプログラムからも受け取られうる。入力装置36は、タッチスクリーン、マウス、キーボード等として実装されうる。
【００９６】
本発明の実施形態によって提供される端末装置20または端末装置30が携帯電話端末として実装される場合、その携帯電話端末はさらに、通信インターフェイス、音声入力/出力装置(たとえば、マイク/スピーカ)、センサ等を含みうる。携帯電話端末のアプリケーションプログラムは、全地球測位システム(Global Positioning System、GPS)、ビデオ、音楽、ゲーム、ブラウザ等をさらに含みうる。
【００９７】
加えて、図6に示すように、個々のモジュールはバス35を使用して接続される。バス35は、ISA(Industry Standard Architecture)バス、PCI(Peripheral Component Interconnect)バス、EISA(Extended Industry Standard Architecture)バス等でありうる。バスは、1つまたは複数の物理回線でありうる。複数の物理回線である場合、バスは、アドレスバス、データバス、制御バス等に分けられうる。本発明の一部の別の実施方式では、本発明の実施形態によって提供される個々のモジュールは、バスを使用せずに接続されることもあり、信号伝送関係に応じて通信接続を相互間に直接確立できる。
【００９８】
なお、メモリ33に格納されたプログラムのモジュールの分割については、先に記載した実施形態のモジュール分割方式が参照されうる。または、別のモジュール分割方式も使用できる。
【００９９】
本発明の実施形態によって提供される描画の方法、装置、および端末では、1つまたは複数の描画コマンドとそれらの描画コマンドのパラメータとを含む、現フレームの描画コマンドセットが受け取られ、現フレームの描画コマンドセットに応じて現フレームのCPU描画時間とGPU描画時間とが判断され、CPU描画時間がGPU描画時間よりも短い場合に、CPUが使用されて現フレームが描画され、GPU描画時間がCPU描画時間よりも短い場合に、GPUが使用されて現フレームが描画される。この方法では、CPU/GPU方式に対応する描画時間に応じて描画時間が短い描画方式を動的に判断し、各フレームの描画時間をある程度短縮して、システムの表示速度を向上させると共に表示性能を改善することができる。UI対話過程で、ユーザー体験が大幅に改善されうる。
【０１００】
さらに、ビットマップまたはテクスチャの保存方式を選択することで、異なる描画方式に応じた表示用に異なるレンダリングチャネルを選択することができる。これにより、システムの表示性能がより効果的に改善される。
【０１０１】
説明した装置の実施形態は、単なる例である。独立した部品として説明されたユニットは、物理的に独立していても独立していなくてもよく、ユニットとして表示された部品は、物理的なユニットであってもそうでなくてもよく、1つの位置に存在していても複数のネットワークユニットに分散していてもよい。一部またはすべてのモジュールは、実施形態の目的を実現するための実際のニーズに応じて選択されうる。加えて、本発明によって提供される装置の実施形態を示す添付の図面では、モジュール間の接続関係は、それらの間に存在する通信接続を示し、これらの通信接続は、1つまたは複数の通信バスまたは信号回線として具体的に実装されうる。このことは、当業者によって創造的な労力なしに理解および実装されうる。
【０１０２】
先に記載した実施形態の説明に基づき、当業者は、本発明の実施形態で説明された描画装置が、ソフトウェアと必要な汎用ハードウェアとの組み合わせによって実装でき、また専用の集積回路、専用のCPU、専用のメモリ、専用の構成要素等を含む専用のハードウェアによっても確かに実装されうることを明確に理解しうる。一般に、コンピュータプログラムによって実行可能な任意の機能は、対応するハードウェアを使用して容易に実装できる。さらに、同じ機能を実現するために使用される特定のハードウェア構造は、アナログ回路、デジタル回路、専用回路などのさまざまな形式でありうる。
【０１０３】
以上の説明は、本発明の詳細な実施形態にすぎず、本発明の保護範囲を限定することを意図したものではない。本発明で開示された技術的範囲内で当業者によって容易に見つけ出されるすべての変形または置換は、本発明の保護範囲に含まれる。したがって、本発明の保護範囲は、クレームの保護範囲に従う。
【符号の説明】
【０１０４】
10  描画装置
11  受取モジュール
12  判断モジュール
13  描画決定モジュール
14  保存モジュール
15  表示モジュール
20，30  端末装置
21，31  中央処理装置(CPU)
22，32  グラフィック処理装置(GPU)
23  装置画面
33  メモリ
34  表示画面
35  バス
36  入力装置
331  アプリケーションプログラム
332  オペレーティングシステム
【図１】
0005963940.tif 000003
【図２ａ】
0005963940.tif 000004
【図２ｂ】
0005963940.tif 000005
【図３ａ】
0005963940.tif 000006
【図３ｂ】
0005963940.tif 000007
【図４ａ】
0005963940.tif 000008
【図４ｂ】
0005963940.tif 000009
【図４ｃ】
0005963940.tif 000010
【図５】
0005963940.tif 000011
【図６】
0005963940.tif 000012