測量網頁渲染時間的制作方法
【專利摘要】本發明提供用于測量能夠獨立于瀏覽器的網頁的渲染時間的方案。在至少一些實施例中,在渲染網頁時,網頁的視頻數據被捕獲并被分析,以確定何時很可能已完全渲染了網頁或其部分。在至少一些實施例中,能夠對捕獲的視頻數據執行圖像處理,以便從觀察到的隨著時間的推移的像素變化中確定何時很可能已渲染了網頁。
【專利說明】測量網頁渲染時間
【背景技術】
[0001]由終端用戶感知的網頁加載時間已被證明是用戶參與度的主要驅動因素。這轉而已被證實是用戶忠誠度以及來自廣告的網站收入的期望指示符。然而,測量用戶感知的網頁加載時間已證實是復雜的任務。雖然確實存在用于測量網頁加載時間的技術,但是這樣的技術傾向于關注網絡活動諸如網絡流量或利用瀏覽器插件,而瀏覽器插件能夠添加延遲并使得網頁加載降級。可是,這些技術只提供加載時間的粗略近似并且不能測量在屏幕上渲染(render)的實際內容,而實際內容根據定義是用戶在頁面加載期間在屏幕上看到的內容。
【發明內容】
[0002]提供這個概述部分來以簡化的形式介紹下面在詳細描述部分中進一步描述的概念的選擇。這個概述部分并不打算用于識別所請求保護的主題的關鍵特征或基本特征,也不打算被用作輔助手段來確定所請求保護的主題的范圍。
[0003]各個實施例提供用于測量能夠獨立于瀏覽器的網頁的渲染時間的方案。在至少一些實施例中,在網頁被渲染時,網頁的視頻數據被捕獲并被分析,以確定何時很可能已完全渲染了網頁。在至少一些實施例中,能夠對捕獲的視頻數據執行圖像處理,以便從觀察到的隨著時間的推移的像素變化中確定何時很可能已渲染了網頁。
[0004]在至少一些實施例中,通過所描述的分析技術能夠確定與整個頁面相關聯的渲染時間。交替地或附加地,通過所描述的分析技術能夠確定與特定頁面的子區域相關聯的渲染時間。在某些情況下,不感興趣的區域能夠被屏蔽或被忽略。
【專利附圖】
【附圖說明】
[0005]參考附圖來敘述詳細的描述。在附圖中,參考數字之中最左邊的(一個或多個)數字識別該參考數字首次出現在其中的附圖。在說明書和附圖中在不同的情況下相同的參考數字的使用可以指示相似或相同的項。
[0006]圖1是根據一個或多個實施例的示例實現方式中的環境的示意圖。
[0007]圖2是更詳細地顯示圖1的示例實現方式中的系統的示意圖。
[0008]圖3說明根據一個或多個實施例的網頁渲染。
[0009]圖4說明根據一個或多個實施例的感興趣區域。
[0010]圖5-7說明根據一個或多個實施例的隨著時間的推移“改變的像素”的圖表。
[0011]圖8是描述根據一個或多個實施例的方法中的步驟的流程圖。
[0012]圖9是描述根據一個或多個實施例的方法中的步驟的流程圖。
[0013]圖10說明能夠用于實現在這里描述的各個實施例的示例計算設備。
【具體實施方式】
[0014]鐘述 各個實施例提供用于測量能夠獨立于瀏覽器的網頁的渲染時間的方案。在至少一些實施例中,在渲染網頁時,網頁的視頻數據被捕獲并被分析,以確定何時很可能已完全渲染了網頁。在至少一些實施例中,能夠對捕獲的視頻數據執行圖像處理,以便從觀察到的隨著時間的推移的像素變化中確定何時很可能已渲染了網頁。
[0015]在至少一些實施例中,通過所描述的分析技術能夠確定與整個頁面相關聯的渲染時間。交替地或附加地,通過所描述的分析技術能夠確定與特定頁面的子區域相關聯的渲染時間。在某些情況下,不感興趣的區域能夠被屏蔽或被忽略。
[0016]各個實施例能夠允許比較和分析在不同的網絡瀏覽器之間的渲染時間。另外,在不同的網站之間的渲染時間能夠采用用戶將對其進行比較的相同方式來分析和比較。在這種情況下,能夠制定量化的數據諸如基于時間的渲染量度,以便只要關系到網頁加載時間就量化用戶的視覺體驗。
[0017]在下面的討論中,首先描述可操作來采用在這里描述的技術的示例環境。隨后描述可以在示例環境中以及在其他環境中采用的各個實施例的示例說明。相應地,示例環境不限于執行所描述的實施例,并且所描述的實施例不限于在示例環境中的實現。
[0018]示例操作環塏
圖1是可操作來采用在這個文檔中描述的動畫技術的示例實現方式中的環境100的示意圖。所說明的環境100包括可以采用各種各樣的方式來配置的計算設備102的示例。例如,計算設備102可以被配置成傳統的計算機(例如桌上型個人計算機,膝上型計算機等等)、移動站、娛樂設備、通信地耦合至電視的機頂盒、無線電話、上網本、游戲機、手持設備等等,如結合圖2進一步描述的。因而,計算設備102的范圍可以從具有大量存儲器和處理器資源的全資源設備(例如個人計算機,游戲機)到具有有限的存儲器和/或處理資源的低資源設備(例如傳統的機頂盒,掌上游戲機)。計算設備102也包括導致計算設備102執行如下所述的一個或多個操作的軟件。
[0019]除了其他的組件之外,計算設備102還包括網絡瀏覽器104、姿態(gesture)模塊106、視頻捕獲組件106和圖像分析組件107。
[0020]網絡瀏覽器104代表允許經由顯示設備108在計算設備102上檢索和渲染網頁的功能。能夠采用任何合適類型的網絡瀏覽器,其示例可從這個文檔的受讓人以及其他人那
里獲得。
[0021]姿態模塊105代表辨別能夠利用一根或多根手指執行的姿態并導致與這些姿態相對應的操作被執行的功能。這些姿態可以利用模塊105以各種各樣的不同方式來辨別。例如,姿態模塊105可以被配置成辨別觸摸輸入,諸如與使用觸摸屏功能的計算設備102的顯示設備108鄰近的用戶的手的手指。模塊105能夠用于辨別單手指姿態與邊框(bezel)姿態、多手指/同手姿態與邊框姿態和/或多手指/不同手姿態與邊框姿態。
[0022]計算設備102也可以被配置成檢測和區分(例如通過用戶的手的一根或多根手指提供的)觸摸輸入與(例如通過手寫筆116提供的)手寫筆輸入。該區分可以采用各種各樣的方式諸如通過檢測利用用戶的手的手指接觸的顯示設備108的量相對于利用手寫筆116接觸的顯示設備108的量來執行。
[0023]因而,姿態模塊105可以通過辨別和利用手寫筆輸入與觸摸輸入以及不同類型的觸摸輸入之間的區分來支持各種各樣的不同的姿態技術。[0024]視頻捕獲組件106代表允許與網頁相關聯的視頻數據在利用網絡瀏覽器104渲染網頁時被捕獲的功能。能夠捕獲與整個顯示屏相關聯的視頻數據。交替地或附加地,能夠捕獲和分析與構成不到一個完整網頁的網頁一部分相關聯的視頻數據。在所說明和所描述的實施例中,當視頻捕獲組件106捕獲與網頁的渲染相關聯的屏幕數據時,這樣的屏幕數據能夠被存入數字視頻文件中,以便進一步處理。另外,在至少一些實施例中,視頻捕獲組件106被配置成允許以某種方式來標記視頻數據,以便于圖像分析,其示例在下面提供。
[0025]圖像分析組件107代表允許分析利用視頻捕獲組件106捕獲的視頻數據并且對于網頁的至少一部分計算基于時間的量度的功能。在一個或多個實施例中,圖像分析組件107被配置成讀取視頻文件并分析視頻文件的視覺特性來計算基于時間的渲染量度。在至少一些實施例中,分析在一幀一幀的基礎上進行,如下面將變得明顯的。另外,在至少一些實施例中,圖像分析組件107被配置成在逐個像素的基礎上對利用圖像分析組件107捕獲的視頻數據進行分析。
[0026]將意識到并明白:雖然視頻捕獲組件106和圖像分析組件107被顯示為包括計算設備102的一部分,但是這樣的組件能夠被實現為與計算設備102無關的獨立組件。
[0027]共同地,視頻捕獲組件106和圖像分析組件107允許以獨立于瀏覽器的方式來測量與利用網絡瀏覽器所渲染的網頁相關聯的渲染時間,即基于時間的渲染量度。在利用網絡瀏覽器104渲染網頁時,利用視頻捕獲組件106捕獲網頁的視頻數據。隨后能夠利用圖像分析組件107來分析視頻數據,以確定何時很可能已完全渲染了網頁。在至少一些實施例中,能夠對捕獲的視頻數據執行圖像處理,以便從觀察到的隨著時間的推移的像素變化中確定何時很可能已渲染了網頁。
[0028]在至少一些實施例中,通過所描述的分析技術能夠確定與整個頁面相關聯的渲染時間。交替地或附加地,通過所描述的分析技術能夠確定與特定頁面的子區域相關聯的渲染時間。在某些情況下,不感興趣的區域能夠被屏蔽或被忽略。
[0029]圖2說明示例系統200,其將網絡瀏覽器104、姿態模塊105、視頻捕獲組件106和圖像分析組件107顯示為在其中通過中央計算設備互連多個設備的環境中進行實現。中央計算設備對于多個設備而言可以是本地的或者可以遠離多個設備進行定位。在一個實施例中,中央計算設備是“云”服務器場(farm),其包括通過網絡或因特網或其他手段連接到多個設備的一個或多個服務器計算機。
[0030]在一個實施例中,這種互連架構允許跨越多個設備交付(deliver)功能,以便給多個設備的用戶提供共同的且無縫的體驗。這多個設備中的每一個設備可以具有不同的物理需求和能力,并且中央計算設備使用平臺來允許給該設備交付既針對該設備定制并且對于所有設備而言又是共同的體驗。在一個實施例中,創建目標設備的“類”,并且針對設備的通用類來定制體驗。設備的類可以根據設備的物理特征或使用或其他共同特性來定義。例如,如先前所述,可以采用各種各樣的不同方式來配置計算設備102,諸如用于移動站202、計算機204和電視206使用。這些配置之中的每一種配置具有通常對應的屏幕尺寸并因而計算設備102可以被配置成這個示例系統200中的這些設備類之一。例如,計算設備102可以采取移動站202設備類,其包括移動電話、音樂播放器、游戲設備等等。計算設備102也可以采取計算機204設備類,其包括個人計算機、膝上型計算機、上網本等等。電視206配置包括牽涉在休閑環境中的顯示器的設備的配置,例如電視、機頂盒、游戲機等等。因而,在這里描述的技術可以利用計算設備102的這些不同的配置來支持并且不限于在下面的章節中描述的具體示例。
[0031]云208被說明為包括用于網絡服務212的平臺210。平臺210抽象化云208的硬件(例如服務器)和軟件資源的底層功能,并因而可以充當“云操作系統”。例如,平臺210可以抽象化資源以便將計算設備102與其他計算設備進行連接。平臺210也可以用來抽象化資源的規模(scaling),以便給遇到的對于借助于平臺210實現的網絡服務212的需求提供相應的規模水平。也設想各種各樣的其他示例,諸如服務器場中的服務器的負載平衡、防止惡意方(例如垃圾郵件,病毒和其他的惡意軟件)等等。
[0032]因而,云208被包括作為涉及經由因特網或其他網絡可用于計算設備102的軟件和硬件資源的策略的一部分。例如,圖像分析組件107可以部分地在計算設備102上以及經由支持網絡服務212的平臺210來實現。
[0033]利用姿態模塊所支持的姿態技術可以使用移動(站)配置202中的觸摸屏功能、計算機204配置的跟蹤板功能來檢測,作為不牽涉與具體輸入設備接觸的自然用戶界面(NUI)的支持的部分利用照相機來檢測,等等。進一步,檢測和辨別輸入以識別特定姿態的操作的執行可以諸如利用計算設備102和/或利用云208的平臺210所支持的網絡服務212而被分布在整個系統200中。
[0034]通常,在這里描述的功能之中的任何功能能夠使用軟件、固件、硬件(例如固定邏輯電路)、手動處理或這些實現方式的組合來實現。如在這里使用的術語“模塊”、“功能”和“邏輯”通常代表軟件、固件、硬件或其組合。在軟件實現的情況下,模塊、功能或邏輯代表當在處理器(例如一個或多個CPU)上運行或由該處理器運行時執行指定任務的程序代碼。程序代碼能夠存儲在一個或多個計算機可讀存儲設備中。在下面描述的姿態技術的特征是獨立于平臺的,這意味著:這些技術可以在具有各種各樣的處理器的各種各樣的商用計算平臺上實現。
[0035]在隨后的討論中,各個章節描述各個示例實施例。題為“示例實施例”的章節描述根據一個或多個實施例的視頻捕獲階段和圖像分析階段的各個方面。接下來,題為“示例方法”的章節描述根據一個或多個實施例的示例方法。最后,題為“示例設備”的章節描述能夠用于實現一個或多個實施例的示例設備的各方面。
[0036]在描述了其中能夠測量網頁渲染時間的示例操作環境之后,現在考慮根據一個或多個實施例的示例視頻捕獲和圖像分析的討論。
[0037]示例實施例
在一個或多個實施例中,網頁渲染時間能夠使用其后跟隨著圖像分析階段的視頻捕獲階段來確定。在所說明和所描述的實施例中,視頻捕獲階段能夠利用視頻捕獲組件諸如視頻捕獲組件106來執行。圖像分析階段能夠利用圖像分析組件諸如圖像分析組件107來執行。
[0038]視頻捕獲階段
至于視頻捕獲階段,考慮下文。在一個或多個實施例中,視頻捕獲階段的啟動能夠發生在至網頁的導航之前或響應于至網頁的導航。例如,在至少一些實施例中,能夠手動啟動視頻捕獲,其后跟隨著至網頁的手動或自動導航。在這種情況下,人類評估者可以發動(launch)視頻捕獲組件并隨后啟動至網頁的導航。在其他實施例中,自動測試系統可以與至網頁的自動導航相結合來啟動視頻捕獲。
[0039]在一個或多個實施例中,在導航已被啟動并且視頻捕獲已開始時,能夠采用某種方式來標記視頻數據,以劃定導航活動的開始。視頻數據的標記能夠采用任何合適的方式來發生。例如,在至少一些實施例中,能夠在顯示設備或屏幕上產生諸如視覺標識符之類的合適標記,以便用信號通知:導航已開始。能夠利用任何合適的標記。僅作為一個示例,考慮圖3。在那里,計算設備102的顯示設備108包括位于左下角的標記300。這個標記與描述至網頁的導航的視頻數據一起被捕獲。交替地或附加地,能夠使用時間戳或與視頻數據一起包括的某一其他合適類型的元數據來標記視頻數據。標記或標識符可以是可視的或不可視的。
[0040]在已渲染了網頁之后(利用在視覺上沿著朝向底部圖的圖3中的箭頭的進展所圖解指示的),能夠終止視頻捕獲。視頻捕獲的終止能夠采用任何合適的方式來發生。例如,在至少一些實施例中,視頻捕獲的終止能夠發生在預定時間窗口例如10秒之后。交替地,視頻捕獲的終止能夠使用從網絡流量中導出的線索來發生。例如,諸如通過考慮何時已下載了所有的文件并添加在其之后終止視頻捕獲的時間量,除了預定義的時間緩沖之外,視頻捕獲組件還能夠考慮接收到的最后字節。這些以及其他的技術能夠用于終止視頻捕獲,以保證完整的渲染已發生或者很可能已發生。在至少一些實施例中,這些終止技術能夠“過沖(overshoot)”網頁渲染的完成,以保證捕獲到足夠的視頻數據。
[0041]一旦已捕獲了視頻數據,如上所述,視頻數據的圖像分析能夠發生,如下所述。
[0042]圖像分析階段
至于圖像分析階段,考慮下文。在至少一些實施例中,一旦已捕獲了視頻數據,能夠識別感興趣區域,以便進一步分析。這能夠采用任何合適的方式來執行。例如,在至少一些實施例中,與視頻數據相關聯的視頻能夠被加載,并且能夠識別起始幀。任何合適的方法能夠用于識別起始幀。例如,在至少一些實施例中,能夠通過定位諸如上述的視覺指示符首次出現在其上的幀來識別起始幀。交替地或附加地,能夠定位與特定時間戳相關聯的幀。
[0043]接下來,相關聯的視頻能夠被轉發至表示完成渲染狀態的幀。能夠利用任何合適的技術來識別這個幀。例如,表示完成渲染狀態的幀可能是在起始幀之后特定的預定義時間出現的幀。交替地或附加地,這個幀可能與特定事件諸如接收到的最后字節的出現相結合而出現,等等。
[0044]一旦已選擇了構成完成渲染狀態的幀的集合,則能夠標記感興趣區域,以供后續分析。在至少一些實施例中,這能夠包括手動處理或利用手動處理來執行,例如,通過示例而非限制,使用輸入設備直接在視頻上標記區域。交替地或附加地,自動化的方案能夠用于識別一個或多個感興趣區域。例如,能夠利用圖像識別來識別這些區域。交替地,諸如在網站的相關聯的Document Object Model (文檔對象模型)中發現的元數據能夠識別不同區域的提示或標簽。每一個感興趣區域隨后能夠被命名并被保存在配置文件中,以便能夠對所記錄的視頻數據執行圖像分析。作為示例,考慮圖4。
[0045]在那里,已識別了兩個單獨的感興趣區域。第一感興趣區域400包括整個可見屏幕,因而封裝所有的可見內容。交替地,第二感興趣區域402包括封裝可見內容的子部分的子區域。在這個示例中,感興趣區域402可能包括廣告或多媒體視頻。
[0046]在指定了一個或多個感興趣區域之后,圖像處理現在能夠進行,以測量與特定網頁以及已指定的一個或多個感興趣區域相關聯的渲染時間。
[0047]最初,加載與視頻數據相關聯的視頻,并且圖像分析組件能夠尋找該視頻的起始幀。如上所述,先前識別或標記了起始幀。這個起始幀現在能夠被指定為用于與后續幀進行比較的基線圖像。一旦起始幀被指定為基線圖像,則能夠將后續幀與該起始幀進行比較,以計算與渲染網頁相關聯的基于時間的渲染量度。任何合適的算法能夠用于比較當前幀與起始幀。通過示例而非限制,這樣的算法能夠包括采用直方圖、差異百分率、非白像素的數量除以面積、光學字符識別(OCR)技術等等的算法。能夠采用這樣的算法在逐個像素的基礎上進行比較或比較區域的像素的總結(summarization)。
[0048]對于所分析的每個幀,能夠記錄與該幀相關聯的時間戳及其相關聯計算的差值。所計算的差值是基于用于比較這些幀的分析算法來計算的值。一旦已分析了所有的幀并且已記錄了其時間戳以及相關聯的差值,則能夠處理該數據來提取頁面或頁面部分的渲染時間。
[0049]特別地,上述的處理允許制定描述隨著時間的推移而改變的與渲染網頁或其部分相關聯的像素的數量的數據。有效地,任何特定的渲染網頁(或其部分)將具有能夠根據隨著時間的推移的像素變化來定義的圖案(pattern)。這個圖案能夠并將取決于被渲染的內容的性質而改變。例如,具有靜態內容的網頁將具有與包括動畫的網頁不同的圖案。類似地,具有一個動畫的網頁將很可能具有與具有大量動畫的網頁不同的圖案。同樣,被指定為感興趣區域的網頁的各部分將取決于在特定部分內渲染的內容而具有不同的圖案。
[0050]然而,任何特定圖案將具有指示完成渲染狀態的圖案區域。通過識別這個特定圖案區域,能夠確定與完成渲染狀態相關聯的時間,從而提供用于完全渲染網頁或網頁部分的準確的時間量度。作為示例,考慮圖5。
[0051]在那里,與說明相關聯網頁的像素在渲染期間如何已隨著時間的推移而改變的圖案500相結合來顯示隨著時間的推移“改變的像素”的圖表。注意:“總渲染的閾值”已被設置在特定的像素數量,例如90%的像素。
[0052]在這個特定示例中,與圖案500相關聯的網頁包括不斷改變的組成部分。例如,這樣的組成部分可以包括具有移動音頻/視覺內容的廣告。圖案500中的每個梯級(step)表示像素相對于時間的變化。在這個示例中,頁面正在逐步渲染,其中連續地渲染個別元素。圖案500中的第一梯級(在最左邊)構成在內容渲染處理開始引起相關聯像素的變化時的第一渲染時間。隨著圖案的進展,它跨越總渲染的閾值。在這個閾值之上,頁面由于不斷改變的音頻/視頻內容而繼續隨著時間的推移而改變。如由于跨越總渲染的閾值,如果在頁面已穩定之后記錄足夠的圖案500,則能夠識別圖案區域并且能夠識別該圖案區域開始的時間。這個圖案區域開始時間隨后能夠被選為網頁渲染很可能完成的時間。例如,在502顯示與視頻或廣告相對應的圖案區域。該圖案的起點利用箭頭來識別,而該箭頭轉而定義所指示的“渲染完成時間”。作為另一示例,考慮圖6。
[0053]在那里,對于表示在渲染期間具有顏色的突然的大變化的頁面的圖案600,顯示隨著時間的推移“改變的像素”的圖表。例如,頁面的背景顏色可能突然改變,這指示完全渲染的頁面。這利用該圖中跨越總渲染的閾值的大的第二梯級來表示。在這個特定示例中,在顏色的大變化之后,與圖案600相關聯的網頁包括不斷改變的組成部分。例如,這樣的組成部分可以包括具有移動音頻/視覺內容的廣告。這定義其開始時間能夠被識別的圖案區域602。像以前一樣,這個圖案區域開始時間隨后能夠被選為網頁渲染很可能完成的時間。圖案區域602的起點利用箭頭來識別,而該箭頭轉而定義所指示的“渲染完成時間”。作為進一步不例,考慮圖7。
[0054]在那里,對于表示具有包括文本的內容的頁面的圖案700,顯示隨著時間的推移“改變的像素”的圖表。在這個示例中,該頁面的非文本內容已采用導致該圖案最初跨越總渲染的閾值的方式進行渲染了。然而,在這個示例中,文本尚未被渲染。因而,轉到圖案區域702,在閾值的交叉點上,該文本尚未被渲染。利用箭頭識別的該圖案中的下一梯級構成文本繪制(draw)事件。在這一點上,圖案區域702的起點利用箭頭(對應于文本繪制事件)來識別,而該箭頭轉而定義所指示的“渲染完成時間”。這個示例說明:總渲染的閾值的初始交叉點(crossing)不一定指示渲染完成時間。相反,通過在實際上正在渲染的內容的上下文中分析各個圖案區域,能夠確定很可能的渲染完成時間。
[0055]在考慮其中根據一個或多個實施例能夠計算與網頁或網頁內的感興趣區域相關聯的渲染時間的各個示例之后,現在考慮根據一個或多個實施例的示例方法的討論。
[0056]示例方法
圖8是描述根據一個或多個實施例的方法中的步驟的流程圖。該方法能夠結合任何合適的硬件、軟件、固件或其組合來執行。在至少一些實施例中,該方法能夠利用在某種類型的計算機可讀存儲介質上體現的軟件來執行。能夠執行將要描述的功能的軟件的一個示例包括諸如上面所述的視頻捕獲組件和圖像分析組件。
[0057]步驟800捕獲與在顯示設備上渲染網頁相關聯的視頻數據。這個步驟能夠以任何合適的方式來執行。例如,在至少一些實施例中,視頻數據被捕獲,以及與視頻數據相關聯的標識符被提供并識別何時至特定網頁的導航似乎開始。上面提供合適標識符的示例。例如,在至少一些實施例中,標識符能夠存在于(reside)視覺標識符的形式中。交替地或附加地,標識符能夠存在于非視覺標識符諸如(通過示例而非限制)時間戳的形式中。
[0058]步驟802分析足以計算與渲染網頁的至少一部分相關聯的基于時間的渲染量度的視頻數據。這個步驟能夠采用任何合適的方式來執行。例如,在至少一些實施例中,分析能夠在一幀一幀的基礎上進行。在某些情況下,逐幀分析能夠包括指定視頻數據的起始幀并使用起始幀作為用于后續幀的差異比較的基線圖像。差異比較能夠在屏幕基礎上進行,其中屏幕或顯示設備上的所有可見內容被分析。因而,在這些情況下,基于時間的渲染量度能夠與識別何時已完全渲染了網頁的嘗試相關聯。交替地或附加地,能夠對構成不到整個網頁的網頁一部分進行差異比較。因而,在這些情況下,基于時間的渲染量度能夠與識別何時完全渲染構成不到整個網頁的網頁一部分的嘗試相關聯。在上面提供能夠如何完成這個的示例。在一個或多個實施例中,除了基于時間的渲染量度之外的其他信息也能夠用于嘗試識別網頁或其部分被加載或部分被加載的網絡。例如,系統資源利用率能夠與基于時間的渲染量度一起被分析并被使用,以嘗試識別何時加載網頁。通過示例而非限制,系統資源利用率能夠包括相關聯的顯示設備或圖形處理單元(GPU)的更新頻率、CPU活動等等。交替地或附加地,包括HTML、CSS和JavaScript的和特定應用的行為與代碼相關聯的知識能夠用于嘗試識別何時加載網頁。例如,應用的代碼可以響應于頁面被完全加載而以某種方式例如通過進行某些調用或實現某些例程來工作(behave)。
[0059]圖9是描述根據一個或多個實施例的另一方法中的步驟的流程圖。該方法能夠結合任何合適的硬件、軟件、固件或其組合來執行。在至少一些實施例中,該方法能夠利用在某種類型的計算機可讀存儲介質上體現的軟件來執行。能夠執行將要描述的功能的軟件的一個示例包括諸如上面所述的視頻捕獲組件和圖像分析組件。
[0060]步驟900與至網頁的導航相關聯在顯示設備上啟動視頻數據捕獲。這個步驟能夠采用任何合適的方式來執行,其示例在上面提供。例如,能夠響應于用戶點擊至特定網頁的鏈接來執行這個步驟。步驟902識別何時相關聯的導航似乎開始。這個步驟能夠采用任何合適的方式來執行。例如,如上所述,這個步驟能夠使用顯示設備的屏幕上的視覺標識符來執行。視覺標識符識別何時導航似乎開始。該視覺標識符能夠被放置在屏幕上,以響應檢測到鏈接上的點擊來啟動導航。交替地,在發送請求以請求網頁時,該視覺標識符能夠被放置在屏幕上。步驟904終止對于提供與導航相關聯的多個幀的視頻數據是有效的視頻數據捕獲。這個步驟能夠采用任何合適的方式來執行,其示例在上面提供。例如,在至少一些實施例中,終止能夠發生在預定義的時間上。交替地,終止能夠基于與接收到的網頁內容諸如(通過示例而非限制)最后的接收的數據量諸如最后接收的字節相關聯的信息而發生。步驟906分析多個幀的視覺特性。這個步驟能夠采用任何合適的方式來執行。例如,分析能夠在一幀一幀的基礎上進行。特別地,在至少一些實施例中,起始幀能夠被指定并被用作基線圖像,用于后續幀的差異比較。如同通過分析視覺上出現在屏幕上的所有內容,能夠在屏幕基礎上進行差異比較。交替地或附加地,能夠對構成不到整個網頁的相關聯網頁的一部分進行差異比較。
[0061 ] 在至少一些實施例中,這些幀的視覺特性的分析能夠包括進行這些幀內的像素變化的基于圖案的分析。基于視覺特性的分析,步驟908計算與網頁的至少一部分的渲染狀態相關聯的基于時間的渲染量度。在一些實施例中,渲染狀態是與完全渲染的網頁相關聯的狀態。在其他的實施例中,渲染狀態是與網頁的子區域的渲染相關聯的狀態。在另外其他的實施例中,渲染狀態能夠與部分渲染或逐步渲染的區域相關聯。根據其相關聯的基于時間的渲染量度來分析逐步渲染的區域能夠幫助確定如何排序頁面組成部分以便下載來增強用戶的體驗。
[0062]在描述了示例實施例之后,現在考慮能夠用于實現上述實施例的示例設備的討論。
[0063]示例設各
圖10說明能夠被實現為如參考圖1和2所描述的任何類型的便攜式和/或計算機設備來實現在這里描述的實施例的示例設備1000的各個組成部分。設備1000包括允許設備數據1004 (例如接收的數據,正在接收的數據,預定用于廣播的數據,數據的數據分組等等)的有線和/或無線通信的通信設備1002。設備數據1004或其他的設備內容能夠包括設備的配置設置、存儲在設備上的媒體內容和/或與設備的用戶相關聯的信息。存儲在設備1000上的媒體內容能夠包括任何類型的音頻、視頻和/或圖像數據。設備1000包括一個或多個數據輸入1006,其中經由這些數據輸入能夠接收任何類型的數據、媒體內容和/或輸入,諸如用戶可選的輸入、消息、音樂、電視媒體內容、所記錄的視頻內容以及從任何內容和/或數據源接收的任何其他類型的音頻、視頻和/或圖像數據。
[0064]設備1000也包括通信接口 1008,其能夠被實現為串行和/或并行接口、無線接口、任何類型的網絡接口、調制解調器之中的一個或多個以及被實現為任何其他類型的通信接口。通信接口 1008在設備1000與通信網絡之間提供連接和/或通信鏈路,其中通過連接和/或通信鏈路,其他的電子、計算和通信設備與設備1000傳送數據。
[0065]設備1000包括處理各種計算機可執行或可讀指令來控制設備1000的操作以及實現上述的實施例的一個或多個處理器1010(例如微處理器、控制器等等中的任何一個)。交替地或附加地,設備1000能夠利用結合通常在1012上識別的處理與控制電路來實現的硬件、固件或固定邏輯電路之中的任何一個或其組合來實現。雖然未示出,但是設備1000能夠包括耦合設備內的各個組件的系統總線或數據傳輸系統。系統總線能夠包括不同總線結構中的任何一種或組合,諸如存儲器總線或存儲器控制器、外設總線、通用串行總線和/或處理器或本地總線,其利用各種各樣的總線架構中的任何一種。
[0066]設備1000也包括計算機可讀媒體1014,諸如一個或多個存儲器組件,其示例包括隨機存取存儲器(RAM)、非易失性存儲器(例如只讀存儲器(ROM)、閃存、EPROM、EEPROM等等中的任何一個或多個)和盤存儲設備。盤存儲設備可以被實現為任何類型的磁或光存儲設備,諸如硬盤驅動器、可記錄和/或可重寫緊致盤(⑶)、任何類型的數字多功能盤(DVD)等等。此外,設備1000也能夠包括大容量存儲媒體設備1016。
[0067]計算機可讀媒體1014提供數據存儲機制來存儲設備數據1004以及各種設備應用1018與涉及設備1000的操作方面的任何其他類型的信息和/或數據。例如,操作系統1020能夠被保持為帶有計算機可讀媒體1014并在處理器1010上執行的計算機應用。設備應用1018能夠包括設備管理器(例如控制應用,軟件應用,信號處理與控制模塊,特定設備的本機代碼,用于特定設備的硬件抽象層等等)以及其他應用,其能夠包括網絡瀏覽器、圖像處理應用、諸如即時消息傳送應用之類的通信應用、字處理應用以及各種各樣的其他不同的應用。設備應用1018也包括任何的系統組件或模塊來實現在這里描述的技術的實施例。在這個示例中,設備應用1018包括被顯示為軟件模塊和/或計算機應用的接口應用1022和姿態捕獲驅動器1024。姿態捕獲驅動器1024代表用于提供與被配置來捕獲姿態的設備諸如觸摸屏、跟蹤板、照相機等等接口的軟件。交替地或附加地,接口應用1022和姿態捕獲驅動器1024能夠被實現為硬件、軟件、固件或其任何組合。此外,計算機可讀媒體1014能夠包括如上所述運行的網絡瀏覽器1025a、視頻捕獲組件1025b和圖像分析組件1025c。
[0068]設備1000也包括給音頻系統1028提供音頻數據和/或給顯示系統1030提供視頻數據的音頻和/或視頻輸入-輸出系統1026。音頻系統1028和/或顯示系統1030能夠包括處理、顯示和/或以其他方式再現音頻、視頻和圖像數據的任何設備。經由RF (射頻)鏈路、S視頻鏈路、復合視頻鏈路、分量視頻鏈路、DVI (數字視頻接口)、模擬音頻連接或其他類似的通信鏈路,能夠從設備1000傳送視頻信號和音頻信號至音頻設備和/或至顯示設備。在實施例中,音頻系統1028和/或顯示系統1030被實現為設備1000的外部組件。交替地,音頻系統1028和/或顯示系統1030被實現為示例設備1000的集成組件。
[0069]結論
各個實施例提供用于測量能夠獨立于瀏覽器的網頁的渲染時間的方案。在至少一些實施例中,在渲染網頁時,捕獲和分析網頁的視頻數據,以確定何時很可能已完全渲染了網頁。在至少一些實施例中,能夠對捕獲的視頻數據執行圖像處理,以便從觀察到的隨著時間的推移的像素變化中確定何時很可能已渲染了網頁。
[0070]在至少一些實施例中,與整個頁面相關聯的渲染時間能夠通過所描述的分析技術來確定。交替地或附加地,與特定頁面的子區域相關聯的渲染時間能夠通過所描述的分析技術來確定。在某些情況下,不感興趣的區域能夠被屏蔽或被忽略。
[0071]雖然以特定于結構特征和/或方法動作的語言描述了這些實施例,但是將明白:在所附的權利要求書中定義的實施例不一定限于所描述的具體特征或動作。相反,這些具體特征和動作作為實現所請求保護的實施例的示例形式被披露。
【權利要求】
1.一種方法,包括: 捕獲與在顯示設備上渲染網頁相關聯的視頻數據;以及 分析足以計算與渲染網頁的至少一部分相關聯的基于時間的渲染量度的視頻數據。
2.權利要求1的方法,進一步包括:分析系統資源利用率,以及使用所分析的系統資源利用率和基于時間的渲染量度來嘗試識別何時渲染網頁的所述至少一部分。
3.權利要求1的方法,進一步包括:分析顯示設備和GPU的更新頻率,以及使用所分析的更新頻率和基于時間的渲染量度來嘗試識別何時渲染網頁的所述至少一部分。
4.權利要求1的方法,其中基于時間的渲染量度與識別何時部分或完全渲染網頁的嘗試相關聯。
5.權利要求1的方法,其中所述捕獲視頻數據包括提供與視頻數據相關聯的識別何時至所述網頁的導航似乎開始的標識符,所述標識符包括視覺標識符。
6.權利要求1的方法,其中所述分析包括:通過指定視頻數據的起始幀并將起始幀用作用于后續幀的差異比較的基線圖像,在一幀一幀的基礎上分析所述視頻數據,在與顯示設備相關聯的屏幕的基礎上進行所述差異比較。
7.體現計算機可讀指令的一個或多個計算機可讀存儲媒體,其中所述計算機可讀指令當被執行時實現一種方法,包括: 與至網頁的導航相關聯在顯示設備上啟動視頻數據捕獲; 識別何時導航似乎開始; 終止對于提供與導航相關聯的多個幀的視頻數據是有效的所述視頻數據捕獲; 分析多個幀的視覺特性;以及 基于所述分析,計算與網頁的至少一部分的渲染狀態相關聯的基于時間的渲染量度。
8.權利要求7的一個或多個計算機可讀存儲媒體,其中渲染狀態包括與完全渲染的網頁相關聯的狀態。
9.權利要求7的一個或多個計算機可讀存儲媒體,其中所述識別包括在顯示設備的屏幕上使用視覺標識符。
10.權利要求7的一個或多個計算機可讀存儲媒體,其中所述分析視覺特性包括:通過指定視頻數據的起始幀并將起始幀用作用于后續幀的差異比較的基線圖像,在一幀一幀的基礎上分析視覺特性,在屏幕的基礎上進行所述差異比較。
【文檔編號】H04N1/387GK103930885SQ201280056555
【公開日】2014年7月16日 申請日期:2012年11月16日 優先權日:2011年11月16日
【發明者】M.什穆艾利, O.羅森鮑姆, G.伯尚斯基, Y.佩萊德, M.D.費爾茲, C.埃爾根, M.D.德克, A.R.埃爾南德斯, M.P.科特塞納斯, J.J.韋伯, 周一鳴, K.C.莊, K.L.福德 申請人:微軟公司