為什么要做這個測試?
上一篇文章中,只是憑個人感受,給出了
...即可通過USB實現較低延遲、無卡頓的擴展屏服務
的結論。對於卡頓,暫時沒想到比較合理的測試方法,畢竟出現時刻相對隨機不好抓取。可以通過這個工具,進行簡單測試,但是畢竟無法代表連續播放視頻的數據量,因此主要還是通過使用過程中的主觀感受進行描述(其實是懶+沒必要)。但對於延遲,手邊恰好有測試設備,干脆一不做二不休,用不太嚴謹的測試給出一個延遲的大概的范圍,以及延遲隨不同分辨率、網絡連接方式變化的趨勢。
利用屏幕錄像肯定是沒有用的,只是從Screen buffer獲取數據是沒法測出傳輸-打包-顯示的時間的。為了測試人眼實際感覺到的時延,利用高速攝影,將主屏幕和擴展屏進行對比,例如加入某個跳變的色塊,在已知原始幀率的情況下可以得出每兩幀圖像之間的間隔。通過計算背景色跳變的時差,也就是通過計算跳變時刻對應的幀數差,即可獲得擴展屏的的相對延遲。
The Worst Case
在上一篇文章中提到,Spacedesk擴展屏在顯示靜態畫面時,數據量是很低的;而屏幕上存在動態畫面時,數據量隨着動態部分的面積增加而增加,這一點從網絡適配器的發送速率也可以看出。
為了將帶寬壓榨到極限並且便於測試,副屏開B站全屏視頻並且開啟彈幕(特別多的那種...),使得畫面幾乎不存在靜態部分。這種方法在USB連接時可以將傳輸速率穩定在200Mbps之上。然后利用這個工具,並將測試窗口稍微跨進副屏,攝像時點按鼠標使色塊顏色反轉。由於同一窗口下色塊反轉是同步的,在剪輯軟件中記錄主屏和副屏色塊反轉的起始時間,就可以將時間差近似作為擴展屏的時延,當然,這個時延包含了:主機壓縮圖像
-打包傳輸
-從機接收圖像並解包
-進行顯示
-顯示屏響應時間
。測試的目的並不是為了分析時間花在什么地方並有針對性地進行優化,這是Spacedesk應該干的事,單純作為用戶,並且希望在不想花錢的情況下使用Spacedesk獲得更好的體驗,只能通過調整副屏的顯示分辨率和圖像質量,嘗試獲得更低的延遲和更流暢的操作體驗。
關於顯示器的更多知識可以參考這個網站。
結果分析
以下圖片由原視頻處理得來,左側是副屏,右側是主屏,並標注了不同連接方式下的典型時延。
副屏在1600x900的分辨率下的延遲測試:
副屏在2000x1200的分辨率下的延遲測試:
測試數據匯總:
副屏在高分辨率之下並且如果網絡本身具備較高的延遲,當時延接近0.14s時,Spacedesk似乎會自動將刷新率降低嘗試維持正常的圖像顯示——因為此時顯示數據的流量占用反而降低了,從200Mbps掉到了80Mbps左右,這可能就是調高分辨率之后的測試結果趨近飽和的原因。不考慮延遲的問題,此時滑動鼠標時的流暢感是遠低於USB連接並且分辨率設置合理范圍的情形下的。
因此,如果希望實現較低時延,並且無卡頓的操作體驗,還是推薦使用USB接入方案,並且根據顯示數據流量對圖像質量和分辨率進行調整。一個比較合理的起始點是:
全屏視頻+彈幕確保幾乎沒有靜態畫面的情況下,打開任務管理器,切換到從設備的虛擬網卡,觀察發送流量的傳輸速率是否在100~200Mbps之間。
如果忘了具體設置流程,請參考上一篇文章。什么?你沒看過?那你是靠什么關鍵詞搜索過來的...這是鏈接。
Try the Delay Yourself
人對0.1s以下的時間一般是沒有什么概念的。畢竟眨眼都需要花0.1~0.4s才能完成,見這個鏈接。但是通過某些感官可以確切地感覺到10ms量級的時間差的存在,例如操作鼠標時感覺到的“跟手”與否。可以通過下邊兩個鏈接,嘗試自己設定輸入延遲時間,並切身感受50ms和100ms延遲的巨大區別。
USB擴展方案能夠實現穩定的80ms的時延,從視覺和操作上來說基本處在可以接受的范圍內。甚至你可以嘗試在擴展屏上運行Lag Simulator,體驗雙重疊加的快樂(逃)。
擴展閱讀(偽)
如果你也感興趣,不妨看看手機的相機功能下是否有名為HFR
或者超慢動作
的選項,一般而言,大都處在120FPS至240FPS的范圍內且可以連續拍攝,部分機型配置到480FPS甚至960FPS,一般錄制時間不超過1s。
當然,部分相機的高幀率並不是原始幀率,而是靠插幀得到的,也就是說錄下來的240FPS的視頻其實是在120FPS下插幀計算得到的。比較誇張的例如華為P40:
- 120fps 1080p Continuous
- 240fps 1080p Continuous
- 960fps 1080p for 1 full second (960 frames in total)
- 1920fps 720p for 1/2 second (960 frames in total)
- 7680fps 720p interpolated 4x (lasts for 32 seconds on a 30p timeline.)
- All super slow motion modes at 960p and above last 32 seconds of playback at 30fps regular speed.
- The entire buffer for the slow motion feature is 2GB and gets filled by data then dumped and encoded on the fly by the Kirin 990 chip.
雖然7680FPS是通過4倍插幀得到的,但是1920FPS的原始幀率已經很高了。
隨着幀率提升,視頻數據的產生速度會逐漸超過閃存的寫入速度,在這種情況下就沒法實現連續錄制,一般使用速度更快的RAM作為緩沖區,先把數據塞到緩沖區里,待錄制結束再dump出來進行處理,一般的消費級產品都是這么干的,例如上面提到的P40,便是用了2GB的RAM作為數據緩沖區,在拍攝結束后處理。
總之,數據的產生速率和幀率以及每幀分辨率緊密相連,連續錄制時長又和存儲器寫入速率/緩沖區大小/數據處理速度有關,一般產品只能在這些參數之間做tradeoff。利用樹莓派攝像頭(IMX219)在縮減分辨率和FPGA+USB3.0的配合下,可以實現 640x78 @1000FPS的性能。
小孩子才做選擇,大人全都要!
如果又要高速,又要高分辨率,又要錄制時間更長呢?當然只有用魔法打敗魔法:
$++
在視頻拍攝中,曝光時間是不能超過幀間隔的,當在1000FPS的幀率下,曝光時間最長也就只有1ms,隨着幀率的進一步提升,曝光時間會被壓縮得更多,每幀圖像也會被壓得更暗,這也是專門的高速攝影設備需要配備高亮度的補光燈的原因。影像傳感器、影像處理器、存儲設備、各種配套設備和處理軟件的數量、價格、設計成本、生產成本等等隨着幀率提高、用途更加專業化而急劇增加。典型的高速攝影設備,例如Phantom的主頁產品:TMX7510:
- 76,000 fps at 1280 x 800
- Exposure Index:
- Mono 40,000 - 200,000 D
- Color 12,500 - 64,000 D
- Up to 512GB RAM
- 75 Gigapixel throughput
那么,在哪里能買到呢價格多少呢?
The Phantom TMX 7510 is a marvel of technology and it brings new sensor technology with BSI packaging into the hyper speed realm. Since Phantom cameras rarely share pricing, we can only speculate that this camera price is probably above 100k USD up to 180k USD depending on the configuration. For large laboratories, this is actually a bargain for this kind of performance. In the meantime, we can only dream of having this camera in our kit.
更多高速攝影設備相關的信息,可以從這個鏈接獲取。
1s左右的錄制時間用來做研究恐怕起不了特別大的用處,基本處於玩具/短視頻水平,但是配合適當的trigger和外部事件進行同步錄制至少能夠起到定性的作用——畢竟還是比靠猜要強。但不管怎么說,以往只有專業設備才會配備的功能現在逐漸下放到普通的電子產品上是一件好事,至少我們有理由去期待未來某天,能夠把當今的Phantom頂級產品裝進口袋里。