一種應用程序幀率的測量方法及裝置的制造方法
【技術領域】
[0001]本發明屬于軟件技術領域,尤其涉及一種應用程序幀率的測量方法及裝置。
【背景技術】
[0002]每秒傳輸巾貞數(Frames Per Second, FPS),即巾貞率,用于表不運行于操作系統之上的應用程序每秒鐘填充圖像的幀數。對于應用程序來說,FPS越大,則顯示效果就會越流暢、逼真。
[0003]為了保證應用程序在不同的終端設備或者不同的操作系統環境下都能夠流暢顯示,需要對應用程序在實際運行過程中產生的幀率進行測量。然而,現有技術中針對不同的應用程序需要配置不同的測量腳本,且同一應用程序也需要分別配置與各種軟硬件環境相匹配的測量腳本,測量腳本不具備通用性,由此降低了應用程序幀率的測量效率。
【發明內容】
[0004]本發明實施例的目的在于提供一種應用程序幀率的測量方法,旨在解決現有技術中對應用程序幀率的測量腳本不具備通用性,導致應用程序幀率的測試效率低的問題。
[0005]本發明實施例是這樣實現的,一種應用程序幀率的測量方法,包括:
[0006]在終端上運行應用程序,令所述應用程序執行預設操作;
[0007]在所述應用程序執行預設操作的過程中,對所述終端的屏幕進行高速錄像,得到視頻流;
[0008]對所述視頻流進行解析,獲取相同且連續的視頻幀的持續時間;
[0009]根據獲取到的所述持續時間確定所述應用程序的幀率。
[0010]本發明實施例的另一目的在于提供一種應用程序幀率的測量裝置,包括:
[0011]運行單元,用于在終端上運行應用程序,令所述應用程序執行預設操作;
[0012]錄像單元,用于在所述應用程序執行預設操作的過程中,對所述終端的屏幕進行高速錄像,得到視頻流;
[0013]獲取單元,用于對所述視頻流進行解析,獲取相同且連續的視頻幀的持續時間;
[0014]確定單元,用于根據獲取到的所述持續時間確定所述應用程序的幀率。
[0015]本發明實施例采用高幀率的高速錄像手段來對幀率相對較低的應用程序幀率進行測量,該測量方法能夠適用于各類不同的應用程序,且能夠適用于運行應用程序所需的各類不同的軟硬件環境,具備通用性,能夠很好地提高應用程序幀率的測量效率。
【附圖說明】
[0016]圖1是本發明實施例提供的應用程序幀率的測量方法的實現流程圖;
[0017]圖2是本發明實施例提供的應用程序幀率的測量方法SlOl的具體實現流程圖;
[0018]圖3是本發明實施例提供的應用程序幀率的測量方法S103的具體實現流程圖;
[0019]圖4是本發明實施例提供的應用程序幀率的測量裝置的結構框圖。
【具體實施方式】
[0020]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0021]本發明實施例采用高幀率的高速錄像手段來對幀率相對較低的應用程序幀率進行測量,該測量方法能夠適用于各類不同的應用程序,且能夠適用于運行應用程序所需的各類不同的軟硬件環境,具備通用性,能夠很好地提高應用程序幀率的測量效率。
[0022]在本發明實施例中,對運行在特定終端設備(即應用程序所處的硬件環境)及特定操作系統(即應用程序所處的軟件環境)下的應用程序進行幀率測量,以測量出應用程序在上述運行環境下的幀率,從而測試出應用程序在上述運行環境下能否流暢顯示。通常情況下,保證應用程序能夠流暢顯示的最低FPS是30幀/秒,尤其是對游戲來說,只有保證其達到了一定的幀率,用戶才能達到較佳的操控體驗。應用程序的幀率越高,其顯示效果就會越流暢,若測量結果發現應用程序的幀率無法達到要求,則開發者需要對應用程序進行進一步優化。
[0023]下面結合附圖描述本發明實施例提供的應用程序幀率的測量方法及裝置:
[0024]圖1示出了本發明實施例提供的應用程序幀率的測量方法的實現流程,詳述如下:
[0025]在SlOl中,在終端上運行應用程序,令所述應用程序執行預設操作。
[0026]在本實施例中,運行應用程序的終端具備符合測量標準的硬件配置及安裝了符合測量標準的操作系統。在終端上運行應用程序之后,可以通過操控應用程序,來使應用程序在當前的軟硬件環境之下執行預設操作。例如,應用程序為游戲,則在游戲運行之后,將其畫面切換至某個動態場景并顯示;又例如,應用程序為手機瀏覽器,則令手機瀏覽器執行頁面上下滑動操作。
[0027]上述令應用程序執行預設操作可以由終端的輸入設備輸入相應操作指令來觸發,例如,鍵盤、鼠標等輸入設備。同時,針對通過觸摸屏來輸入相應操作指令的終端設備來說,為了避免后續錄像過程中將手指或者觸屏筆等與終端屏幕重疊的部分一同拍攝下來,影響對相同視頻幀判斷的準確性,作為本發明的一個實施例,利用預先編寫的自動化腳本來驅動應用程序來自動執行預設操作。SlOl具體如圖2所示:
[0028]在S201中,在終纟而上運彳丁所述應用程序。
[0029]在S202中,啟動所述應用程序的自動化腳本。
[0030]在S203中,通過所述自動化腳本驅動所述應用程序自動執行所述預設操作。
[0031]在本實施例中,可以針對應用程序的每一項預設操作均預先編寫與該預設操作相匹配的自動化腳本,當應用程序運行之后,通過啟動該自動化腳本,以使該自動化腳本能夠驅動應用程序自動執行預設操作。在具體實現中,自動化腳本可以生成模擬終端輸入設備輸入的操作指令,從而驅動應用程序根據該操作指令執行預設操作,或者,自動化腳本可以直接命令應用程序執行預設操作。自動化腳本的具體實現方式在此不用于限定本發明。
[0032]在S102中,在所述應用程序執行預設操作的過程中,對所述終端的屏幕進行高速錄像,得到視頻流。
[0033]在應用程序執行預設操作的過程中,通過固定拍攝角度,對終端的屏幕進行調整錄像,從而得到記錄了應用程序整個預設操作的執行過程的視頻流。
[0034]作為本發明的一個實施例,S102中的高速錄像可以通過高速攝像頭來實現。高速攝像頭一般可以達到每秒1000?10000幀的拍攝速度,即,高速攝像頭的錄像幀率為1000?10000幀/秒,這相比于普遍意義上的應用程序的幀率來說,顯然要高出一個數量級,因此,對于應用程序幀率測量來說,通過高速攝像頭采集到的視頻流具備很好的可測量性能。
[0035]作為本發明的另一實施例,S102中的高速錄像可以通過高清晰多媒體接口(HighDefinit1n Multimedia Interface,HDMI)視頻采集卡來實現。HDMI視頻采集卡可以提供高達5Gbps的數據傳輸帶寬,由此能夠傳送未經壓縮的高質量視頻信號。在本實施例中,相比于高速攝像頭,HDMI視頻采集卡具備更好的可集成性,其能夠集成在終端設備中,直接對運行在本終端的應用程序的預設操作執行過程進行采集,或者,直接將采集到的應用程序的預設操作執行過程輸出到本終端的處理器以進行后續的數據處理,由此提高應用程序幀率的測量效率,同時,相比于高速攝像頭,也在一定程度節省了測量成本。
[0036]在S103中,對所述視頻流進行解析,獲取相同且連續的視頻幀的持續時間。
[0037]在S103中,對S102獲取到的視頻流進行解析,標識出視頻流中相同且連續的視頻幀,并進一步地獲取到其中相同且連續的視頻幀的持續時間。
[0038]具體地,如圖3所示,S103具體為:
[0039]在S301中,根據所述高速錄像的幀率對所述視頻流進行分幀,得到N個視頻幀,所述N為大于或等于I的整數。
[0040]在本實施例中,可以使用分巾貞工具(例如,ffmpeg)將視頻流按高速錄像的巾貞率進行分幀。以高速錄像的幀率為300幀/秒為例,若整個視頻流持續的總時間長度為10秒,則按照高速錄像的幀率,分幀后將得到3000個視頻幀。
[0041]在S302中,在對所述N個視頻幀進行解析,標記出其中相同且連續的視頻幀。
[0042]在本實施例中,通過圖像識別,對分幀得到的N個視頻幀進行相鄰視頻幀的一一比對。以分幀得到Pl至P3000這3000個視頻幀為例,經過比對可以發現,Pl至PlOO的視頻幀展示的均為同一圖像,則將Pl至PlOO這100個相同且連續的視頻幀進行標記;P101至P200的視頻幀展示的均為同一圖像,則將PlOl至P200這100個相同且連續的視頻幀進行標記;……以此類推。由于應用程序的幀率要遠低于高速錄像得到的視頻流的幀率,因此,對于標記出的每一段相同且連續的視頻幀,即表示