“好為人師,博而不精,雜而不純。”——宋利。
收到對宋利的采訪郵件,正文開始是一段自嘲,讓原本枯燥的技術采訪變得生動。相比于之前幾個采訪,本文的信息量更大,不得不對嚴謹的學術界敬佩三分。本文是『下一代編解碼』系列采訪的第6篇,邀請到了上海交通大學任研究員,博士生導師宋利,他全面的解讀了編解碼器的現狀與未來趨勢。
LiveVideoStack:請簡要介紹下自己,以及目前主要的工作方向,對哪些技術或領域感興趣?
宋利:謝謝邀請。我目前在上海交通大學任研究員,博士生導師,研究方向是視頻編碼、圖像處理與計算視覺。
我屬于興趣廣泛型的,對各類奇技都心生好奇。就視頻而言,從視頻生產、分發到消費,整個鏈路的相關技術都會留意,近期關注點有:
視頻生產(production): UHD/HDR,360VR等新型視頻內容的采集、加工、合成技術; 基于人工智能的視頻處理技術;Video over IP;云化媒體生產系統;
視頻分發(distribution/delivery):新型編碼標準/技術、混合云+邊緣媒體處理架構,低延遲傳輸相關協議和技術(CAMF、WebRTC、HTTP2)
視頻消費(endpoint):新型視頻播放器/終端軟件,支持跨屏同步,動態渲染(VR)、強交互(AR)和AI
視頻體驗評價(QoE),視頻內容保護(DRM)等,如區塊鏈和媒體服務的聯姻。
關于編解碼器
LiveVideoStack:什么樣的編解碼器是一個好的編解碼器?視頻質量、碼率、算法復雜度、對數據丟失或錯誤的魯棒性等。
宋利:當我們評價一個東西是好或者不好,首先需要給出一個測度。從廣義上看,編解碼器的測度是多個維度的函數,維度包括:壓縮效率(即碼率和質量)、算法復雜度(時間、空間復雜度)、實現復雜度(平臺支持能力、技術人員市場占比)、系統指標(可并行性、可擴展性、延遲大小、抗誤碼能力)等。由于這些維度之間是互相制約的,實際研發中只能取主要維度而犧牲其他方面,取得某種平衡。比如在視頻內容生產領域用的JPEG2K、TICO等編碼器,就強調低復雜度,壓縮比并沒有分發領域的HEVC、H264等高。再比如H264編碼器,會分為不同的profile或類型,直播編碼器碼率通常是離線編碼器1.5到2倍,就是為了降低延遲而犧牲了壓縮效率。
LiveVideoStack:當下對于編解碼器的研發,業界主要的研究方向是什么?其難點是什么?有沒有一些典型或您十分看好的應用場景?
宋利:編解碼的研發,大致有三類人:『吃碗里的,看鍋里的,想田里的。』
第一類人是業界視頻編碼技術人員。大家主要關注于編解碼的優化,解決的是低成本、高效率的問題,以Netflix、Youtube、Twitch、Hulu,奇藝、騰訊、優酷土豆等為代表。最近聽到他們的一些報告,主題有內容自適應ABR、窄帶高清、多流聯合優化等,都是圍繞降碼率,提效率,幫公司運營省錢。
第二類人是業內標準或聯盟的研發人員,工作在MPEG、AVS、AOM等陣營。視頻編碼這個領域有點像無線通信領域,工業界組成的標準組織帶著往前走,每隔8~10年同步一下,update一代標準。背后的基本技術邏輯是RD(Rate Distortion Efficiency,率失真,可以替換成編碼效率)倍增定律和摩爾定律(用來對抗復雜度的增加),目前比較熱鬧的是兩大陣營:ITU/MPEG的FVC 和 AMO/谷歌 的AV1,作為兩個編碼技術聚集池,前者已經正式Call for Proposal(CfP)了,明年2月份對各個應標方案進行評測,確定新的參考平臺1.0,前期的算法探測軟件JEM在RD效率上已經超過30%的增益(主觀性能更高),因此2020年出臺下一代視頻編碼標準H.266應該是有把握的,不過編解碼復雜度目前比較高(10倍)。AV1推進速度更快,已經close了,今年底將正式release最終的Spec。AV1在性能方面主要是和之前的VP9相比,Netflix和Google的測試,RD效率提升30%以上。AV1解碼復雜度控制的較好,與VP9相比,只增加2倍多。所以,這兩個陣營近期的工作重點應該是不一樣,FVC還將主要集中在編碼算法模塊的提出和優化,參與標準打擂;AV1 從明年開始應該集中在平臺設計與優化、降低編碼復雜度等方面。
第三類人是第二類的硬化團隊和顛覆技術的探險者。以往每一代視頻編碼產業周期中,基本按技術,標準,軟件,硬件的順序推進。一般做硬件的要等到標準定下,部署和需求達到一定規模時候才出手,所以做硬件的團隊大多還在迭代當前市場上部署的版本,對新標準保持觀望狀態。不過互聯網的陣營迭代速度很快,AV1在做軟件的同時,硬件參考設計和IP核基本同步推進,相差也就幾個月到半年時間。因此,預計2018年下半年AV1的硬編碼就會有release。
另外一波人學界的居多,目前在嘗試使用全新的技術對編碼架構進行革新,比如人工智能,神經計算模型等。做編碼的都了解,視頻編碼基本結構(波形混合編碼)在過去幾十年都沒怎么變化,主要在于預算、變換和熵編碼三大部件(及零件)的不斷替換和完善。近期,學界已經提出了一些用深度學習對HEVC進行編碼提升的研究工作,不過大多集中在環內濾波或后處理方面,還是屬于模塊級提升,沒有結構突破,無End to End 學習能力。FVC和AV1陣營專家普遍認為,短期內深度學習還是干不過人工fine tune的各種編碼模式(算子),還得繼續潛伏一陣。
應用場景方面,個人比較關注兩塊:一是實時視頻服務場景(像抓娃娃,在線示教,視頻會議等),另一個是大分辨率浸潤式VR視頻服務,把視頻編碼推向更高、更快、更強。盡管VR在2017年遇冷,但暗流涌動,技術腳步絲毫沒有減緩,各大玩家都在蓄力,預計后面兩年會有大的機會。
LiveVideoStack:大家已經開始研究H.266、AV1以及國產的AVS2,他們有哪些特點?各自的優勢應用場景是什么?
宋利:首先來看H.266,準確來說是FVC(Future video coding),正式的H.266要等到2020年標準發布到ITU后才算數。它是HEVC/H.265的繼任者,目前來說還在CfP階段,在前期Study和CfE(Call for Evidence)階段不少有潛力的技術已經亮相。代表性的工具有包括:
塊結構方面:四叉樹加二叉樹(QTBT)塊結構,大的編碼優化單元(CTU最大256x256,TU最大64x64);
幀內預測:65個方向,多抽頭插值,高級邊界濾波,跨CTU的預測(CCLM),位置相關的組合預測(PDPC),自適應的參考樣本平滑等;
幀間預測:OBMC模型,仿射運動補償,雙向光流,局部光照補償(LIC), 更高精度MV,局部自適應MV, 高級MV預測,子PU級MV預測,解碼端MV refine等(DMVR);
變換方面:DCT/DST多核變換,模式相關的不可分二次變換,信號相關的變換等;
環內濾波方面:雙邊濾波器(BLF), 自適應環內濾波器(ALF), 內容自適應限幅等;
熵編碼方面:變換系數的上下文模型選擇,多假設概率估計,更好的上下文模型初始化等。需要說明的是,正式打擂還沒開始,上述有些模塊完全可能被新模塊替換或者踢出去,有些模塊將被進一步完善和優化。應用方面,現在說可能還為時尚早,但UHD/HDR,VR等大分辨率視頻服務應該是主要的出口。
AV1方面,尚沒有全面深入地分析,下面的一些信息來自于Google團隊今年的文章和報告,代表性的工具有包括:
編碼結構方面:SuperBlock,大小可以為128x128。
幀內預測方面:65個方向預測,Top-right邊界擴展,用于光滑區域的Alt模式,亮度預測色度,參考像素平滑。
幀間預測方面:8種矩形+契型,OBMC,擴展參考幀(ERF), Dual MC插值濾波(水平和垂直濾波器可以不一樣),全局運動補償,新的MV預測方法等。
變換方面:擴展模式(水平和垂直變換可以從不同類型變換核組合),遞歸模式(根據殘差特性自適應地切分變換單元),合并模式(變換單元覆蓋多個預測單元),長方形變換等;
環內濾波方面:方向Deringing濾波(DDF),有條件的低通濾波器(CLPF),維納濾波器等。
熵編碼方面:非二進制的多符號熵編碼,自適應上下文,新的標識集合等。需要說明的是,他們在過去的1年中代碼迭代速度比較快,有些模塊級技術已經被替換或者合并掉。應用方面,AV1應該是和HEVC搶奪市場,特別是IPTV和OTT領域。
AVS2方面,總體來說,大部分模塊技術是對齊HEVC的,特色技術是針對視頻監控場景引入的背景幀預測技術,在靜止攝像機場景下性能突出,顯著優于HEVC(40%~50%增益)。關于AVS2的技術細節,北京大學深研院的『智媒之音』微信公眾號,有系列的技術帖子進行介紹,在此不再贅述。應用方面,國家新聞出版社廣電總局前段時間發文,明確要求4K超高清電視終端支持AVS2,將會推動AVS2落地。
LiveVideoStack:在做編解碼器的開發或優化時,會考慮相關專利及其產生的費用成本嗎?
宋利:因為我不是做商業編碼器的,所以一些思考僅供參考。研發編碼器公司大致有三類:靠編解碼器賺錢的;自研編解碼器自個用的;賣硬件平臺送編碼器的。
第一類公司是專業編碼器公司或團隊,代表性如哈雷、Atmel、Envivo(被愛立信收購),Elemental(被Amazon收購)等,規模其實都不算大,市場估值也不算高,因此專利方面其實不是太顧慮,MPEG LA也好,HEVC Advanced也好,不指望從他們身上撈油水。所以這些公司主要是根據市場需求和成熟度來決定開發和優化的節奏,自然HEVC是他們目前主要的產品對象。
第二類公司主要是互聯網大玩家,像Youtube、Netflix,以及國內的愛奇藝、騰訊、優酷土豆,這些團隊大部分都是以開源軟件如ffmpeg/x264/x265/vp9等為基礎進行優化,這類公司要么太牛叉,自己說了算,用自家的或free的,像Youtube、Netflix,要么追求快速落地也不差錢,終端也大多是自家能掌控的,目前用H.264的居多,H.265的也開始用,不清楚交沒交過專利費(十有八九沒交)。
第三類公司代表的是Intel、Nvida、ARM等公司了,這些平臺級的巨頭,估計不在乎這點專利費,為了鞏固江湖地位,都是通過SDK方式免費送合作伙伴的。不過因為照顧面比較寬,往往初期性能優化的一般,給前兩類公司或人員留下了空間。但是隨著時間的推進,性能逐步都上來了,比如Intel Media SDK新版本已經把H265優化的相當不錯了。
LiveVideoStack:普遍認為,硬件編解碼器的畫質沒有軟件編解碼器的效果好。有沒有一種能將硬件編解碼器的海量處理能力與高畫質結合起來的解決方案?
宋利:當說到硬編碼器時,我腦海中default的應用場景是直播,并且是直連信號源(攝像機或者通過contribution編碼器送過來的解碼視頻)。在這種應用中,受限于時延和線性快編,留給編碼器時間窗口比較短,加之硬件編碼器計算和buffer資源有限,像multipass、lookahead等一些復雜的編碼優化手段就會disable掉,因此壓縮效率會受限。軟件編碼器的應用場景更多的是點播或者延遲直播,并且可以部署在彈性的云上,如果并行擴展性設計的好的話,一些高級的復雜編碼模式都可以開啟,壓縮能力能夠充分施展,壓縮效率自然更好。
此外,當我們說到畫質的時候,其實更多的說的是重建視頻的主觀感受,并不是我們優化編碼器時通常使用的PSNR(或者SSIM等)。對于特定的視頻幀,無論是那個metric,碼率或者QP的變化,畫質的相對變化都能直接反應出來。難在不同內容的視頻,人對畫質的感受是很implict的,從不好到好的刻度是不均勻和非線性的。這給編碼器優化帶來了較大的自由度,也是各位編碼老鐵們發揮的空間。窄帶高清,per-title,感知編碼、視覺優化、內容自適應等都是工作在這個區間。我們常說,編碼既是技術(Tech)也是藝術(Art),這里面有很多know-how的tricks,有工匠精神的老司機們往往更勝一籌。舉個例子,我們曾對國外一款商業編碼器和 x265,HM進行過對比測試,單看PSNR,商業編碼器比不過HM,甚至x265,但是在體育比賽,歌舞晚會等實際場景中,畫面的均勻性和一致性等主觀方面(如畫面之間閃爍性低),商業編碼器優勢明顯。
另外補充一點,畫質的好壞不只取決于編解碼本身,預處理和后處理也很十分重要,甚至帶來的畫質提升效果要大于編碼優化本身。
LiveVideoStack:FPGA/ASIC做編解碼的前景怎么樣?
宋利:我理解,問題的本意是想討論一下硬件編解碼工程師和軟件編解碼工程師的職業前景。首先,視頻作為所謂最大的大數據,存取和交換都離不開壓縮和解壓。因此,背后的編解碼技術(及工程師)是被需要的,短期不會被冷落。但是換個角度看,正是因為編解碼無處不在,高頻和基礎的特點,盡管邏輯上常常放在應用層,但技術下沉或者說硬核化的趨勢很明顯。解碼就不用說了,播放器大都調用芯片內置的硬解碼。編碼方面,情況好一些,NTT,索喜(Socionext)、富士通這些專業做編碼芯片的廠商主要集中在專業領域。真正走量的互聯網視頻服務商大多還是用云+軟編碼的方式。不過如前面提到的,平臺廠商有抄底的趨勢,Intel和Nvida就是代表。特別是Intel,本身就是云計算的主力平臺,其新的CPU+FPGA的計算平臺值得期待,盡管現在主打AI對抗Nivida。但視頻方面不難推測,Media SDK應該逐步支持到FPGA層面。從這個意義上看,FPGA/ASIC 做編解碼前景還是不錯的,適合于練內功的人,但就業口子不大,集中在少數幾家。相比來說,軟件編解碼門檻低,口子寬但變化快。
LiveVideoStack:對于應屆生或從其他研發領域轉行學習編解碼、多媒體開發的技術人,有哪些建議?
宋利:正好發揮點好為人師的特點,說點道的層面(慣用忽悠學生的套路)。我稱之為又“紅”又“專”,或者T型學習模型。“紅“表示的是水平維度,強調知識面,”專“表示的是垂直維度,強調技術特長。處在一個技術層出不群和加速創新的時代,一方面需要在自己的領域中不斷積累,形成核心競爭力,就視頻編碼而言,包括架構、算法或平臺等很多不同的層面,很少有人對所有的方面都很精通,對初入行的人來說更是如此。面面俱道結果往往是蜻蜓點水,不如發揮自身特點,專攻一技之長。另一方面,也不能只顧低頭拉車,不抬頭看路。在不斷積累特長的同時,也要通過多種方式擴展相關的知識體系,了解行業的上下左右。比如做編碼算法優化的,要時刻關注新的平臺(下層變化)、新的架構(上層變化)、新的應用(左側變化)、新的通道(右側變化)。之所以強調這一點,是因為各領域都在進步,隔壁老王沒歇著,一不留神,可能就被人旁通或者截胡了。舉個例子:近兩年深度學習在圖像超分辨率上取得很好的效果,編碼4K視頻的時候,可以通過先下采樣成HD然后編解碼,再通過后處理超分成4K。這個放在前幾年可能只在低碼率的應用上有效果,但現在這個優勢可能提升至中碼率了。這比直接在4K上做RDO優化要省事的多。所以既要見自己,也要見天地、見眾生。
LiveVideoStack:能否推薦一些系統學習編解碼、多媒體開發的圖書、資料?
宋利:不說具體資料,之前采訪中,大牛們已經給的比較具體了。說說術層面的東西,總結為8個字:
勤學:讀論文,泡社區,看帖子;
苦練:多媒體領域最不缺參考代碼了,從jm/hm/jem, 到 ffmpeg, x264/265, vlc...,花時間練劍;
多想:這個類似于練心經,需要把知識和技能有機關聯,形成自己的體系和toolbox,即插即用;
常聊:遇高人不能失之交臂,臉皮厚,多和高手討教,是進步最快的方式
總之,『Never stop learning, learning from everyone. 』
-
編解碼器
+關注
關注
0文章
234瀏覽量
24130
原文標題:宋利:編碼既是技術也是藝術
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論