新一代图片编解码技术在淘宝的应用及落地
本文回顧淘寶圖片發展的歷史,闡述了新一代圖像編解碼格式AVIF在淘寶業務場景中的應用及落地方案,節省流量,為用戶提供更好的看圖體驗。
背景
淘寶圖片空間下行鏈路承載著集團圖片的訪問請求,包括手淘、飛豬、閑魚等業務場景,核心工作在于提升用戶訪問體驗,在圖片質量不降低的情況下降低訪問帶寬。常態下CDN側千萬級別?QPS(每秒請求數)圖片訪問,未命中時的回源量也在百萬級別,通過引入新的編碼技術,可大幅降低訪問帶寬,節省流量成本,同時體積的減小也能帶來訪問提速,提升用戶看圖體驗。
淘寶圖片空間下行鏈路架構
淘寶圖片訪問模型如圖1所示,用戶發起請求,在CDN(content delivery network,用于圖片緩存)緩存未命中的情況下,請求回源到源站,源站從OSS(object storage service)存儲上拉取商品原圖,按照用于請求格式進行實時處理(包含解碼、縮放、編碼等過程,RT < 100ms)后返回,常態下CDN命中率約為95%,此時用戶訪問的RT小于20ms。
由于訪問端(PC、手機)及場景(首頁、詳情頁)的多樣性,相同的圖片存在多種尺寸、格式,如淘寶首頁訪問的圖片尺寸相對較小,而詳情頁尺寸較大,通過在圖片源站側進行實時計算(本質上是計算換存儲的方式),支撐相同圖片內容的多種格式訪問。
圖1:圖片空間下行鏈路架構
回顧過去的工作,我們對淘寶圖片下行處理做了大量的優化:
2018年,通過引入FPGA異構計算,HEVC關鍵幀圖片編碼格式開始在淘系大規模商用,相比WEBP編碼格式,降低帶寬約30%,相比JPEG降低超50%,采用高密度存儲、異構計算技術的新集群規模只有老集群的十分之一,高密度存儲、異構計算分別使單位存儲、計算成本降低超80%;
2019-2020年,圖片空間FPGA集群極致優化,通過將JPEG解碼、PNG解碼、高質量SCALER、WEBP編碼 Offload至FPGA,同時利用Nginx多worker負載調配實現FPGA板卡IP的負載均衡,單機性能由2000提升至5500 QPS,在保證圖片質量的情況下,計算成本降低超60%,同時處理耗時大幅降低;
2020年,FPGA集群容器虛擬化,通過設備虛擬化技術,采用設備直通方式實現PCIe設備(FPGA板卡)的虛擬化。接入集團云原生應用統一基礎設施ASI(Alibaba Serverless infrastructure),可根據業務流量快速調整不同服務集群的比例,實現FPGA服務間的快速擴縮容。最終業務部署至ASI pouch集群,為業務的靈活部署及調度提供了可能。
基于上述工作的積累,我們開始尋求在壓縮率及用戶體驗上更進一步的方案,新一代視頻圖像編碼技術進入項目組視野。
新一代圖片編解碼技術
???技術選型
以Google為首的多家公司成立的AOM(Alliance for Open Media,開放媒體聯盟)組織,制訂了一套替代HEVC技術的免費開放視頻編碼標準AV1(AOMedia Video 1)。隨著18年AV1格式的定稿,其圖片格式AVIF在18年12月份由Netflix推出,2020年8月chrome及隨后的Firefox 86版本已支持AVIF,即將推出的Android 12也將原生支持其解碼顯示。鑒于其以下特點,我們選擇AVIF作為下一代圖片格式,進一步降低帶寬,提升用戶體驗。
高壓縮:壓縮率相比heif能提升25%-30%(通過測試,相同質量下,AV1相比線上HEIF壓縮收益超30%);
互聯網生態較好:netflix內容、chrome平臺均已開始支持,android也開始支持AV1/AVIF解碼,mac M1開始支持AV1視頻解碼,不僅端側可支持,web端也可將圖片格式由webp升級至AVIF;
專利free。
進行圖片壓縮率測試,結果如圖2所示,原圖為無損編碼格式,分別對比不同PSNR下VVC、AV1不同工具以及手淘目前在用的HEIF格式,考慮到PSNR高于40dB時編碼后的圖像質量非常接近原始圖像,我們選取39dB和41dB(線上平均為41-42dB)計算壓縮率指標,相比HEIC格式,AV1的壓縮率提升約26%-32%。
圖2:不同格式壓縮率測試
圖3:壓縮率對比
圖4:瀏覽器對AVIF的支持情況(綠色表示已支持)
除上述特性外,AVIF能支持動圖、PQ/HLG等高動態EOTF場景(兼容高亮度高動態顯示器)、BT.2020廣色域、10bit/12bit顯示、alpha/depth圖,為后續的場景效果擴展提供便捷。
???技術特點
高壓縮收益帶來的是計算復雜度的提升,AVIF使用AV1關鍵幀編碼技術,通過幀內預測去除圖像的空間冗余以提升壓縮率。包括方向預測的粒度進一步升級,而非僅僅是方向性的預測,同時納入了梯度和相關性,亮度的一致性和色度也得到充分利用,主要包括以下技術特點:
幀內預測方向的增強
為了在方向紋理中實現更多種類的空間冗余,在AV1中,將方向幀內模式擴展到更具精細粒度的角度集。將最初的VP9幀內編碼的8個角度設為名義角度,基于這些角度引入步長為3度的精細角度微調,即預測角度由名義內角度加上角度增量表示,該角度以-3?3的倍數為步長。為了以通用方式在AV1中實現定向預測模式,這48個擴展模式由統一的定向預測器實現,預測器將每個像素鏈接到像素邊緣的一個參考像素位置,并通過2 tap的雙線性插值對參考像素進行插值,最終AV1幀內編碼共啟用了56個定向內部模式(HEVC幀內包含33個角度+DC+Planar)。
無方向平滑的幀內預測器
AV1通過添加3個新的平滑預測器SMOOTHV,SMOOTHH和SMOOTH擴展了無方向幀內模式,它們在垂直或水平方向,使用二次插值或其平均值預測了像素塊。
基于遞歸濾波的幀內預測器
為了捕獲邊緣參考塊的衰減空間相關性,FILTER INTRA模式通過將亮度塊使用二維不可分離的馬爾可夫過程。AV1預設計的五個濾波器幀內模式中,每個模式用一組八個7-tap濾波器表示,反映4×2色塊中的像素與相鄰的7個像素之間的相關性。一個內部塊可以選擇一種幀內濾波模式,并以一批4×2補丁進行預測。
從亮度預測色度
Chroma from Luma(CfL)是僅用于色度的幀內預測器,通過以重建后亮度像素的線性函數建模得到色度像素。重建的亮度像素被二次采樣為色度分辨率,然后去除直流分量以得到交流分量。為了從交流分量中估計色度的交流分量,AV1 CfL根據原始色度像素確定參數并在比特流中用信號發送。這降低了解碼器的復雜性并得到了更精確的預測。對于DC預測,它是使用內部DC模式計算的,該模式對于大多數色度內容來說已經足夠,并且具有成熟并能快速實現的方法。
調色板作為預測指標
對于屏幕截圖和游戲之類的人造視頻,可以用少量顏色的近似塊來替代,AV1幀內編碼引入調色板模式進一步提升壓縮率。
幀內塊拷貝
AV1允許其幀內編碼器參考同一幀中先前重建的塊,類似于幀間編碼器引用前一幀中塊的方式,對于包含重復紋理的屏幕內容視頻非常有用。IntraBC新預測模式的引入,在當前幀中拷貝一個重建的塊作為預測。參考塊的位置由位移矢量指定,類似于運動補償中的運動矢量壓縮。
圖5:HEVC與AV1幀內預測
落地計劃及服務端方案設計
復雜的幀內編碼需要耗費大量的計算,軟件方案編碼一幀圖像耗時達到了秒級,顯然無法滿足實時處理的需要,大規模落地必須借助專用硬件方案,其開發工作是項目的重點和難點。另一方面,新格式的落地也需要客戶端解碼的支持,前期計劃先基于自研高性能解碼器進行解碼,后期考慮切到系統原生解碼(Android 12支持AVIF解碼)。
???落地計劃
項目落地上按4個版本迭代,核心的開發包括服務端軟硬件編碼以及客戶端的解碼,服務端采用先軟件后硬件的思路,通過基礎版本、全功能版本、穩定版本、優化版本的迭代實現新格式的平滑升級。
圖6:項目落地計劃
???服務端方案設計
服務端沿用圖片空間服務端圖片轉碼架構,使用阿里云AIS自研的AV1硬件編碼器進行服務端編碼,集成AV1/HEVC/WEBP等多種硬件編碼IP,業務部署至ASI Pouch集群,同時進行新格式的線上全量PSNR校驗,如有異常可一鍵降級為HEVC編碼方案。
系統架構
服務端完成圖像的轉碼(如JPEG轉碼為AVIF),系統分為Nginx統一接入、資源解析、圖像處理、FPGA硬件加速等模塊,AVIF編碼Offload至FPGA,為防止硬件圖像處理出現異常,在圖像處理層對硬件編碼的數據進行decoder,PSNR對比編碼前和解碼后的YUV數據,確保硬件處理的正確性。
圖7:服務端架構
在不同Pouch上部署不同的FPGA邏輯版本,做到新老版本的隔離,不影響老業務穩定性的情況下,做到新業務的快速迭代。
圖8:容器化FPGA部署
穩定性保障
圖像質量和穩定性是追求極致圖像體驗的前提,圖片基礎設施面向全集團提供圖片服務。線上是否有花圖,圖片是否清晰,用戶請求是否有超時,新版本效果是否達標等問題出現在我們面前,必須確保高并發下圖片質量的穩定。
通過梳理圖像主客觀質量測試、線上預警及自動化分析流程,從質量回歸、在線PSNR抽樣檢測、回放壓測三個方面來監管系統穩定性:
質量回歸:通過定時腳本每日篩選大量線上日志,分別請求預發與線上,查看PSNR/SSIM、圖片格式、圖像體積、是否有圖等指標報告,定位處理圖片質量問題;
在線PSNR校驗:線上FPGA機器有一定的異常概率(如板卡損壞、FPGA掉電),通過各處理模塊的在線抽樣校驗,可及早知曉定位問題,降低風險;
回放壓測:圖片下行系統為多核C + FPGA處理系統,通過長時間的回放壓測,規避host/chip端內存泄漏及硬件概率性風險;
圖9:圖片質量保障方案
???落地結果
在服務端進行轉碼后輸出AV1編解碼圖像格式,手淘上對其進行解碼,結果如下:
展望與致謝
圖像格式的發展與編解碼技術發展息息相關,基本處理十年出一代的節奏,回顧過去的JPEG->WEBP->HEVC格式的發展歷程,高的壓縮率格式的落地無一不是算法與硬件結合的結果。
得益于團隊在算法硬件加速與工程落地的經驗,項目組開始將AVIF圖像格式進行工程落地,同時由于AVIF格式的良好生態以及擴展特性(目前各大主流瀏覽器均已支持),我們計劃在PC及手機端全線使用AVIF圖片格式,同時覆蓋動圖場景,并做到不同設備平臺的高保真支持,希望通過技術升級,進一步降本提效。
目前軟硬件加速方案初始版本已經開始使用,高性能版本(算法及時序優化)開發完成后,再來更新相關信息,敬請期待。
感謝阿里云AIS、淘系圖片空間、手淘圖片庫、阿里云CDN團隊相關同學的大力支持。
參考
https://en.wikipedia.org/wiki/AV1
https://ieeexplore.ieee.org/document/8456249/authors#authors
???拓展閱讀
作者|岳溪
編輯|橙子君
出品|阿里巴巴新零售淘系技術
總結
以上是生活随笔為你收集整理的新一代图片编解码技术在淘宝的应用及落地的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝视频的跨模态检索
- 下一篇: OSPF基础理解