(57)【要約】様々な実施形態は、ウェブブラウザ独立のウェブページのレンダリング時間を測定するためのアプローチを提供する。少なくとも一部の実施形態において、ウェブページがレンダリングされると、該ウェブページのビデオデータをキャプチャして分析し、ウェブページ又はその一部分が完全にレンダリングされたと見込まれる時を突き止める。少なくとも一部の実施形態において、イメージ処理を、キャプチャされたビデオデータに対して実行して、観測されるピクセルの経時的に変化から、ウェブページがレンダリングされたと見込まれる時を突き止めることができる。
2015503152.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイデバイス上へのウェブページのレンダリングに関連付けられるビデオデータをキャプチャするステップと、
前記ウェブページの少なくとも一部のレンダリングに関連付けられる時間ベースのレンダリングメトリックを計算するのに十分に前記ビデオデータを分析するステップと
を含む、方法。
【請求項２】
システムリソース利用を分析し、該分析されたシステムリソース利用と前記時間ベースのレンダリングメトリックを使用して、前記ウェブページの前記少なくとも一部がレンダリングされる時を識別するよう試みるステップを更に含む、請求項１に記載の方法。
【請求項３】
前記ディスプレイデバイス及びＧＰＵの更新頻度を分析し、該分析された更新頻度と前記時間ベースのレンダリングメトリックを使用して、前記ウェブページの前記少なくとも一部がレンダリングされる時を識別するよう試みるステップを更に含む、請求項１に記載の方法。
【請求項４】
前記時間ベースのレンダリングメトリックは、前記ウェブページが部分的に又は完全にレンダリングされる時を識別する試みに関連付けられる、請求項１に記載の方法。
【請求項５】
前記ビデオデータをキャプチャするステップは、前記ビデオデータに関連付けられる識別子であって、前記ウェブページへのナビゲーションが始まると思われる時を識別する識別子を提供することを含み、該識別子は、視覚的識別子を備える、請求項１に記載の方法。
【請求項６】
前記分析するステップは、前記ビデオデータの開始フレームを指定して、該開始フレームを、後続フレームとの差分比較のための基準イメージとして使用することによって、前記ビデオデータをフレームごとに分析することを含み、前記差分比較は、前記ディスプレイデバイスに関連付けられる画面ベースで実施される、請求項１に記載の方法。
【請求項７】
コンピュータ読取可能命令を具現化する１つ又は複数のコンピュータ読取可能記憶媒体であって、前記コンピュータ読取可能命令は、実行されると、
ディスプレイデバイスにおいて、ウェブページへのナビゲーションに関連して、ビデオデータのキャプチャを開始するステップと、
前記ナビゲーションが始まると思われる時を識別するステップと、
前記ナビゲーションに関連付けられるビデオデータの複数のフレームを提供するのに効果的な前記ビデオデータのキャプチャを終了するステップと、
前記複数のフレームの視覚的特性を分析するステップと、
前記分析に基づいて、前記ウェブページの少なくとも一部のレンダリング状態に関連付けられる時間ベースのレンダリングメトリックを計算するステップと
を含む方法を実行させる、１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項８】
前記レンダリング状態は、完全にレンダリングされたウェブページに関連付けられる状態を含む、請求項７に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項９】
前記識別するステップは。前記ディスプレイデバイスの画面上の視覚的識別子を使用することを含む、請求項７に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【請求項１０】
前記視覚的特性を分析するステップは、前記ビデオデータの開始フレームを指定して、該開始フレームを、後続フレームとの差分比較のための基準イメージとして使用することによって、視覚的特性をフレームごとに分析することを含み、前記差分比較は画面ベースで実施される、請求項７に記載の１つ又は複数のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブページのレンダリング時間を測定することに関する。
【背景技術】
【０００２】
エンドユーザによって認識されるような、ウェブページのロード時間は、ユーザの視聴時間にとって主な駆動要因となることが示されている。そして、これが、広告からのユーザロイヤリティ及びウェブサイトの収入の所望のインジケータとなることが分かっている。しかしながら、ユーザにより認識されるウェブページのロード時間を測定することは、複雑なタスクであることが分かっている。ウェブページのロード時間を測定する技術は存在するが、そのような技術は、ネットワークトラフィックのようなネットワークアクティビティに焦点をあてるか、又はウェブページのロードに遅延を与えるか悪化させる可能性のあるブラウザプラグインを用いる傾向がある。しかしながら、これらの技術は、ロード時間の概算しか提供せず、画面上にレンダリングされている実際のコンテンツを測定することはしない。当然、この画面上にレンダリングされている実際のコンテンツが、ページのロード中にユーザが画面上で見るものである。
【発明の概要】
【０００３】
この「発明の概要」の記載は、以下の「発明を実施するための形態」において更に説明される概念の選択を簡略化した形で紹介するのに提供される。この「発明の概要」の記載は、特許請求に係る主題の重要な特徴及び本質的特徴を特定するようには意図されておらず、また、特許請求される主題の範囲を確定する際の一助として用いられるようにも意図されていない。
【０００４】
様々な実施形態により、ブラウザ独立のウェブページのレンダリング時間を測定するための手法を提供する。少なくとも一部の実施形態において、ウェブページがレンダリングされると、該ウェブページのビデオデータをキャプチャして分析し、ウェブページが完全にレンダリングされたと見込まれる時を突き止める。少なくとも一部の実施形態において、キャプチャされたビデオデータに対してイメージ処理を実行して、観測されるピクセルの経時的な変化から、ウェブページがレンダリングされたと見込まれる時を突き止めることができる。
【０００５】
少なくとも一部の実施形態において、説明される分析技術を通じて、ページ全体に関連付けられるレンダリング時間を突き止めることができる。あるいはまた、説明される分析技術を通じて、特定のページのサブ領域に関連付けられるレンダリング時間を突き止めることもできる。一部の例において、関心のない領域をマスクするか又は無視することができる。
【０００６】
詳細な説明は添付の図面を参照しながら記述される。図面において、参照番号の左端の桁は、その参照番号が初めに現れる図面を識別する。説明内の異なる例における同じ参照番号の使用は、類似又は同一のアイテムであることを示すことがある。
【図面の簡単な説明】
【０００７】
【図１】１つ又は複数の実施形態による例示的な実装における環境を示す図である。
【図２】図１に示される例示的な実装をより詳細に示したシステムの図である。
【図３】１つ又は複数の実施形態によるウェブページのレンダリングを示す図である。
【図４】１つ又は複数の実施形態による関心領域を示す図である。
【図５】１つ又は複数の実施形態による経時的な「ピクセルの変化」のグラフを示す図である。
【図６】１つ又は複数の実施形態による経時的な「ピクセルの変化」のグラフを示す図である。
【図７】１つ又は複数の実施形態による経時的な「ピクセルの変化」のグラフを示す図である。
【図８】１つ又は複数の実施形態による方法のステップを示すフロー図である。
【図９】１つ又は複数の実施形態による方法のステップを示すフロー図である。
【図１０】本明細書で説明される様々な実施形態を実装するのに用いることができる例示的なコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００８】
＜概要＞
様々な実施形態により、ブラウザ独立のウェブページのレンダリング時間を測定するための手法を提供する。少なくとも一部の実施形態において、ウェブページがレンダリングされると、該ウェブページのビデオデータをキャプチャして分析し、ウェブページが完全にレンダリングされたと見込まれる時を突き止める。少なくとも一部の実施形態において、キャプチャされたビデオデータに対してイメージ処理を実行して、観測されたピクセルの経時的な変化から、ウェブページがレンダリングされたと見込まれる時を突き止めることができる。
【０００９】
少なくとも一部の実施形態において、説明される分析技術を通じて、ページ全体に関連付けられるレンダリング時間を突き止めることができる。あるいはまた、説明される分析技術を通じて、特定のページのサブ領域に関連付けられるレンダリング時間を突き止めることもできる。一部の例において、関心のない領域をマスクするか又は無視することができる。
【００１０】
様々な実施形態が、異なるウェブブラウザ間において、レンダリング時間を比較して分析することを可能にする。さらに、異なるウェブサイト間のレンダリング時間を、ユーザがそれらを比較したであろう手法と同様の手法により、分析して比較することができる。この場合において、時間ベースのレンダリングメトリックのような定量的データを開発して、ウェブページのロード時間が考慮される限りにおいて、ユーザの視覚的経験を定量化することができる。
【００１１】
以下の議論では、初めに、本明細書で説明される技術を用いるように動作可能な例示的環境を説明する。次いで、この例示的な環境並びに他の環境においても用いることができる様々な実施形態の例を説明する。したがって、例示的な環境は、説明される実施形態を実行するものに限定されず、また説明される実施形態は、例示的な環境を実装することに限定されない。
【００１２】
＜例示的な動作環境＞
図１は、本明細書において説明されるアニメーション技術を用いるように動作可能な例示的実装の環境１００を示す図である。図示される環境１００は、様々な方法で構成され得るコンピューティングデバイス１０２の例を含む。例えばコンピューティングデバイス１０２は、図２に関連して更に説明されるような、従来のコンピュータ（例えばデスクトップパーソナルコンピュータ、ラップトップコンピュータ等）、モバイルステーション、エンターテイメント機器、テレビに通信可能に結合されるセットトップボックス、ワイヤレスホン、ネットブック、ゲームコンソール及びハンドヘルドデバイス等として構成されてよい。したがって、コンピューティングデバイス１０２は、実質的なメモリとプロセッサリソースを用いるフルリソースデバイス（例えばパーソナルコンピュータやゲームコンソール）から、限られたメモリ及び／又は処理リソースを用いる低リソースデバイス（例えば従来のセットトップボックスやハンドヘルドゲームコンソール）にまで及ぶ可能性がある。コンピューティングデバイス１０２は、該コンピューティングデバイス１０２に以下で説明される１つ又は複数の動作を実行させるソフトウェアも含む。
【００１３】
コンピューティングデバイス１０２は、コンポーネントの中でも特に、ウェブブラウザ１０４、ジェスチャモジュール１０５、ビデオキャプチャコンポーネント１０６及びイメージ分析コンポーネントを含む。
【００１４】
ウェブブラウザ１０４は、ウェブページを取り出して、コンピューティングデバイス１０２上でディスプレイデバイス１０８によりレンダリングできるようにする機能を表す。任意の適切なタイプのウェブブラウザを用いてよく、そのようなウェブブラウザの例は、本明細書の出願人又は他のものから取得可能である。
【００１５】
ジェスチャモジュール１０５は、１又は複数の指によって実行されたジェスチャを認識し、該ジェスチャに対応する動作を実行させる機能を表す。ジェスチャは、モジュール１０５によって様々な異なる方法によって認識され得る。例えばジェスチャモジュール１０５は、タッチスクリーン機能を使用するコンピューティングデバイス１０２のディスプレイデバイス１０８に近接すると、ユーザの手の指などのタッチ入力を認識するように構成される。モジュール１０５を用いて、単一の指のジェスチャとベゼルジェスチャ、複数の指／同じ手のジェスチャとベゼルジェスチャ、並びに／あるいは複数の指／異なる手のジェスチャとベゼルジェスチャを認識することができる。
【００１６】
コンピューティングデバイス１０２は、（例えばユーザの手の１又は複数の指によって提供される）タッチ入力と（例えばスタイラス１１６によって提供される）スタイラス入力との間を検出して区別するようにも構成される。この区別を、ユーザの手の指によって接触されたディスプレイデバイス１０８の量と、スタイラス１１６によって接触されたディスプレイデバイス１０８の量とを対比して検出することによる方法など、様々な方法で行うことができる。
【００１７】
したがって、ジェスチャモジュール１０５は、スタイラスとタッチ入力との間、並びに異なるタッチ入力の間の区分の認識及び利用を通じて様々な異なるジェスチャ技術をサポートすることができる。
【００１８】
ビデオキャプチャコンポーネント１０６は、ウェブページがウェブブラウザ１０４によってレンダリングされるときに、ウェブページに関連付けられるビデオデータをキャプチャできるようにする機能を表す。ディスプレイ画面全体に関連付けられたビデオデータをキャプチャすることができる。あるいはまた、ウェブページの全体に満たない部分で構成されるウェブページの一部分に関連付けられるビデオデータを、キャプチャして分析することができる。図示及び説明される実施形態では、ビデオキャプチャデバイス１０６がウェブページのレンダリングに関連付けられた画面データをキャプチャすると、これを更なる処理のためにデジタルビデオファイルに保存することができる。加えて、少なくとも一部の実施形態では、ビデオキャプチャコンポーネント１０６は、イメージ分析を容易にするため、何らかの方法でビデオデータをマークできるようにするように構成される。この例は以下で提供される。
【００１９】
イメージ分析コンポーネント１０７は、ビデオキャプチャコンポーネント１０６によってキャプチャされたビデオデータを分析し、ウェブページの少なくとも一部について時間ベースのメトリックを計算できるようにする機能を表す。１つ又は複数の実施形態において、イメージ分析モジュール１０７は、ビデオファイルを読み込み、該ビデオファイルの視覚的特性を分析して時間ベースのレンダリングメトリックを計算するように構成される。少なくとも一部の実施形態において、分析は、下記において明らかになるようにフレームごとに行われる。さらに、少なくとも一部の実施形態において、イメージ分析コンポーネント１０７は、該イメージ分析コンポーネント１０７がキャプチャしたビデオデータに対してピクセルごとに分析を実行するように構成される。
【００２０】
ビデオキャプチャコンポーネント１０６及びイメージ分析コンポーネント１０７は、コンピューティングデバイス１０２の一部を構成するように示されているが、これらのコンポーネントを、コンピューティングデバイス１０２とは独立のスタンドアロンのコンポーネントとして実装することができる。
【００２１】
ビデオキャプチャコンポーネント１０６及びイメージ分析コンポーネント１０７は、共同で、ウェブブラウザによってレンダリングされたウェブページに関連付けられたレンダリング時間、すなわち、時間ベースのレンダリングメトリックを、ブラウザ独立の手法で測定できるようにする。ウェブページがウェブブラウザ１０４によってレンダリングされると、ウェブページのビデオデータがビデオキャプチャコンポーネント１０６によってキャプチャされる。次いで、このビデオデータを、イメージ分析コンポーネント１０７によって分析して、ウェブページが完全にレンダリングされたと見込まれる時間を突き止めることができる。少なくとも一部の実施形態において、イメージ処理を、キャプチャされたビデオデータに対して実行して、経時的に観測されるピクセルの変化から、ウェブページがレンダリングされたと見込まれる時を突き止めることができる。
【００２２】
少なくとも一部の実施形態において、説明される分析技術を通じて、ウェブページ全体に関連付けられたレンダリング時間を突き止めることができる。あるいはまた、説明される分析技術を通じて、特定のページのサブ領域に関連付けられたレンダリング時間を突き止めることができる。一部の例では、関心のない領域をマスクするか無視することができる。
【００２３】
図２は、複数のデバイスが中央のコンピューティングデバイスを通じて相互に接続される環境において実装されている、ウェブブラウザ１０４、ジェスチャモジュール１０５、ビデオキャプチャコンポーネント１０６及びイメージ分析コンポーネント１０７を示す例示的システム２００を図示する。中央のコンピューティングデバイスは、これらの複数のデバイスに対してローカルであってよく、またこれらの複数のデバイスからリモートに配置されてもよい。一実施形態において、中央のコンピューティングデバイスは、複数のデバイスとネットワーク又はインターネット又は他の手段を通じて接続される、１つ又は複数のサーバコンピュータを備える「クラウド」のサーバファームである。
【００２４】
一実施形態において、この相互接続アーキテクチャは、複数のデバイスにわたって機能を配信し、共通でシームレスな経験をその複数のデバイスのユーザに提供できるようにする。複数のデバイスはそれぞれ、異なる物理的な要件及び能力を有することができ、中央コンピューティングデバイスは、そのデバイスに、該デバイスに対して調整されるが依然として全てのデバイスに対して共通の経験を配信できるようにするプラットフォームを使用する。一実施形態において、ターゲットデバイスの「クラス」を作成し、経験をデバイスの汎用クラスに対して調整する。デバイスのクラスを、デバイスの物理的特徴又は他の共通の特徴によって定義することができる。例えば上述のように、コンピューティングデバイス１０２は、モバイル２０２、コンピュータ２０４及びテレビ２０６が使用するように、様々な異なる方法で構成され得る。これらの構成の各々は、一般的に対応する画面サイズを有し、したがってコンピューティングデバイス１０２は、この例示的システム２００内のこれらのデバイスクラスのうちの１つとして構成されてよい。例えばコンピューティングデバイス１０２は、モバイル電話、音楽プレイヤ及びゲームデバイス等を含むモバイル２０２クラスのデバイスと想定してもよい。コンピューティングデバイス１０２は、パーソナルコンピュータ、ラップトップコンピュータ及びネットブック等を含むコンピュータ２０４クラスのデバイスと想定してもよい。テレビジョン２０６の構成は、例えばテレビジョン、セットトップボックス及びゲームコンソール等の簡単な環境のディスプレイを有するデバイス構成を含む。したがって、本明細書で説明される技術は、コンピューティングデバイス１０２のこれらの様々な構成によってサポートされることが可能であり、以下のセクションにおいて説明される特定の例に限定されない。
【００２５】
クラウド２０８は、ウェブサービス２１２のプラットフォーム２１０を含むように図示されている。プラットフォーム２１０は、クラウド２０８のハードウェア（例えばサーバ）及びソフトウェアリソースの基礎となる機能を抽象化し、したがって「クラウドオペレーティングシステム」として動作してよい。例えばプラットフォーム２１０は、コンピューティングデバイス１０２を他のコンピューティングデバイスと接続するリソースを抽象化してよい。プラットフォーム２１０は、リソースのスケーリングを抽象化して、対応するスケールレベルを、プラットフォーム２１０を介して実装されるウェブサービス２１２の直面した需要に提供するように機能することできる。サーバファーム内のサーバの負荷バランス、悪意あるパーティ（例えばスパム、ウィルス及び他のマルウェア）に対する保護等の様々な他の例も考慮される。
【００２６】
したがって、クラウド２０８は、インターネット又は他のネットワークを介してコンピューティングデバイス１０２に利用可能にされるソフトウェア及びハードウェアリソースに関するストラテジの一部として含まれる。例えばイメージ分析コンポーネント１０７は、コンピューティングデバイス１０２の一部として実装されてもよく、ウェブサービス２１２をサポートするプラットフォーム２１０を介して実装されてもよい。
【００２７】
ジェスチャモジュールによってサポートされるジェスチャ技術は、モバイル構成２０２のタッチスクリーン機能、コンピュータ２０４構成のトラックパッド機能によって検出されてよく、カメラによって、特定の入力デバイスとの接触を要しないナチュラルユーザインタフェース（ＮＵＩ）のサポートの一部として検出されてもよい。さらに、入力を検出及び認識し、特定のジェスチャを識別する動作の性能を、コンピューティングデバイス１０２によって及び／又はクラウド２０８のプラットフォーム２１０によりサポートされるウェブサービス２１２等によって、システム２００全体に分散させてもよい。
【００２８】
一般に、本明細書で説明される機能のいずれかの機能を、ソフトウェア、ファームウェア、ハードウェア（例えば固定の論理回路）、手動の処理又はこれらの実装の組み合わせを使用して実装することができる。本明細書で使用されるとき、「モジュール」、「機能」、及び「論理／ロジック」という用語は、一般にソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせを表す。ソフトウェア実装の場合、モジュール、機能又は論理／ロジックは、（例えば１つ又は複数のＣＰＵ）プロセッサにおいて又はプロセッサによって実行されるときに、指定されたタスクを実行するプログラムコードを表す。プログラムコードを、１つ又は複数のコンピュータ読取可能なメモリデバイスに格納することができる。以下で説明されるジェスチャ技術の特徴は、プラットフォーム独立であり、これは、これらのジェスチャ技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装され得ることを意味する。
【００２９】
以下の議論では、様々なセクションにより様々な例示的な実施形態を説明する。「例示的実施形態」というタイトルのセクションでは、１つ又は複数の実施形態に係るビデオキャプチャ段階及びイメージ分析段階の様々な態様を説明する。次に、「例示的方法」というタイトルのセクションでは、１つ又は複数の実施形態に係る例示的な方法を説明する。最後に、「例示的デバイス」というタイトルのセクションでは、１つ又は複数の実施形態を実装するのに用いることができる例示的なデバイスの態様を説明する。
【００３０】
ウェブページのレンダリング時間を測定することができる例示的な動作環境を説明したので、次に、１つ又は複数の実施形態による例示的なビデオキャプチャ及びイメージ分析の議論を検討する。
【００３１】
＜例示的な実施形態＞
１つ又は複数の実施形態において、ウェブページのレンダリング時間を、ビデオキャプチャ段階を使用して突き止めることができる。ビデオキャプチャ段階の後に、イメージ分析段階が続く。図示及び説明される実施形態では、ビデオキャプチャ段階を、ビデオキャプチャコンポーネント１０６のようなビデオキャプチャコンポーネントによって実施することができる。イメージ分析段階を、イメージ分析コンポーネント１０７のようなイメージ分析コンポーネントによって実施することができる。
【００３２】
＜ビデオキャプチャ段階＞
ビデオキャプチャ段階に関して、下記を検討する。１つ又は複数の実施形態において、ビデオキャプチャ段階の開始は、ウェブページへのナビゲーションに先行して、又はこれに応答して起こり得る。例えば少なくとも一部の実施形態において、ビデオキャプチャ段階を手動で開始し、その後にウェブページへの手動又は自動のナビゲーションが続く。この例では、人間の評価者がビデオキャプチャコンポーネントを起動し、次いでウェブページへのナビゲーションを開始してもよい。他の実施形態では、自動化されたテストシステムが、ウェブページへの自動化されたナビゲーションに関連してビデオキャプチャを開始してよい。
【００３３】
１つ又は複数の実施形態において、ナビゲーションが開始され、ビデオキャプチャが開始されると、ナビゲーションアクティビティの開始を表現するよう、ビデオデータを何らかの方法でマークすることができる。ビデオデータをマークすることは、任意の適切な方法で起こり得る。例えば少なくとも一部の実施形態において、視覚的識別子などの適切なマークをディスプレイデバイス又はディスプレイ画面上で作成して、ナビゲーションが始まったことを示すことができる。任意の適切なマークを使用することができる。しかし一例として図３を検討する。図３において、コンピューティングデバイス１０２のディスプレイデバイス１０８は、左下の角にマーク３００を含む。このマークが、ウェブページへのナビゲーションを記述するビデオデータとともにキャプチャされる。あるいはまた、ビデオデータは、タイムスタンプを使用して、又はビデオデータとともに含まれる何らかの他の適切なタイプのメタデータを使用してマークされることが可能である。マーク、すなわち識別子は視覚的なものであっても、視覚的でなくてもよい。
【００３４】
ウェブページがレンダリングされた後（図３の矢印に沿って図面の下の方に視覚的に進行することで図示されているように）、ビデオキャプチャを終了することができる。ビデオキャプチャの終了は任意の適切な方法で起こり得る。例えば少なくとも一部の実施形態において、ビデオキャプチャの終了は、例えば１０秒等の所定の時間枠の後に起こり得る。あるいは、ビデオキャプチャの終了は、ネットワークトラフィックから生じるキューを使用して起こり得る。例えばビデオキャプチャコンポーネントは、全てのファイルがダウンロードされた時を考慮し、ビデオキャプチャが終了した後にある時間量を追加することによって、所定の時間バッファに加えて、受信した最後のバイトを考慮することができる。これら及び他の技術を使用してビデオキャプチャを終了し、完全なレンダリングが起こった、又は起こったと見込まれることを確かめることができる。少なくとも一部の実施形態において、これらの終了技術は、確実に適切なビデオデータがキャプチャされるように、ウェブページレンダリングの完了を「オーバーシュート」することができる。
【００３５】
上述のようにビデオデータがキャプチャされると、下述するようにビデオデータのイメージ分析が起こり得る。
【００３６】
＜イメージ分析段階＞
イメージ分析段階に関して、下記を検討する。少なくとも一部の実施形態において、ビデオデータがキャプチャされると、更なる分析のために関心領域を識別することができる。これを任意の適切な方法で実行することができる。例えば少なくとも一部の実施形態において、ビデオデータに関連付けられるビデオを識別して、開始フレームを識別することができる。任意の適切な方法を用いて開始フレームを識別することができる。例えば少なくとも一部の実施形態において、上述のような視覚的インジケータが最初に現れるフレームを探すことによって、開始フレームを識別することができる。あるいはまた、特定のタイムスタンプに関連付けられたフレームを探すことができる。
【００３７】
次に、関連するビデオを、完全なレンダリング状態を表すフレームに転送することができる。任意の適切な技術を使用してこのフレームを識別することができる。例えば完全なレンダリング状態を表すフレームは、開始フレームの後の特定の予め定義された時間に起こるフレームとしてもよい。あるいはまた、このフレームは、受信される最後のバイト等のような特定のイベントの発生に関連して起こり得る。
【００３８】
完全なレンダリング状態を構成するフレームの集合が選択されると、関心領域を、後続の分析のためにマークすることができる。少なくとも一部の実施形態において、これは、限定ではなく例として入力デバイスを使用してビデオ上の領域を直接マークすることのような、手動のプロセスを含むか、又は手動のプロセスによって実施することができる。あるいはまた、自動的なアプローチを使用して１つ又は複数の関心領域を識別することができる。例えばイメージ認識を使用して、これらの領域を識別することができる。あるいは、ウェブサイトの関連するドキュメントオブジェクトモデル（ＤＯＭ）においてみられるようなメタデータが、異なる領域のヒント又はタグを識別することができる。次いで、各関心領域に名前を付けて、構成ファイル内に保存することができ、その結果、記録されたビデオデータに対してイメージ分析を実行することができる。例として図４を検討する。
【００３９】
図４では、２つの別個の関心領域が識別されている。第１の関心領域４００は、可視の画面全体を含み、したがって全ての可視コンテンツをカプセル化している。代替的に、第２の関心領域４０２は、可視コンテンツのサブ部分をカプセル化するサブ領域を含む。この例において、関心領域４０２は、広告又はマルチメディアビデオを含んでもよい。
【００４０】
１つ又は複数の関心領域を指定したが、次にイメージ処理を行って、特定のウェブページに関連付けられたレンダリング時間、並びに指定された１つ又は複数の関心領域に関連するレンダリング時間を測定することができる。
【００４１】
最初に、ビデオデータに関連付けられるビデオがロードされ、イメージ分析コンポーネントはビデオのサブフレームを探すことができる。開始フレームは、上述のように、予め識別され、又はマークされたものである。この開始フレームを、後続フレームとの比較のための基準イメージとして指定することができる。開始フレームが基準イメージとして指定されると、ウェブページのレンダリングに関連付けられた時間ベースのレンダリングメトリックを計算するために、後続のフレームを開始フレームと比較することができる。現在のフレームを開始フレームと比較するために、任意の適切なアルゴリズムを使用することができる。そのようなアルゴリズムには、限定ではなく例として、ヒストグラム、差分パーセンテージ、エリアごとの白でないピクセルの数、光学文字認識（ＯＣＲ）技術等を用いるものが含まれ得る。そのようなアルゴリズムを使用して、ピクセルごとに比較を行うか、領域のピクセルの要約を比較することができる。
【００４２】
分析される各フレームについて、そのフレームに関連付けられるタイムスタンプ、及び関連する、計算された差分値をログに取ることができる。計算された差分値は、フレームを比較するのに使用される分析アルゴリズムに基づいて計算される値である。フレームが全て分析され、これらのフレームのタイムスタンプ及び関連する差分値をログに取ると、データを処理して、ページ又はページの部分のレンダリング時間を抽出することができる。
【００４３】
具体的には、上述の処理は、レンダリングするウェブページ又はその一部分に関連付けられる、経時的に変化するピクセル数を記述するデータを展開できるようにする。有利には、任意の特定のレンダリングウェブページ（又はその一部分）は、経時的に変化するピクセルに関して定義することができるパターンを有する。このパターンは、レンダリングされているコンテンツの性質に応じて変化し得る。例えば静的なコンテンツを有するウェブページは、アニメーションを含むウェブページとは異なるパターンを有するであろう。同様に、１つのアニメーションを有するウェブページは、多くの数のアニメーションを有するウェブページとは異なるパターンを有する可能性が高いであろう。同様に、関心領域として指定されたウェブページの部分は、特定の部分内のレンダリングされるコンテンツに応じて異なるパターンを有するであろう。
【００４４】
しかしながら、任意の特定のパターンが、完全なレンダリング状態を示すパターン領域を有するであろう。この特定のパターン領域を識別することによって、完全なレンダリング状態に関連付けられる時間を突き止めて、ウェブページ又はウェブページの一部を完全にレンダリングするのに用いられる時間の正確な測定を提供することができる。例として図５を検討する。
【００４５】
図５では、経時的な「ピクセル変化」のグラフが、パターン５００とともに示されている。パターン５００は、関連するウェブページのピクセルがレンダリングの間に経時的にどのように変化したかを図示している。ここで、「全レンダリングの閾値」は、ピクセルの特定の数、例えばピクセルの９０％に設定されていることに留意されたい。
【００４６】
この例において、パターン５００に関連付けられたウェブページは、絶えず変化するコンポーネントを含む。例えばそのようなコンポーネントは、動くオーディオ／ビジュアルコンテンツを用いる広告を備えることがある。パターン５００内の段階はそれぞれ、時間に対するピクセルの変化を表す。この例において、ページは、順次レンダリングされる個々の要素が徐々に増えるように、レンダリングされている。パターン５００内の（左端にある）最初の段階は、関連するピクセル変化を発生させるコンテンツレンダリングプロセスが開始するときの最初のレンダリング時間を構成する。パターンが進むと、全レンダリングの閾値と交差する。この閾値を超えると、ページは、変化するオーディオ／ビジュアルコンテンツにより、経時的に変化し続ける。全レンダリング時間の閾値と交差することによって、ページが安定した後に、十分なパターン５００が記録されると、パターン領域を識別し、パターン領域が開始した時間を識別することができる。次いで、このパターン領域の開始時間を、ウェブページのレンダリングが完了したと見込まれる時間として選択することができる。例えばビデオ又は広告に対応するパターン領域が５０２に示されている。パターンの開始点が矢印で示されており、この開始点は、示されているように「レンダリング完了時間」を定義する。別の例として図６を検討する。
【００４７】
図６には、経時的な「ピクセル変化」のグラフがパターン６００について示されており、パターン６００は、レンダリング中に色に突然大きな変化があるページを表している。例えばページの背景色が、突然変化して、完全にレンダリングされたページを示す可能性がある。これは、図６において全レンダリングの閾値と交差する大きな第２の段階によって表されている。この特定の例において、パターン６００に関連付けられたウェブページは、色の大きな変化の後、絶えず変化するコンポーネントを含む。例えばそのようなコンポーネントは、動くオーディオ／ビジュアルコンテンツを用いる広告を備えることがある。これは、開始時間を識別することができるパターン領域６０２を定義する。前と同様に、このパターン領域の開始時間を、ウェブページのレンダリングが完了したと見込まれる時間として選択することができる。パターン領域６０２の開始点は矢印で識別され、この開始点は、示されているように「レンダリング完了時間」を定義する。更なる例として図７を検討する。
【００４８】
図７には、経時的な「ピクセル変化」のグラフがパターン７００について示されており、パターン７００は、テキストを含むコンテンツを有するページを表す。この例において、ページのテキスト以外のコンテンツは、パターンが全レンダリングの閾値と最初に交差した手法でレンダリングされている。しかしながら、この例では、テキストはまだレンダリングされていない。したがって、パターン領域７０２に移るって閾値と交差する時点では、テキストはまだレンダリングされていない。矢印によって識別されているパターンの次の段階が、テキストの描画イベントを構成する。この点において、パターン領域７０２の開始点は（テキストの描画イベントに対応する）矢印によって識別され、この開始点が、示されるように「レンダリング完了時間」を定義する。この例は、全レンダリングの閾値との最初の交差が、必ずしもレンダリング完了時間を示すわけでないことを図示している。むしろ、様々なパターン領域を、実際にレンダリングされているコンテンツのコンテキストにおいて分析することによって、可能性の高いレンダリング完了時間を突き止めることができる。
【００４９】
１つ又は複数の実施形態に係る、ウェブページ又はウェブページ内の関心領域に関連付けられるレンダリング時間を計算することができる様々な例を検討したので、次に、１つ又は複数の実施形態に係る例示的な方法を検討する。
【００５０】
＜例示的な方法＞
図８は、１つ又は複数の実施形態に係る方法のステップを説明するフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、何らかのタイプのコンピュータ読取可能媒体において具現化されるソフトウェアによって実行することができる。説明される機能を実行することができるソフトウェアの一例には、上述のようなビデオキャプチャコンポーネント及びイメージ分析コンポーネントが含まれる。
【００５１】
ステップ８００において、ディスプレイデバイス上へのウェブページのレンダリングに関連付けられるビデオデータをキャプチャする。このステップを任意の適切な方法で実行することができる。例えば少なくとも一部の実施形態において、ビデオデータがキャプチャされ、このビデオデータに関連付けられる識別子が提供されて、特定のウェブページへのナビゲーションが始まると思われるときを識別する。適切な識別子の例は、上記に提示されている。例えば少なくとも一部の実施形態において、識別子は視覚的識別子の形式で存在することができる。あるいはまた、識別子は、限定ではなく例としてタイムスタンプのような、非視覚的な識別子の形式で存在することもできる。
【００５２】
ステップ８０２において、ウェブページの少なくとも一部のレンダリングに関連付けられる時間ベースのレンダリングメトリックを計算するのに十分にビデオデータを分析する。このステップを任意の適切な方法によって実行することができる。例えば少なくとも一部の実施形態において、分析はフレームごとに行うことができる。一部の例において、フレームごとの分析は、ビデオデータの開始フレームを指定することと、開始フレームを、後続フレームとの差分比較のために基準イメージとして使用することとを含む。差分比較を、画面又はディスプレイデバイス上の可視コンテンツが全て分析される画面ベースで実施することができる。したがって、これらの例において、時間ベースのレンダリングメトリックは、ウェブページが完全にレンダリングされる時を識別する試みに関連付けられる。あるいはまた、差分比較を、ウェブページの全体よりも少ない部分を構成する、ウェブページの一部分に対して実施することができる。したがって、これらの例において、時間ベースのレンダリングメトリックは、ウェブページ全体よりも少ない部分で構成されるウェブページの一部分が完全にレンダリングされる時を識別する試みに関連付けられる。これがどのように行われるかの例は、上記で提示されている。１つ又は複数の実施形態において、時間ベースのレンダリングメトリックに加えて、情報を使用して、ロード又は部分的にロードされるウェブページ又はウェブページの一部分を識別するように試みることができる。例えばシステムリソースの利用を分析して、時間ベースのレンダリングメトリックとともに使用して、ウェブページがロードされる時を識別しようと試みることができる。システムリソースの利用は、限定ではなく例として、関連するディスプレイデバイス又はグラフィックスプロセッサユニット（ＧＰＵ）の更新頻度、ＣＰＵのアクティビティ等を含むことができる。あるいはまた、ＨＴＭＬやＣＳＳ、ＪａｖａＳｃｒｉｐｔ（登録商標）を含む、特定のアプリケーションの挙動及びコードに関連付けられる知識を使用して、ウェブページがロードされる時を識別しようと試みることができる。例えばアプリケーションのコードは、ある形で、例えばウェブページが完全にロードされたことに応答して、特定のコールを行うこと又は特定のルーチンを実装することによって挙動することがある。
【００５３】
図９は、１つ又は複数の実施形態に係る別の方法のステップを説明するフロー図である。本方法を、任意の適切なハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとの関連で実行することができる。少なくとも一部の実施形態において、本方法を、何らかのタイプのコンピュータ読取可能媒体において具現化されるソフトウェアによって実行することができる。説明される機能を実行することができるソフトウェアの一例には、上述のようなビデオキャプチャコンポーネント及びイメージ分析コンポーネントが含まれる。
【００５４】
ステップ９００において、ディスプレイデバイス上で、ウェブページへのナビゲーションに関連するビデオデータのキャプチャを開始する。このステップを任意の適切な方法で実行することができ、その例は上記に提示されている。例えばこのステップは、ユーザが特定のウェブページへのリンクをクリックすることに応答して実行されることがある。ステップ９０２において、関連するナビゲーションが始まると思われる時を識別する。このステップを任意の適切な方法で実行することができる。例えば上記のように、このステップを、ディスプレイデバイスの画面上の視覚的識別子を使用することによって実行することができる。視覚的識別子は、ナビゲーションが始まると思われる時を識別する。ナビゲーションを開始するリンクのクリックを検出したことに応答して、視覚的識別子を画面上に置くことができる。あるいは、ウェブページを要求するリクエストが送信されたときに、視覚的識別子を画面上に置くことができる。ステップ９０４において、ナビゲーションに関連付けられるビデオデータの複数のフレームを提供するのに効果的なビデオデータのキャプチャを終了する。このステップを任意の適切な方法で実行することができ、その例は上記に提示されている。例えば少なくとも一部の実施形態において、終了は所定の時間に起り得る。あるいは、終了は、限定ではなく例として最後に受信したバイトのような、受信したデータの最後の量などによって、受信したウェブページのコンテンツに関連付けられた情報に基づいて起こり得る。ステップ９０６において、複数のフレームの視覚的特性を分析する。このステップを任意の適切な方法で実行することができる。例えば、分析はフレームごとに行われ得る。具体的には、少なくとも一部の実施形態において、開始フレームを後続フレームとの差分比較のための基準イメージとして指定して、使用することができる。差分比較を、画面上に視覚的に現れるコンテンツの全てを分析することによる等、画面ベースで実施することができる。あるいはまた、差分比較を、ウェブページの全体よりも小さい部分を構成する関連するウェブページの一部に対して実施することができる。
【００５５】
少なくとも一部の実施形態において、フレームの視覚的特性の分析は、フレーム内のピクセル変化のパターンベースの分析を実施することを含むことができる。視覚的特性の分析に基づいて、ステップ９０８において、ウェブページの少なくとも一部のレンダリング状態に関連付けられる時間ベースのレンダリングメトリックを計算する。一部の実施形態において、レンダリング状態は、完全にレンダリングされるウェブページに関連付けられる状態である。他の実施形態では、レンダリング状態は、ウェブページのサブ領域のレンダリングに関連付けられる状態である。更に他の実施形態では、レンダリング状態を、部分的にレンダリングされる、又は徐々にレンダリングされる領域に関連付けることができる。徐々にレンダリングされる領域を、これらに関連する時間ベースのレンダリングメトリックに関して分析することは、ユーザの経験を高めるために、ダウンロード用のページコンポーネントをどのように順序付けるべきかを決定する際に有益である可能性がある。
【００５６】
例示的な実施形態について説明してきたので、次に、上述の実施形態を実装するのに用いることができる例示的なデバイスを検討する。
【００５７】
＜例示的なデバイス＞
図１０は、図１、２を参照して説明したような、本明細書で説明される実施形態を実装する任意のタイプのポータブル及び／又はコンピュータデバイスとして実装することができる例示的デバイス１０００の様々なコンポーネントを図示する。デバイス１０００は、（例えば受信したデータ、受信中のデータ、放送用にスケジュールされたデータ、該データのデータパケット等の）デバイスデータ１００４の有線及び／又は無線通信を可能にする通信デバイス１００２を含む。デバイスデータ１００４又は他のデバイスコンテンツは、デバイスの構成設定、デバイスに格納されているメディアコンテンツ及び／又はデバイスのユーザに関連付けられた情報を含むことができる。デバイス１００に格納されたメディアコンテンツは、任意のタイプのオーディオデータ、ビデオデータ及び／又はイメージデータを含むことができる。デバイス１０００は１つ又は複数のデータ入力部１００６を含む。この１つ又は複数のデータ入力部１００６を介して、ユーザ選択可能な入力、メッセージ、音楽、テレビメディアコンテンツ、記録されたビデオコンテンツ、並びに任意のコンテンツ及び／又はデータソースから受信される任意の他のタイプのオーディオ、ビデオ及び／又はイメージデータのような、任意のタイプのデータ、メディアコンテンツ及び／又は受信することができる。
【００５８】
デバイス１００は、通信インタフェース１００８も含む。通信インタフェース１００８は、シリアル及び／又はパラレルインタフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデム及び任意の他のタイプの通信インタフェースのうちのいずれか１つ又は複数として実装されることが可能である。通信インタフェース１００８は、デバイス１０００と、他の電子的なコンピューティング通信デバイスが当該デバイス１０００とデータを通信する通信ネットワークとの間の接続及び／又は通信リンクを提供する。
【００５９】
デバイス１０００は、１つ又は複数のプロセッサ１０１０（例えばマイクロプロセッサ、コントローラ等）を含む。１つ又は複数のプロセッサ１０１０は、様々なコンピュータ実行可能又は読取可能命令を処理して、デバイス１０００の動作を制御し、そして上述の実施形態を実装する。あるいはまた、デバイス１０００を、ハードウェア、ファームウェア、又は１０１２で一般的に識別される処理及び制御回路との関連で実装される固定の論理回路、のうちのいずれか１つ又はその組み合わせを使用して実装することもできる。図示されていないが、デバイス１０００は、デバイス内の様々なコンポーネントを結合するシステムバス又はデータ伝送システムを含むことができる。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような、異なるバス構造のいずれか１つ又は組み合わせを含むことができる。
【００６０】
デバイス１００は、１つ又は複数のメモリコンポーネントのようなコンピュータ読取可能媒体１０１４も含む。そのようなコンピュータ読取可能媒体１０１４の例には、ランダムアクセスメモリ（ＲＡＭ）、非揮発性メモリ（例えば読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等のうちのいずれか１つ又は複数）及びディスクストレージデバイスが含まれる。ディスクストレージデバイスを、ハードディスクドライブ、記録可能及び／又は再書き込み可能なコンパクトディスク（ＣＤ）、任意のタイプのデジタル多用途ディスク（ＤＶＤ）等のような、任意のタイプの磁気又は光ストレージデバイスとして実装してもよい。デバイス１０００は大容量記憶メディアデバイス１０１６を含むことができる。
【００６１】
コンピュータ読取可能媒体１０１４は、デバイスデータ１００４だけでなく、様々なデバイスアプリケーション１０１８、並びにデバイス１００の動作的態様に関連する任意の他のタイプの情報及び／又はデータを格納するデータ記憶機構を提供する。例えばオペレーティングシステム１０２０を、コンピュータ読取可能媒体１０１４によりコンピュータアプリケーションとして保持することができ、プロセッサ１０１０上で実行することができる。デバイスアプリケーション１０１８は、デバイスマネージャ（例えばコントロールアプリケーション、ソフトウェアアプリケーション、信号処理及び制御モジュール、特定のデバイスにネイティブのコード、特定のデバイスのハードウェア抽象化レイヤ等）、並びにウェブブラウザ、イメージ処理アプリケーション、インスタントメッセージングアプリケーションのような通信アプリケーション、ワード処理アプリケーション及び様々な他の異なるアプリケーションを含むことができる。デバイスアプリケーション１０１８は、本明細書で説明される技術の実施形態を実装する任意のシステムコンポーネント又はモジュールも含む。この例において、デバイスアプリケーション１０１８は、ソフトウェアモジュール及び／又は他のアプリケーションとして示されている、インタフェースアプリケーション１０２２及びジェスチャ・キャプチャ・ドライバ１０２４を含む。ジェスチャ・キャプチャ・ドライバ１０２４は、タッチスクリーン、トラックパッド、カメラ等のような、ジェスチャをキャプチャするように構成されたデバイスとのインタフェースを提供するのに使用されるソフトウェアを表す。あるいはまた、インタフェースアプリケーション１０２２及びジェスチャ・キャプチャ・ドライバ１０２４を、ハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組み合わせとして実装することができる。さらに、コンピュータ読取可能媒体１０１４は、上述のように機能する、ウェブブラウザ１０２５ａ、ビデオキャプチャコンポーネント１０２５ｂ、及びイメージ分析コンポーネント１０２５ｃを含むことができる。
【００６２】
デバイス１０００は、オーディオ及び／又はビデオ入出力システム１０２６も含む。オーディオ及び／又はビデオ入出力システム１０２６は、オーディオデータをオーディオシステム１０２８に提供し、及び／又はビデオデータをディスプレイシステム１０３０に提供する。オーディオシステム１０２８及び／又はディスプレイシステム１０３０は、オーディオ、ビデオ及びイメージデータを処理、表示、及び／又は他の方法でレンダリングする任意のデバイスも含むことができる。ビデオ信号及びオーディオ信号を、ＲＦ（無線周波数）リンク、Ｓ−ビデオリンク、コンポジットビデオリンク、ＤＶＩ（デジタルビデオインタフェース）、アナログオーディオ接続又は他の同様の通信リンクを介して、デバイス１０００からオーディオデバイス及び／又はディスプレイデバイスに通信することができる。ある実施形態において、オーディシステム１０２８及び／又はディスプレイシステム１０３０は、デバイス１０００の外部コンポーネントとして実装される。あるいは、オーディオシステム１０２８及び／又はディスプレイシステム１０３０は、例示デバイス１０００の内蔵コンポーネントとして実装される。
【００６３】
＜結論＞
様々な実施形態は、ウェブブラウザ独立のウェブページのレンダリング時間を測定するためのアプローチを提供する。少なくとも一部の実施形態において、ウェブページがレンダリングされると、該ウェブページのビデオデータをキャプチャして分析し、ウェブページが完全にレンダリングされた可能性が高い時を突き止める。少なくとも一部の実施形態において、イメージ処理を、キャプチャされたビデオデータに対して実行して、観測されるピクセルの経時的な変化から、ウェブページがレンダリングされた可能性が高い時を突き止めることができる。
【００６４】
少なくとも一部の実施形態において、説明された分析技術を通じて、ページ全体に関連付けられるレンダリング時間を突き止めることができる。あるいはまた、説明された分析技術を通じて、特定のページのサブ領域に関連付けられるレンダリング時間を突き止めることができる。一部の例において、関心のない領域をマスクするか無視することができる。
【００６５】
諸実施形態を構造的特徴及び／又は方法的動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される実施形態は、必ずしも説明された具体的な特徴及び動作に限定されない。むしろ、その具体的特徴及び動作は、特許請求に係る実施形態を実装する例示的形式として開示される。
【図１】
2015503152.tif 000003
【図２】
2015503152.tif 000004
【図３】
2015503152.tif 000005
【図４】
2015503152.tif 000006
【図５】
2015503152.tif 000007
【図６】
2015503152.tif 000008
【図７】
2015503152.tif 000009
【図８】
2015503152.tif 000010
【図９】
2015503152.tif 000011
【図１０】
2015503152.tif 000012
【国際調査報告】
2015503152.tif 000013
2015503152.tif 000014