CloudImagine
大家好,我是阿里云視頻云的陳高星,今天和大家分享的主題是“多”維演進:智能化編碼架構的研究與實踐。 本次分享分為四部分:首先是視頻編碼與增強方向的業界趨勢,其次是對在該背景下衍生的阿里云視頻云智能編碼架構進行介紹,以及其中關于“多”維演進的技術細節,最后是我們對于智能編碼的一些思考和探索。
01
視頻編碼與增強方向的業界趨勢
首先介紹視頻編碼與增強方向的業界趨勢。視頻技術發展的趨勢始終在追求更高清、更實時、更互動、更低成本以及更智能。 過去幾年直至2022年,雖然從“高清化”的角度圍繞AR/VR、沉浸式8K這些概念的話題熱度有所降低,但隨著2023年上半年蘋果VisionPro的推出,VR的熱度再次升高。除概念化炒作外,視頻“高清化”也是實實在在的趨勢。舉個例子,相較于2018年世界杯直播,可以發現新一屆2022年直播視頻的碼率和分辨率明顯提升,預計下一屆還會進一步提升。 圍繞更“高清化”的趨勢,我們能看到近年各大企業都在陸續推出自研的下一代編碼器,包括266、AV1,甚至是私有標準的編碼器。同時,我們也在智能編碼和增強上看到不少的需求。為了降低“高清化”帶來的成本壓力,視頻編碼的軟硬異構方案成為熱點,包括阿里云的倚天710 ARM異構和多個友商在ASIC硬件轉碼方案上的布局。 從“低時延”的角度,隨著5G基礎設施的普及,毫秒級的延遲技術逐步趨于成熟,并在多個場景得到了應用和落地。阿里云視頻云支持的2022年6月央視云考古節目《三星堆奇幻之旅》以及2023年春晚推出的央博“新春云廟會”都用到了相關的超低延時云渲染技術。在2022年世界杯期間,超低時延的直播RTS也在逐步上量。當然,以大趨勢來看,目前“超低延時”直播僅在個別領域和場景是剛需,真正的爆發還需依賴更多的實際應用場景。 在更“智能化”方面,我們觀察到在編碼內核的基礎上,工業界持續聚焦利用AI能力提升視頻編碼壓縮率,包括運用視頻編碼和處理的結合,視頻編碼與質量評價結合,視頻編碼與AI生成結合,以及端云聯合優化來持續提升視頻編碼主客觀壓縮率。在近年來大家關注的“視頻增強”和“內容自適應編碼”等領域,也能看到基于GAN的細節修復生成技術不斷落地。 隨著2023年ChatGPT和大語言模型的爆發,AIGC成為目前的技術熱點。MidJourney等一眾繪圖軟件的風靡,以及Stable Diffusion等開源模型的快速發展讓我們看到了AIGC在圖片領域的巨大實力,同時文生視頻技術也在逐步興起。
那么,伴隨著更高清、更實時、更高效、更智能的編碼需求,我們也面臨許多技術與當前需求的矛盾。 隨著AR/VR時代的到來,視頻的分辨率、幀率以及色域都會不斷的擴大,單一視頻的信息量將會成倍的增加。低時延意味著對編碼速度的更高要求,而CPU芯片處理能力不再遵循摩爾定律快速增長,清晰度、帶寬、計算成本和編碼速度的矛盾會越來越嚴重,主要體現為以下四點: 第一,編碼標準升級速度遠慢于視頻信息量膨脹的速度。編碼標準歷經過去十年的發展僅帶來了50%壓縮率的提升,這遠遠落后于視頻化和體驗升級帶來的流量增長。 第二,新編碼標準壓縮率的提升速度遠低于視頻幀率、分辨率提升的速度。從720P 30fps到8k 60fps,視頻信息量將增加72倍,這與編碼標準的發展速度出現了較大矛盾。 第三,新編碼標準復雜度的增加遠高于CPU性能增長。從264到266,每一代編碼標準相較上代大多增加10倍以上的復雜度,遠高于CPU處理能力的增加。 第四,單一編碼標準難以覆蓋多種應用需求。隨著視頻在更多應用場景的擴展深化,如VR場景所需的沉浸式編碼標準,以及面向機器視覺任務的VCM視頻編碼標準,更需要對編碼標準進行特定場景下的優化。
在以上看似難以調和的矛盾背景下,如果想實現“魚與熊掌兼得”,以下五個問題值得討論。 首先,除了碼率和質量,視頻編碼還可以關注哪些指標?例如不同內容的質量穩定性,保證序列級或者是序列片段,甚至是序列到Gop之間的質量穩定性,從客觀到主觀上,以及從資源消耗的角度去考慮編碼復雜度的穩定性。 第二,如何用好現有的編碼標準?現有的各種標準,例如前述的VR沉浸式標準、 VCM等,雖然具有開源代碼,但從多年來MSU比賽的結果可以看到,它們還存在很大優化空間。因此,研發多標準的編碼器也是業界一直關注和研究的方向。 第三,視頻編碼標準本身覆蓋不到的維度有哪些?其實從每一代的標準來看,視頻編碼追求的目標都是盡可能與“源”一致,所以多數情況下純編碼器優化使用有源的客觀指標作為參考標準,但這種方式對低畫質場景并不適用。 鑒于編碼后的視頻還是為人眼觀看服務的,雖然人眼主觀評價較為耗時費力,但實際上它是能夠給客戶帶來價值的方向。因此,將人眼評價引入視頻智能增強來提升畫質,也是我們的主要研究方向之一。 第四,在編碼標準上,現有標準對視覺冗余的挖掘和場景自適應能力還有不足。現有標準其實只定義了大概的工具集以及解碼器,但是如果能夠引入多級的自適應編碼,進一步挖掘各個模塊之間的“耦合”能力,實際上可以進一步提升編碼器的質量上限。 第五,如何打破資源堆疊,置換視頻壓縮效率提升的技術思維慣性。從復雜度的角度,其實我們不用單純從硬件角度考慮,例如:僅通過硬件資源的堆疊的實現編碼普惠的效果。我們可以通過多平臺的支持,比如與底層架構的深度耦合或者將部分模塊硬化的方式,兼顧軟件的“靈活性”和硬件的“高效性”,達到算法普惠化。 因此阿里云視頻云針對以上五個問題的解法就是右側的五大“多”維。
02
智能編碼架構介紹
如圖所示,我們的智能編碼架構主要體現在五個維度。 傳統編碼架構的編碼流程是從視頻源開始,通過可選的視頻處理模塊進入編碼的碼控和內核部分,然后輸出碼流。 智能編碼架構最顯著的特點是“多級自適應編碼能力”。它會對視頻源進行分析,基于源評估編碼流程中的處理、碼控、內核等環節對于最終輸出的影響,自適應決策模塊內部的參數和工具組合。 同時,為了實現多級自適應編碼,我們在視頻處理、碼控和內核上提供了多方位的編碼工具和能力。最后,這個編碼架構需要能夠自適應的模塊化,使其能夠自適應地從軟編到不同硬編平臺。
五個維度具體的原子能力如上圖所示。多級自適應編碼除業務場景和視頻熱度等分類外,還包括基于場景內容和片源質量的語義級自適應;而內容自適應則包含:基于不同編碼目標的前處理Pre-coding、以及基于人眼的JND、ROI等;工具自適應則是聯合各個編碼模塊,包括碼控和內核模塊。 在視頻處理方面,“多”維智能視頻增強包括畫質增強、視頻降噪、細節修復生成、去壓縮失真以及時域和空域的SR和FRC技術。 在編碼碼控上,多目標編碼能力兼容在除碼率、質量外,還包括針對目標編碼復雜度、質量波動,以及一些CV任務的多目標編碼兼容。 在內核上,我們有自研的多標準編碼器,覆蓋264、265、266、AVS3、AV1以及VCM編碼器。 在多平臺支持方面,我們的架構能夠支持從軟編的X86、ARM架構到部分使用硬編的聯合優化平臺。
03
智能編碼架構的“多”維演進
接下來,將對智能編碼架構的“多”維演進進行詳細介紹。首先是多級自適應編碼,它的關鍵是基于片源質量的內容自適應,因為片源質量是視頻處理和編碼非常重要的決策特征。 我們基于大量客戶場景數據,對片源進行多個維度的分類,除了片源的語義級質量之外,還有如上圖所示的對時空域復雜度的評價,考慮編碼影響進行R/D斜率分析,以及針對序列級中的不同序列進行智能的碼率分配。 質量分析模塊至關重要,在視頻質量方面,充分了解視頻是否有噪聲、壓縮或者傳輸帶來的質量損失對后續的處理和增強將起到關鍵指導作用。特別是在需要使用一些低成本的增強和編碼方案時,我們很難用一個模塊去自適應處理所有的質量退化。因此,加入質量分析模塊可以幫助我們更好的獲取編碼的質量上限。對于質量好的源,能有少量或者適中的增強效果。對于質量差的源,可以提升更多的質量。 另外,視頻源的質量也會影響編碼的決策。如果視頻源的某一片段比較復雜,那在低碼率的情況下很可能會出現大量的“塊效應”,因此在該場景下我們會傾向于分配更多的碼率。
內容自適應的另一部分是基于人眼的JND和saliency map。JND對工業界來說是一個非常重要的方向。傳統的視頻編碼是基于信息論的,它從預測結構的角度減小時域冗余、空間冗余、統計冗余等的冗余,從而實現對視頻的壓縮,但對視覺冗余的挖掘還遠遠不夠。 JND的基本原理如上圖所示,傳統視頻編碼使用的RDO曲線是連續的凸曲線,但人眼實際感知到的是非連續的階梯狀線。如果利用階梯狀曲線替換凸曲線,在相同失真的情況下可以使用更少的碼率。 傳統的JND方案分為“自頂向下”和“自底向上”兩種方式。我們更多選擇“自底向上”方式,對視覺皮層的視覺特征來進行表征,如顏色、亮度、對比度、運動等方式。從空域上考慮亮度掩蔽、對比度掩蔽,從時域上考慮基于運動的掩蔽。 我們會引入深度學習方法預測JND模塊對人眼主觀的影響,然后結合編碼內部的碼控模塊計算當前每一塊可以進一步擴大量化步長的空間。目前,我們的JND模塊在通用場景,同等主觀下,能節省30%以上碼率,在一些垂直場景下甚至可以節省50%以上。
除了JND, 挖掘人眼視覺冗余的另一個重要技術就是saliency map。我們在saliency map上布局了兩個方向:一是低成本的基于人臉的ROI,為了能用在更普惠的直播以及超低時延場景,我們針對人臉開發了該工具。它結合檢測與跟蹤算法,對于檢測到的人臉區域綜合JND以及周圍的像素塊進行調整,保證在提高主觀畫質的同時降低ROI區域和非ROI區域的邊界感。 二是saliency map技術,如上圖展示的一些體育場景以及UGC場景。我們利用眼動儀采集時域注意力等信息,通過采集兩千多個視頻,收集10億以上的注視點,構建了一套人眼注意力模型。 上圖中突出顯示的區域代表了人眼主要關注的區域,它會隨著時間的變化發生一些變動。該模型與編碼器相結合,針對不同的區域進行碼率分配。在連續觀看下,能夠提升主觀畫質。
接下來介紹被應用于編碼器內部的工具自適應技術。我們認為傳統的率失真理論是基于客觀的,在多數低碼率的情況下會放大塊效應。如低碼率下選擇skip或DC模式很容易出現塊效應。 雖然編碼標準中存在諸如deblocking filter等工具,但是它的強度不足以彌補實際產生的塊效應。從主觀上看,如果針對平坦區域增加一點噪聲和模糊,帶來的主觀感受反而更好。 我們采用兩種方式進行了主觀優化,一種是單向的,基于源內容以及編碼后信息預測,該區域后續是否容易出現塊效應,并對后續區域進行針對性碼率保護,同時也會區分塊效應是片源自帶還是編碼導致的。第二種是針對點播場景的2pass編碼,可以依據first pass的實際編碼結果進行二次處理。
上圖展示了主觀對比結果,并排對比圖中右側為開啟工具后效果,可以看到塊效應在人臉區域明顯減少,這一幀的碼率大概增加了5%。由于從編碼器碼控角度,保證序列整體碼率不變的提升上限有限,可以看到圖中人體的手臂位置還較為模糊。
對于多維度視頻增強部分我們將主要介紹自研的窄帶高清品牌。阿里云早在2015年便已經提出了“窄帶高清”概念,在2016年正式推出窄帶高清技術品牌并進行產品化。目前通過多輪篩選和討論,沉淀為窄帶高清1.0和窄帶高清2.0兩個方向。
窄帶高清1.0是均衡版,主要作用是使用最少的成本實現自適應內容處理和編碼,在節省碼率的同時實現畫質的提升。它會充分利用編碼器內的信息幫助視頻處理,即用成本很小的前處理方法實現低成本的內容自適應。 窄道高清1.0在視頻處理上分為兩個細分檔位,一種是計算復雜度相對較低的無差別銳化增強。另一種,會基于片源質量進行de-artifacts和deblur自適應銳化增強。對質量較差的片源,相應的deartifacts權重較大。 窄帶高清2.0經過多次技術選型,最終定義為空間維度細節修復,解決視頻生產鏈路造成的畫質損失,即多次編碼壓縮導致的畫質損失。在編碼上也會增加更多自適應能力,包括JND、ROI、SDR+等等。
上圖展示了窄帶高清2.0的增強效果。常規CNN模型對編碼壓縮造成的塊效應、邊緣鋸齒、毛刺等artifacts有比較好的平滑作用,可以使整個畫面看起來更加干凈,但會造成一種磨皮效果。窄帶高清2.0選擇基于GAN的細節增強,以提升畫面質感,如眼角、嘴唇等等。
窄帶高清2.0細節修復生成核心技術模塊包括以下7個方面:
一是訓練樣本多樣性:建立類型豐富的高畫質視頻庫作為模型訓練樣本,訓練樣本包含多樣的紋理特征,對GAN生成紋理的真實感有很大的幫助;
二是通過精細化建模不斷優化訓練數據,基于對業務場景面臨的畫質問題進行深入分析,貼合場景不斷優化訓練樣本,以達到精細化建模效果;
三是探索更有效的模型訓練策略,包括訓練損失函數配置調優,例如perceptual loss使用不同layer的feature會影響生成紋理的顆粒度,不同loss的權重配比也會影響紋理生成的效果。我們在模型訓練過程使用了一種名為NoGAN/漸進式訓練策略。一方面可以提升模型的處理效果,另一方面對模型生成效果的穩定性也有幫助。
四是為了提高模型對片源質量的自適應能力,我們在訓練輸入樣本質量的多樣性和訓練流程方面做了很多工作。最終對中低質量的源有明顯的增強效果,對高質量源有中等增強效果。
五是根據學術界的經驗,處理目標先驗信息越明確,GAN的生成能力越強。因此為了提升GAN對不同場景的處理效果,我們采用了一種1+N的處理模式,即一個具備溫和生成能力的通用場景模型+N個具備激進生成能力的垂直細分場景模型,如足球的草地細節、動畫場景的邊緣線條、綜藝場景的人像。
六是高效可控的模型推理,經過模型蒸餾/輕量化,同時基于阿里云神龍HRT GPU推理框架,GAN細節生成模型在單卡V100上,處理效率可達1080P 60fps。
七是為了保證GAN模型生成效果的幀間一致性,避免幀間不連續帶來的視覺閃爍和編碼負擔,阿里云視頻云通過與高校合作,提出一種即插即用的幀間一致性增強模型。
接下來介紹幾個具體的客戶案例。第一個是2022年江蘇移動的世界杯轉碼。針對該場景主要用到了前述的細節修復生成能力。對比圖左側為經過修復生成并編碼后的效果,右側為片源。放大后可以看到,人體毛發細節和文字邊緣銳度都獲得了明顯提升。
同樣,在BesTV的NBA直播轉碼上也能達到類似效果。對比窄高編碼后畫面和片源可以看到,文字區域、球衣細節和地板紋理更加豐富。
除了體育場景外,我們還支持了《理想之途》演唱會場景,它的特點是片源質量較差(現場是暗場,伴隨著燈光、煙霧和場景的頻繁切換),可以看到畫面有明顯的塊效應。針對該場景,除了窄帶高清2.0外,我們同時使用了人像定制模板和基于語義的分割引導技術對圖像進行還原。
上圖展示了轉碼圖與原圖的效果對比,可以看到人物背后煙霧的塊效應得到改善,人臉、毛發等細節也得到提升。右圖是觀眾反饋,對直播畫面的清晰度評價很高。
除了前述的體育直播和演唱會場景外,我們對一些沉浸式場景也進行了優化,例如對VR場景窄高采用基于VR視角和經緯度的JND和saliency map技術。 為了進一步優化沉浸式體驗,我們還提供了能夠呈現聲源空間方位的空間音頻技術,使用戶能夠在聽的過程中感受到聲源的變換,使實時互動從“在線”變成 “在場”。
接下來介紹多目標編碼能力兼容。除了常規關注的碼率和質量外,我們還考慮了目標復雜度和目標質量編碼。
首先是目標復雜度編碼。傳統編碼器編碼速度、機器資源消耗隨視頻內容改變而改變,導致多數情況下編碼水位相對不可控。因此在實際使用中我們對編碼器也會有復雜度限制的使用需求。 復雜度分配具體從序列級到GOP級到幀級到塊級進行反饋,反饋的內容包括編碼質量、速度以及前述的一些自行分析內容。這使得簡單場景下可以利用更多計算資源換取主客觀質量提升。復雜場景下類似于碼控VBV的概念,可以在避免降低主客觀質量的同時限制編碼復雜度。 其次是目標質量編碼,在此以VMAF為例。傳統ABR/CRF碼控無法在同一碼控參數設置下,保障不同序列VMAF分恒定。同時,也無法快速通過目標VMAF分獲得應設置的目標碼率或CRF參數。 雖然CRF是質量較為穩定的碼控方式,但具體到某一個特定指標,不同序列的分數波動仍然較大。基于以上背景,我們開發了目標質量編碼工具,右下圖是工具開啟前后的對比圖,可以看到代表開啟工具后的橙色線,不同序列間的質量分方差明顯變小。
接下來介紹架構中的多標準自研編碼內核。首先是我們自研的三大編碼器:S264、S265和Ali266,每種都基于客觀、主觀及場景約束研發了100+的算法,覆蓋直播,點播,RTC場景,以及云端,終端,自然場景,SCC場景。
性能上,S264、S265相對開源編碼器,在全場景下可提升20%~60%壓縮率,特別是針對超高清,低延時場景進行了更深度優化。優化方式包括預處理(MCTF、Scene Detection、SCC Detection、GOP size自適應)、快速算法(塊劃分、模式決策、運動估計、SAO/ALF)、碼率控制(CUTree、AQ、lambda優化、CTU級碼控)和工程優化(多線程并行、代碼重構、訪存優化、SIMD優化)。 S264、S265于2022年參加了世界編碼器Cloud比賽,共獲得19項第一,相較于大賽指定的基準編碼器AWS可節省63%的碼率,從轉碼效率的角度,相較友商也擁有2~6倍的優勢。
Ali266于2021年首次參加世界編碼器codec大賽,在客觀比賽獲得8項第一,相比于參考編碼器x265,在相同PSNR客觀質量下可節省51%的碼率,同時它在主觀比賽中評分第一。 在Ali266的落地方面,阿里云視頻云與達摩院緊密合作,推動Ali266在媒體處理、直播轉碼等產品的商用落地。2022年1月,Ali266在優酷正式上線,在成本和用戶體驗上獲得顯著受益。
為了完善和推動Ali266的生態化,我們也優化了Ali266的解碼器,方案包括多線程加速、匯編優化、內存&緩存優化。優化后解碼性能相較于開源解碼器達到了40%~105%的提升,內存占用下降30%以上,支持超過九成移動端設備的高清實時解碼。
接下來介紹關于多平臺的支持。
首先,是阿里云視頻云與平頭哥解決方案團隊合作的,基于倚天ARM服務器的優化。我們在倚天710上,主要針對S264、S265進行了架構的深度優化,主要包括三個方向,一是計算函數的匯編優化,使得總體性能提升40%;二是計算函數并行優化,也實現了約40%的性能提升;三是偏控制函數優化,將算法設計與優化相結合,再提升了20%的性能。最終結果是,S264和S265倚天相對于C7性能提升了30%以上,并已在視頻云點播場景大規模商用。
如圖所示,展示了云渲染場景的一個案例:央博新春云廟會。它要求低時延并自帶Nvidia inc編碼器。我們通過接管該編碼器的碼控模塊,融合自研的JND和基于空域特征碼率分配的AQ算法,加上前處理增強技術,最終實現了窄高落地在云渲染場景的落地。并列圖中右側為窄高優化后的效果,可以看到實現了豐富的細節提升效果。
04
智能編碼的思考和探索
最后,分享一些在智能編碼上的實踐和思考。首先,是我們在面對主客觀優化的矛盾時,如何去定義“好”?現在的編碼方向已經愈發從“客觀”向“主觀”靠攏。無論是以“人”為中心還是從最終的用戶體驗出發,視頻都應該關注主觀體驗的。 在研發過程中,如果單純考慮編碼器優化,我們通常依賴如PSNR、SSIM、VMAF-NEG這樣的有源客觀指標。但當優化目標類似于窄高,是出于提升主觀質量,那么客觀指標分數的提升就不一定能反映到主觀質量上。 更進一步來說,使用單一客觀指標衡量視頻質量也存在問題,從編碼標準方面看,使用標準自帶的SAO和DB工具,對PSNR和SSIM影響不大,但會導致VMAF分數降低;從開源軟件方面看,X265編碼器的PSY工具能夠在主觀上增加一些高頻細節,但對客觀指標也有不良影響;我們自研的基于編碼反饋的主觀優化反映的客觀指標同樣不佳;前面提到的JND也是一樣,明顯在客觀指標上反饋不好; 在前處理增強上,可以明顯看到SRGAN中清晰而錯誤的紋理相較于模糊的細節主觀表現更優,但PSNR和SSIM更差。 這是我們當下在編碼優化中的一個困境。
另一方面,是我們在AI for coding方面的一些相關實踐,我們始終關注AI Codec在視頻編碼方向的發展。目前可以看到,它確實能夠持續提升視頻客觀質量,在前處理以及編碼方向能利用GAN以及Diffusion Model等生成技術提升主觀質量。這也是我們正在研究的重要方向。
關于沉浸式編碼標準,我們目前在持續關注基于“點云”的編碼標準以及基于沉浸式的MIV編碼標準,后續根據落地情況也會加入到多自研標準的編碼器中。
最后關于Coding for AI,目前主要在關注VCM,它在同等信息量下,壓縮率相比傳統編碼能提高2-3倍,可直接利用結構化的碼流進行視覺任務,同時支持多種多媒體任務。具體應用上,我們正在明廚亮灶、自動駕駛、AI監考方向進行相關實踐和探索。
-
AI
+關注
關注
87文章
34146瀏覽量
275253 -
編碼
+關注
關注
6文章
967瀏覽量
55468 -
智能化
+關注
關注
15文章
5097瀏覽量
56900
原文標題:“多”維演進:智能化編碼架構的研究與實踐
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
酒店智能化都用到哪些芯片之高速互聯型MCU CH32V317
BMS HIL測試技術演進:高壓架構、多域融合與儲能系統應用解析

智慧園區配電房智能化在智能電力運維中的應用

百度地圖在汽車智能化領域的應用實踐
光伏電站智能化管理系統:光伏場站智能化管理的引擎

兩輪車智能化研究:主機廠扎堆進入,兩輪車智能化持續提升

智慧醫院智能化系統設計
光伏電站運維管理系統智能化升級

光伏電站運維管理系統智能化運維的新時代

【?嵌入式機電一體化系統設計與實現?閱讀體驗】+《智能化技術在船舶維護中的應用探索》
光伏電站運維管理系統實現光伏智能化運維管理

評論