近年來,內容業務在行業蓬勃發展。淘寶也在積極進行內容化轉型,本次LiveVideoStackCon 2021 上海站大會我們邀請到了阿里巴巴淘系技術高級算法專家——王立波(莊恕),回顧淘寶從圖文到短視頻直播的發展歷程,介紹音視頻算法在其中的應用和未來的投入方向包括編解碼、視頻處理、音頻通訊與互動。
很高興與大家進行交流與分享,首先介紹一下自己,我是來自淘系技術部的王立波,花名莊恕,今天分享的主題是音視頻算法在淘寶中的應用。剛接到這個任務時,覺得題目特別大,可以講的東西特別多,經過考慮我還是決定集中講3個觀點,可以為大家介紹得更詳細。
這三個觀點分別是:視頻壓縮有效降低成本(這個觀點在業界應該已經被大家所接受)、視頻處理提升畫質體驗(隨著阿里云的窄帶高清的推廣,也逐漸被大家接受)、音頻技術是新的生產力(這是淘寶過去1-2年發力探索的方向,希望能夠為行業帶來新的思考)。
01
業務介紹
首先我簡短介紹一下淘寶的內容業務。隨著通信技術的發展,互聯網內容生態從2G時代的文字,過渡到3G時代的圖片,再到4G時代的直播和短視頻;對于淘寶來講,同樣也面臨“內容化”的全面升級。
淘寶從PC走向移動,從圖文走向直播短視頻,從傳統電商走向內容電商再到發現電商、興趣電商。在過去的2020年,淘寶直播的GMV突破4000億,去年雙十一一天之內有超過7億人次觀看淘寶直播;2020年底隨著點淘,逛逛的推出,短視頻成為內容業務發展的新引擎;在這個飛速發展過程中面臨巨大的成本壓力。
02
視頻壓縮有效降低成本
2.1 從圖片壓縮說起
第一個觀點,視頻壓縮有效降低成本。
說起編解碼,可能不得不先提圖片壓縮了,這是一張小小的商品詳情圖,在直播短視頻興起之前,圖片是大家獲取信息主要手段,隨著用戶增長,成本壓力越來越大,過去幾年中,淘寶圖片日均播放量超過千億次,如果通過降低質量來降低成本會犧牲大家的體驗,所以我們希望依靠技術升級來提高壓縮效率。
2.1.1 圖片壓縮標準的演進
大家應該很熟悉圖片壓縮。圖片壓縮實際上是一個去除空間冗余的過程,從標準發展上來看,主要經歷了JPEG,基于VP8內核的WebP,以及HEVC MSP三代。
這里我對各種格式做了一個簡單總結,JPEG是目前使用最廣泛的圖片壓縮標準,從1992年公布至今已經接近三十年,它非常簡單高效。10年前左右,Google基于VP8內核發布了WebP格式。WebP在塊劃分,預測,變化,量化,熵編碼方面比JPEG更優,且增加了Deblock功能;HEVC則比WebP更進一步,通過多個工具的升級來提升壓縮效率,另一方面,由于Tile劃分及Wpp技術的引入,HEVC給Codec工程實現提供很多并行化的手段,這對現代多核CPU來說比較友好。
為了比較三種格式在不同場景數據集下的壓縮效率,我們設計圖中實驗。得出的結論是WebP比JPEG大約提升29%的壓縮性能,HEVC對比JPEG大約提升接近50%壓縮效率。
2.1.2 淘寶自研APG格式
APG是淘寶自研的圖片格式,有三個特點。第一,有非常高的壓縮效率,對比JPEG節省50%碼率,非常接近HEVC;第二,高效率的移動端解碼器,對比Webp減少20%解碼時間;第三,支持Alpha通道和動圖,動圖被廣泛使用的是GIF格式,而GIF沒有考慮到幀與幀之間的相關性,壓縮效率不高,而APG對比GIF節省10倍體積;
除此之外,我們對整個系統的架構方面也進行了大量工作,比如高并發實時響應、CDN的下發策略、存儲和計算分離,多內容災等策略,最終實現了淘寶千億級的實時圖片處理系統,在大大節省業務成本的同時也保障了畫質體驗。
2.1.3 內容業務進化為視頻為主
隨著內容業務的進化,視頻和直播占據了主要流量。一方面信息表達從空間維度拓展到時間維度,另一方面,分辨率也提升到720P,1080P甚至4K,消費時長也成倍增長,(剛才陳老師有數據,每個人花費在視頻的平均時間可能有好幾十分鐘)。我們也知道,每一代視頻壓縮標準相比上一代有50%的碼率節省,從MPEG4到H.264/AVC到H.265/HEVC,再到去年發布的的H.266/VVC,很自然我們會想到通過升級編碼標準來節省視頻成本。
2.1.4 HEVC在視頻業務落地挑戰
首先我們探討一下HEVC在視頻業務落地的挑戰。HEVC標準在2013年公布已有8年時間,但直到最近幾年才在業務上大規模落地,這里主要有以HM下幾個原因:
首先是編碼速度,H265的官方模型HM,在普通PC上編碼720P視頻時只能達到0.1fps,想象一下,壓縮一段十分鐘的視頻需要花費一天甚至幾天的時間。業界最好的開源編碼器X265,在慢速檔也只有6.8fps,距離30fps實時編碼的需求有相當大的差距;
其次是編碼質量,由于復雜度的原因,X265僅比X264節省18%的碼率,遠遠達不到HEVC相比AVC理論上的上限值(HEVC標準在設計時以50%的碼率節省為目標);
第三是碼率控制,業界有許多場景的碼率控制方法,比如ABR、CBR、CRF,但現在實時音視頻的業務場景非常復雜,無法直接使用這樣的碼率控制方法;
第四是解碼的兼容性和性能,也是大家普遍關心的問題。用戶觀看環境多種多樣,有Android、IOS、Web的H5觀看,H265在H5上的支持不太好,限制了它的發展,硬解設備兼容性也不完善,所以在解碼兼容性方面也面臨著很大的挑戰。
2.1.5 S265編碼內核優化
S265編碼器是2017開始研發的,花費三年多時間使之達到較好的狀態。我們主要在編碼工具、快速算法、工程優化、碼控方法、框架優化方面做了大量的優化工作從而提升壓縮效率和編碼速度。
下面為大家詳細介紹一下速度優化的相關技術。
1、Cu深度預測算法,HEVC的塊劃分從64劃分到8*8,深度有4層,如何預測出CTU的劃分深度是具有挑戰性的事情。HM為了確保編碼性能會對每一層都計算其RDcost,我們這里結合紋理復雜度、時空域相鄰塊及前處理運動信息,做到比較準確的Cu深度預測。進一步深度預測方面有許多研究,比如一些機器學習,深度學習的方法能夠精準預測塊的劃分層級。
2、自適應的EarlySkip算法和RecursionSkip算法。這兩個算法比較類似,EarlySkip的目的是在本層跳過其它模式的計算,而RecursionSkip目的是跳過當前層不再Split。X265也有類似的技術,我們比X265更進一步,做RS時會同時考慮skip和merge模式子塊的satd,做ES時,會同時考慮最佳模式的cost大小避免殘差過大,我們的結果做到在相同速度條件下對比X265相當程度的節省碼率。
3、All Zero Block的檢測。如果一個塊經過量化后是全零塊,就沒有必要進行RDO及編碼了,但怎樣預測一個塊是All Zero Block。我們發現一種方法可能適合于一種大小的塊,在8*8中比較準確,但放在32*32中不可用,所以要根據塊大小及內部紋理強度,更加精確地預測出是否是All Zero Block。
4、Fast Intra Prediction。這個技術有很多人研究,H.265總共有35種預測方式,如何快速找到預測角度,有許多相關論文。我們使用Bayes估計模型,在橫向及縱向找到準確方向,再去做細分角度預測,提高角度預測的速度。
5、分像素的搜索。傳統的分像素的搜索在整像素最佳點上下左右找4或8個點,相對來說計算量比較大,根據整像素結果通過誤差平面估計模型推導出分像素點的位置,從而節省分像素的計算個數。
6、多參考幀的選擇。為了提高壓縮效率,現在的編碼器會選擇更多參考幀,比如在一個方向選擇3到4個參考幀,我們會根據參考幀的質量,距離來做加權,選擇適合的參考幀。在拿到一個比較好的結果后如何提前跳出其它參考幀的遍歷?多參考幀是提升壓縮質量的一個很好選擇,但需要避免計算復雜升高。
7、Distortion的快速估計。在RDO過程中要對誤差進行仔細估計,如果用傳統下的SATD做的話,效率不高,但如果做完整的RDO計算非常耗時,所以我們有殘差的預估模型,從量化后的系數中用模型推導出Distortion的結果避免再做反量化,反變化。還有像Bits估計,RDCost的另一個分量是Bits代價,用一次完整的熵編碼會非常耗時,如果用一個分段線性模型能夠估算出來Bits來,我們就可以快速做出RDO的計算。
其它的比如Deblock,SAO優化偏一些工程方面手段。
除了快速算法之外,我還對壓縮性能做了一些總結,速度不變的前提下,相比于X265,我們有》30%的性能增益。我們的編碼器在以下幾個方面有性能收益:
1、第一個碼率控制。碼率控制的目標是把碼率分配到更有價值的地方。它分幀級別碼控和塊級別碼控。在幀級別碼控中,我們對I幀碼控和P幀碼控做了精確的預分析,在塊級別碼控中,我們設計了增強型的Cu-tree算法。
2、分層B幀以及參考結構的優化。分層B幀在實現方面不難,對壓縮效率方面有大的幫助。前面介紹了GOP結構的優化,我們會對參考幀的選擇會做權衡。
3、大家知道在靜止場景下,分層越多壓縮效率越高,但在運動場景就不那么有效,所以我們實現了自適應的GOP Size,并自研了Scenecut算法。能夠適應不同運動強度、場景切換的需求包括淡入淡出的需求。
4.此外,在Bi-Search,GPB,LTR這幾個工具,在開源軟件X265是沒有的,但對提高預測效率很有幫助;MCTF工具對編碼噪聲的去除非常有幫助,我們將這幾個技術加入到S265之后獲得了5%以上的BD-rate收益。
5、2-pass是在求解一個全局最優的Qscale,它在離線轉碼場景中被用到,允許對視頻做更多分析,但在求解過程中,失真度量是MSE,我們對度量函數進行了重新推導,獲得5%壓縮性能;
6、Dynamic CRF和Pboffset,常規做法是是固定幀級P,B幀的Offset,我們會根據幀的復雜度來調節幀級QP值;
7、AQ和RDO的代價計算通常基于MSE,但如果是針對SSIM指標的話,可以推導SSIM的模型,RD也一樣。
8、針對會議場景,我們還實現了IBC工具,對PPT投屏有幫助。并專門設計了對屏幕內容優化的搜索算法,傳統的快速算法如菱形搜索、六邊形搜索在SCC場景下效率很低,很難找到最優解,但如果用自研的算法搜索就有較好的效率提升。
上述是S265技術的介紹,記得在2016年的時候,金山KS265第一次參加MSU比賽獲得了非常好的成績,后來國內有不少同行參賽也獲得了不錯的名次。阿里巴巴S265從2017年開始投入研究到2020年首次參加MSU比賽, 我們在比賽中獲得了3項第一:1080P 30FPS PNSR指標第一、1080P 1FPS PNSR指標第一、1080P 30FPS主觀質量第一。
2.2 場景自適應編碼
除了核心編碼器之外,在編碼器應用方面,我們還自研了一套場景自適應編碼方法,分為三個步驟:
1、視頻分析:利用機器學習方法做視頻切分,并得到高層語義分類,比如動畫,體育,秀場,商品介紹等;
2、另一個維度看利用信號分析手段檢測出視頻的底層特征,比如運動強度,紋理特征,噪聲強度,亮度特征等,根據高低維度信息決定編碼參數。
3、自適應決策引擎(ADE):根據語義特征和信號特征以及網絡狀況,決策出最佳編碼參數組合。這個決策過程被建模為一個帶約束優化模型;
2.3 S265解碼提升覆蓋率
一直以來,H265的解碼兼容性是大家關心的話題,假如生產端編碼出265碼流,但播放端不能支持265解碼,需要在服務端轉碼成264格式,這不僅不能減少CDN帶寬,反而會增加轉碼成本。在解碼這一側我們做了很多工作:
1、硬解碼適配。對市面上基本所有機型(》1000款)都進行了適配;
2、自研高性能Native H265解碼器,在小米5 720P的設備上做測試得到240幀左右的速度,通過很低的功耗實現實時解碼。
3、H5的解碼。H.265在H5中沒有支持,我們基于WebAssembly技術來支持H5的播放。目前可以做到在i7電腦上1080P 30fps的實時解碼,CPU消耗在30%以內;
2.4 淘寶編碼器落地歷程
基于以上的編解碼內核和應用方面的探索,我來介紹一下淘寶編碼器的落地歷程。2017年開始投入S265的研究,經過一年多時間,開始在直播業務的落地;2019年的Q1第一版上線后結果不算太好,大約節省30%碼率;2020年Q1第二版上線后節省40%碼率;今年的Q1第三版結合窄帶高清技術實現了50%碼率節省。短視頻方面,我們嘗試將S265應用到淘寶短視頻轉碼,2019年Q3第一版上線,2020年上線第二版。
基于在S265核心編碼器上的積累,我們從2020年Q2開始了S266編解碼器的研發工作,并率先在行業內公布了可商用的S266解碼器。
解碼器方面對比VTM實現單核3.5倍提速,多核16倍提速;在高端的手機(IPhone12、P40)實現4K 30FPS解碼,低端手機720P雙核實現30FPS解碼。720P內存消耗《35m《 span=“”》和Binary《1m《 span=“”》,對大型APP來說非常關鍵,包過大時安裝下載會受阻。
我們內部正在做VVC編碼器,目標是1FPS Slow檔對比X265 Veryslow節省50%碼率;30FPS Fast檔對比X265 Medium節省40%碼率。大家知道VVC比HEVC會更慢,一段1分鐘的4k視頻用HEVC的HM壓縮需要幾天,而如果用VVC的VTM則可能需要一個月,時間消耗會非常長。目前我們Slow檔已經做到比VTM提升100倍速度但是壓縮效率接近。
總結一下,淘寶的S265智能編碼方案目標是讓視頻更清晰,覆蓋所有業務場景,包括圖片壓縮、會議SCC、直播、云轉碼甚至云游戲。
業務策略上包括場景分類自適應、智能碼控、針對不同場景的延時需求,做延時的適配及優化(在非常低的延時下達到接近不限延時的壓縮效率)、算力自適應(根據不同的設備自適應調節編碼的速度檔次)。
編解碼內核包括碼控及前處理、編碼工具集、快速算法,編碼框架等優化。系統平臺包括基于ARM平臺的(armV7/arm64)及X86實現(SSE/AVX)、目前在考慮基于FPGA、ASIC的實現,還有質量評價系統和訓練集群來輔助編碼器研發。
03
視頻處理提升畫質體驗
下面介紹視頻處理提升畫質體驗的觀點。
3.1 視頻處理提升畫質
視頻失真來源于很多方面:包括過曝失曝、縮放、失焦、頻閃、色彩損失、壓縮損失、噪聲、抖動、幀率下采樣。我們有自己的視頻增強工具集做對應適配比如去塊失真(DeBlk)、超分辨率(偏向端側的和服務端不同版本的模型)、紋理細節增強、視頻去抖(DEI)、色彩增強、暗光增強、時空域去噪。
3.2 淘寶短視頻窄帶高清轉碼
淘寶短視頻的整個轉碼遷移到窄帶高清技術上,從視頻生產鏈條分為內容編輯、上傳(上傳要求上傳成功率高、速度快,我們有多PASS上傳,切分上傳、轉碼、審核(有低質、失真視頻需要篩選)、播放(根據播放設備能力做后處理及渲染)。
向大家介紹一下轉碼服務,它的核心技術是窄帶高清和S265,分別有兩個視覺處理模型。首先是窄帶高清的處理模型包括質量分類,細小紋理去除、脫焦區域弱化(節省碼率)、易感知紋理增強(增強視覺體驗)、人臉保護(避免過度增強引起體感不好)、馬賽克修復、去隔行掃描。
S265視覺壓縮模型有三個點,人眼感知與失真拐點(BD-rate曲線剛開始較陡,向后較緩,要找到高性價比的點,感覺不出更多的失真又可以達到合適碼率)、碼率與分辨率甜蜜拐點(不同碼率在不同內容上適合于不同分辨率壓縮。如果一個非常低的碼率300K強行壓縮1080P出來都是塊主觀體驗很差,如果壓縮540P、360P可以獲得更高的視覺體驗)、場景分類編碼(不同分類場景適合不同編碼參數、碼率的選擇)。
3.3 電競場景中的美顏
在內容生產中美顏作為一項基礎功能,已經被人們廣泛接受,但是常規美顏在電商場景中存在一些問題,比如過度美化,商品變色,背景模糊,資源消耗大等等;在PixelAI美顏中,我們使用了Face3D重建來保障形變的自然,使用AI膚色模型來保證美顏不會傷害到背景和商品。
3.4 HDR10端到端系統
隨著采集和顯示設備的發展,HDR+10Bit逐漸有一些應用,我們覺得HDR10有三項核心技術:第一是動態范圍。在低照度、曝光過度場景下幫助我們看清內容;第二是色域空間。支持BT2020提升色彩還原;第三是10bit位深。HDR對我們的商品還原會非常有幫助,因為電商直播和短視頻中最核心的是還原商品而不是美化商品。
但HDR是一個端到端的系統,需要考慮到各種設備的兼容,所以我們做了一些適配來提升用戶體驗,比如普通相機拍出的內容就用普通通道傳輸解碼,而一些高端設備支持HDR10,可以把內容做10Bit壓縮,傳輸,在對端根據播放設備能力,做HDR To SDR、10Bit To 8Bit的轉換來保證質量,對于好的手機就可以得到最好的HDR體驗,一般手機也能得到基礎的HDR體驗。圖中可以看到HDR技術使照片顏色更接近實物顏色。
04
音頻技術提升體驗和生產力
第三個觀點是視頻技術提升體驗和生產力。音頻在過去幾年都伴隨視頻出現,而在去年Clubhouse的發布,大家覺得音頻可以獨立玩,這對音頻技術來說是一個很好的啟發。除此以外,音頻的技術還可以輔助我們做內容的生產、審核及各種音頻處理,個人認為音頻會是后續很重要的生產力。
4.1 業務:用戶數和時長
對內容業務來說,最核心的是用戶數和時長。對于技術來說,如何提升消費體驗,提升主播生產效率,做好平臺治理工作是核心工作。在這幾個方面音頻都可以起到非常重要的作用。
在主播角度,音頻技術可以來做口播自動剪輯、來客提醒(不用一直守在電腦旁邊)、開播輔助、字幕和配樂生成。在用戶角度,音頻的互動可以支持連麥、游戲、猜價格、語音評論。在平臺角度,音頻可以監管黃暴政、盜播、盜鏈、檢測空鏡。
分享幾個典型案例。第一,音頻技術提高音質體驗。這是一個簡單的音頻傳輸系統,采集、預處理、AEC/ANS/AGC、編碼、網絡傳輸(FEC/NACK技術)、對端(Jitter Buffer/NETEQ)、解碼、重采樣。要實現高音質體驗,我們在每個環節都需要做非常細致的工作:
采集中做高保真,雙聲道處理(Alidenoise、回聲抑制、智能美聲),編碼中做自適應碼率(HE-AAC),傳輸過程要保障傳輸質量QOS(FEC/NACK),接收中還需要原音頻數據(PLC/NETEQ),播放中應用各種音效技術(3D音效、空間音效、重低音)來提升收聽體驗。
直播內容中,對音頻的適配也非常重要。(陳老師提到一個例子:如果是音樂直播間,用普通模板做音質會很差,所以需要幾套針對不同類型直播間的聲音模板。)在這樣的系統上,我們支持淘寶直播,語音聊天室等業務。
4.2 AliDenoise——讓聲音更清晰
淘寶自研的AliDenoise技術是一個智能降噪技術,可以使聲音更清晰。傳統的降噪是根據時域傅里葉變換+維拉增益來做,痛點是對非平穩噪聲抑制差,在低信噪比失效,而AliDenoise根據端到端的語音降噪,用數據驅動方式,基于先驗信噪比方法做模型訓練。
還有Cache Buffer的流式處理以及1D卷積+模型小型化的工作,核心優勢是降噪能力強、語音保真度高(我們做了一些競品對比,AliDenoise的主客觀指標都超過競品)、極輕量小模型(1.6M的模型可以在普通手機實現降噪,且CPU消耗只有6%)、延時可控(可根據設備能力做延時調節)。
有三段音頻,第一段是街邊的場景,是原聲;第二段是RTC處理后的效果(汽車走過的聲音比較明顯);第三段是AliDenoise處理后的效果,可以聽出它對非平穩噪聲的抑制很好,且人聲保留度高。
第二個例子是端上互動。直播答題是前幾年非常火的互動玩法,2020年雙十一點淘推出了猜價格活動,答題交互從觸屏到語音,需要低延時、高并發、低誤識率。如果用服務端ASR做,會需要上千臺服務器來支持同時在線10萬人。基于這樣的痛點,我們采用了自研離線ASR技術,在端上做語音識別。可以做到模型大小13M,內存大小50M,字錯誤率1.3%,識別延遲《50ms的水平。
第三個案例,語音技術可以輔助短視頻的直播編輯生產。在“親拍”APP中可以做到輔助“逛逛”的內容生產。內容生產中有非常多需求,包括刪除無用片段、自動添加字幕,旁白、音樂標簽,自動配樂、音頻變速,變聲,降噪。借助后臺一整套技術和曲庫(蝦米1000萬曲庫、ASR以及信號處理算法),我們提供一鍵導入、一鍵編輯這樣的音頻功能比如停頓刪除、感知配樂、自動字幕、自動變聲。通過音頻技術大大提高編輯效率,原先30min的編輯通過可以降到3min,質量也會比較有保證。
4.3 直播短視頻音頻解決方案——TaoAudio
我們給淘寶業務提供了一套直播短視頻音頻解決方案——TaoAudio。在業務上支持淘寶直播、點淘、逛逛、親拍、語音聊天室等需求。在應用方案上有直播看點、直播互動、直播安全、短視頻編輯。在算法技術中有三個核心技術是音頻處理、音頻安全、語音交互。基礎設施包括端上推力引擎、云上資源、端側設備等。
總之音頻的核心是良好的音質、很強的互動體驗及平臺安全,在未來可能還有豐富的音樂體驗。
05
淘寶音視頻算法的發展
最后和大家分享淘寶音視頻算法的發展。
1、下一代APG2要做到比前一代有更高的壓縮效率;
2、S266的落地,將S266真實的應用到業務場景中;
3、AR+3D+多視角直播的探索。傳統的直播已經固化很多年了,我們希望通過更多技術提高交互和沉浸式體驗;
4、下一代窄帶高清技術。以更高的質量和更低的成本呈現;
5、端側ASR技術。前面提到的“猜價格”應用到ASR,還需要進一步提高準確率并降低成本;
6、場景自適應語音增強。傳統的語音增強沒有考慮到語音環境也沒有做更多的自適應(比如在一個嘈雜的環境或是安靜的環境分別要用怎樣的模型),加入場景檢測機制可以適配收音場景和聽音的環境;
7、智能的音樂配樂服務;
8、大規模無參考評價系統。
以上是本次分享的內容,謝謝大家!
編輯:jq
-
PC
+關注
關注
9文章
2076瀏覽量
154147 -
編解碼
+關注
關注
1文章
140瀏覽量
19614 -
阿里巴巴
+關注
關注
7文章
1613瀏覽量
47169 -
視頻壓縮
+關注
關注
0文章
27瀏覽量
9073
原文標題:音視頻算法在淘寶中的應用
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論