本文來(lái)自于快手視頻算法工程師團(tuán)隊(duì)負(fù)責(zé)人聞興在LiveVideoStackCon2020北京站上的精彩分享。憑借本主題演講,聞興老師榮獲此次大會(huì)評(píng)選的優(yōu)秀講師稱號(hào)。
在視頻服務(wù)飛速發(fā)展的今天,視頻平臺(tái)如何在兼顧機(jī)器帶寬成本的同時(shí),讓用戶獲得更加極致的觀看體驗(yàn),是每一個(gè)視頻技術(shù)團(tuán)隊(duì)都會(huì)面臨的問(wèn)題。
復(fù)雜的技術(shù)從計(jì)劃、研發(fā)、調(diào)試直到最終全量上線需要大量的線上測(cè)試及用戶反饋,這一過(guò)程耗時(shí)長(zhǎng)久,甚至可以說(shuō)永無(wú)止境。很多時(shí)候,一些技術(shù)開(kāi)發(fā)出來(lái)后,因?yàn)閺?fù)雜度過(guò)高或者與實(shí)際場(chǎng)景差別過(guò)大,最終無(wú)法上線為用戶提供更好的體驗(yàn)。所以在技術(shù)的開(kāi)發(fā)及落地中,唯一的衡量標(biāo)準(zhǔn)——是能否在真實(shí)場(chǎng)景中以更低的成本為用戶帶來(lái)更好的體驗(yàn)。
本文中所援引皆為已經(jīng)在線上穩(wěn)定運(yùn)行的算法及服務(wù),所有展示的數(shù)據(jù)均是線上實(shí)際業(yè)務(wù)中所產(chǎn)生的真實(shí)結(jié)果。希望本文分享的信息能夠給更多開(kāi)發(fā)者帶來(lái)價(jià)值,也希望我們完成的這些工作能夠?qū)Υ蠹椅磥?lái)的技術(shù)研發(fā)工作有所啟發(fā)。
本文將分為四個(gè)部分展開(kāi):首先,我們簡(jiǎn)單回顧短視頻行業(yè)的發(fā)展歷程并簡(jiǎn)要介紹快手;其次,重點(diǎn)介紹快手用于分析/處理/推理/轉(zhuǎn)碼的多媒體算法引擎——Atlas;再次,深入介紹Atlas的基礎(chǔ)能力之一視頻圖像編解碼能力,這也是快手首次對(duì)外公開(kāi)介紹短視頻轉(zhuǎn)碼系統(tǒng)和技術(shù);最后,我們通過(guò)兩個(gè)實(shí)際的應(yīng)用項(xiàng)目,即基于視頻內(nèi)容的處理及分析(CAPE)以及視頻的AI智能增強(qiáng),來(lái)進(jìn)一步介紹Atlas的落地和使用場(chǎng)景。
1 短視頻行業(yè)及快手公司介紹
在過(guò)去幾年中,隨著移動(dòng)互聯(lián)網(wǎng)覆蓋逐步飽和,我國(guó)互聯(lián)網(wǎng)的用戶整體規(guī)模增幅一直呈下降趨勢(shì),但毋庸置疑短視頻行業(yè)已逐漸發(fā)展成為當(dāng)下最火爆的市場(chǎng)之一。從2019年的數(shù)據(jù)可以看到,中國(guó)短視頻用戶月活達(dá)8.2億,今年受疫情等因素影響,月活已接近9億。另外,短視頻應(yīng)用使用時(shí)長(zhǎng)的增長(zhǎng)在行業(yè)內(nèi)也占據(jù)首位。
快手作為一個(gè)國(guó)民短視頻社區(qū),擁有海量的用戶和短視頻內(nèi)容,日活用戶規(guī)模超過(guò)3億,日播放量達(dá)到百億級(jí)。每日產(chǎn)出UGC內(nèi)容1500萬(wàn),原創(chuàng)短視頻庫(kù)達(dá)到260億。海量短視頻下多媒體內(nèi)容處理的成本與體驗(yàn)之間的平衡,不斷為我們帶來(lái)了新的挑戰(zhàn)和新的驚喜。
2 多媒體算法服務(wù)架構(gòu)平臺(tái):Atlas 以下將詳細(xì)介紹快手的多媒體算法服務(wù)架構(gòu)平臺(tái)Atlas。
2.1 為什么要做Atlas?
在進(jìn)行多媒體算法開(kāi)發(fā)的時(shí)候,業(yè)務(wù)方的需求一般主要集中于三個(gè)方面:場(chǎng)景、體驗(yàn)和成本。
從場(chǎng)景需求角度來(lái)說(shuō),在實(shí)際應(yīng)用中存在大量且需求迥異的業(yè)務(wù)場(chǎng)景,比如短視頻場(chǎng)景對(duì)清晰度和流暢度都有很高的要求,長(zhǎng)視頻場(chǎng)景則更在乎內(nèi)容的清晰度和沉浸感,而直播場(chǎng)景相對(duì)而言對(duì)流暢度的要求會(huì)更高一點(diǎn),并且需要保證實(shí)時(shí)性,對(duì)延遲比較敏感。多樣化的場(chǎng)景會(huì)提出多種截然不同的優(yōu)化目標(biāo)。
就體驗(yàn)需求而言,難點(diǎn)在于部分業(yè)務(wù)方對(duì)體驗(yàn)的要求及預(yù)期無(wú)法量化,主觀、感性表述往往較多,不能直接指導(dǎo)算法優(yōu)化方向,因此專業(yè)的算法方案,需要同時(shí)兼顧客戶的理解力和使用門檻。另一部分業(yè)務(wù)方的需求則更加具體及專業(yè),有的業(yè)務(wù)方既需要傳統(tǒng)算法,又希望能夠利用神經(jīng)網(wǎng)絡(luò)推理能力;有的業(yè)務(wù)方既要做到盡量可控,又希望能有部分傻瓜模式以降低使用難度。
成本需求主要包含兩方面,一是機(jī)器成本,業(yè)務(wù)方永遠(yuǎn)希望用最少的成本達(dá)到最優(yōu)的體驗(yàn);二是部署及維護(hù)成本,希望算法和工程的迭代及優(yōu)化效率足夠高,既要滿足層出不窮的新需求又要盡量不新增更多的人力投入。
如何能更高效地滿足這些需求?我們開(kāi)始思考這個(gè)問(wèn)題的解法,這就是快手建立多媒體算法服務(wù)端引擎Atlas的初衷。
(Atlas --- 阿特拉斯本是希臘神話舊神系中代表耐力、力量和天文的泰坦神,他被宙斯降罪放逐在大地之西,用雙肩擎起整個(gè)天空(Uranus或指宇宙);而在歐洲古典主義的建筑風(fēng)格中通常會(huì)用這類男性形象放在立柱的位置,這種結(jié)構(gòu)也被稱為Atlas。因此,我們?yōu)檫@個(gè)核心引擎取名Atlas,也寓意著快手希望在用戶和開(kāi)發(fā)者之間、需求和算法之間、算法和硬件結(jié)構(gòu)之間能夠搭起一座座橋梁,起到連接支撐的結(jié)構(gòu)性作用。)
2.2 Atlas 能力簡(jiǎn)介
Atlas作為多媒體處理算法引擎,已經(jīng)在快手的各種線上服務(wù)全面落地,包括快手主站及海外的視頻/圖像分析、視頻/圖像處理、視頻轉(zhuǎn)碼等。與此同時(shí),它也支撐了視頻剪輯和視頻制作工具“快影”和企業(yè)級(jí)視頻智能生產(chǎn)云平臺(tái)“OnVideo”,以及其它新業(yè)務(wù)的大量視頻分析、處理和制作需求。
Atlas現(xiàn)有的能力主要包括如下四個(gè)方向:視頻圖像壓縮,畫(huà)質(zhì)增強(qiáng),音頻處理,以及智能生產(chǎn)。
在快手每天會(huì)新增千萬(wàn)級(jí)的視頻內(nèi)容,這些視頻的服務(wù)端轉(zhuǎn)碼任務(wù)都是通過(guò)Atlas來(lái)完成的。在視頻圖像壓縮方面,我們一直在追求這一基本能力做到精益求精,從而達(dá)到為客戶節(jié)約成本,為用戶提供最優(yōu)體驗(yàn)的目的。通過(guò)自研的K系列編碼器 (K264/K265/KVC),Atlas展現(xiàn)了對(duì)于視頻及圖像的極致壓縮能力。我們會(huì)在本文中后面的部分詳細(xì)介紹快手的短視頻編解碼架構(gòu),作為其中核心的K系列編碼器,以及上線后的具體收益。除了基本的編解碼處理能力,Atlas也提供基于內(nèi)容的智能處理與編碼 (CAPE,Content Aware Processing & Encoding),在后面的部分我們也會(huì)給出一個(gè)視頻CAPE的應(yīng)用實(shí)例,來(lái)詳細(xì)說(shuō)明如何搭建對(duì)應(yīng)服務(wù)并取得線上業(yè)務(wù)的收益。
音頻處理方面,Atlas包含音頻美學(xué),響度均衡,智能降噪,智能音效等功能。快手平臺(tái)通過(guò)應(yīng)用響度均衡處理技術(shù)和標(biāo)準(zhǔn),能夠有效規(guī)范平臺(tái)的音頻響度和動(dòng)態(tài)范圍平衡,避免切換不同視頻時(shí),聲音響度忽大忽小。而智能降噪技術(shù)已經(jīng)應(yīng)用在快手直播,視頻會(huì)議及快手K歌等多個(gè)業(yè)務(wù)場(chǎng)景。Atlas除了提供上述對(duì)音頻的處理能力,也支持智能化的音頻壓縮算法,例如內(nèi)容自適應(yīng)音頻編碼 (CAE)等 。
除此之外,Atlas也具備很多非常成熟的圖像算法處理能力, 例如在畫(huà)質(zhì)增強(qiáng)方面的失真去除 (De-Art) 、超分辨率 (SR)、視頻插幀(FRUC)、色彩一鍵增強(qiáng)以及暗光增強(qiáng)等。這些算法及功能已經(jīng)長(zhǎng)期穩(wěn)定地服務(wù)于快手平臺(tái)及海外各App,服務(wù)范圍涵蓋了移動(dòng)端的編輯和上傳流程,以及服務(wù)端轉(zhuǎn)碼相關(guān)的處理和增強(qiáng)等重要任務(wù)。
智能生產(chǎn)方面,Atlas中具有很多獨(dú)特的功能,比如精彩片段挑選、智能封面挑選和裁剪等。快手智能影集就是基于Atlas這些獨(dú)家能力進(jìn)行開(kāi)發(fā)并持續(xù)迭代的。智能影集功能是通過(guò)對(duì)用戶作品集的內(nèi)容進(jìn)行理解及分析,精選出用戶公開(kāi)作品中的優(yōu)質(zhì)片段,并以一定的故事線(時(shí)間或地點(diǎn))邏輯裁剪梳理出視頻集錦片段,最終結(jié)合特效片段合成出影集作品。
通過(guò)上述Atlas獨(dú)具特色的能力,不同的用戶可以根據(jù)自身業(yè)務(wù)及產(chǎn)品的需求,快速提升用戶體驗(yàn)或搭建有趣的功能或玩法。
2.3 Atlas 架構(gòu)簡(jiǎn)介
作為視頻行業(yè)最火爆的公司之一,快手的業(yè)務(wù)需求種類繁復(fù),橫跨各種應(yīng)用場(chǎng)景,但萬(wàn)變不離其宗,絕大多數(shù)的的需求都可以拆解為內(nèi)容分析識(shí)別、處理增強(qiáng)、編碼壓縮以及硬件加速四個(gè)階段。通過(guò)Atlas完善的接口及架構(gòu)設(shè)計(jì),算法開(kāi)發(fā)方能夠高效的跨越四個(gè)階段,從而對(duì)業(yè)務(wù)方的需求進(jìn)行快速響應(yīng)和迭代;而用戶也可以基于Atlas的架構(gòu)低成本的搭建自己的服務(wù),或?qū)tlas中的算法能力應(yīng)用于產(chǎn)品中。接下來(lái)我們將對(duì)Atlas的整體架構(gòu)及設(shè)計(jì)邏輯進(jìn)行詳細(xì)介紹。
2.3.1 邏輯架構(gòu)
Atlas的整體架構(gòu)從邏輯上劃分,可分為四層:
服務(wù)接口層:Atlas的接口層是直接暴露給用戶的,用戶通過(guò)接口層進(jìn)行任務(wù)的詳細(xì)配置,例如需要使用的分析及處理算法組合,編碼器及參數(shù)設(shè)置,硬件(GPU)加速方式等。此外,Atlas也提供命令行驅(qū)動(dòng)、API集成等多種調(diào)用方式,用戶可以根據(jù)自身需求靈活地搭建服務(wù)。
分析及邏輯決策層:Capella是Atlas的分析及邏輯決策層。這一層主要有兩個(gè)功能,一是進(jìn)行內(nèi)容的特征分析及質(zhì)量評(píng)估;二是根據(jù)分析結(jié)果 ,配置后續(xù)操作的“菜譜”(Recipe)。這里的“菜譜”包括后續(xù)算法服務(wù)層會(huì)使用哪些算法,以及這些算法的順序和配置:比如用H.264/AVC還是用H.265/HEVC編碼,采用怎樣的編碼配置;如何做前處理,包括做哪些處理及處理的順序和參數(shù),是先做去噪還是先做色彩增強(qiáng),強(qiáng)度如何?
算法服務(wù)層:這是最核心的一層,主要分為三大模塊,其一是音頻、視頻及圖像編解碼器(Codec)模塊;其二是圖像算法引擎VisionEngine,是包含各種自研圖像算法的工具集;其三是EVA(Elastic Video AI Inference),它是一個(gè)AI網(wǎng)絡(luò)推理庫(kù),主要包含一些針對(duì)視頻和圖像的自研深度學(xué)習(xí)網(wǎng)絡(luò)。
硬件層:作為最底層,包含了CPU鏈路、GPU鏈路及混合鏈路。
2.3.2 視頻處理編碼鏈路
我們通過(guò)線上常見(jiàn)的一個(gè)轉(zhuǎn)碼任務(wù)流程為例,來(lái)進(jìn)一步說(shuō)明Atlas的架構(gòu)。在一般轉(zhuǎn)碼任務(wù)中,我們會(huì)首先對(duì)視頻進(jìn)行前處理,然后再做編碼。用戶在搭建類似服務(wù)時(shí),可以直接通過(guò)Atlas內(nèi)的Codec管理器和Filter管理器選擇希望使用什么類型的編碼器和前處理算法。在配置前處理算法時(shí),如果選擇傳統(tǒng)算法,就會(huì)調(diào)用圖像引擎VisionEngine中的相應(yīng)算法能力;如果需要深度學(xué)習(xí)算法,就會(huì)通過(guò)EVA引擎獲得網(wǎng)絡(luò)推理能力,為減少讀取網(wǎng)絡(luò)造成的延遲,EVA將作為一個(gè)Daemon啟動(dòng),通過(guò)進(jìn)程間通信傳輸推理數(shù)據(jù)。
在GPU硬件加速方面,Atlas全鏈路支持NVIDIA平臺(tái)的編解碼、處理、推理能力,包括NVENC/NVDEC、CUDA、TensorRT等原生API和框架,同時(shí)也會(huì)提供CUDA版本的PyTorch和Tensorflow給用戶做驗(yàn)證和測(cè)試。在Intel平臺(tái)上,也可以通過(guò)MediaSDK、OpenVINO等框架獲得Intel GPU的計(jì)算能力。
Atlas支持全GPU鏈路,全CPU鏈路,及混合鏈路三種任務(wù)執(zhí)行方式。全GPU鏈路,即從解碼到轉(zhuǎn)換、推理,再到前處理以及編碼的全流程都部署在GPU上,會(huì)提供最高的吞吐率。這樣的鏈路比較適合一些對(duì)壓縮比追求沒(méi)有那么高的工作,比如預(yù)覽或存儲(chǔ)。而混合鏈路則可以提供極致的壓縮及處理效果。一方面,為追求極致的壓縮率,Atlas會(huì)使用CPU運(yùn)行軟件編碼器;另一方面,當(dāng)需要網(wǎng)絡(luò)推理的算法時(shí),用戶可以在GPU上進(jìn)行推理的加速。這樣做的優(yōu)點(diǎn)在于既可以利用深度學(xué)習(xí)網(wǎng)絡(luò)取得更好的視頻處理結(jié)果,也可以得到極致的壓縮比。而混合鏈路的缺點(diǎn)是其整體的I/O開(kāi)銷會(huì)比較高,需要把數(shù)據(jù)在GPU和CPU之間互傳。簡(jiǎn)言之,無(wú)論是GPU鏈路、CPU鏈路還是混合鏈路,用戶可以根據(jù)具體工作進(jìn)行選取,選擇需要使用到的具體鏈路。
2.3.3 交付、集成及部署
在最終交付時(shí)我們會(huì)將底層的算法庫(kù)、第三方庫(kù),打包Atlas整體鏡像。當(dāng)業(yè)務(wù)方獲得Atlas鏡像后,就可以在上面直接構(gòu)建自身服務(wù)的鏡像。此方法的優(yōu)點(diǎn)在于集中度高、性能可控性高,升級(jí)的耦合度比較低。同時(shí)我們的技術(shù)團(tuán)隊(duì)正在致力于把底層再拆解成單獨(dú)的小鏡像來(lái)做微服務(wù),提高部署的靈活性。
3 Atlas核心能力——視頻編解碼
以上是Atlas的整體架構(gòu)介紹,接下來(lái)將著重介紹Atlas的核心能力之一,視頻圖像壓縮中的視頻編解碼能力。在進(jìn)入正題前,希望先和讀者分享一些我們從客戶價(jià)值出發(fā)而產(chǎn)生的思考,比如在日常編解碼開(kāi)發(fā)過(guò)程中遇到的各種難點(diǎn)和問(wèn)題,我們是如何解決這些困難的,如何更高效的將研究中的算法落地,如何更好的理解和服務(wù)用戶,以及應(yīng)當(dāng)如何體現(xiàn)編解碼開(kāi)發(fā)者的價(jià)值。
3.1 編解碼開(kāi)發(fā)與用戶體驗(yàn)之間的鴻溝
在編解碼開(kāi)發(fā)到最終全量上線改善用戶體驗(yàn)的過(guò)程中,一般會(huì)經(jīng)歷如下三個(gè)階段:離線開(kāi)發(fā)階段,實(shí)際測(cè)試階段,真實(shí)上線階段,而三個(gè)階段之中又有著多個(gè)復(fù)雜的鴻溝。
離線開(kāi)發(fā)階段一般代表算法或工具的開(kāi)發(fā)初期,或標(biāo)準(zhǔn)建立過(guò)程中的早期階段,在這個(gè)階段主要關(guān)注的是“信號(hào)保真度” (PSNR/MSE) 和“碼率” (Bitrate) 之前的權(quán)衡,一般會(huì)通過(guò)少量測(cè)試序列,計(jì)算BD-Bitrate及BD-PSNR等客觀指標(biāo)。但這些指標(biāo)是很難反映工具或算法在真實(shí)場(chǎng)景的有效性的。
而在實(shí)際測(cè)試階段,主要關(guān)注的是視頻“主觀質(zhì)量”與“真實(shí)文件大小”之前的平衡。而這一階段與離線開(kāi)發(fā)階段之間,其實(shí)已經(jīng)存在一個(gè)巨大的鴻溝 (GAP1):
GAP1-1:信號(hào)保真度本身無(wú)法反映主觀質(zhì)量。為了能夠評(píng)估算法或工具帶來(lái)的主觀質(zhì)量的變化,業(yè)界一般是通過(guò)例如SSIM、VMAF等客觀指標(biāo)來(lái)嘗試逼近主觀質(zhì)量,但這種方法得到的結(jié)果和真實(shí)主觀質(zhì)量的相關(guān)性有限;更極端的方案,就是對(duì)于每個(gè)工具及算法都進(jìn)行主觀質(zhì)量評(píng)估,根據(jù)所得的MOS/DMOS評(píng)分獲得真正的主觀質(zhì)量變化,但是這個(gè)方案對(duì)人力和時(shí)間的需求都很大。
GAP1-2:碼率與真實(shí)文件大小的區(qū)別可能很大。真實(shí)的文件大小會(huì)受到音頻編碼、視頻內(nèi)容、目標(biāo)質(zhì)量的檔位、文件格式的冗余等因素的影響,會(huì)和簡(jiǎn)單估計(jì)視頻碼率產(chǎn)生很大的差異。同時(shí)在一般離線測(cè)試的時(shí)候,為了保證算法迭代效率,測(cè)試集最多幾十個(gè),最多到百級(jí),是無(wú)法代表千變?nèi)f化的視頻內(nèi)容的,尤其是對(duì)于UGC短視頻內(nèi)容,場(chǎng)景更是紛繁復(fù)雜,大千世界無(wú)奇不有。在快手,我們的實(shí)際測(cè)試階段一般每天要進(jìn)行數(shù)萬(wàn)至十萬(wàn)級(jí)別視頻的線上環(huán)境測(cè)試,測(cè)試一般進(jìn)行一周左右才能看到線上真實(shí)文件大小的變化。而根據(jù)我們技術(shù)團(tuán)隊(duì)的實(shí)際經(jīng)驗(yàn),實(shí)際測(cè)試階段的文件大小變化和離線測(cè)試的碼率變化的差距甚至可能達(dá)到50%~100%。
是否跨越這個(gè)階段就萬(wàn)事大吉了呢?當(dāng)然不是。從第二階段到第三階段,即真實(shí)上線階段之間,鴻溝依然巨大:
GAP2-1:主觀質(zhì)量和用戶行為之間的關(guān)系依然是一個(gè)迷團(tuán)。即使在測(cè)試階段對(duì)主觀質(zhì)量有了一定的評(píng)估,主觀質(zhì)量的變化首先需要被用戶感知或感受之后,才會(huì)對(duì)用戶的行為產(chǎn)生影響,這種影響對(duì)單個(gè)用戶或單次行為可能是非常微小的,比如多看了一個(gè)視頻或者某個(gè)視頻多看了幾秒。但現(xiàn)階段學(xué)術(shù)界對(duì)人類視覺(jué)系統(tǒng)(HVS)的運(yùn)作規(guī)律依然知之甚少,所以我們目前只能通過(guò)平臺(tái)的億級(jí)用戶的百億級(jí)播放量,來(lái)進(jìn)行大規(guī)模A/B實(shí)驗(yàn)和觀察用戶的QoE/QoS指標(biāo),從側(cè)面反映及理解用戶的真實(shí)行為。
GAP2-2:真實(shí)文件大小和最終線上帶寬節(jié)省的差距不容忽視。很多人認(rèn)為真實(shí)文件的大小的變化就是最后線上帶寬成本的變化,這是一個(gè)常見(jiàn)的錯(cuò)誤認(rèn)知。問(wèn)題在于每個(gè)作品有其不同的熱度,播放量少則十幾次,多則百萬(wàn)次甚至千萬(wàn)次。每個(gè)視頻的碼率的節(jié)省或者增加需要乘以每個(gè)作品的播放次數(shù),才能計(jì)算出最終帶寬的變化結(jié)果。同時(shí)還要考慮設(shè)備的限制,線上的下發(fā)邏輯等,而這些條件都會(huì)影響線上不同檔位及不同標(biāo)準(zhǔn)的用戶端覆蓋率,全部考慮在內(nèi)后才能推測(cè)出真實(shí)線上帶寬的變化。
因此只有跨越了這些鴻溝,最終到達(dá)第三階段即真實(shí)上線階段,才能夠體現(xiàn)算法、工具和標(biāo)準(zhǔn)是否對(duì)用戶有影響,是否對(duì)用戶體驗(yàn)有貢獻(xiàn),才能夠體現(xiàn)編解碼開(kāi)發(fā)者的真正價(jià)值。借用某部電影中的一句臺(tái)詞來(lái)總結(jié)這三個(gè)階段,就是九個(gè)字,第一個(gè)階段“見(jiàn)自己”,第二個(gè)階段“見(jiàn)天地”,第三個(gè)階段“見(jiàn)眾生”。
3.2 我們的做法
接下來(lái)將詳細(xì)介紹我們團(tuán)隊(duì)日常是如何來(lái)進(jìn)行開(kāi)發(fā),跨越多個(gè)鴻溝突破這三個(gè)階段,提高用戶最終體驗(yàn)的。
3.2.1主觀質(zhì)量盲測(cè)標(biāo)注平臺(tái)
我們依照VQEG標(biāo)準(zhǔn)規(guī)定的方式,構(gòu)建了快手的主觀質(zhì)量盲測(cè)及標(biāo)注平臺(tái)以及一系列的測(cè)試標(biāo)準(zhǔn),在內(nèi)部已推廣至多個(gè)部門及團(tuán)隊(duì)。同時(shí)我們聯(lián)合QA團(tuán)隊(duì),培養(yǎng)了一批“黃金眼”。通過(guò)組織“Gold Eye敏感性測(cè)試”,篩選出一批觀察入微,對(duì)質(zhì)量變化敏感度高的同學(xué)作為“黃金眼”的備選團(tuán)隊(duì)。
而對(duì)于我們開(kāi)發(fā)的每一個(gè)算法及工具,在上線之前,我們都會(huì)聯(lián)合QA團(tuán)隊(duì)和“黃金眼”團(tuán)隊(duì)的成員一起來(lái)進(jìn)行主觀評(píng)測(cè),取得MOS/DMOS分?jǐn)?shù)。同時(shí)仔細(xì)分析每個(gè)視頻質(zhì)量的優(yōu)劣。經(jīng)過(guò)多維度的對(duì)比評(píng)價(jià),通過(guò)主觀質(zhì)量盲測(cè)的算法和工具才能進(jìn)行到下一個(gè)A/B測(cè)試的階段。
3.2.2 音視頻相關(guān)主要指標(biāo)-評(píng)估收益
A/B 測(cè)試是針對(duì)一個(gè)變量的兩個(gè)版本,來(lái)觀察用戶的不同反應(yīng),從而測(cè)試哪個(gè)版本更有效的一種方法。例如:將視頻按照不同的算法壓縮兩個(gè)版本,下發(fā)至千萬(wàn)級(jí)的實(shí)驗(yàn)用戶組和對(duì)照用戶組,然后觀察這兩個(gè)用戶組的行為。通常來(lái)說(shuō),觀察的指標(biāo)為兩大類:QoS和QoE。
QoS指標(biāo)包括首屏?xí)r長(zhǎng)、卡頓率、丟幀率等等,和用戶體驗(yàn)息息相關(guān)。而且我們團(tuán)隊(duì)自三年前就持續(xù)關(guān)注用戶播放時(shí)的CPU、Memory和功耗情況,而這些指標(biāo)對(duì)用戶體驗(yàn)也影響深遠(yuǎn)。
QoE指標(biāo)包括播放量、人均播放時(shí)長(zhǎng)、播放完成率等等,是用來(lái)衡量最終優(yōu)化效果的指標(biāo),QoE才是反映用戶在平臺(tái)的停留時(shí)長(zhǎng)、反映用戶對(duì)平臺(tái)是否喜愛(ài)的因素。一般對(duì)算法A/B實(shí)驗(yàn)的原則是必須要將QoE全部指標(biāo)優(yōu)化至正向或持平的狀態(tài)才能上線,而QoE負(fù)向的話是不可能上線的。很多算法在離線測(cè)試階段,甚至是實(shí)際測(cè)試階段都有著不錯(cuò)表現(xiàn),但往往上線A/B測(cè)試后才發(fā)現(xiàn)QoE指標(biāo)不理想。所以只有通過(guò)在真實(shí)上線階段,才能反映算法和工具對(duì)用戶體驗(yàn)是否真的有正面影響。同時(shí)我們也會(huì)分多個(gè)維度來(lái)分析QoE和QoS的指標(biāo),包括客戶端、手機(jī)系統(tǒng)、版本、機(jī)型、粉絲數(shù)、地域、同時(shí)在線人數(shù)等等??焓謨?nèi)部有一個(gè)完善的流媒體大數(shù)據(jù)平臺(tái),部門內(nèi)也有專門的數(shù)據(jù)分析師和算法的開(kāi)發(fā)同學(xué)一起結(jié)合自動(dòng)化工具來(lái)分析這些指標(biāo)。
3.3 快手短視頻編碼能力發(fā)展歷程
這是我們首次對(duì)外披露快手的短視頻轉(zhuǎn)碼能力,也是我們部門多個(gè)團(tuán)隊(duì)合作的一個(gè)階段性總結(jié)。由于線上帶寬數(shù)據(jù)涉及公司機(jī)密,所以這里只能以“實(shí)際文件大小”數(shù)據(jù)來(lái)間接描述整體的能力。
3.3.1 時(shí)間線
“K系列編碼器”是快手自研的一系列視頻及圖像編碼器的統(tǒng)稱,包括K264,K265以及KVC。涵蓋了四種不同的編解碼標(biāo)準(zhǔn),其中包括由ITU-T與ISO/IEC聯(lián)合發(fā)布的國(guó)際標(biāo)準(zhǔn)H264/AVC和H.265/HEVC;由快手自研的視頻編碼標(biāo)準(zhǔn)KVC以及自研圖像編解碼標(biāo)準(zhǔn)KPG。
如圖中所示,快手的線上短視頻轉(zhuǎn)碼共經(jīng)歷了兩次重大的技術(shù)迭代。自2018年7月起,我們開(kāi)始進(jìn)行自研編解碼器的研發(fā)和上線。2018年底我們自研的K265全面上線,快手由H.264/AVC時(shí)代進(jìn)入到H.265/HEVC的時(shí)代,而整個(gè)H.265/HEVC時(shí)代線上的文件大小下降了56%。
自2018年底開(kāi)始,我們開(kāi)始了自研編解碼標(biāo)準(zhǔn)KVC項(xiàng)目以及對(duì)應(yīng)編解碼器的開(kāi)發(fā)。在經(jīng)歷了艱苦卓絕的算法研發(fā)以及大量的A/B實(shí)驗(yàn)后,KVC于2020年初全量上線,這也標(biāo)志著快手提前進(jìn)入了編解碼的“次時(shí)代”,進(jìn)入了快手自研編解碼標(biāo)準(zhǔn)--KVC的時(shí)代。對(duì)比H.265/HEVC當(dāng)時(shí)壓縮比最高的檔位Unicorn,線上的文件大小下降了27%。
而上述這些數(shù)據(jù),是快手線上每天千萬(wàn)級(jí)新增視頻,每天百億次用戶播放的真實(shí)數(shù)據(jù),是經(jīng)過(guò)多次實(shí)際A/B實(shí)驗(yàn)后,分析優(yōu)化跨越鴻溝后的成果,是兩年來(lái)多個(gè)部門團(tuán)隊(duì)通力合作,持續(xù)迭代的心血。
能夠在線上實(shí)際應(yīng)用場(chǎng)景取得如此的收益,其實(shí)也得益于我們的技術(shù)團(tuán)隊(duì)深度參與多個(gè)國(guó)際視頻標(biāo)準(zhǔn)的制定,在視頻技術(shù)的最前沿有著深厚的積累和貢獻(xiàn)。在新一代視頻壓縮國(guó)際標(biāo)準(zhǔn)H.266/VVC的制定中,快手提交了過(guò)百件技術(shù)提案,并有數(shù)十件技術(shù)提案獲采納進(jìn)入H.266/VVC標(biāo)準(zhǔn)。而在AVS3標(biāo)準(zhǔn)的制定中,快手從2020年3月開(kāi)始參與,已有12件技術(shù)提案獲采納進(jìn)入AVS標(biāo)準(zhǔn)。
3.3.2 指標(biāo)收益
這里我們給出K265以及KVC上線后,線上真實(shí)的指標(biāo)收益。文件大小的收益其實(shí)與我們離線測(cè)試的結(jié)果有著很大的不同,這也是我們?cè)谥拔闹刑岬降膬蓚€(gè)階段的鴻溝之一。另一方面,QoE及QoS的結(jié)果在沒(méi)有進(jìn)行線上A/B實(shí)驗(yàn),僅憑離線測(cè)試階段的測(cè)試是完全無(wú)法預(yù)測(cè)和衡量的。
K265-Romeo上線后,除了明顯的帶寬成本收益外,QoE在人均觀看時(shí)長(zhǎng)和人均播放次數(shù)上也獲得了一定增益。而QoE上的收益我們猜測(cè)是因?yàn)镼oS的大幅提升,從而影響到了用戶行為。
KVC-1.0上線時(shí),成本收益顯而易見(jiàn),卡頓率也明顯下降,但QoE收益基本保持不變。我們推斷可能是因?yàn)橹跋陆档姆纫脖容^大,用戶已進(jìn)入QoS的舒適區(qū),感受就沒(méi)有那么明顯。
3.4 編碼端優(yōu)化算法:CAQ + CARDO
在K系列編碼器中,我們有著大量的自研工具及算法優(yōu)化,而大部分的算法及工具都是經(jīng)過(guò)了多次上線實(shí)驗(yàn)的反饋迭代而成。CAQ就是其中的一個(gè)很典型的例子。
CAQ這個(gè)工具比較有趣,因?yàn)槠渖暇€后的收益比實(shí)際測(cè)試階段的收益要高出50%,在同等文件大小下主觀質(zhì)量提升明顯,但同時(shí)部分客觀指標(biāo)會(huì)下降,所以并不適合離線測(cè)試評(píng)估或進(jìn)行“打榜”,但對(duì)于真實(shí)用戶體驗(yàn)有明顯提升。下面簡(jiǎn)要介紹一下CAQ的算法。
其算法的主要思想如下:CAQ算法中的第一部分類似x265中AQ的操作,在獲取視頻幀后對(duì)其進(jìn)行內(nèi)容分析,獲得JND Factor從而計(jì)算出QP偏移。JND Factor包含三個(gè)部分:一是圖像塊的平均亮度值;二是紋理強(qiáng)度(紋理強(qiáng)度指的是首先做一個(gè)邊緣檢測(cè),得到塊級(jí)邊緣強(qiáng)度和梯度方向);三是紋理特點(diǎn),例如是平滑、邊緣、規(guī)則紋理(例如網(wǎng)格)、不規(guī)則紋理(例如草地或噪聲)等。根據(jù)這三個(gè)特征,再結(jié)合內(nèi)容的運(yùn)動(dòng)特性,從而得到塊級(jí)的QP偏移。但是,直接使用這些QP偏移可能會(huì)造成幀或序列級(jí)別的碼率波動(dòng)較大,為了控制這種波動(dòng),我們使用一個(gè)模型來(lái)預(yù)測(cè)CAQ可能產(chǎn)生的碼率變化,從而再次修正QP偏移。同時(shí)結(jié)合視頻內(nèi)容特征,在CAQ和自適應(yīng)CUtree這兩個(gè)工具所產(chǎn)生的QP偏移值之間進(jìn)行合理選擇,讓那些主觀質(zhì)量提升不明顯的序列能夠最大化客觀性能收益。
CAQ算法中的第二個(gè)部分CARDO主要包括兩個(gè)算法:第一,感知量化(perceptual quantization),即在量化過(guò)程中保留主觀失真敏感度高的區(qū)域的部分量化系數(shù);第二,融合邊緣梯度失真(edge-based gradient difference)的率失真優(yōu)化,即在率失真代價(jià)函數(shù)中的失真部分加入邊緣梯度失真(edge-based gradient difference),同時(shí)對(duì)λ的選擇進(jìn)行調(diào)整。
下圖是整體方案應(yīng)用后的一個(gè)例子。我們將藍(lán)色部分的碼率重新分配給黃色和綠色的部分。如圖可見(jiàn),原來(lái)衣服上珠花的部分其實(shí)分配了大量的比特,但人眼對(duì)復(fù)雜的不規(guī)則紋理并不敏感。當(dāng)我們將這部分碼率拿出來(lái)重新分配給睫毛、人臉等一些細(xì)節(jié)部分時(shí),整體主觀質(zhì)量的提升就會(huì)非常明顯。
4 Atlas實(shí)際應(yīng)用
下面將介紹兩個(gè)Atlas實(shí)際應(yīng)用的例子,分別是CAPE(基于內(nèi)容的處理與編碼)和視頻AI智能增強(qiáng)。
4.1 Atlas-CAPE
Content Aware Processing & Encoding (CAPE) 指的是內(nèi)容自適應(yīng)的處理和編碼,主要可以分為以下幾個(gè)維度:Per-Category、Per-Title、Per-Segment,再細(xì)化的話還有Per-Frame和Per-Block等。這個(gè)概念早已存在,如Netflix和YouTube在線上也有很多這個(gè)方向的應(yīng)用,其最大的難點(diǎn)就在于如何衡量質(zhì)量,及如何尋找到一個(gè)質(zhì)量“足夠好”的工作區(qū)間。
目前快手線上CAPE的應(yīng)用有多個(gè)種類,并大規(guī)模應(yīng)用于短視頻上傳,轉(zhuǎn)碼以及直播等場(chǎng)景。
上圖是一個(gè)Atlas常用的CAPE框架。Capella就是之前在Atlas架構(gòu)中提到的決策和分析層。在決策和分析層中會(huì)主要分析如下幾個(gè)方面:其一,視頻源的Metadata,即視頻的生產(chǎn)類型和上傳途徑等原始信息;其二,進(jìn)行熱度分析,掌握其當(dāng)前的觀看數(shù)、點(diǎn)贊數(shù)等;其三,視頻的基礎(chǔ)數(shù)據(jù),比如寬、高、幀率和碼率;其四,進(jìn)行視頻的時(shí)間和空間復(fù)雜度分析;其五,對(duì)內(nèi)容進(jìn)行基礎(chǔ)特征分析,而基礎(chǔ)特征中包含了模糊程度、噪聲估計(jì)、壓縮失真估計(jì)等等。其六,對(duì)視頻進(jìn)行內(nèi)容理解,基于場(chǎng)景分類做針對(duì)性編碼方案。通過(guò)算法決策模塊可以得出是否要做視頻增強(qiáng),做哪些視頻增強(qiáng),做多強(qiáng)的視頻增強(qiáng),獲得對(duì)應(yīng)的參數(shù),同時(shí)告訴編碼器,應(yīng)當(dāng)使用哪些檔位編碼可能會(huì)比較好。
再舉個(gè)例子——直播推流中的CAPE應(yīng)用。為盡量避免算法變得很笨重,在直播應(yīng)用中實(shí)際用到的分析步驟不多,同時(shí)我們會(huì)降低分析的頻率,約一秒鐘一次對(duì)視頻源進(jìn)行時(shí)間、空間的復(fù)雜度進(jìn)行分析,同時(shí)再附以一些基礎(chǔ)特征的獲取。其中最大的難點(diǎn)是在做直播推流時(shí),移動(dòng)端有很大比例用的是硬件編碼器(如iOS平臺(tái)的VideoToolbox),可配置參數(shù)都比較基礎(chǔ)并且數(shù)量較少,此時(shí)我們會(huì)給出一個(gè)硬件建議編碼參數(shù),來(lái)保證在場(chǎng)景切換或是在一些座談場(chǎng)景時(shí),能夠盡量不要多浪費(fèi)碼率。直播推流CAPE上線后,文件大小降低了約10%,QoE沒(méi)有明顯變化,QoS收益也接近10%。
4.2 Atlas-AI視頻增強(qiáng)
下面介紹Atlas在實(shí)際應(yīng)用中的另一個(gè)例子:AI視頻增強(qiáng)。在Atlas-AI視頻增強(qiáng)算法觸發(fā)策略中,最重要的工作是在分析模塊Capella中完成的。
首先,根據(jù)視頻的分辨率以及導(dǎo)入邏輯,判斷它是不是從別的平臺(tái)導(dǎo)入,是否經(jīng)歷過(guò)多次的壓縮,當(dāng)前的視頻質(zhì)量到底如何,進(jìn)而根據(jù)不同的質(zhì)量選擇不同的模型。另外根據(jù)分辨率,可能會(huì)用到不同種類的SR網(wǎng)絡(luò)或算法,有的是固定上采樣大小,有的是任意上采樣大小。同時(shí)每個(gè)視頻還會(huì)進(jìn)行噪聲和色彩及亮度評(píng)估,看是否需要進(jìn)行降噪處理或HDR優(yōu)化。
目前,經(jīng)由De-Art/SR處理過(guò)的視頻在線上播放端覆蓋率約為10%,并未占用過(guò)多機(jī)器資源。因?yàn)槲覀兗夹g(shù)團(tuán)隊(duì)對(duì)模型復(fù)雜度做了大量的簡(jiǎn)化,在算法精度顯著提升的情況下,速度提升到了最初版本的7倍左右。SR優(yōu)化后實(shí)現(xiàn)了720p/30fps,De-Art優(yōu)化后效果更顯著,從最早版本的7fps提升到50fps。
我們依然在持續(xù)觀察用戶對(duì)于具體效果的感知及行為變化。按照10%的覆蓋率來(lái)評(píng)估的話,De-Art/SR上線后,在播放量和播放時(shí)長(zhǎng)方面的收益非常明顯的,整體的投入產(chǎn)出比(ROI)非常高。
小結(jié)和未來(lái)展望
在快手海量且場(chǎng)景豐富的視頻業(yè)務(wù)背景下,Atlas經(jīng)過(guò)了持續(xù)考驗(yàn)和打磨,已經(jīng)成長(zhǎng)為越來(lái)越標(biāo)準(zhǔn)化、通用化的技術(shù)架構(gòu),我們將繼續(xù)豐富和沉淀算法和平臺(tái)能力,把對(duì)客戶和用戶更具價(jià)值的技術(shù)方案和產(chǎn)品提供出來(lái),以應(yīng)對(duì)國(guó)內(nèi)、海外,點(diǎn)播、直播、實(shí)時(shí)互動(dòng)等多樣化的場(chǎng)景考驗(yàn)。更長(zhǎng)期來(lái)看,我們的團(tuán)隊(duì)希望能夠面向5G+AI時(shí)代的要求,將云端音視頻處理和生成能力向極致的高性能方向不斷深入優(yōu)化,并且保持好奇心,持續(xù)探索各種技術(shù)和業(yè)務(wù)創(chuàng)新的可能性。
責(zé)任編輯:lq
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11073瀏覽量
102615 -
圖像編碼
+關(guān)注
關(guān)注
0文章
26瀏覽量
8303 -
智能視頻
+關(guān)注
關(guān)注
1文章
49瀏覽量
15142
原文標(biāo)題:快手智能視頻圖像編碼處理服務(wù)架構(gòu)
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論