质量三维论如何持续推进腾讯视频播放体验提升
騰訊視頻移動端播放內(nèi)核技術(shù)負(fù)責(zé)人李大龍在LiveVideoStackCon2018上的演講中分享了騰訊視頻的質(zhì)量“三維論”思想與體系,及以此推動視頻播放體驗優(yōu)化工作方面的實踐經(jīng)驗與總結(jié)。
文 / 李大龍
整理 / LiveVideoStack
大家好,我是來自騰訊視頻的李大龍。今天我將從以下幾個方面為大家分享騰訊視頻如何以質(zhì)量三維論來持續(xù)推進(jìn)視頻播放體驗的提升。
首先簡要作下個人介紹:我在研究生階段就讀于武漢大學(xué)國家多媒體軟件工程技術(shù)研究中心,師從胡瑞敏教授,主要從事視頻數(shù)字水印、信息隱藏還有視頻編解碼相關(guān)的工作,當(dāng)時也恰逢中國自主知識產(chǎn)權(quán)編碼標(biāo)準(zhǔn)AVS第一代從學(xué)術(shù)界正式走向工業(yè)界的時代。入職騰訊后,我曾經(jīng)重點參與過QQ/手Q視頻通話、QQ影音的研發(fā)工作,近幾年在騰訊視頻從事播放器內(nèi)核技術(shù)、流媒體播放及用戶體驗優(yōu)化相關(guān)的工作。經(jīng)歷不同的產(chǎn)品讓我很好地感受到視頻領(lǐng)域針對不同業(yè)務(wù)場景的差異化技術(shù)訴求,比如實時通話類產(chǎn)品對Codec在壓縮效率、復(fù)雜度上要求很高;離線播放器工具類產(chǎn)品對容錯性、兼容性要求很高;而流媒體播放類產(chǎn)品對長時間連續(xù)播放過程中的平滑性則要求很高。總之,不同的視頻領(lǐng)域應(yīng)用和產(chǎn)品,對于體驗和質(zhì)量的衡量方法是不太一樣的。
1. 質(zhì)量三維論概況
今天我講的質(zhì)量三維論,是建立和服務(wù)于騰訊視頻產(chǎn)品,也就是適用于流媒體播放應(yīng)用類場景的一套思維方法論。其主要通過源頭質(zhì)量、交互質(zhì)量與感官質(zhì)量三大維度為流媒體視頻播放做出綜合評價。源頭質(zhì)量為整體質(zhì)量定立總基調(diào),主要通過分析音視頻編碼參數(shù)、后臺存儲格式的冗余度與流媒體分發(fā)過程的適配復(fù)雜度來衡量視頻源(及其存儲后臺)的質(zhì)量;交互質(zhì)量主要反映用戶在操作視頻播放過程中的體驗好壞,主要考量指標(biāo)包括視頻加載時間、播放錯誤率、二次緩沖概率,以及像清晰度切換過程中的等待時長或者是否發(fā)生畫面切換黑屏等問題;感官質(zhì)量相對于前兩項質(zhì)量更側(cè)重用戶對視頻播放的主觀感受,目前業(yè)界比較缺乏易實現(xiàn)、通用性高且可綜合評判的客觀衡量方法,所以在這個維度主要分開幾個方面來考慮,包括對曝光、色彩、紋理等圖像質(zhì)量的考量,對音域、相位感等聲音質(zhì)量的考量,還有對流暢度與音畫同步感受方面的考量。
2. “源頭質(zhì)量”定基調(diào)
2.1 架構(gòu)演進(jìn)與選型
?
我們從壓縮、封裝與存儲、架構(gòu)三個環(huán)節(jié)進(jìn)一步來分析影響源頭質(zhì)量的因素。首先在視頻片源壓縮制作的環(huán)節(jié),除了最基本的為業(yè)務(wù)選擇合適而高效的Codec格式及其整體架構(gòu)集成方案外,在具體部署環(huán)節(jié)還需權(quán)衡主觀視覺質(zhì)量、計算復(fù)雜度(直接影響編碼和轉(zhuǎn)碼耗時及服務(wù)器成本)、帶寬成本之間的收益,找到比較務(wù)實的coding rate ladder。其次,封裝與存儲策略上需要具備足夠的平臺兼容性,能夠覆蓋盡量多的終端平臺及系統(tǒng)版本,并在相同編碼參數(shù)的情況下努力減少格式冗余(當(dāng)然這一點可以也需要播放器來配合達(dá)成)。最后,架構(gòu)層面則要實現(xiàn)對直播、點播、OTT等多業(yè)務(wù)形態(tài)的統(tǒng)一支持。
?
眾所周知流媒體架構(gòu)可以劃分為三代(圖中黑點表示):第一代為專屬流媒體協(xié)議架構(gòu),包括我們熟知的RTMP/RTP等;第二代為Progressive Downloading,包括較為典型的HTTP MP4/FLV;第三代是以HLS/DASH為代表的動態(tài)自適應(yīng)傳輸。比較有意思的是圖中綠色點表示的Multi-Segments Consecutive Downloading,即短時間(一般5~10分鐘)MP4/FLV分片方式。其初衷是對于那些時長較大的電視劇、電影類等片源,大家曾經(jīng)采用文件切片的策略將其分解成若干短時間的片源分段,以規(guī)避整段長MP4文件頭部數(shù)據(jù)與片源時長線性關(guān)聯(lián)從而導(dǎo)致加載等待時間太長的問題。
?
上圖中的時間軸大致展示了騰訊視頻流媒體架構(gòu)的演進(jìn)時間表,以Progressive Downloading(HTTP MP4)與其代表的整段MP4為基準(zhǔn),Chunk-based Streaming(MP4 Segments)與其代表的分片MP4無論是在加載時間、錯誤率還是緩沖率上都有很大改進(jìn);而Adaptive Streaming(HLS/DASH)相對于前者的優(yōu)化又進(jìn)一步。雖然架構(gòu)在不斷升級,但代際技術(shù)紅利的陣痛卻是不應(yīng)被忽視的。新架構(gòu)的應(yīng)用往往只是萬里長征第一步,隨之而來的問題包括:在架構(gòu)過渡期,片源存儲及傳輸協(xié)議的冗余度如何;面向具體應(yīng)用時,自適應(yīng)流媒體容器文件切片參數(shù)對質(zhì)量的影響;新協(xié)議的額外負(fù)載與其對網(wǎng)絡(luò)交互的影響,比如HLS/DASH都少不了需要一份清單文件(類似m3u8或者manifest),而早期的HTTP MP4/FLV無需獲取清單文件。只有把這些“配套性”問題都處理好了,新架構(gòu)才能最大化發(fā)揮出應(yīng)有的技術(shù)紅利。?
那么在對流媒體架構(gòu)進(jìn)行選型時我們應(yīng)當(dāng)注意哪些問題呢?在我看來主要從以下三個角度考慮:從成本角度來看,Codec格式選型固然需要首先考慮實際的壓縮效率,但尤其是新型格式的應(yīng)用時也需要權(quán)衡下整個業(yè)態(tài)的支持情況;相應(yīng)的容器格式搭配時,是否存在為了適配終端而進(jìn)行相同參數(shù)編碼(但不同封裝)排列組合的冗余;另外與之對應(yīng)的傳輸協(xié)議,有多少存儲和帶寬會用于傳輸類似HLS/DASH標(biāo)簽文件這樣的輔助信息。從體驗角度,可以針對具體的用戶場景,比如啟動播放或者播放過程中的清晰度切換等,來詳細(xì)分析流媒體架構(gòu)是如何響應(yīng)支持的,從網(wǎng)絡(luò)請求返回次數(shù)這樣的客觀指標(biāo)等來預(yù)估出實際影響。最后從兼容性角度來評估,眼前以及未來可預(yù)期一段時間內(nèi)芯片、手機(jī)廠商、軟件平臺等整個生態(tài)對所選型Codec、容器格式與傳輸協(xié)議的支持范圍和程度。
視頻壓縮算法是源頭質(zhì)量維度的一項重要指標(biāo),國內(nèi)的情況是行業(yè)對新技術(shù)的運用十分積極,許多企業(yè)正在甚至已經(jīng)完成向HEVC過渡從而提高寬帶資源利用效率。行業(yè)內(nèi)面對的情況通常是客戶希望有更高清晰度的視頻服務(wù),產(chǎn)品經(jīng)理也極力滿足用戶的這項基礎(chǔ)性體驗訴求,然而成本控制團(tuán)隊會嚴(yán)格控制各項預(yù)算開支,甚至還會定下較為激進(jìn)的成本節(jié)省目標(biāo)。如上所述使用HEVC替代上一代編碼格式H.264/AVC已經(jīng)是當(dāng)前共識最直截了當(dāng)?shù)某杀竟?jié)省手段之一。?
視頻行業(yè)顯然仍在繼續(xù)信源極限壓縮之旅,下一代編碼格式的軍備競賽也早已拉開帷幕。從上圖2017年MSU發(fā)布的年度HEVC Codec評測結(jié)果中,大家可以清晰地看到AV1相對x265各編碼參數(shù)配置檔次下的碼率節(jié)省情況,粗略折算大概在20%~30%之間。H.266/VVC已經(jīng)處于雛形階段、國產(chǎn)AVS第三代標(biāo)準(zhǔn)也是呼之欲出,未來面臨新一代Codec技術(shù)選型時我們可以從哪些方面來評估和決策呢?下面根據(jù)我自身的一些工作經(jīng)驗,總結(jié)幾點體會供各位參考。
?
首先需要全面理解實際應(yīng)用的業(yè)務(wù)場景,具體到業(yè)務(wù)場景下片源的主流分辨率、碼率、幀率等參數(shù)是多少,同時結(jié)合片源自身的畫面紋理、運動、清晰度等特征來評估待考察Codec的實際壓縮表現(xiàn),不盲目采信外部測評數(shù)據(jù)而忽視測評環(huán)境與實際應(yīng)用業(yè)務(wù)環(huán)境的區(qū)別。不同的業(yè)務(wù)形態(tài)在核心體驗指標(biāo)上是不一樣的,開頭已經(jīng)舉例過,比如:實時視頻會議和通話類產(chǎn)品,對時延和輸出碼率的平穩(wěn)性方面要求很高,但圖像清晰度可以略微犧牲,但對視頻點播類產(chǎn)品,上述指標(biāo)的要求幾乎要顛倒過來。所以務(wù)必結(jié)合實際業(yè)務(wù)面向的核心用戶體驗指標(biāo)來確定Codec及其編碼參數(shù)配置。
其次是結(jié)合商業(yè)模式來考慮,比如對于有出海打算的視頻業(yè)務(wù),Codec的版權(quán)法務(wù)問題就尤為重要,顯然VP9比HEVC就更為妥當(dāng)。另外當(dāng)前較為熱門的高品質(zhì)片源服務(wù),比較容易衍生出會員或者付費模式的4K、HDR等功能,需要評估Codec是否能高效支持。而商業(yè)運營成本,包括編碼轉(zhuǎn)碼服務(wù)器費用、帶寬、存儲等因素的影響可以參考上面流媒體架構(gòu)環(huán)節(jié)的內(nèi)容,這里就不再重復(fù)了。
最后需要綜合評估整體技術(shù)生態(tài)對Codec的支持和推廣程度,例如是否有足夠高的操作系統(tǒng)平臺覆蓋度支持Codec及其配套的容器格式和流媒體傳輸協(xié)議,是否有足夠高的芯片覆蓋度來提供高效率低功耗的解碼能力。視頻行業(yè)涉及環(huán)節(jié)多、鏈條長,新一代Codec從標(biāo)準(zhǔn)定稿到推廣直至大規(guī)模部署和應(yīng)用,可能需要較長時間,業(yè)務(wù)側(cè)過于激進(jìn)的新技術(shù)導(dǎo)向可能會增加不必要的研發(fā)復(fù)雜度和各方面成本開銷。
2.2 Codec感受
如果讓我用一句話來總結(jié)自己對現(xiàn)階段視頻編碼格局的感受,那無疑是:混戰(zhàn)就在眼前。首先預(yù)期處于交替期、本應(yīng)該“漸行漸遠(yuǎn)”的H.264/AVC并未出現(xiàn)大規(guī)模“隱退”,而且encoding.com于NAB 2018發(fā)布的多媒體技術(shù)流行報告還顯示出H.264/AVC的流量份額甚至還在增加。其背后的原因,首先是作為繼任者的HEVC雖然有明顯的節(jié)省碼率,但其專利收費構(gòu)成之復(fù)雜(且必定是高昂的),實在是高懸頭頂?shù)倪_(dá)摩克利斯之劍。其次,近年來興起的AI技術(shù)已經(jīng)成功應(yīng)用在編碼環(huán)節(jié),通過AI賦能的CAE實踐經(jīng)驗認(rèn)為可帶來相對于傳統(tǒng)編碼20%以上碼率節(jié)省,這實在是削弱了HEVC的吸引力,且還有無需設(shè)備升級、協(xié)議完全兼容等很多附加優(yōu)勢。作為HEVC及其陣營的最大挑戰(zhàn)者,開源免費的AV1在此前MSU發(fā)布的年度Codec評測報告中是壓縮性能之王,且從AOM組織誕生之時,已是業(yè)界齊聚的態(tài)勢,加上一貫高冷范兒的Apple表態(tài)支持,眼下AV1可謂風(fēng)光無兩。有趣的是,大局未定還有暗流涌動,一家小眾的編碼服務(wù)商公布的XVC可實現(xiàn)比開啟Multi-Pass Encoding配置后的AV1還節(jié)省10%~20%碼率,相關(guān)數(shù)據(jù)在其官網(wǎng)技術(shù)博客中,大家可以自行查閱。在國內(nèi),AVS第二代標(biāo)準(zhǔn)已經(jīng)成為4K超清視頻的選定編碼方案,受到廣電總局的支持。總體來說,眼前和未來是多種Codec混戰(zhàn)的時代,上個十年中H.264/AVC大一統(tǒng)的局面也許再難以出現(xiàn)。?
對AV1再多看一些來源的數(shù)據(jù),對于大家最為關(guān)心的問題,即AV1相對于HEVC究竟有多少碼率節(jié)省,目前各方說法都不盡相同。既有像來自MSU的數(shù)據(jù)顯示AV1相對于HEVC有大約20%的壓縮性能提升,但也有些觀點甚至相反認(rèn)為其壓縮性能還要劣于HEVC。當(dāng)然這些數(shù)據(jù)都是源于實驗室測試,最終還是需要等待業(yè)務(wù)應(yīng)用、結(jié)合不同場景進(jìn)行實際分析和驗證。目前不妨先放下口頭爭議,讓子彈再飛一會兒。?
這里簡單總結(jié)下個人對當(dāng)前Codec趨勢的理解,首先我認(rèn)為現(xiàn)在混合編碼框架依舊是編碼領(lǐng)域的主流選擇,在這個框架下新一代標(biāo)準(zhǔn)AV1使用了很多“新”算法工具來提升壓縮性能,這里的“新”可能沒有革命性顛覆式的創(chuàng)新,很多還是體現(xiàn)在算法細(xì)節(jié)的改良,比如使用更大尺寸的CU劃分、幀內(nèi)預(yù)測支持亮度分量預(yù)測色度分量、調(diào)色板模式、幀內(nèi)拷貝模式、動態(tài)運動向量索引、楔形預(yù)測、約束方向增強(qiáng)濾波、電影顆粒膠片效果合成等。其次,人工智能正加速向全行業(yè)滲透,AI與Codec結(jié)合的感知編碼方案已經(jīng)廣泛應(yīng)用并產(chǎn)生了實際收益,如上所言,雖然視頻編碼框架仍然是傳統(tǒng)的基于頻域變換和運動補(bǔ)償?shù)幕旌暇幋a方案,但在局部模塊上已經(jīng)有很多AI替換的算法方案,例如使用CNN來作幀內(nèi)預(yù)測或者塊劃分模式選擇等。最后,超高清視頻即將迎來普及期,相比上一波單純的分辨率提升(從D1到HD)經(jīng)濟(jì),HDR/WCG/HFR/3D Audio等高品質(zhì)影音體驗會成為更有市場帶動力的推手。?
最后附上一張HEVC、AV1、VVC算法工具對比的表格作為這部分分享內(nèi)容的總結(jié),也可以再次看看新一代編碼標(biāo)準(zhǔn)的“配置”有哪些吧。需要注意的是,由于現(xiàn)在VVC還處于草案研發(fā)階段、正式定稿時間會在2020年,所以表格中的信息還有較大改動的可能。
3. “交互質(zhì)量”系紐帶
交互質(zhì)量是繼源頭質(zhì)量之后第二個需要考量的維度。作為后臺服務(wù)與用戶體驗的紐帶,交互質(zhì)量的保障根基是我們自研的統(tǒng)一播放框架,這套跨平臺的終端播放方案,把整個播放流程內(nèi)的協(xié)議/格式解析、數(shù)據(jù)解碼/處理、圖像/聲音呈現(xiàn)等模塊邏輯解耦,一方面實現(xiàn)各細(xì)節(jié)自控,另一方面也深挖系統(tǒng)硬件能力。外部則通過播放流水異常監(jiān)控上報系統(tǒng)與業(yè)界競品播放評測系統(tǒng),隨時分析宏觀與局部的服務(wù)質(zhì)量,從加載時長、錯誤率、二次緩沖、文件seek響應(yīng)時長與清晰度切換等待時長等指標(biāo)入手綜合評估用戶交互質(zhì)量,實現(xiàn)所有環(huán)節(jié)可數(shù)據(jù)追蹤與自動化黑盒對比,以實現(xiàn)評測結(jié)果的公平與長效。?
?
下面講講統(tǒng)一播放框架的演進(jìn)歷史,從中可以逐步理解這個根基建設(shè)對整體交互質(zhì)量的關(guān)鍵性作用。播放框架1.0如上圖左側(cè)展示,其重點是針對平臺提供的系統(tǒng)播放器進(jìn)行業(yè)務(wù)封裝達(dá)到快速上線的效果。Android提供的MediaPlayer與iOS提供的AVPlayer大體能夠滿足基本的播放應(yīng)用需求,但全黑盒式的組件使得很多影響播放質(zhì)量關(guān)鍵的播放策略無法直接控制、修改和優(yōu)化,雖然開發(fā)成本低但從客戶端平臺適配到傳輸層適配等一系列問題都無法得到妥善解決,相應(yīng)的用戶體驗也無法得到有效保障。?
播放框架2.0相對于1.0增加了本地代理模塊,可接管所有傳輸數(shù)據(jù)的使用,通過二次轉(zhuǎn)封裝或者轉(zhuǎn)流媒體協(xié)議的方式輸出數(shù)據(jù)供播放器實際使用,充當(dāng)本地或者代理服務(wù)器的角色。這樣改進(jìn)最直接的收益是解決(部分平臺或者版本)播放器對格式支持能力有限的問題、大大提高了播放框架針對不同客戶端運行平臺的適配能力,相對于1.0也明顯改善了傳輸層適配與后臺服務(wù)適配能力。類似二次緩沖這樣的異常原則上都可以通過控制數(shù)據(jù)傳輸?shù)馁|(zhì)量來加以控制優(yōu)化,所以這套方案自然也能明顯改善用戶體驗。雖然開發(fā)成本有所提高,但顯著降低的運營成本與明顯提升的用戶體驗讓2.0版本播放框架成為比1.0版本更加出色的選擇。?
播放框架3.0相比2.0的演進(jìn)是整體理念上的改變,直接打破系統(tǒng)播放器封裝使用的模式,將終端播放抽象為協(xié)議層、數(shù)據(jù)層、呈現(xiàn)層。其中,協(xié)議層完全獨立于具體運行平臺、實現(xiàn)通用型的協(xié)議接入及格式解析,從根本上解決傳輸端(服務(wù)器端)與接入端(客戶端)能力不匹配的矛盾;數(shù)據(jù)層主要負(fù)責(zé)音視頻數(shù)據(jù)的解碼,為了最大化的效率及最低功耗考慮,顯然需要根據(jù)不同平臺、系統(tǒng)版本甚至芯片方案進(jìn)行優(yōu)化與調(diào)整,當(dāng)然大家一般也會用上軟件方案來兜底保障;呈現(xiàn)層負(fù)責(zé)圖像/聲音raw data的渲染與呈現(xiàn),其中大部分是底層通用型算法,也包含少量平臺設(shè)備相關(guān)聯(lián)的處理。相對于2.0,3.0版本的播放框架開發(fā)成本自然高出不少,但幾乎所有的流程和細(xì)節(jié)都能自控,既有最佳的擴(kuò)展能力,也為用戶體驗保障提供了堅實基礎(chǔ)。
而接下來隨著全民短視頻時代的開啟,用戶使用大量短視頻內(nèi)容記錄日常生活,單純的播放功能早已無法滿足用戶對客戶端的需求。我們不僅需要在客戶端實現(xiàn)良好的播放體驗,更需要讓平臺可以承載用戶對視頻的采集與編輯需求,這也推動我們對整個播放框架做出新的思考。
播放架構(gòu)3.0+應(yīng)運而生,其中最重要的特性便是動態(tài)可擴(kuò)展與多功能模塊融合。以傳輸模塊為例,可以理解為一種抽象化的數(shù)據(jù)來源模塊,其輸入可能是從網(wǎng)絡(luò)或本地讀取的數(shù)據(jù),也可能是來自于攝像頭采集端的數(shù)據(jù),并且存在多路輸入數(shù)據(jù)疊加或者隨時擇其一二作為真正的輸出。再以后處理為例,播放端的后處理可能僅是簡單的畫面銳化,而在編輯場景下可能有多路,比如混音這樣的操作。我們將原本播放的每個具體步驟,再進(jìn)一步解耦和功能抽象,支持組件間的多輸入輸出對接或者鏈?zhǔn)酱?#xff0c;使得整體架構(gòu)實現(xiàn)根據(jù)應(yīng)用場景與業(yè)務(wù)需求實現(xiàn)動態(tài)且靈活的擴(kuò)展,最終形成播放、拍攝和編輯等功能的融合體系。
有了完善的播放框架就可以配合后臺服務(wù)建立全流程的質(zhì)量體系,通過持續(xù)的數(shù)據(jù)驅(qū)動來不斷排查、降低異常和錯誤率。詳細(xì)來說就是將視頻播放過程中終端與后臺交互的每一個細(xì)微環(huán)節(jié)進(jìn)行記錄與分析,尤其是類似訪問的耗時、失敗訪問的原因與結(jié)果、重試次數(shù)等重要的故障回溯定位及排查依據(jù)信息。
具體的分析過程主要是根據(jù)一定的場景類別、用戶地域、人群屬性、觀看時段等進(jìn)行統(tǒng)計、數(shù)據(jù)分桶與可視化呈現(xiàn),以便發(fā)生服務(wù)質(zhì)量異常時可及時準(zhǔn)確尋找背后原因。例如當(dāng)視頻播放錯誤率異常增大,我們就可以通過這套系統(tǒng)來分析具體錯誤碼,并且結(jié)合區(qū)域、運營商、媒資信息等來協(xié)同圈定故障影響范圍,并制定修復(fù)方案。我們的修復(fù)方案既包括線上的片源信息修正、調(diào)度調(diào)整等運維手段,也包括云控策略、熱更新下發(fā)這樣的版本補(bǔ)丁方案。
以加載時長為例,可以從監(jiān)控系統(tǒng)中分析時間的發(fā)布區(qū)間,再從中抽樣分析文件打開各階段的耗時或者針對部分bad case尋找共同的特征,比如早期使用HLS的時候發(fā)現(xiàn)很多耗時較長的案例都出現(xiàn)了文件請求時的跳轉(zhuǎn),于是采取使用完整MPEG TS文件存儲來規(guī)避CDN節(jié)點回源錯誤。當(dāng)然,直接梳理視頻加載全流程的步驟,從播放器側(cè)通過深度定制來減少前后端交互是必不可少的工作,比如針對影視類片源二次續(xù)播的場景,可以根據(jù)時間點來直接跳轉(zhuǎn)到目標(biāo)字節(jié)區(qū)的方式避免視頻加載后再seek,這樣可有效節(jié)省數(shù)據(jù)讀取跳轉(zhuǎn)的耗時。另外還有一些細(xì)節(jié)處理的小trick也能有提升的效果,包括比較常見的多實例預(yù)加載等措施,此外我們在用戶中途退出播放的場景會緩存退出時間點附近的文件片段數(shù)據(jù),這樣下次有續(xù)播時可以直接本地cache讀取以加速。?
在二次緩沖率跟進(jìn)方面,我們在數(shù)據(jù)系統(tǒng)中會同時關(guān)聯(lián)二次緩沖發(fā)生的場景與原因編碼,從而更清晰地找到問題發(fā)生前后的播放操作和規(guī)避緩沖的策略。分析跟進(jìn)的結(jié)果,包括在片源編碼環(huán)節(jié)主動控制局部峰值碼率的劇烈抖動,在數(shù)據(jù)傳輸層面上調(diào)整P2P與HTTP在播放高峰時段的配比,以及優(yōu)化緩存數(shù)據(jù)淘汰策略并提高播放點附近的數(shù)據(jù)復(fù)用命中,在鏈接層面上還借助多/備份鏈接的方式實現(xiàn)容錯切換、競速、并行下載、MPTCP和播放器請求自適應(yīng)等一系列策略來持續(xù)降低二次緩沖率。?
最后在交互這里再講一個細(xì)節(jié),就是針對常見的用戶切換片源清晰度操作,如何達(dá)到無縫銜接的切換體驗。第一種方案如上圖左邊所示通過依次使用多個播放器實例來輪換接替播放不同清晰度的片源,雖然整體方案和流程比較簡單清晰,但創(chuàng)建多個播放器實例的資源代價顯然不小,比如很低端的設(shè)備或許都無法承受多個實例,而且播放器交接過程需格外關(guān)注銜接時機(jī)以避免局部的畫面/聲音重放等小瑕疵。第二種方案則是如上圖右側(cè)展示的那樣基于播放框架3.0能力,由于數(shù)據(jù)的讀取解析與解碼是完全分離式的,各自邏輯解耦,所以切換清晰度只是送入數(shù)據(jù)隊列的數(shù)據(jù)來源發(fā)生了變換,而這個變換對于播放器內(nèi)部其他部分來說是無需感知的。相對于方案一,僅有一個播放實例的方案二更加輕量化,也完全避免了不同播放實例之間需要嚴(yán)格時間戳銜接控制的問題,無縫銜接的多分辨率切換體驗更精準(zhǔn)順滑。
4. “感官質(zhì)量”真體驗
?
最后一個部分,我來談下感官質(zhì)量,這部分是最貼近用戶、直接影響用戶主觀觀影體驗的環(huán)節(jié)。其中,沒有卡頓、保持音視頻同步算是確保感官質(zhì)量的基礎(chǔ)要求,中低端設(shè)備解碼能力弱在HEVC全面升級的背景下更加突出,為解決類似解碼能力不足所引發(fā)的卡頓我們需要打破移動端兼容性的困局。除此之外,可以針對圖像和聲音進(jìn)行額外的后處理增強(qiáng)來達(dá)到進(jìn)一步的感官體驗提升。今天的分享我主要談下圖像方面的工作,可以從色彩、紋理、曝光幾個維度來進(jìn)行,色彩層面常見的方案如LUT色調(diào)調(diào)節(jié)、飽和度增強(qiáng)等,后面也會介紹下騰訊視頻針對特殊用戶群提供的色彩障礙糾正功能,這也是我們在科技向善方面的有益探索和嘗試。紋理方面比較常見的有針對風(fēng)景片的銳化處理,主要用于明星綜藝節(jié)目的人物磨皮處理等;曝光調(diào)節(jié)方面,常見的包括像暗場增強(qiáng)、去霧、HDR處理等。?
如上所言在中低端設(shè)備上解碼能力不足是造成卡頓的常見原因,為了達(dá)到流暢播放這個最基礎(chǔ)的感官質(zhì)量要求,我們一方面努力提升硬件解碼覆蓋率,尤其是在兼容性問題很突出的Android平臺,如上圖左側(cè)所示,從最早期的底層openMAX接口,到Framework層的StageFright接口,直到現(xiàn)在應(yīng)用層越來越開放和穩(wěn)定的MediaCodec接口,我們都盡力提高調(diào)用代碼的適配性,在一段時期(Android4.0+為主流系統(tǒng))內(nèi)方案之間還做到了互為備份,以進(jìn)一步提高容錯能力。由于硬件解碼的異常較多,而且對于應(yīng)用開發(fā)者來說往往沒有直接解決的手段,所以我們還需要采取多級柔性策略,以提前預(yù)防或者事后干預(yù)對異常進(jìn)行處理。如上圖右側(cè)所示的那樣,我們內(nèi)部會建立機(jī)型能力庫和黑白名單機(jī)制,在播放之前基于先驗知識模型為當(dāng)前設(shè)備估算能力分?jǐn)?shù)并根據(jù)其所處分?jǐn)?shù)段,從而預(yù)判針對給定視頻格式所能流暢解碼的最高碼率及分辨率;此外當(dāng)播放過程中出現(xiàn)Crash時,我們在下次啟動時還會通過分析上次call stack的信息來感知是否由于是解碼模塊導(dǎo)致的程序Crash,從而得出手機(jī)在播放下一段內(nèi)容時優(yōu)先選擇軟解還是硬解。通過這些多級且柔性可控的組合策略,我們希望在H.264/AVC向HEVC的過渡過程當(dāng)中,即便在中低端設(shè)備上播放如1080P這樣的高分辨率檔次視頻,也能盡量避免用戶感知到的卡頓。?
基礎(chǔ)感官質(zhì)量的另一維度是音視頻同步體驗,這幾乎也是繞不過去的、需要長期作斗爭的疑難且瑣碎的技術(shù)問題。導(dǎo)致不同步的原因比較多,大體可以分為兩類:一類是在片源側(cè)制作過程中引入的,屬于先天性問題,大概算“天作孽“類型,比如分布式編碼時切片文件時間沒對齊,又或者音視頻碼流Mux過程時interlaced writing的間隔太大等,這一類問題的解決往往需要播放器和后臺相互配合;從規(guī)避的角度看,可以在編碼端加入旁路檢測時間戳規(guī)范性等手段。另一類不同步就是由于終端播放器“自作孽”引入的,例如解碼能力不足造成的跳幀,或者變速播放時對時間戳的重計算不合理等。這種體驗異常出現(xiàn)在客戶端,且屬于“語義”層面問題,往往較難從“語法”規(guī)范度層面來實時檢測和處理,雖然業(yè)界有一些自動化檢測音視頻同步的方法,例如分析圖像和聲音信號頻譜的偏差,但暫時缺乏在用戶側(cè)能簡易部署且低成本實施的方案,這也是未來我們需要攻關(guān)的技術(shù)點之一。
?
在日常工作中,我們?yōu)榱酥鲃影l(fā)現(xiàn)和提前預(yù)警播放環(huán)節(jié)中的潛在問題,會應(yīng)用一套自動化播放測試系統(tǒng)。這個系統(tǒng)會利用公司內(nèi)部強(qiáng)大的手機(jī)云系統(tǒng),根據(jù)后臺統(tǒng)計數(shù)據(jù)自動播放點播熱度最高的頭部片源,并監(jiān)控測試過程中播放器的異常輸出,以郵件推送匯總結(jié)果。由于我們內(nèi)部的手機(jī)云系統(tǒng)覆蓋的機(jī)型非常廣泛,而且自動化的播放用例也無需人工干預(yù),所以這套系統(tǒng)非常有效地輔助我們來提升播放質(zhì)量。
?
在感官質(zhì)量圖像色彩上的工作實踐,今天帶給大家的案例是我們榮獲2018 iF設(shè)計大獎的色覺障礙優(yōu)化模式。這項工作的起因是我們研發(fā)團(tuán)隊內(nèi)部由于工作性質(zhì),需要經(jīng)常主觀判定畫質(zhì)高低,有時出現(xiàn)個別判定和大部分人都不同的情況,分析后我們無意中發(fā)現(xiàn)是因為有兄弟存在輕微色弱導(dǎo)致,于是碼農(nóng)改變世界的雄心被激發(fā),帶來了今天我們看到的這項成果。后來我們在維基百科上看到的數(shù)據(jù)是,全球約6%人口為色弱、約2%人口為色盲,還有極少數(shù)為單色視覺即全色盲。可見這個比例并不低,我們希望為這部分用戶帶來些許改善。單純從算法層面講,其實原理比較簡單,大體通過特定的色彩空間與色彩矩陣的變換來實現(xiàn)部分色彩的調(diào)整即可,但確定算法內(nèi)部的各種調(diào)整參數(shù)卻是一件費時費力的事情。從初期技術(shù)原形到最終上線,我們花了超過半年的時間來不斷打磨細(xì)節(jié),包括邀請很多用戶來體驗產(chǎn)品、設(shè)計用戶訪談并分析結(jié)果來改進(jìn)算法,在播放器內(nèi)使用各種優(yōu)化方案來做算法提速等,最終在國內(nèi)在線視頻行業(yè)上率先呈現(xiàn)出我們對人性化與科技向善的思考。
?
在感官質(zhì)量圖像曝光方面,我們通過與音頻行業(yè)的技術(shù)領(lǐng)軍者Dolby公司,同時也是近年來HDR領(lǐng)域技術(shù)和產(chǎn)業(yè)化的積極推動者展開敏捷合作,在蘋果發(fā)布首款支持Dolby Vision手機(jī)的時間窗口內(nèi),騰訊視頻在iOS APP store中國區(qū)首發(fā)了Dolby Vision高品質(zhì)影片及播放能力,為用戶呈現(xiàn)超越傳統(tǒng)的驚艷視覺體驗。Dolby Vision及HDR相關(guān)技術(shù)信息大家可另行了解,今天時間有限我不再詳細(xì)介紹。
在圖像紋理的優(yōu)化上,我們采取了實時超分辨率增強(qiáng)的策略。借助對傳統(tǒng)SR深度學(xué)習(xí)模型的改良以適應(yīng)不同程度的模糊/噪聲并改善樣本構(gòu)造與加速模型訓(xùn)練,我們在服務(wù)器端實現(xiàn)了最高1080P至4K的超分辨率處理,主要用于老舊片源畫質(zhì)修復(fù)改善;進(jìn)一步實踐,通過自研的圖像引擎與簡化的淺層網(wǎng)絡(luò)結(jié)構(gòu),我們在移動端大規(guī)模地應(yīng)用了480P至720P的實時超分辨率處理。具體一點來說,傳統(tǒng)SR模型會將輸入的樣本圖片先人為下采樣后再上采用,并通過網(wǎng)絡(luò)學(xué)習(xí)輸出圖片與原圖之間的差異。我們發(fā)現(xiàn)此方法對于拍攝時期較早、客觀上并不存在高分辨率的“原始”圖像對片源效果并不好,而且超分之后的面畫也容易出現(xiàn)噪點。于是我們調(diào)整了樣本訓(xùn)練方法,以克服上述問題,并通過編寫高效的OpenGL/Metal代碼來實現(xiàn)算法在手機(jī)上的加速。PPT演示的DEMO視頻畫面左邊部分是算法生效后的效果,與畫面右邊原始區(qū)域相對比。可以看到類似人物服飾花紋、面部胡須等部分細(xì)節(jié)明顯豐富很多,畫面下部的字幕邊緣也明顯清晰銳利得多。
5. 未來展望
?
最后我以今天分享的質(zhì)量三維論簡單談?wù)剛€人對未來的展望作為本次分享的末尾總結(jié):
1)在源頭質(zhì)量方面,使用新技術(shù)提升壓縮效率仍是學(xué)工界的熱點工作。現(xiàn)在是一個Codec群雄逐鹿的時代,不斷加強(qiáng)優(yōu)化的CAE感知編碼方案會帶來更多元化的思路;未來的視頻編碼仍然會以混合編碼框架為主流,但AI技術(shù)的持續(xù)發(fā)力會助力包括降噪、去抖動、平滑在內(nèi)的圖像前處理,場景分析、融合等實現(xiàn)進(jìn)一步的性能提升從而顯著改善圖像質(zhì)量。另外行業(yè)整體環(huán)境對版權(quán)保護(hù)會越來越重視,后續(xù)從國家政策引導(dǎo)層面、從上游片源版權(quán)方商業(yè)條款層面,對視頻平臺及服務(wù)都會有嚴(yán)格要求。
2)在交互質(zhì)量方面,基于QoE評價驅(qū)動的Streaming是值得關(guān)注的重點;結(jié)合強(qiáng)化學(xué)習(xí)優(yōu)化的ABS算法是值得嘗試的方向。國內(nèi)ABS算法的普及率不高,一方面是國內(nèi)各大視頻平臺對于視頻碼流的質(zhì)量分檔并不足夠細(xì)分,一般僅提供270P/480P/720P/1080P四檔左右,給ABS算法提供的空間并不多;其次是使用ABS算法可能提升成本,這對用戶規(guī)模龐大的視頻平臺而言意味著更大的成本壓力,所以關(guān)于ABS算法的應(yīng)用需要結(jié)合業(yè)務(wù)場景與實際需求進(jìn)一步探索和優(yōu)化。在協(xié)議選擇上,國內(nèi)HLS已是主流選擇,未來Chunk-based CMAF、QUIC等是用于改善時延、提升弱網(wǎng)傳輸?shù)扔幸鎳L試。另外新一代通信技術(shù)5G的建設(shè)與普及,必然會對視頻行業(yè)帶來新一輪的發(fā)展機(jī)遇。
3)在感官質(zhì)量方面,移動設(shè)備結(jié)合輕量化模型會是未來的發(fā)展趨勢,而深度傳感器、NPU、多攝像頭則會進(jìn)一步豐富視頻玩法。與此同時,更加貼合場景、設(shè)備與用戶的產(chǎn)品設(shè)計讓定制化需求成為良好用戶體驗當(dāng)中不可或缺的一部分。
點擊【閱讀原文】或掃描圖中二維碼了解更多LiveVideoStackCon 2019 上海 音視頻技術(shù)大會 日程信息。
總結(jié)
以上是生活随笔為你收集整理的质量三维论如何持续推进腾讯视频播放体验提升的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 范醒哲:5G时代是时候全面解决TCP的效
- 下一篇: 三体云周思进:在红海中寻找蓝海