(57)【要約】  方法およびデバイスは、処理リソース制限およびレンダリング処理が最小フレームレートの提示をサポートできない可能性があるときでも、最小フレームレートでグラフィック画像のレンダリングを可能にする。グラフィックスがレンダリングされている間、コンピューティングデバイスのプロセッサは、達成されたフレームレートを監視することができる。フレームレートが最小しきい値を下回った場合、プロセッサは、画像の移動の現在の速度またはレートに注目し、計算量的にあまり複雑ではないグラフィック項目のレンダリングを開始することができる。レンダリングされた項目の速度が注目した速度未満であることにプロセッサが注目するまで、計算量的にあまり複雑ではない項目のレンダリングが継続する。この時点で、通常のグラフィカルレンダリングを再開することができる。態様は、2つ以上のタイプの計算量的にあまり複雑ではない項目またはレンダリングフォーマットに適用することができる。様々な態様は、多種多様なアニメーションおよび移動するグラフィックス、ならびにテキスト、ウェブページのスクロールなどに適用することができる。
2013541073.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて表示アニメーションを実施するための方法であって、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値未満であることが決定されると、計算量的にあまり複雑ではない項目をレンダリングするステップであり、前記計算量的にあまり複雑ではない項目は通常の項目よりも速くレンダリングすることができる、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの速度を記憶するステップと、
前記アニメーションの速度が前記記憶された速度を下回ると、通常の項目をレンダリングするステップと
を含む方法。
【請求項２】
前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づく、請求項1に記載の方法。
【請求項３】
前記監視されたフレームレートが移動平均フレームレートに基づく、請求項1に記載の方法。
【請求項４】
前記計算量的にあまり複雑ではない項目がアプリケーションの一部として定義される、請求項1に記載の方法。
【請求項５】
前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つである、請求項1に記載の方法。
【請求項６】
コンピューティングデバイスにおいて表示アニメーションを実施するための方法であって、
前記表示アニメーションの開始時に画像をレンダリングするための第1のレンダリングフォーマットを指定するステップと、
前記指定されたレンダリングフォーマットを使用して画像をレンダリングするステップと、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値を下回ったときを決定するステップと、
前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されると、画像をレンダリングするための第2のレンダリングフォーマットを指定するステップであり、前記第2のレンダリングフォーマットが前記第1のレンダリングフォーマットよりも処理を必要としない、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの第1の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第1の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第2のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第1の速度未満であることが決定されたとき、前記第1のレンダリングフォーマットを指定するステップと
を含む方法。
【請求項７】
前記現在指定されているレンダリングフォーマットが前記第2のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第3のレンダリングフォーマットを指定し、前記アニメーションの第2の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第2の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第3のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第2の速度未満であることが決定されたとき、前記第2のレンダリングフォーマットを指定するステップと
をさらに含む請求項6に記載の方法。
【請求項８】
前記現在指定されているレンダリングフォーマットが前記第3のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第4のレンダリングフォーマットを指定し、前記アニメーションの第3の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第3の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第4のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第3の速度未満であることが決定されたとき、前記第3のレンダリングフォーマットを指定するステップと
をさらに含む請求項7に記載の方法。
【請求項９】
前記第1、第2、および第3のレンダリングフォーマットがアプリケーションの一部として定義される、請求項8に記載の方法。
【請求項１０】
前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づく、請求項6に記載の方法。
【請求項１１】
前記監視されたフレームレートが移動平均フレームレートに基づく、請求項6に記載の方法。
【請求項１２】
前記表示アニメーションが高速リストスクロールアニメーションである、請求項6に記載の方法。
【請求項１３】
前記表示アニメーションがゲームアプリケーションによって生成される、請求項6に記載の方法。
【請求項１４】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合されたディスプレイと、
前記前記プロセッサに結合されたメモリと
を含み、前記プロセッサが、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値未満であることが決定されると、計算量的にあまり複雑ではない項目をレンダリングするステップであり、前記計算量的にあまり複雑ではない項目は通常の項目よりも速くレンダリングすることができる、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの速度を記憶するステップと、
前記アニメーションの速度が前記記憶された速度を下回ると、通常の項目をレンダリングするステップと
を含む操作を実行するためのプロセッサ実行可能命令で構成される、コンピューティングデバイス。
【請求項１５】
前記プロセッサが、前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づくような操作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１６】
前記プロセッサが、前記監視されたフレームレートが移動平均フレームレートに基づくような操作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１７】
前記プロセッサが、前記計算量的にあまり複雑ではない項目がアプリケーションの一部として定義されるような操作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１８】
前記プロセッサが、前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つであるような操作を実行するためのプロセッサ実行可能命令で構成される、請求項14に記載のコンピューティングデバイス。
【請求項１９】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサに結合されたディスプレイと、
前記前記プロセッサに結合されたメモリと
を含み、前記プロセッサが、
前記表示アニメーションの開始時に画像をレンダリングするための第1のレンダリングフォーマットを指定するステップと、
前記指定されたレンダリングフォーマットを使用して画像をレンダリングするステップと、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値を下回ったときを決定するステップと、
前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されると、画像をレンダリングするための第2のレンダリングフォーマットを指定するステップであり、前記第2のレンダリングフォーマットが前記第1のレンダリングフォーマットよりも処理を必要としない、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの第1の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第1の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第2のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第1の速度未満であることが決定されたとき、前記第1のレンダリングフォーマットを指定するステップと
を含む操作を実行するためのプロセッサ実行可能命令で構成される、コンピューティングデバイス。
【請求項２０】
前記プロセッサが、
前記現在指定されているレンダリングフォーマットが前記第2のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第3のレンダリングフォーマットを指定し、前記アニメーションの第2の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第2の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第3のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第2の速度未満であることが決定されたとき、前記第2のレンダリングフォーマットを指定するステップと
をさらに含む操作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２１】
前記プロセッサが、
前記現在指定されているレンダリングフォーマットが前記第3のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第4のレンダリングフォーマットを指定し、前記アニメーションの第3の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第3の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第4のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第3の速度未満であることが決定されたとき、前記第3のレンダリングフォーマットを指定するステップと
をさらに含む操作を実行するためのプロセッサ実行可能命令で構成される、請求項20に記載のコンピューティングデバイス。
【請求項２２】
前記プロセッサが、前記第1、第2、および第3のレンダリングフォーマットがアプリケーションの一部として定義されるような操作を実行するためのプロセッサ実行可能命令で構成される、請求項21に記載のコンピューティングデバイス。
【請求項２３】
前記プロセッサが、前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づくような操作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２４】
前記プロセッサが、前記監視されたフレームレートが移動平均フレームレートに基づくような操作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２５】
前記プロセッサが、前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つであるような操作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２６】
前記プロセッサが、前記表示アニメーションがゲームアプリケーションによって生成されるような操作を実行するためのプロセッサ実行可能命令で構成される、請求項19に記載のコンピューティングデバイス。
【請求項２７】
コンピューティングデバイスであって、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するための手段と、
前記監視されたフレームレートが許容可能な最小値未満であることが決定されると、計算量的にあまり複雑ではない項目をレンダリングするための手段であり、前記計算量的にあまり複雑ではない項目は通常の項目よりも速くレンダリングすることができる、手段と、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの速度を記憶するための手段と、
前記アニメーションの速度が前記記憶された速度を下回ると、通常の項目をレンダリングするための手段と
を含むコンピューティングデバイス。
【請求項２８】
レンダリングされたフレームのレートを監視するための手段が、あらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づいてレンダリングされたフレームの前記レートを監視するための手段を含む、請求項27に記載のコンピューティングデバイス。
【請求項２９】
レンダリングされたフレームのレートを監視するための手段が、移動平均フレームレートに基づいてレンダリングされたフレームの前記レートを監視するための手段を含む、請求項27に記載のコンピューティングデバイス。
【請求項３０】
前記計算量的にあまり複雑ではない項目がアプリケーションの一部として定義される、請求項27に記載のコンピューティングデバイス。
【請求項３１】
前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つである、請求項27に記載のコンピューティングデバイス。
【請求項３２】
コンピューティングデバイスであって、
前記表示アニメーションの開始時に画像をレンダリングするための第1のレンダリングフォーマットを指定するための手段と、
前記指定されたレンダリングフォーマットを使用して画像をレンダリングするための手段と、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するための手段と、
前記監視されたフレームレートが許容可能な最小値を下回ったときを決定するための手段と、
前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されると、画像をレンダリングするための第2のレンダリングフォーマットを指定するための手段であり、前記第2のレンダリングフォーマットが前記第1のレンダリングフォーマットよりも処理を必要としない、手段と、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの第1の速度を記憶するための手段と、
前記アニメーションの速度が前記記憶された第1の速度未満であるときを決定するための手段と、
前記現在の指定されたレンダリングフォーマットが前記第2のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第1の速度未満であることが決定されたとき、前記第1のレンダリングフォーマットを指定するための手段と
を含むコンピューティングデバイス。
【請求項３３】
前記現在指定されているレンダリングフォーマットが前記第2のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第3のレンダリングフォーマットを指定し、前記アニメーションの第2の速度を記憶するための手段と、
前記アニメーションの速度が前記記憶された第2の速度未満であるときを決定するための手段と、
前記現在の指定されたレンダリングフォーマットが前記第3のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第2の速度未満であることが決定されたとき、前記第2のレンダリングフォーマットを指定するための手段と
をさらに含む、請求項32に記載のコンピューティングデバイス。
【請求項３４】
前記現在指定されているレンダリングフォーマットが前記第3のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第4のレンダリングフォーマットを指定し、前記アニメーションの第3の速度を記憶するための手段と、
前記アニメーションの速度が前記記憶された第3の速度未満であるときを決定するための手段と、
前記現在の指定されたレンダリングフォーマットが前記第4のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第3の速度未満であることが決定されたとき、前記第3のレンダリングフォーマットを指定するための手段と
をさらに含む、請求項33に記載のコンピューティングデバイス。
【請求項３５】
前記第1、第2、および第3のレンダリングフォーマットがアプリケーションの一部として定義される、請求項34に記載のコンピューティングデバイス。
【請求項３６】
レンダリングされたフレームのレートを監視するための手段が、あらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づいてレンダリングされたフレームの前記レートを監視するための手段を含む、請求項33に記載のコンピューティングデバイス。
【請求項３７】
レンダリングされたフレームのレートを監視するための手段が、移動平均フレームレートに基づいてレンダリングされたフレームの前記レートを監視するための手段を含む、請求項33に記載のコンピューティングデバイス。
【請求項３８】
前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つである、請求項33に記載のコンピューティングデバイス。
【請求項３９】
前記表示アニメーションがゲームアプリケーションによって生成される、請求項33に記載のコンピューティングデバイス。
【請求項４０】
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値未満であることが決定されると、計算量的にあまり複雑ではない項目をレンダリングするステップであり、前記計算量的にあまり複雑ではない項目は通常の項目よりも速くレンダリングすることができる、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの速度を記憶するステップと、
前記アニメーションの速度が前記記憶された速度を下回ると、通常の項目をレンダリングするステップと
を含む操作をコンピューティングデバイスのプロセッサに実行させるように構成されるプロセッサ実行可能命令を記録した、プロセッサ可読記録媒体。
【請求項４１】
前記記録された命令が、前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づくような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項40に記載のプロセッサ可読記録媒体。
【請求項４２】
前記記録された命令が、前記監視されたフレームレートが移動平均フレームレートに基づくような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項40に記載のプロセッサ可読記録媒体。
【請求項４３】
前記記録された命令が、前記計算量的にあまり複雑ではない項目がアプリケーションの一部として定義されるような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項40に記載のプロセッサ可読記録媒体。
【請求項４４】
前記記録された命令が、前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つであるような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項40に記載のプロセッサ可読記録媒体。
【請求項４５】
前記表示アニメーションの開始時に画像をレンダリングするための第1のレンダリングフォーマットを指定するステップと、
前記指定されたレンダリングフォーマットを使用して画像をレンダリングするステップと、
前記表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、
前記監視されたフレームレートが許容可能な最小値を下回ったときを決定するステップと、
前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されると、画像をレンダリングするための第2のレンダリングフォーマットを指定するステップであり、前記第2のレンダリングフォーマットが前記第1のレンダリングフォーマットよりも処理を必要としない、ステップと、
前記監視されたフレームレートが前記許容可能な最小値未満であることが決定されると、前記アニメーションの第1の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第1の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第2のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第1の速度未満であることが決定されたとき、前記第1のレンダリングフォーマットを指定するステップと
を含む操作をコンピューティングデバイスのプロセッサに実行させるように構成されるプロセッサ実行可能命令を記録した、プロセッサ可読記録媒体。
【請求項４６】
前記記録された命令が、
前記現在指定されているレンダリングフォーマットが前記第2のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第3のレンダリングフォーマットを指定し、前記アニメーションの第2の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第2の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第3のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第2の速度未満であることが決定されたとき、前記第2のレンダリングフォーマットを指定するステップと
をさらに含む操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項45に記載のプロセッサ可読記録媒体。
【請求項４７】
前記記録された命令が、
前記現在指定されているレンダリングフォーマットが前記第3のフォーマットであり、前記監視されたフレームレートが前記許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第4のレンダリングフォーマットを指定し、前記アニメーションの第3の速度を記憶するステップと、
前記アニメーションの速度が前記記憶された第3の速度未満であるときを決定するステップと、
前記現在の指定されたレンダリングフォーマットが前記第4のレンダリングフォーマットであり、前記アニメーションの前記速度が前記記憶された第3の速度未満であることが決定されたとき、前記第3のレンダリングフォーマットを指定するステップと
をさらに含む操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項46に記載のプロセッサ可読記録媒体。
【請求項４８】
前記記録された命令が、前記第1、第2、および第3のレンダリングフォーマットがアプリケーションの一部として定義されるような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項47に記載のプロセッサ可読記録媒体。
【請求項４９】
前記記録された命令が、前記監視されたフレームレートがあらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づくような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項45に記載のプロセッサ可読記録媒体。
【請求項５０】
前記記録された命令が、前記監視されたフレームレートが移動平均フレームレートに基づくような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項45に記載のプロセッサ可読記録媒体。
【請求項５１】
前記記録された命令が、前記表示アニメーションが高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つであるような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項45に記載のプロセッサ可読記録媒体。
【請求項５２】
前記記録された命令が、前記表示アニメーションがゲームアプリケーションによって生成されるような操作をコンピューティングデバイスのプロセッサに実行させるように構成される、請求項45に記載のプロセッサ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータユーザインターフェースシステムに関し、より詳細には、グラフィックスレンダリング方法に関する。
【背景技術】
【０００２】
モバイルコンピューティングデバイス(たとえば携帯電話、PDA、およびゲームデバイス)は、非常に普及しており、文書、写真、映像、および音楽を記憶するパーソナルオーガナイザ、ならびにインターネットおよび電子メールへのポータルとして働く。そのようなデバイスの小さいディスプレイに適合するように、文書(たとえば音楽ファイルおよび連絡先リスト)は、一般的に、スクロールまたはパン機能によって制御することができるビューアに表示される。文書画像のすべてまたは一部を表示したり、デジタルファイルのリストを解析したりするために、ソフトウェア開発者は、一般的に、モバイルデバイスで使用するために作成されるアプリケーション内に、スクロールまたはパン機能を含む。
【発明の概要】
【課題を解決するための手段】
【０００３】
様々な態様は、コンピューティングデバイスにおいて表示アニメーションを実施するための方法を含み、方法は、表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、監視されたフレームレートが許容可能な最小値未満であることが決定されると、計算量的にあまり複雑ではない項目をレンダリングするステップであり、計算量的にあまり複雑ではない項目は通常の項目よりも速くレンダリングすることができる、ステップと、監視されたフレームレートが許容可能な最小値未満であることが決定されると、アニメーションの速度を記憶するステップと、アニメーションの速度が記憶された速度を下回ると、通常の項目をレンダリングするステップとを含む。監視されたフレームレートは、様々な方法のうちのいずれかで決定することができる。たとえば、フレームレートは、あらかじめ定義された前の間隔の間にレンダリングされたフレームの数に基づき得る。別の例では、フレームレートは、達成されたフレームレートの移動平均または移動平均レートを反映するフレームレートの計算に基づき得る。プレースホルダー項目は、アプリケーションの一部として定義され得る。計算量的にあまり複雑ではない項目は、より低い解像度のもの、レンダリングするのに高価なグラフィック要素を除外する、より小さいサイズまたはあまり詳細ではないもの、およびメモリから呼び出すことができ、または場合によっては計算量的に複雑ではないようにレンダリングすることができる固定の画像要素である画像オブジェクトを含み得る。表示アニメーションは、高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパンのうちの1つとすることができる。
【０００４】
さらなる態様は、コンピューティングデバイスにおいて表示アニメーションを実施するための方法を含み、方法は、表示アニメーションの開始時に画像をレンダリングするための第1のレンダリングフォーマットを指定するステップと、指定されたレンダリングフォーマットを使用して画像をレンダリングするステップと、表示アニメーション中にレンダリングされたフレームのレートを監視するステップと、監視されたフレームレートが許容可能な最小値を下回ったときを決定するステップと、監視されたフレームレートが許容可能な最小値を下回ったことが決定されると、画像をレンダリングするための第2のレンダリングフォーマットを指定するステップであり、第2のレンダリングフォーマットが第1のレンダリングフォーマットよりも処理を必要としない、ステップと、監視されたフレームレートが許容可能な最小値未満であることが決定されると、アニメーションの第1の速度を記憶するステップと、アニメーションの速度が記憶された第1の速度未満であるときを決定するステップと、現在の指定されたレンダリングフォーマットが第2のレンダリングフォーマットであり、アニメーションの速度が記憶された第1の速度未満であることが決定されると、第1のレンダリングフォーマットを指定するステップとを含む。方法は、現在指定されているレンダリングフォーマットが第2のフォーマットであり、監視されたフレームレートが許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第3のレンダリングフォーマットを指定し、アニメーションの第2の速度を記憶するステップと、アニメーションの速度が記憶された第2の速度未満であるときを決定するステップと、現在の指定されたレンダリングフォーマットが第3のレンダリングフォーマットであり、アニメーションの速度が記憶された第2の速度未満であることが決定されると、第2のレンダリングフォーマットを指定するステップとをさらに含み得る。方法は、現在指定されているレンダリングフォーマットが第3のフォーマットであり、監視されたフレームレートが許容可能な最小値を下回ったことが決定されたとき、画像をレンダリングするための第4のレンダリングフォーマットを指定し、アニメーションの第3の速度を記憶するステップと、アニメーションの速度が記憶された第3の速度未満であるときを決定するステップと、現在の指定されたレンダリングフォーマットが第4のレンダリングフォーマットであり、アニメーションの速度が記憶された第3の速度未満であることが決定されると、第3のレンダリングフォーマットを指定するステップとをさらに含み得る。第1、第2、および第3のレンダリングフォーマットは、アプリケーションの一部として定義され得る。監視されたフレームレートは、あらかじめ定義された前の間隔の間にレンダリングされたフレームの数、または移動平均フレームレートに基づき得る。表示アニメーションは、高速リストスクロールアニメーション、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像の高速スクロールまたはパン、またはゲームアプリケーション���よって生成されるもののうちの1つとすることができる。
【０００５】
さらなる態様は、プロセッサに結合されたメモリおよびディスプレイを含むコンピューティングデバイスを含み、プロセッサは、上記で説明した方法の操作を実行するためのプロセッサ実行可能命令で構成されている。さらなる態様は、上記で説明した方法の操作を実行するための手段を含むコンピューティングデバイスを含む。さらなる態様は、上記で説明した方法の操作をコンピューティングデバイスのプロセッサに実行させるように構成される、プロセッサ実行可能命令を記憶した、プロセッサ可読記録媒体を含む。
【０００６】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示す。上記の概略的な説明および下記の発明を実施するための形態とともに、図面は、本発明の機能を説明するのに役立つ。
【図面の簡単な説明】
【０００７】
【図１】タッチスクリーンディスプレイ上にリスト文書を示すポータブルコンピューティングデバイスの正面図である。
【図２】コンピューティングデバイスにおいて項目のリストをレンダリングするための従来の方法のプロセスフロー図である。
【図３Ａ】高速スクロールシーケンス中の時間に応じた動きの速度(スクローリング)を示す例示的なリストスクロール分布を示すグラフである。
【図３Ｂ】高速スクロールシーケンス中の時間に応じた動きの速度(スクローリング)を示す例示的なリストスクロール分布を示すグラフである。
【図４Ａ】Y軸上の例示的なリストスクロールアニメーション分布、およびZ軸上の対応するレンダリングされたフレームレート対X軸上の時間を示す3次元グラフである。
【図４Ｂ】Y軸上の例示的なリストスクロールアニメーション分布、およびZ軸上の対応するレンダリングされたフレームレート対X軸上の時間を示す3次元グラフである。
【図５Ａ】様々な態様による、高速スクロールイベント中にレンダリングされた項目がどのように調整され得るかを示すグラフである。
【図５Ｂ】様々な態様による、高速スクロールイベント中にレンダリングされた項目がどのように調整され得るかを示すグラフである。
【図５Ｃ】様々な態様による、高速スクロールイベント中にレンダリングされた項目がどのように調整され得るかを示すグラフである。
【図６Ａ】連絡先リストにおける項目の例示的なリストを示す図である。
【図６Ｂ】図5Aに示される例示的なリストをサポートするために、様々な態様において使用され得る軽量の計算量的にあまり複雑ではない例示的な項目を示す図である。
【図６Ｃ】図5Aに示される例示的なリストをサポートするために、様々な態様において使用され得る軽量の計算量的にあまり複雑ではない例示的な項目を示す図である。
【図７】コンピューティングデバイスが少なくとも最小フレームレートで表示アニメーションをレンダリングすることができるための態様方法のプロセスフロー図である。
【図８Ａ】2つ以上のタイプの計算量的にあまり複雑ではない項目を実施する代替態様を示すグラフである。
【図８Ｂ】2つ以上のタイプの計算量的にあまり複雑ではない項目を実施する代替態様を示すグラフである。
【図９】コンピューティングデバイスが、2つ以上のタイプの計算量的にあまり複雑ではない項目またはレンダリングフォーマットを使用して、少なくとも最小フレームレートで画像をレンダリングすることができるための態様方法のプロセスフロー図である。
【図１０】移動するグラフィックスを生成する任意のアプリケーションにおいて、様々な態様がどのように実施され得るかについて示すグラフである。
【図１１】様々な態様とともに使用するのに好適な、例示的なポータブルコンピューティングシステムのコンポーネントブロック図である。
【図１２】様々な態様とともに使用するのに好適な、例示的なパーソナルコンピュータのコンポーネントブロック図である。
【発明を実施するための形態】
【０００８】
様々な態様が、添付の図面を参照して詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すのに、図面全体にわたって同じ参照番号を使用する。具体的な例および実装形態への言及は、説明を目的とし、本発明の範囲または本特許請求の範囲を限定するものではない。
【０００９】
「例示的な」という言葉は、「一例、実例または例として」を意味するように本明細書で使用される。本明細書に「例示的」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１０】
本明細書で使用する「コンピューティングデバイス」および「モバイルデバイス」は、携帯電話、パーソナルテレビジョン受信機、携帯情報端末(PDA)、パームトップコンピュータ、ノートブックコンピュータ、パーソナルコンピュータ、ワイヤレス電子メール受信機およびセルラー電話受信機(たとえば、Blackberry(登録商標)およびTreo(登録商標)デバイス)、マルチメディアインターネット対応携帯電話(たとえば、Blackberry Storm(登録商標))、ならびにプログラマブルプロセッサ、メモリ、およびディスプレイを含む類似の電子デバイスのうちのいずれか1つまたはすべてを指す。本発明の様々な態様を示すために使用される一態様例では、コンピューティングデバイスは、一体型のタッチスクリーンディスプレイを含む携帯電話である。しかし、この態様は、単に様々な態様の1つの例示的な実装形態として存在するだけにすぎず、したがって、特許請求の範囲に記載される主題の他の可能な実装形態を除外するためのものではない。
【００１１】
本明細書で使用する「リスト」という用語は、そのようなデータ構造によってリスト要素に連続的にアクセスできるか否かにかかわらず、アレイ、連結リスト、双方向連結リスト、または順次リストとして論理的に提示することができる任意の類似のデータ構造を含む様々なデータ構造のうちの任意の1つを指すことができる。
【００１２】
様々な態様では、通常のフォーマットでオブジェクトまたは画像をレンダリングする間に処理リソースが最小フレームレートを満たすことができないときでも、方法と装置によって、コンピューティングデバイスは、最小フレームレート要件(たとえば、30フレーム毎秒)内で移動するオブジェクトまたは画像の画像をレンダリングすることができる。様々な態様では、コンピューティングデバイスのプロセッサは、移動するグラフィックスまたは項目のレンダリングの間に達成されたフレームレートを監視することができる。達成されたフレームレートが許容可能な最小値(たとえば、30フレーム毎秒)未満に低下すると、プロセッサは、レンダリングされたオブジェクトまたは項目の現在の速度に注目し、レンダリングされた画像における標準のグラフィックオブジェクトまたは項目に取って代わる「軽量の」計算量的にあまり複雑ではないオブジェクトまたは項目のレンダリングを開始することができる。プレースホルダー項目は、レンダリングがより速く、作成がより速いように定義され、選択され、これによって、アニメーションにおいてより速いフレームレートを達成できるようになる。計算量的にあまり複雑ではないオブジェクトまたは項目は、より低い解像度のもの、レンダリングするのに高価なグラフィック要素を除外する、より小さいサイズまたはあまり詳細ではないもの、およびメモリから呼び出すことができ、または場合によっては計算量的に複雑ではないようにレンダリングすることができる固定の画像要素である画像オブジェクトを含み得る。参照しやすいように、そのような計算量的にあまり複雑ではない画像項目を、本明細書では、「プレースホルダー」項目と呼ぶ。そのような軽量のプレースホルダー項目のレンダリングは、フレームレートが許容可能な最小値未満に低下した同一速度(または以下)にグラフィックス項目の速度が減少したことをプロセッサが決定するまで継続し得る。この状態が検出されると、プロセッサは、通常の(すなわち、非プレースホルダー)オブジェクトまたは項目のレンダリングの要求を開始することができる。プレースホルダー項目は、計算量的にあまり複雑ではないように選択され、したがってレンダリングする処理が少なくて済むので(これが「軽量」と呼ばれる理由である)、処理リソースは、アニメーションによって必要とされるオブジェクトまたは項目の移動レート(すなわち、速度)をサポートしながら、最小フレームレートでプレースホルダー項目をレンダリングすることが可能である。本明細書の例として使用されるアプリケーションは、たとえばコンピューティングデバイスタッチスクリーンディスプレイ上のユーザの「フリック」ジェスチャーに応答して生成することができるような高速リストスクロールアニメーションである。様々な態様は、2つ以上のタイプの軽量のプレースホルダー項目で実施することができ、これによって、最小フレームレート要件をサポートしながら、レンダリングされたグラフィック品質を最適化することができる。
【００１３】
様々な態様について、画像項目およびリスト要素(たとえば、高速リストスクロールアニメーション)を参照して以下で説明するが、態様は、ディスプレイにおいてスクロールまたはパンされる任意の表示されたコンテンツまたは画像に適用することもできる。様々な態様のそのような他のアプリケーションの例は、ウェブページテキストおよび画像、ワード処理文書、PDF文書、PowerPointプレゼンテーション、テキスト文書、写真画像(たとえば、JPEGおよび/またはタグ付きの画像ファイルフォーマット(TIFF)画像)、コンピュータゲームグラフィックスなどのスクロールまたはパンを含む。
【００１４】
様々な態様を説明するのに有用な例示的な実装形態は、たとえばユーザがモバイルコンピューティングデバイス(たとえば携帯電話)上に表示される連絡先リスト上でフリックジェスチャーを実行するときに行われ得るリストの高速スクロールを伴う。連絡先のリスト、ワード処理文書、またはピクチャ画像など、文書のコンテンツ全体の画像が表示エリア内に適合しない場合があるので(モバイルコンピューティングデバイスにおいては一般的であるように)、大部分のグラフィカルユーザインターフェース(GUI)は、文書画像をデバイスビューウィンドウ内で移動できるようにするために、スクロールおよびパン機能を提供する。ユーザは、ボタンを押し、またはタッチスクリーンディスプレイにわたって指をドラッグして、GUI内でそのようなスクロールおよびパンを達成することができる。タッチスクリーンコンピューティングデバイス上のGUIシステムで可能にされる一般的な文書制御ジェスチャーは、ドラッグ、パン、スクロール、および「フリック」のジェスチャーを含む。ドラッグ、パン、およびスクロールのジェスチャーにおいて、表示された画像は、ユーザの指のタッチ位置に従って比較的ゆっくり移動する。しかし、フリックジェスチャーでは、コンピューティングデバイスは、表示された文書を高速に、ユーザのタッチジェスチャーパラメータ(たとえば、フリックの測定された速度)に基づいて決定された距離の間移動させる。
【００１５】
コンピューティングデバイスが連絡先リスト上のフリックジェスチャーを受信する一例が図1に示される。図1に示されるモバイルデバイス100は、写真および個々の名前および電話番号からなる連絡先リスト104が提示されるタッチスクリーンディスプレイ102を備える。そのようなモバイルデバイス100に実装されるGUIは、一般的に、フリックジェスチャー機能をサポートしており、ユーザは、矢印106によって示されるように、指108をタッチスクリーンに当て、一方向に非常に速く指を移動させ、ジェスチャーが終了すると、あたかも表面から何かを払うかのように、指108をディスプレイ102から持ち上げる。
【００１６】
フリックジェスチャーは標準GUI機能なので、多くのデバイスおよびアプリケーション開発者は、ジェスチャーが一貫した結果を提供するのを好む。たとえば、特定の速度のフリックジェスチャーに応答して、リストスクロールは、所定時間内に所定数の項目(すなわち、リストエントリ)をスクロールするように構成され得る。これは、デバイスの処理能力、現在のシステム負荷、またはレンダリングされる項目の複雑さにかかわらず、ユーザがそれらのコンピューティングデバイスの一貫した結果を経験することを確実にする(すなわち、同じフリックジェスチャーによって、リストが同じ時間に同じ距離進むはずである)。さらに、リスト(または他のグラフィックアニメーション)の移動は、しばしば、時間に応じてあらかじめ定義された移動挙動を呈するように設計されている。たとえば、多くのモバイルデバイスGUIシステムおよび連絡先リストアプリケーションは、図3Aに示されるものなど、放物線速度分布を呈するように構成される。多くのプログラムされたアニメーションでは一般的であるように、矢印302として示したアニメーションの持続時間は、アニメーションが常に同じ持続時間を呈するように、あらかじめ定義された(すなわち一定の)値である。このようにして、リストは、瞬間的に加速し、次いで、最終的なリスト位置で停止する前に、一貫した速度対時間の軌道300に従って減速するように見える。さらに、移動するオブジェクトまたは項目が、レンダリングされた画像の処理容量または複雑さに関係なく、開始位置から同じ距離で止まるように、アニメーションにおいて達成される移動量も固定される(曲線300下のエリアとなる)。そのようなあらかじめ定義された挙動は、アニメーションの持続時間(たとえば、フリックジェスチャーが開始されてからの時間)に依存するアルゴリズムまたは機能の形態で実施され得る。
【００１７】
図2は、あらかじめ定義された速度対時間の挙動に従って移動する表示を生成するために実施され得るソフトウェア操作200の一例を示す。ブロック202でアニメーションが開始すると、アニメーションを実施するプロセッサは、アニメーションの適切な移動挙動の決定において使用するための時間基準を提供するために、ブロック204でタイマーを開始することができる。ブロック206で、プロセッサは、次に表示されたフレーム(すなわち、ディスプレイに提示される次の画像)において、表示されたオブジェクトまたは項目がどれほど移動するかを計算するために、タイマーからの現在時間を使用することができる。たとえば、アニメーションが高速リストスクロールである場合、ブロック206で、プロセッサは、表示されたリストの各項目がどれほど移動したか、ならびにいくつの項目が表示ウィンドウの上部または下部に入っているかを決定することができる。ブロック208で、プロセッサは、計算された移動量を使用して、次にレンダリングすべき画像または項目を決定することができる。たとえば、プロセッサは、移動量を使用して、次のフレームにおいてレンダリングしなければならないリスト内の項目を識別することができる。ブロック210で、プロセッサは、たとえば、レンダリングエンジンに対して、レンダリングすべきオブジェクトおよび項目、ならびに表示エリア内のそれらの位置を識別することによって、次のフレームのレンダリングを要求することができる。決定ブロック212において、プロセッサは、アニメーションが完了したかどうかを決定することができ、そうでない場合(すなわち、決定ブロック212=「いいえ」)、ブロック206に戻り、次の瞬間に応じて移動量を計算することができる。アニメーションが完了する(すなわち、決定ブロック212=「はい」)と、ブロック214でアニメーションシーケンスが終了する。
【００１８】
たとえば項目のリストのスクロールなど、そのグラフィックスがより速く移動するほど、単位時間当たり、より多くの項目が作成され、初期化される必要がある。リストの項目の作成、初期化、およびレンダリングは、時間がかかる。より速く移動するグラフィックス(たとえば、リストスクロールアニメーション)は、1秒当たり、より多くの項目を表示することを必要とし、したがって、単位時間当たり、より多くの新しい画像オブジェクトを初期化することを必要とする。したがって、より多くのリスト項目の作成および初期化が必要とされるので、より速く移動するグラフィックス(たとえば、リストスクロールアニメーション)でのフレームのレンダリングは、ゆっくり移動するグラフィックスの場合よりも長くかかり得る。その結果、達成されたフレームレートは、低下する。いくつかの状況では、図2に示される方法によるオブジェクトおよび画像の作成および初期化は、最小フレームレート要件を満たすほど速く達成することができない。これは、携帯電話のようなモバイルデバイスにおいて、またはオブジェクトもしくは項目が非常に速く移動するとき、および/または作成し、初期化し、レンダリングすべきオブジェクトもしくは項目が計算量的に困難である(たとえば、カラー写真)ときによくあるように、コンピューティングデバイスの処理リソースが制限されるときに起こり得る。達成されたフレームレートが最小フレームレート要件を下回ると、画像フレームがドロップされ、レンダリングされたフレーム間をオブジェクトが移動する距離が、オブジェクトがぎくしゃくした方法でジャンプしたり移動したりするように見えるほど大きくなるので、ディスプレイは、ちらつくように見えることがある。これは、図3Aに示されるアニメーションにプログラムされる表示挙動の後の時間に応じたオブジェクトの作品、初期化、およびレンダリングを示す図3Bに示される。実線304で示されるように、たとえばアニメーションの始めなど、オブジェクトまたは項目がアニメーションにおいて比較的ゆっくり移動している間、プロセッサは、所望の最小フレームレート(たとえば、30フレーム毎秒)を達成するのに十分速くオブジェクトまたは項目を作成し、初期化し、レンダリングすることができ得る。しかしながら、移動するオブジェクトまたは項目の速度が、処理リソースによって所望のフレームレート内でそれらをもはや作成し、初期化し、レンダリングすることができない時点に達すると、306でいくつかのフレームがドロップされるので、結果的にちらつく表示となり得、一方、提示されたフレーム308は、フレーム間の知覚可能な距離を移動したオブジェクトまたは項目を示す。この視覚的性能の低下は、実線310で示されるように、プロセッサが最小フレームレートを再度サポートすることができるレベルにオブジェクトのまたは項目の速度が低下するまで継続し得る。
【００１９】
表示性能のそのような低下は、しばしば限られた計算能力を有するモバイルコンピューティングデバイスで起こり得、したがって、高速で移動するリストまたは他のオブジェクトのレンダリングによって容易に圧倒され得る。プロセッサ集約型のバックグラウンド操作が並行して実行されており、したがって、最小フレームレート要件を満たしながら、要求された画像レンダリングタスクについていくには利用可能な処理リソースが不十分である場合、そのように低下した性能は、パーソナルコンピュータなど、より有能なコンピューティングデバイスでも起こり得る。
【００２０】
アプリケーション開発者は、一般的に、30フレーム毎秒など、何らかの許容可能な最小値以上のフレームレート性能を見ることを好む。歴史的に、アプリケーション開発者は、アニメーションの広範囲なプロトタイピングによる許容可能な最小値未満のフレームレート、またはドロップしたフレームの視覚的な性能の低下を回避するために懸命に働く。そのような試行錯誤のアプリケーションの開発は、時間がかかり、高価であり、画像レンダリングおよびアニメーションの挙動に影響を及ぼし得る様々なコンピューティングプラットフォーム、動作状態、およびバックグラウンドプロセスを考慮に入れることができない。
【００２１】
様々な態様は、高速なグラフィックの移動によってフレームレートが許容可能な最小値を下回る問題を、アプリケーション開発プロセスを単純化する方法で解決する。様々な態様では、コンピューティングデバイスは、より迅速にレンダリングすることができる(またはより少ない処理で済むレンダリングフォーマットを実装した)計算量的にあまり複雑ではない画像またはオブジェクト(「プレースホルダー」)を代用し、それによって、表示された画像において制御された低下で最小限の許容可能なフレームレート要件をアニメーションが満たすことができるように構成される。プロセッサが達成されたフレームレートを監視し、自動的にプレースホルダーオブジェクトまたは項目のレンダリングを実施するので、アプリケーション開発者は、デバイスのレンダリング性能、個々のオブジェクトもしくは項目のレンダリング時間、またはターゲットコンピューティングデバイス上で実行しているバックグラウンドプロセスについて心配する必要がない。代わりに、アプリケーション開発者は、アプリケーションソフトウェア内で所望の最小フレームレートを指定し、レンダリングプロセスが標準グラフィックスまたは項目に関して最小フレームレートを維持することができないときに使用すべきプレースホルダーグラフィック項目を指定または提供することができる。
【００２２】
様々な態様の操作が図4Aおよび図4Bに示されており、これらの図は、プリプログラムされたオブジェクトの移動対時間分布300、および時間に応じて達成されたフレームレート400を示す3次元グラフである。図4Aを参照すると、フリックジェスチャーに応答する高速リストスクロールの例において、モバイルデバイスは、線300で示されるようなスクロール速度対時間分布に従うように構成され得る。処理リソース制限のため、1秒当たりに生成され、開始され、レンダリングされ得るフレームの数(すなわち、達成されたフレームレート)は、リストスクロールの速度が時間とともに増加するにつれて変化し得る。これは、オブジェクトの速度が時間とともに増加するにつれて低下するフレームレートを示す線400で示される。線402は、たとえばデバイス製造業者またはアプリケーション開発者によって指定することができる所望の最小フレームレートに対応する。様々な態様では、線300に示されるように移動アニメーションが実行される間、プロセッサは、達成されたフレームレートを追跡し、たとえばポイント404で示されるように、フレームレート400が所望の最小フレームレート402未満に低下したときを検出することができる。この状態が検出されると、プロセッサは、たとえばポイント406で示されるその時点に、オブジェクトのまたは項目のアニメーション速度に注目し、その速度または移動パラメータ408をメモリに記憶する。プロセッサは、より軽量(すなわち、画像を生成するために、より少ない処理で済む)であり、したがって、アニメーションにおいて通常の項目よりも高速にレンダリングすることができるプレースホルダー項目またはオブジェクトのレンダリングも開始する。
【００２３】
図4Bを参照すると、アニメーション速度が増加し続けるときでさえ、プレースホルダー項目のレンダリングによって、フレームレートは、最小許容フレームレート402を超えて増加することができる。これは、ラインセグメント412に示されるように、フレームレートが最小値を超えて増加する時点である、プロセッサがプレースホルダー項目のレンダリングを開始するまで、通常の項目をレンダリングする達成されたフレームレートがラインセグメント410で低下することを示すフレームレートのグラフに示される。次いで、プロセッサは、アニメーションの速度が、フレームレートが最初に最小値402未満に低下した速度408以下であることを決定するまで、プレースホルダー項目をレンダリングし続ける。これは、ポイント414として示される。第2の状態が検出されると、プロセッサは、プレースホルダー項目のレンダリングを中止し、通常の項目のレンダリングに切り替わる。破線416で示されるように、これによって、達成されたフレームレートは、最小フレームレート402以上のレートまで低下する場合がある。アニメーションがその結論に向かって減速するにつれて、ラインセグメント418で示されるように、達成されたフレームレートは増加し得る。図4Bに示されるように、様々な態様によって、達成されたフレームレートは、最小フレームレート402を上回ったままになる(おそらく一瞬の間は除く)。この一貫したフレームレートの挙動は、プロセッサが容易に利用可能な値に対する2つの単純な比較を実行することによって、すなわち、達成されたフレームレート(プロセッサにはすでにわかっている可能性がある値である)を最小しきい値と比較し、アニメーション速度をメモリに記憶された値と比較することによって、達成される。
【００２４】
高速リストスクロールアニメーション300の例における様々な態様の操作が図5A〜図5Cにさらに示される。図5Aを参照すると、リストスクロールアニメーションの始めに、リスト項目速度(すなわち、1秒当たりのオブジェクト距離)が増加するとき、レンダリングされたリスト項目の達成されたフレームレートが最小しきい値を上回ったままであるので、通常のリスト項目は、線502に示されるようにレンダリングされる。図5Bを参照すると、ポイント504で決定されるように、達成されたフレームレートが最小値以下であることをプロセッサが決定すると、プロセッサは、現在のリスト項目速度506を記憶し、破線508によって示されるように、プレースホルダー項目のレンダリングを開始する。プロセッサは、ポイント510で示されるように、リスト項目速度がもう一度記憶されたリスト項目速度506以下となるまで、プレースホルダー項目をレンダリングし続ける(線508)。その後、プロセッサは、図5Cに示される線512によって示されるように、通常の項目のレンダリングに戻る。
【００２５】
快いユーザの視覚経験を可能にするために、多種多様なプレースホルダー項目が様々な態様において実施され得る。プレースホルダー項目の性質は、アニメーション化される文書のタイプ、ならびにアニメーションのタイプに依存し得る。さらに、図10を参照しながら後述するように、様々な態様は、一般のコンピュータグラフィックアニメーションに適用することができ、プレースホルダー項目は、本質的に、非常に一般的で、アプリケーション開発者によって定義することができる。リストアプリケーションに適したプレースホルダー項目の例が図6A〜図6Dに示される。
【００２６】
図6Aを参照すると、携帯電話用の連絡先アプリケーションなど、多くのデータレコードを含むアプリケーションは、写真602およびテキストデータ604など様々なデータ要素を含み得るリスト600の形態でデータを編成することができる。そのようなリストをスクロールするために、ユーザは、キーを押す、またはタッチスクリーンディスプレイ上でタッチジェスチャーを実行して(たとえば、図1に示されるように)、リストをスクロールさせることができる。リストがスクロールするにつれて、アプリケーションは、画像602のそれぞれおよび604のテキストデータのすべてを含むリスト600の可視部分内に画像のすべてをレンダリングすることをプロセッサに要求する。
【００２７】
図6Bを参照すると、様々な態様で使用され得るプレースホルダー項目610のうちの1つの形態は、個々の画像602を標準の(すなわち多様ではない)単純なグラフィック612に置き換えることを伴う。そのような標準の単純なグラフィック612は、写真612よりもはるかにレンダリングしやすい可能性があり、リストが高速スクロールするときでさえ、テキストデータ604を含むプレースホルダー項目を最小フレームレートでレンダリングすることができる。単純なグラフィック612では、多種多様な写真602よりもレンダリングするための処理が少なくて済むので、図6Bに示されるプレースホルダー項目は、図6Aに示される通常の項目よりも「より軽量」である。
【００２８】
さらにより軽量の例示的なプレースホルダー項目が図6Cに示されており、写真602がブランクスペース622に置き換えられている。単純なグラフィック612さえレンダリングする必要がないので、図6Cに示されるプレースホルダー項目620は、依然として最小フレームレートを達成しながら、高速スクロール移動の間に、リストテキストデータ604を、レンダリングされた画像に含めることができる。
【００２９】
高速スクロールアニメーション速度が、最小フレームレート未満に低下することなく、アニメーションにおいてテキストデータ604さえレンダリングすることができないポイントまで増加する場合、たとえば図6Dに示されるように、さらにより軽量のプレースホルダー項目が使用され得る。このプレースホルダー項目630では、テキストデータが標準グラフィック632に置き換えられ、したがって、個々のテキストデータをレンダリングする必要がない。特定の項目をレンダリングする必要なしに移動の錯覚を作り出すために、ディスプレイ上の異なる場所に同じグラフィック画像(バッファに記憶することができる)を配置することによって、リスト項目データに標準グラフィック632を使用することによって、プロセッサは、画像を簡単にレンダリングすることができる。
【００３０】
図6Bから図6Dに示される例は、ユーザに対してデータをあまり有意に提示しないように見えるが、これらのプレースホルダー項目の提示は、高速アニメーションの間のみ起こる。したがって、ユーザは、図6Bに示されるように、その実際の写真602が標準のグラフィック612に置き換えられていることに気づいていない可能性がある。さらにより高い速度では、ユーザは、写真が表示されていないことに気づいていない、または図6Cに示されるように、写真が提示されていないことにかまわない可能性がある。さらにより高い速度では、ユーザは、テキスト様のグラフィックから移動するテキストを区別することができない可能性があるので、テキストが高速で移動していったように見えるように構成されているグラフィックプレースホルダー項目632にテキストデータ604が置き換えられていることに気づかない可能性がある。
【００３１】
多種多様な種類のプレースホルダー項目を、アプリケーション開発者によって定義され得るように、実装することができる。たとえば、リストアプリケーション(たとえば、連絡先リストまたは電話帳アプリケーション)では、レンダリングされた画像からデータの一部をドロップすることによって、軽量のプレースホルダー項目が提供され得る。たとえば、連絡先リストスクロールアニメーションでは、個人の名前のみがプレースホルダー項目に現れるように、連絡先および電話番号データがレンダリングされた項目からドロップされ得る。いくつかの実装形態では、情報のカテゴリのドロップによって、リストが速くスクロールしている間、各リスト項目の高さをもたらし、スクロール速度が低下するにつれて、カテゴリが拡張し、またはカテゴリのプレースホルダーエンティティがいっぱいになり得る。したがって、プレースホルダーの使用は、スクロールするリストの項目の高さに影響を及ぼす可能性がある。別の例として、軽量のプレースホルダー項目を提供するために、シェーディング、グループ識別子、および他のリスト項目の画像強調がアニメーション画像からドロップされ得る。さらなる例として、プレースホルダーは、リスト(たとえばA、B、Cなど)の現在位置のインデックス文字の表示など、リストにおける見出しまたはセグメントヘッダに縮小され得る。
【００３２】
図7は、様々な態様によるコンピューティングデバイス内で実施することができる例示的な方法700を示す。アニメーション202(たとえば、高速リストスクロールアニメーション)の開始時に、コンピューティングデバイスは、ブロック204でアニメーションに関連付けられたタイマーを開始することができる。ブロック206で、コンピューティングデバイスは、現在時間に応じて、オブジェクトまたは項目(たとえば、リスト項目)の移動量を計算し、ブロック208で、この計算に基づいて、次のフレームでレンダリングすべきオブジェクトまたは項目を決定することができる。ブロック210で、コンピューティングデバイスは、たとえばレンダリングエンジンによるレンダリングを要求することによって、決定されたオブジェクトまたは項目のレンダリングを開始する。ブロック702で、コンピューティングデバイスは、レンダリングプロセスで達成されている現在のフレームレートを決定し、またはそれに注目することができる。達成された現在のフレームレートの決定は、瞬時値(たとえば、最後のフレームのレンダリング持続時間)、移動平均値、または統計的に決定された値に基づいて、あらかじめ定義された前の時間間隔(たとえば、前の10分の1秒)内にレンダリングされたフレームの数に基づいて計算され得る。
【００３３】
決定ブロック704で、コンピューティングデバイスは、ブロック702で決定された現在のフレームレートが最小しきい値未満であるかどうかを決定することができる。フレームレートが最小レート以上である(すなわち、決定ブロック704=「いいえ」)場合、コンピューティングデバイスは、決定ブロック212においてアニメーションが完了したかどうかを決定することができる。アニメーションが完了していない(すなわち、決定ブロック212=「いいえ」)場合、コンピューティングデバイスがブロック206に戻って次の移動量を計算することによって、アニメーションは継続し得る。アニメーションが完了する(すなわち、決定ブロック212=「はい」)と、ブロック214でアニメーションが終わる。
【００３４】
コンピューティングデバイスは、アニメーションの間、現在達成されているフレームレートが最小しきい値未満であることを決定した(すなわち、決定ブロック704=「はい」)場合、ブロック706で、現在のアニメーション速度またはブロック206で計算された移動量をメモリに記憶することができる。ブロック708で、コンピューティングデバイスは、図2のブロック206を参照して上記で説明したものと同様の方法で、現在の時間に応じて、次のフレームにおける画像または項目の移動量を計算することができる。オプションのブロック710で、コンピューティングデバイスは、ブロック208を参照して上記で説明したものと同様の方法で、次のフレームにおいてレンダリングすべき次の画像または項目を決定することができる。いくつかのプレースホルダー項目は、(たとえば、標準のグラフィックプレースホルダーであるとき)スクロールする文書から取得されたデータのレンダリングを伴わない場合があり、この場合、レンダリングのために項目を識別する必要がないので、この決定はオプションである。ブロック712で、コンピューティングデバイスは、(たとえば、レンダリングエンジンにレンダリングを達成するよう要求することによって)プレースホルダー項目をレンダリングすることができる。決定ブロック714で、コンピューティングデバイスは、ブロック708で計算された現在のアニメーション速度が記憶された速度値(すなわち、ブロック706で記憶された速度値)以下かどうかを決定することができる。現在の速度が記憶された速度値よりも大きい(すなわち、決定ブロック714=「いいえ」)場合、コンピューティングデバイスは、ブロック708に戻って現在時間に応じて次の移動量を計算し、アニメーションを継続することができる。
【００３５】
コンピューティングデバイスは、現在のアニメーション速度が記憶された速度値以下であることを決定する(すなわち、決定ブロック714=「はい」)と、決定ブロック212に戻ってアニメーションが完了したかどうかを決定することができる。アニメーションが完了していない場合、コンピューティングデバイスは、上記で説明したように、ブロック206に戻ることによって、通常の項目をレンダリングするアニメーションを継続することができる。
【００３６】
さらなる態様では、コンピューティングデバイスが、様々なアニメーション速度による許容できるグラフィック表現とともに最小フレームレートを維持できるようにするために、2つ以上のタイプのプレースホルダー項目を実装することができる。たとえば、図8Aに示されるように、アプリケーションは、2つのプレースホルダー項目、すなわち、中解像度プレースホルダー(またはプレースホルダーフォーマット)、および低解像度プレースホルダー(またはプレースホルダーフォーマット)で構成され得る。この図示の例では、ポイント802で示されるように、達成されたフレームレートが最小値を下回るまで、(線502によって示されるように)通常の項目をレンダリングすることができる。この状態に遭遇すると、コンピューティングデバイスプロセッサは、現在のアニメーション速度804を記憶し、線806によって示されるように、中解像度プレースホルダー項目のレンダリングを開始する。ポイント808で示されるように、達成されたフレームレートが再度最小値未満であることをプロセッサが決定するまで、中解像度プレースホルダー項目のレンダリング806が継続する。フレームレートが最小値を下回るこの状態が2回目に検出されると、コンピューティングデバイスは、現在のアニメーション速度810をメモリに記憶し、低解像度プレースホルダー項目のレンダリング812を開始する。アニメーション速度が記憶された値810を下回るまで、低解像度プレースホルダー項目のレンダリング812が継続し、その後でコンピューティングデバイスが中解像度プレースホルダー項目のレンダリング806を開始する。アニメーション速度が804の記憶された値を下回るまで、中解像度プレースホルダー項目のレンダリング806が継続し、その後でコンピューティングデバイスが通常の解像度項目のレンダリング502を開始する。
【００３７】
実装され得る異なるタイプの解像度のプレースホルダー(またはプレースホルダーフォーマット)の数は、無制限である。たとえば、図8Bは、3つの異なるプレースホルダーが実装される態様を示す。この例では、中および低解像度のプレースホルダーの実装は、図8Aを参照して上記で説明したように進み得る。しかしながら、ポイント820で示されるように、低解像度項目のレンダリングでさえ、処理リソースが最小フレームレートを満たすことができない場合、コンピューティングデバイスは、線824によって示されるように、たとえば単純なシェーディングバンド、単純なグラフィックス、またはプレースホルダーテキストなど、最小のプレースホルダーをレンダリングすることによって、最小フレームレートを維持することができる。フレームレートが最小値を下回るこの状態が3回目に検出されると、コンピューティングデバイスは、現在のアニメーション速度822をメモリに記憶し、最小解像度プレースホルダー項目のレンダリング824を開始する。アニメーション速度が記録された値822を下回るまで、最小解像度プレースホルダー項目のレンダリング844が継続し、その後でコンピューティングデバイスが低解像度プレースホルダー項目のレンダリング812を開始する。
【００３８】
図9は、最小フレームレートを維持するために、任意の数の異なるタイプのプレースホルダー(またはプレースホルダーフォーマット)を可能にするための態様に従って、コンピューティングデバイスにおいて実装することができる例示的な方法900を示す。方法900のブロック902で、アニメーションは開始することができ、これは、ブロック904でタイマーを開始することを伴い得る。ブロック906で、コンピューティングデバイスは、レンダリングフォーマットを通常または標準(F0)として指定し、速度基準およびレンダリングフォーマットを追跡するためにインデックスが使用されるとき、インデックスiを初期化する(すなわち、i=0と設定する)ことによって、アニメーションを初期化することができる。この操作は、アニメーションの始めに、通常のオブジェクトまたは項目をレンダリングする必要があること、または、項目を通常のフォーマットでレンダリングする必要があることを示す。ブロック908で、コンピューティングデバイスは、現在時間に応じて、移動パラメータまたはアニメーションの速度を計算することができる。ブロック910で、コンピューティングデバイスは、次の画像位置またはレンダリングすべき項目を決定し、ブロック912で、現在指定されているフォーマットを使用したそれらの画像または項目のレンダリングを要求することができる。現在指定されているフォーマット(Fi)は、ブロック906、または後述するように、ブロック924もしくは928のうちの1つで指定されるフォーマットである。この操作において、コンピューティングデバイスは、レンダリングすべきオブジェクトまたは画像、ならびに使用すべきレンダリングフォーマットをレンダリングエンジンに対して指定することができる。ブロック914で、コンピューティングデバイスは、図7を参照して上記で説明したものと同様の方法で現在のフレームレートに注目し、またはそれを決定する。決定ブロック916で、コンピューティングデバイスは、フレームレートが最小しきい値未満であるかどうかを決定する。
【００３９】
コンピューティングデバイスは、フレームレートが最小しきい値未満に低下したことを決定した(すなわち、決定ブロック916=「はい」)場合、速度基準およびレンダリングフォーマットを追跡するためにインデックスを使用するとき、ブロック921でインデックスiを増分し、現在の速度または移動パラメータを、たとえばスタックに、またはインデックス付き変数として(たとえばSiとして)など、メモリに記憶し、レンダリングフォーマットを次に軽いプレースホルダーフォーマット(たとえば、Fi)として指定することができる。次いで、コンピューティングデバイスは、決定ブロック920でアニメーションが完了したかどうかを決定することができる。アニメーションが完了していない(すなわち、決定ブロック920=「いいえ」)場合、コンピューティングデバイスは、ブロック908に戻って、時間に応じて次の移動パラメータまたは距離を計算することによって、アニメーションを継続し得る。ブロック912で、コンピューティングデバイスは、ブロック924で指定された現在指定されているフォーマットFiを使用して、次の画像または項目をレンダリングする。より少ない処理で済む(すなわち、「より軽量」である)フォーマットを指定することによって、コンピューティングデバイスは、指定されたアニメーション速度に適合させながら、最小フレームレートを維持することができる。
【００４０】
コンピューティングデバイスは、フレームレートが最小許容フレームレート以上あることを決定した(すなわち、決定ブロック916=「いいえ」)場合、現在のアニメーション速度または移動パラメータが、ブロック922で記憶された現在記憶されている速度Si以下であるかどうかを決定することができる。現在の速度が、現在記憶されている速度Siよりも大きい(すなわち、決定ブロック918=「いいえ」)場合、コンピューティングデバイスは、決定ブロック920においてアニメーションが完了したかどうかを決定することができる。アニメーションが完了していない(すなわち、決定ブロック920=「いいえ」)場合、コンピューティングデバイスは、ブロック908に戻って、時間に応じて次の移動パラメータまたは距離を計算することによって、アニメーションを継続し得る。
【００４１】
ブロック908〜920の操作は、アニメーションの間、所望の最小フレームレートを維持するために、ブロック924で指定されたさらに軽量のレンダリングフォーマットFiで継続することができる。より軽いフォーマットが指定されるたびに、コンピューティングデバイスは、インデックスiを増分(ブロック921)し、同じく、対応するアニメーション速度Siを記憶する(ブロック922)ことができる。たとえば、プレースホルダーフォーマットは、たとえば陰影を除去し、次いで他の照明効果を除去し、次いで画像の詳細を低減し、次いでいくつかの画像要素の代わりにカートゥーンを使用し、次いでいくつかのイメージ要素をドロップするなどして、レンダリングの複雑さを順次低減することができる。したがって、ちらつきの外観を回避するために、最小フレームレートを達成しながら、表示された画像が増加する速度で一貫した品質を維持するように見えることを可能にするために、任意の数のプレースホルダー項目(またはプレースホルダーフォーマット)を指定することができる。
【００４２】
コンピューティングデバイスは、現在の速度または移動パラメータが現在のレンダリングフォーマットに関連付けられた記憶された速度Si以下であることを決定した(すなわち、決定ブロック918=「はい」)場合、ブロック925でインデックスiを減分し、ブロック926で前のレンダリングフォーマットに関連付けられた前に記憶されているアニメーション速度(すなわち、インデックスiが減分された後のSi)を呼び出し、ブロック928で、次に重いレンダリングフォーマット(すなわち、インデックスiが減分された後のFi)をレンダリングフォーマットとして指定することができる。次いで、コンピューティングデバイスは、決定ブロック920でアニメーションが完了したかどうかを決定することができる。アニメーションが完了していない(すなわち、決定ブロック920=「いいえ」)場合、コンピューティングデバイスは、ブロック908に戻って、時間に応じて次の移動パラメータまたは距離を計算することによって、アニメーションを継続し得る。ブロック912で、コンピューティングデバイスは、ブロック924で指定された現在指定されているフォーマットFiを使用して、次の画像または項目をレンダリングする。より多くの処理を必要とするレンダリングフォーマットを指定することによって、コンピューティングデバイスは、最小フレームレートを指定されたアニメーション速度で維持しながら、より高い解像度またはより通常の表示画像を生成することができる。
【００４３】
ブロック916、922および924での操作は、最小フレームレートを維持するために、増加するアニメーション要求に応答して、さらに軽量のレンダリングフォーマットを順次実装することを可能にし、一方、ブロック918、926、および928の操作は、アニメーション要求が減少するにつれて、増加する重みのレンダリングフォーマットを実装するために、このプロセスを順次元に戻すことを可能にする。したがって、方法900によって、コンピューティングデバイスは、所望の最小フレームレートを維持するために、アプリケーション開発者の仕様に従って、プレースホルダーまたはレンダリングフォーマットを調整することができる。
【００４４】
上記の例はリストアプリケーションおよび高速リストスクロールアニメーションについて言及しているが、態様および特許請求の範囲は、そのようなアプリケーションに限定されておらず、任意のアニメーションルーチンによって実施することができる。図9を参照して上記で説明した一般の方法は、たとえば、ウェブページの高速スクロールまたはパン、テキスト文書の高速スクロール、portable document format(PDF)文書の高速スクロールまたはパン、PowerPointプレゼンテーションの高速スクロール、および写真画像(たとえば、JPEGおよび/またはTIFFフォーマット画像)の高速スクロールまたはパンを含めて、高速に移動する画像および文書項目をレンダリングする任意のコンピューティングデバイスで実施することができる。そのような画像の移動は、上記で説明したように、(たとえば、GUI実装における)ユーザ入力に応答することができるが、コンピューティングデバイス上で実行しているゲームアプリケーションなど、アプリケーションの通常の機能の一部とすることもできる。
【００４５】
さらに、アニメーションは、図5A〜図5C、図8A、および図8Bに示されるように、放物的または対称的な時間分布に従う必要はない。図9に示される方法900と同様の方法を実装する様々な態様は、図10に示されるものなど、矛盾する方法で、処理要求に関して変わるアニメーションのために実装され得る。たとえば、様々な態様は、コンピュータゲーム、またはゲームアプリケーションを実行しているコンピューティングデバイスにおいて実装され得る。
【００４６】
図10は、図9に示されるものと同様の態様方法を実装するコンピューティングデバイスが、様々なオブジェクト速度をランダムに呈するアプリケーションについて、時間に応じて、オブジェクト速度または移動パラメータに応答して、どのようにしてレンダリングフォーマットを調整することができるかを示すグラフである。コンピューティングデバイスが最小フレームレートでオブジェクトまたは画像をレンダリングすることが可能な限り、レンダリングは、線952によって示されるように、標準または通常のレンダリングフォーマットを使用して達成することができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント954で示されるように、最小値を下回ると、コンピューティングデバイスは、現在のオブジェクト速度または移動パラメータを第1の速度値S1(値958)として記憶し、線956によって示されるように、第1の(たとえば、中解像度)レンダリングフォーマットF1でオブジェクトおよび画像のレンダリングを開始することができる。現在のオブジェクト速度または移動パラメータの要求が、ポイント960で示されるように、記憶された値958を下回ると、コンピューティングデバイスは、標準または通常のレンダリングフォーマットを使用して、オブジェクトおよび画像のレンダリングに戻ることができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント962で示されるように、再度最小値を下回ると、コンピューティングデバイスは、そのオブジェクト速度または移動パラメータ値S1(958)を再度記憶し、第1のレンダリングフォーマットF1を使用して、オブジェクトおよび画像のレンダリングに戻ることができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント964で示されるように、再度最小値を下回ると、コンピューティングデバイスは、そのオブジェクト速度または移動パラメータ値S2(968)を記憶し、第2の(たとえば低解像度)レンダリングフォーマットF2を使用して、オブジェクトおよび画像のレンダリングを開始することができる。現在のオブジェクト速度または移動パラメータの要求が、ポイント970で示されるように、記憶さ
れた値S2(968)を下回ると、コンピューティングデバイスは、次に重い第1のレンダリングフォーマットF1を使用して、オブジェクトおよび画像のレンダリングに戻ることができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント972で示されるように、再度最小値を下回ると、コンピューティングデバイスは、そのオブジェクト速度または移動パラメータ値S2(968)を再度記憶し、第2のレンダリングフォーマットF2を使用して、オブジェクトおよび画像のレンダリングに戻ることができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント964で示されるように、再度最小値を下回ると、コンピューティングデバイスは、そのオブジェクト速度または移動パラメータ値S2(968)を記憶し、第2のレンダリングフォーマットF2を使用して、オブジェクトおよび画像のレンダリングを開始することができる。アニメーションおよび/またはバックグラウンドプロセスの要求によって、達成されたフレームレートが、ポイント974で示されるように、再度最小値を下回ると、コンピューティングデバイスは、そのオブジェクト速度または移動パラメータ値S3(978)を記憶し、第3の(たとえばグラジエント(gradient))レンダリングフォーマットF3を使用して、オブジェクトおよび画像のレンダリングを開始することができる。アニメーションの要求が、それぞれポイント980、982、および984で示されるように、記憶された速度値S3、S2、およびS1を下回ると、コンピューティングデバイスは、それに応じて、第2のレンダリングフォーマットF2、第1のレンダリングフォーマットF1、および標準または通常のレンダリングフォーマットに戻ることができる。
【００４７】
達成されたフレームレートにおける変化は、オブジェクトおよび項目をレンダリングするために利用可能な処理リソースの量、ならびにグラフィックアニメーションの処理要求を低減するバックグラウンドプロセスに一部起因し得ることを諒解されたい。そのようなバックグラウンドプロセスは、アプリケーション開発者が予想するのは非常に困難であり得る。したがって、態様によって、コンピューティングデバイスは、バックグラウンドプロセスがコンピューティングデバイス画像レンダリング機能を制限するときでも、アニメーションのための一貫したフレームレート性能を送出し続けることができる。レンダリングプロセスのためのプレースホルダーが実装された時点で実施されたアニメーション速度または移動パラメータのみを追跡することによって、様々な態様は、バックグラウンド処理を監視したり予測したりする必要なく、アニメーションおよびバックグラウンドプロセスの要求における変化に対応するための単純な機構を提供する。プレースホルダーのレンダリングがリセットされる(たとえば、通常のレンダリングまたは次に最も重いレンダリングに戻る)たびに、所与のプレースホルダーの実装に関連付けられたアニメーション速度または移動パラメータがリセットされ得るので、態様は、不必要に画像レンダリングを低減したり、複雑なアルゴリズムまたはデバイス特定の実装を必要としたりすることなく、バックグラウンドプロセスにおける動的な変化に対応することができる。
【００４８】
さらなる態様において、コンピューティングデバイスは、最小フレームレートをサポートしながら、アニメーショングラフィックスのほぼ最適なレンダリングを可能にするプレースホルダーまたはレンダリングフォーマットを選択するように構成され得る。この態様では、コンピューティングデバイスは、画質の最低限の低下でフレームレートの最小値を満たすことを可能にするレンダリングフォーマットを推測または推定することができる。そのような推測または推定は、アニメーションの現在の速度または処理要求、現在のフレームレート性能、および/またはバックグラウンドプロセス要求に基づき得る。推測または推定されたレンダリングフォーマットがいったん実装されると、コンピューティングデバイスは、それが最小フレームレートを上回るか下回るかを決定するために、達成されたフレームレートを監視することができる。達成されたフレームレートが依然として最小しきい値未満である場合、コンピューティングデバイスは、より軽いレンダリングフォーマット(すなわち、より少ない処理で済むレンダリングフォーマット)を実装し、達成されたフレームレートを監視し続けることができる。達成されたフレームレートが、たとえばしきい値量だけ最小値を上回る場合、コンピューティングデバイスは、より重いレンダリングフォーマット(すなわち、より多い処理を必要とするレンダリングフォーマット)を実装し、達成されたフレームレートを監視し続けることができる。このようにして、コンピューティングデバイスは、ほぼ最適なレンダリングを達成するために、最小フレームレートと一致してレンダリングフォーマットを連続的に調整することができる。この態様では、アプリケーション開発者は、所望の最小フレームレートを指定し、様々なプレースホルダーまたはレンダリングフォーマットを識別または特徴づけるだけでよい。
【００４９】
上述のように、テキストおよび画像オブジェクトのリストに対する態様の上記の例の適用は、例示的な目的のためのみに提供される。態様は、ウェブページテキストおよび画像、ワード処理文書、portable document format(PDF)文書、PowerPointプレゼンテーション、テキスト文書、写真画像(たとえば、JPEGおよび/またはTIFF画像)などのスクロールまたはパンなど、ディスプレイ上でスクロールまたはパンされる任意の表示されたコンテンツまたは画像に適用することもできる。
【００５０】
上記の態様は、図11に示されるようなモバイルデバイスおよび図12に示されるようなノートブックコンピュータなど、様々なコンピューティングデバイスのうちの任意のものの上に実装され得る。一般的なモバイルデバイス1100は、図11に示される構成要素を共有する。たとえば、コンピューティングデバイス1100は、内部メモリ1192に結合されたプロセッサ1191およびタッチ面入力デバイス1104またはディスプレイ1102を含むことができる。タッチ面入力デバイス1104は、たとえば抵抗検知タッチスクリーン、容量検知タッチスクリーン、赤外線検知タッチスクリーン、音響/圧電検知タッチスクリーンなど、任意のタイプのタッチスクリーンディスプレイ1101とすることができる。様々な態様は、任意の特定のタイプのタッチスクリーンディスプレイ1101またはタッチパッド技術に限定されない。さらに、コンピューティングデバイス1100は、プロセッサ1191に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ1195に接続される、電磁放射を送信および受信するためのアンテナ1194を有し得る。タッチ面入力デバイス1104を含まない(およびしたがって、一般的にはディスプレイ1102を有していない)コンピューティングデバイス1100は、通常、キーパッド1196または小型キーボード、およびポインティングデバイスとして働くメニュー選択キーまたはロッカスイッチ1197を含む。プロセッサ1191は、様々な態様を適用することもできる外部タッチパッドまたはタッチ面にプロセッサ1191を接続するための、たとえば汎用シリアルバス(USB)またはFireWire(登録商標)コネクタソケットなどのワイヤードネットワークインターフェース1198にさらに接続され得る。
【００５１】
いくつかの実装形態では、タッチ面を、タッチスクリーンディスプレイ1104またはディスプレイ1102の外の電子デバイス1100のエリアに設けることができる。たとえば、キーパッド1196は、埋込み型の容量性タッチセンサを有するタッチ面を含むことができる。他の実施形態では、キーパッド1196が排除されて、タッチスクリーンディスプレイ1104が完全なGUIを設けるようにしてもよい。また別の実装形態では、タッチ面は、ケーブルコネクタ1198に対するケーブルによって、またはプロセッサ1191に結合されたワイヤレストランシーバ(たとえば、トランシーバ1195)によってコンピューティングデバイス1100に接続することができる外部タッチパッドでもよい。
【００５２】
上記で説明した態様は、たとえば図12に示されるラップトップコンピュータ1200など、様々なコンピューティングデバイス内で実施することもできる。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドタッチ面を含み、およびしたがって、タッチスクリーンディスプレイを備えたモバイルデバイス上で実施されるものと同様のドラッグ、スクロール、およびフリックジェスチャーを受信することができる。ラップトップコンピュータ1200は通常、揮発性メモリ1202と、ディスクドライブ1203のような大容量の不揮発性メモリとに結合されたプロセッサ1201を含む。コンピュータ1200はまた、プロセッサ1201に結合された、フレキシブルディスクドライブ1204およびコンパクトディスク(CD)ドライブ1205も含み得る。コンピュータデバイス1200はまた、USBもしくはFireWire(登録商標)コネクタソケット、または、プロセッサ1201をネットワークに結合するための他のネットワーク接続回路1206のような、データ接続を確立し外部メモリデバイスを受け入れるための、プロセッサ1201に結合されたいくつかのコネクタポートを含み得る。ノートブック構成において、コンピュータハウジングは、プロセッサ1201にすべて結合されるタッチパッド1207、キーボード1208、およびディスプレイ1209を含む。コンピューティングデバイスの他の構成は、周知であるように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得る。
【００５３】
コンピューティングデバイスプロセッサ1191、1201は、上記で説明した様々な態様の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのポータブルコンピューティングデバイス1100では、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサ1191を設けることができる。プロセッサは、通信チップセットの一部として含めることもできる。
【００５４】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な実施形態のステップを提示された順序で実行しなければならないことを要求または暗示するものではない。当業者なら諒解するように、上記の実施形態におけるステップの順番は、任意の順番で実行可能である。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、読者に方法の説明を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」などを用いた単数形での請求要素への言及は、その要素を単数に限定するものとして解釈されるべきではない。
【００５５】
本明細書で開示する実施形態に関して説明する、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能がハードウェアまたはソフトウェアとして実装されるかどうかは、特定のアプリケーションおよび全体的なシステムに課せられた設計制約に依存する。当業者は、各特定のアプリケーションについて様々なやり方で記載された機能を実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱をもたらすものとして解釈されるべきではない。
【００５６】
本明細書で開示される態様に関して説明される様々な例示的論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサは、マイクロプロセッサでもよいが、代替として、そのプロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。代替的に、いくつかのステップまたは方法が、所与の機能に固有の回路によって実行され得る。
【００５７】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装する場合、機能は、1つまたは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶され、または、コンピュータ可読媒体を介して送信され得る。本明細書で開示した方法またはアルゴリズムのステップは、有形の非一時的コンピュータ可読記憶媒体上に常駐し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化され得る。有形の非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく、例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る、任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含めるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、有形の非一時的機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、もしくはそのセットとして常駐し得る。
【００５８】
開示される実施形態の上記の説明は、当業者が本発明を作成または使用できるようにするために、提供される。これらの実施形態への様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本発明の趣旨および範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、以下の特許請求の範囲および本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【００５９】
100  モバイルデバイス
102  タッチスクリーンディスプレイ
104  連絡先リスト
600  リスト
602  写真、画像
604  テキストデータ
610  プレースホルダー項目
1100  モバイルデバイス
1101  タッチスクリーンディスプレイ
1102  ディスプレイ
1104  タッチ面入力デバイス
1191  プロセッサ
1192  内部メモリ
1194  アンテナ
1195  セルラー電話トランシーバ
1196  キーパッド
1197  ロッカスイッチ
1198  ワイヤードネットワークインターフェース
1198  ケーブルコネクタ
1200  ラップトップコンピュータ
1201  プロセッサ
1202  揮発性メモリ
1203  ディスクドライブ
1204  フレキシブルディスクドライブ
1205  コンパクトディスク(CD)ドライブ
1206  ネットワーク接続回路
1207  タッチパッド
1208  キーボード
1209  ディスプレイ
【図１】
2013541073.tif 000003
【図２】
2013541073.tif 000004
【図３Ａ】
2013541073.tif 000005
【図３Ｂ】
2013541073.tif 000006
【図４Ａ】
2013541073.tif 000007
【図４Ｂ】
2013541073.tif 000008
【図６Ａ】
2013541073.tif 000009
【図６Ｂ】
2013541073.tif 000010
【図６Ｃ】
2013541073.tif 000011
【図６Ｄ】
2013541073.tif 000012
【図７】
2013541073.tif 000013
【図８Ａ】
2013541073.tif 000014
【図８Ｂ】
2013541073.tif 000015
【図９】
2013541073.tif 000016
【図１０】
2013541073.tif 000017
【図１１】
2013541073.tif 000018
【図１２】
2013541073.tif 000019
2013541073.tif 000020
【図５Ａ】
2013541073.tif 000021
【図５Ｂ】
2013541073.tif 000022
【図５Ｃ】
2013541073.tif 000023
【国際調査報告】
2013541073.tif 000024
2013541073.tif 000025
2013541073.tif 000026