本文來自阿里巴巴淘系技術部 高級算法專家王立波在LiveVideoStackCon 2020線上峰會的分享,從直播背景、直播痛點分析、窄帶高清、云視頻技術趨勢幾方面詳細介紹了如何在確保用戶體驗QOS不變的前提下,實現淘寶直播的技術架構升級和成本大幅縮減。
本次分享內容主要分為五個部分,首先是全民直播大時代的背景介紹,第二是直播痛點分析,第三是淘寶直播窄帶高清技術,第四是音視頻技術趨勢探討,最后是在線互動。 1 背景-全民直播大時代
在疫情的影響下,直播從傳統的秀場應用逐漸滲透到行業的各個領域。包括在線課堂,旅游,政企,房車銷售等等,可以說是全民直播時代已經到來。
在這樣的一個大背景下,過去一年淘寶直播得以快速發展。2019年,淘寶直播擁有了4億+的年度用戶規模,有100萬+年度主播入駐,2000億+年度直播成交以及4000萬+直播商品。春節期間,釘釘在線課堂更是有350萬+的教師主播,為1.2億+中小學生提供了在線課程服務。 2 直播痛點分析
在這么大的一個業務體量下,我們將會面對非常多的難點與挑戰。總的來說,包含以下三個部分,首先是成本,包括帶寬、存儲和轉碼三個方面。其次是用戶體驗,例如畫質,音質,秒開、卡頓和延時。最后是效率方面,例如開播的效率、審核的效率和理解分發的效率。接下來我們就來看一下淘寶在成本和體驗優化方面做了哪些工作。 3 淘寶直播窄帶高清技術 3.1 淘寶直播窄帶高清
淘寶直播有三大核心技術,第一大核心技術是端上窄帶高清。我們采用HEVC編碼實現了720p,25fps,800kbps的壓縮,并且PSNR> 43db/VMAF>90。端上窄帶高清技術主要應用有三個方面:第一是音視頻增強,采用基于AI的圖像增強、美顏和語音增強來提高生產質量。第二是感知處理,采用信源信道聯合自適應編碼。第三是S265編碼器,S265編碼器是業界領先的HEVC編碼器。 第二大核心技術是零轉碼系統,我們實現了端到端原始流生產的和播放,成功的解決了兩個核心的痛點問題:不同網絡速度的兼容和不同播放設備的兼容,后者主要通過高性能解碼器實現iOS,Android和H5三端的100%解碼。 第三大核心技術是低延時技術,我們實現了端到端秒級延時。主要依靠兩個技術,一個是基于RTC的實時直播系統,第二個是S265低延時編碼技術。 3.2 淘寶直播系統架構
如圖所示淘寶直播的系統架構,從生產側來看,有采集、增強、感知處理、S265編碼四個環節。云端我們有邊緣的接入,有中心接入、切片錄制和CDN分發以及邊緣分發。在播放端有擁塞控制、解碼、渲染和顯示。除此之外,在云端還有內容審核,質量監控,內容理解和智能分發。 3.3 端上窄帶高清
生產側的第一個環節是圖像增強,為了提升主觀質量,我們引入了圖像增強技術,對編碼前的視頻做去噪、去抖、紋理增強以及美顏、美型的功能。除此以外,在后處理部分,我們還引入了適時超分和HDR技術來提高觀看質量。在美顏、美型以及圖像處理等方面,我們引入了GPU的技術,包括內存帶寬優化、shader優化、Pipeline優化等等以減少GPU的開銷。
針對音質的優化,我們采用了智能降噪技術。無論是在STO還是PESQ的指標上都顯著高于傳統WebRTC算法,在性能和包大小方面也都可以實現普通設備的覆蓋。下面播放的三段音頻,分別是原始音頻、RTC降噪和阿里降噪音頻。原始音頻我們可以明顯聽到馬路上車呼嘯而過的聲音非常強烈。RTC降噪音頻中降噪產生了一定的效果,但是汽車飛馳而過的呼嘯聲還是非常明顯。而在阿里降噪音頻中,我們可以聽到汽車呼嘯而過的聲音已經基本消失。
生產的第二個環節是感知處理。我們采用信源信道聯合自適應編碼技術。感知處理分為5個方面,首先是ROI區域的感知,我們基于PixelAI人臉檢測加商品檢測,對ROI區域進行提取和重點編碼。第二是場景的感知,不同的場景適合不同的編碼參數,我們通過對場景進行分類,對于不同的場景賦予不同的編碼參數來提高壓縮質量。第三個是智能碼控CARC,我們采用機器學習的碼率控制,對簡單場景賦予較低的碼率,對復雜的場景賦予較高的碼率來實現對帶寬的節省。第四個是網絡帶寬的感知,在網絡比較好的時候,我們會采用比較高的碼率來實現畫質的提升,在網絡不太好的時候,會降低碼率,避免發生帶寬擁塞,由于cdn采用峰值收費,峰谷時間段還可以采用不同碼率策略。最后是設備算力的感知,不同的設備擁有不同的算力,我們可以實時檢測設備的算力情況及時調整編碼的檔次,以此來實現對算力和質量的平衡。
生產的第三個環節是編碼,這又要講到我們核心的S265編碼器,得益于S265編碼器的編碼壓縮技術,我們實現了淘寶直播的720p、800kbs、25fps編碼,相比于業界常見的720p 1600kbps 節省了50%的帶寬。釘釘的在線課堂我們更是把碼率壓縮到了200kbs,并實現了43db以上的質量。S265是淘寶和阿里云共同發起的HEVC編碼器,目前已經實現集團內部的開源,并落地在點播、直播會議等各個場景中。相比起業界優秀的HEVC編碼器,S265在PSNR指標上有比較大的優勢。首先在編碼工具提升方面,我們做了大量工作,實現了HierarchyB、GPB、Bi-Search、Longterm、RDOQ、AdaptGOP等編碼工具,并且對這些工具進行了大量的算法和速度優化。我們還設計了50多種快速算法,比如說Deblock的優化,編碼速度對比X265有1倍以上的提速。在工程上的優化,我們做了浮點轉定點、位寬的縮減、SIMD的優化、冗余去除、訪存效率提升及循環展開等等來提升我們的編碼速度。在框架方面,我們還做了線程調度優化等等。在碼率控制方面,我們對幀級別碼控和塊級別碼控分別進行了優化,并且對2pass編碼進行了原創性的優化來提高2pass編碼的質量。在塊級別碼控中,我們設計了新的CUTree和AQ算法。
下面來看一下S265的幾個典型優化,首先是CU劃分決策,我們把CU劃分決策模塊分成兩個步驟,一是紋理強度決策,通過計算CU的紋理梯度來判別平坦塊和復雜塊,如果是平坦塊就直接退出,如果是復雜塊就繼續向下劃分。第一步可以解決大部分塊劃分的決策問題,但是對于模棱兩可的塊,則需要依靠CNN模型來輔助劃分。我們使用了一個5層網絡的小模型把決策的準確度從72%提升到了96%;這個成果我們跟清華大學劉老師合作發表了一篇論文,在DCC會議上展示。
第二個方面的優化是運動搜索方面的優化。運動搜索是從參考幀尋找最佳匹配塊的過程,包含整像素搜索和分像素搜索,分像素需要做7抽頭或8抽頭插值濾波,計算量大;整像素搜索已經有比較多的快速算法,比如菱形搜索、六邊形搜索及分層搜索,但分像素搜索一直沒有什么好的方法。比如在圖中矩形的整像素周圍,分布著60個分像素點,如果要對分像素點進行全部搜索的話,需要60次,經過優化之后一般需要搜4個、8個或16個點,但搜索次數還是比較多的。我們采用一個二元二次誤差平面方程,用9個整像素點的預測誤差來求解方程的5個系數,再對方程求偏導,可得到最佳分像素點的位置。只需對這個最佳分像素點計算1個1/4差值,就可以完成我們的搜索過程。這個技術在編碼器的整個提速有12%,但bd-PSNR只有-0.016db。這些成果在VCIP 2016上可以看到。
第三個是我們的碼率控制。ABR是較適合直播的一種碼率控制方法。但HM中基于
-
直播
+關注
關注
1文章
248瀏覽量
21408 -
窄帶
+關注
關注
0文章
16瀏覽量
12778 -
高清技術
+關注
關注
1文章
16瀏覽量
14613
原文標題:淘寶直播窄帶高清技術
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論