李大龙:音视频技术是互联网品质生活的连接器
結識李大龍源于LiveVideoStackCon 2017,忙碌的工作讓我們在會場擦肩而過,并相約一場采訪。通過采訪,我深深的感受到他對行業的執著與熱情,他將音視頻技術定義為互聯網品質生活的連接器,而我們這些社區媒體不也是這些開發者與生態的連接器嗎?
策劃 / LiveVideoStack
LiveVideoStack:李大龍你好,請介紹下自己,包括正在研究的技術領域以及感興趣的方向。
李大龍:2007年從武漢大學研究生畢業后,我加入騰訊大家庭,并一直工作到現在。在多媒體領域,我主要參與的產品及項目包括:QQ影音、手機QQ視頻聊天和騰訊視頻等。現階段我們團隊主要負責騰訊視頻移動端的流媒體播放解決方案及其用戶播放體驗,我個人對播放器架構演進、流媒體存儲傳輸、視頻編解碼標準及圖像聲音信號處理,都會保持長期關注和跟進。
眼下蓬勃發展的HDR產業、雙雄爭霸局面下的新一代視頻Codec,以及AI技術如何有效提升現有音視頻產品體驗,在這些技術方向上非常有想象空間、我自己很感興趣,也在謹慎中積極尋求從“紙上得來”到親身“躬行”之路。
LiveVideoStack:從求學階段到步入職場,十多年為什么一直在多媒體開發領域呢?有沒有考慮更換過賽道,多媒體技術的有何魅力吸引著你?
李大龍:我從小學到高中,一直處于應試和學科競賽氛圍很濃厚的環境,高考填報志愿時選擇了一個既對數學要求較高又與當時全民IT熱相結合的專業——(計算機)信息安全。四年的本科學習中,精妙絕倫的數論及密碼學很好地滿足了我的挑戰欲望。此外還有一門在當時看來并無太大難度,僅僅是比較有趣的課程——多媒體信息隱藏,給我留下了深刻印象。研究生選擇方向和導師的時候,既能應用密碼學的知識技能又能和聲色并茂的多媒體場景結合起來的信息隱藏和數字水印,再次進入我的視野,加上我的導師胡瑞敏教授(http://multimedia.whu.edu.cn/index.php?m=content&c=index&a=show&catid=123&id=89)在音視頻領域的大師感召力,所以決定以此為方向。直至研究生畢業、在就業選擇時,也是理工生常有的做一行愛一行、堅持一行的慣性思維,堅決選擇音視頻技術相關的崗位和團隊。
時光荏苒,曾經的選擇在這十余年中當然也有過技術困境下的蹉跎和無助、有過業務調整期的失望和灰心、面臨內外其他機遇的誘惑,及互聯網行業高速更迭引發的焦慮和反思。但如果拋開單體業務的沉浮、放下個人一時一地的得失,用開放、學習和期待的心態對待不斷變化的市場和用戶,我還是能真切地感受到多媒體技術領域的長足發展和勃勃生機。
多年的專業閱歷,讓我堅信:音視頻技術是互聯網品質生活的連接器。這個“連接器”,一頭連接著人類最原始的視聽需求、同時也是最直接的感官享受之一,其在現代文明社會中作為社交、商務、效能和娛樂工具絲毫不為任何外部條件所改變。“連接器”的另一頭則連接且聚合著信息論、最優化理論、圖形圖像學、聲學、人類視覺系統等一眾根基深厚、源遠流長的學派?;ヂ摼W場景下的多媒體技術,作為更加綜合和全面性的專業領域,其魅力就在于我們總能直接面對和滿足萬千大眾的需求,技術上的精進帶來業務的發展,也在潛移默化中影響人們的社交、商務、娛樂行為。作為曾經的莘莘學子,和如今埋沒在寫字樓大廈中的普通程序員,專注并投身這個行業,能夠讓我們的所學所思所為有了用武之地!
LiveVideoStack:對于大多數開發者而言學習多媒體開發并不容易,對此你有哪些建議?
李大龍:對于多媒體開發這種綜合性較強的領域,個人感覺很難抽絲剝繭般地理出一份類似“N天精通多媒體開發”之類的東西出來?;仡欁约旱臍v程,也是順著自己的脾氣秉性、并受到外部條件的機緣影響而來。這里嘗試歸納幾點,僅供參考,但愿恰好能合乎讀此小文的朋友們的心意,或者也就當一介碼農的淺薄見解罷了。
首先,務必明確自己的目標和定位。用互聯網式的語言說,就是場景在哪里、有什么樣的痛點,最終學習/開發出的技術方案/軟件產品需要滿足哪些可量化的指標。我個人建議在入門階段不要過早聚焦在一個技術點上,而應該更多建立一個偏全局、偏框架性的概念理解。早早地手捧一份類似ISO/IEC 14496-10的大部頭生掰硬啃,收獲的可能只有心理上的高大上。不如先以外行心態、以給產品經理或者商務銷售講技術的心態,僅僅從通用性的邏輯層面來入門學習。把大象放進冰箱需要3步,那么一個實時視頻聊天系統有哪幾個邏輯模塊呢?從一方好友開始呼叫、到雙方建立連接、開始數據通信直至最終會話終止,其間的協議交互和流程是怎樣的呢?不考慮具體的Codec實現及復雜的應用場景技術指標要求,就當是加強版的CS通信,比起某年初學socket API調用時的DEMO代碼如何?……由此一層層、一步步用自己熟悉的技術類比、反推和延伸,并逐步理解主要環節的實現原理及技術難點,最終能給自己明確一兩個點進行后續的深究挖掘,例如:徹底排查和理清實時通話中時延的原因并優化、尋找系統中能夠影響圖像質量的因素并進行優化等。
其次,針對一個具體的、“局部性”問題不妨以“庖丁解?!薄熬虻厝摺钡膽B度來對待。因為音視頻技術有一定的數學基礎和較清晰的年代演進歷程,所以我個人非常主張追根溯源式的學習。例如我在公司內開設視頻壓縮原理的課程時,一定會先講一次圖像壓縮的課程??此乒爬系腏PEG壓縮框架,能夠非常直接地理解Spatial domain到Transform domain的意義、DCT頻帶數據特征之于人類視覺的影響、量化及量化表的由來、變長字編碼的設計理念等等。這些技術環節構成了視頻壓縮的半壁江山,而且雖然歷經二十余年的發展,很多環節不斷演進更迭,但其數學理論根基和工程設計理念得以傳承和延續。再略微進一步,體會下WebP和JPEG流程上的差異與改進,Intra prediction的設計理念與作用已然清晰。至此,視頻編碼框架下I frame的主干流程躍然眼前;剩下的細節,比如Intra prediction如何從H.264/AVC的9種模式演變到HEVC的35種,雖是匠心不改、歷經雕琢、但可作為錦上添花之物了。
再次,當一個個小的局部性問題逐個攻克后,就需要回歸全局性視角,對之前已有的結論和觀點再次推敲。多媒體項目產品中往往會遇到技術指標之間的沖突和矛盾,例如:開啟復雜的算法工具可以獲得更高的壓縮效率,即同等碼率下可以有更高的圖像清晰度,但在中低端設備上復雜度過高會導致編碼幀率上不來,嚴重時用戶甚至會覺得畫面有明顯的頓挫感、通話質量不好。如何在一對對矛盾中取得權衡,既需要對每個指標背后的技術原理有深刻的理解,同時更要求對整體業務需求和應用場景有所把控。懂得取舍、合理平衡,也是多媒體開發進階的必由之路。
最后,身處互聯網行業,自然要重視信息的交流。但我個人不建議白紙一張時就盲目交流,也對很多自媒體鼓吹的碎片化干貨學習保留懷疑。我建議初學者在具備一定基礎后,帶著自己的理解、感悟和困惑去交流,切勿人云亦云、東施效顰,對所謂大公司的“成功案例”、“領先指標”最好在充分對比業務場景、成本投入、平臺差異、目標用戶群等等因素后進行消化,并為我所用。
One more thing,不要沉迷“專”家、更不要將專長Codec算法居于這個行業的鄙視鏈(如果存在的話)頂端。好比一款理想中的手機,要縱享絲滑般的用戶操作體驗,絕非植入一款高端的CPU芯片就能搞定。一套完整的音視頻產品,要打造端到端的用戶體驗,需要考慮CDN調度接入、媒體文件存儲分發、流媒體傳輸、客戶端網絡連接等等環節,其間相互配合、制約、平衡,哪里是單純的Codec或者某個算法就能決定得了。偶爾有兄弟找我咨詢問題,往往開場就說因為Codec性能不好導致他們的畫面很卡啦、CPU占用率高啦、延時很大啦之類,似乎所有的矛頭都指向高大上且神秘的Codec模塊。那么在我們給Codec扣上背鍋俠的大黑帽之前,是不是去看看項目工程中有沒有低效的RGB與YUV互轉、有沒有一次又一次漫不經心的memcpy而只為把解碼后的Raw Data在一層層callback之間傳遞?還有那些在thread中任性的sleep,以及蹩腳的AVSync等待,這些都是殺人不見血的高手啊。
LiveVideoStack:編碼器壓縮率與編碼復雜度似乎是一對矛盾。在實時編解碼場景,復雜度是關鍵的指標,對此你有哪些體會?
李大龍:實時音視頻應用,壓縮率與復雜度的矛盾非常突出。雖然可以投入精力進行諸如算法匯編指令等優化工作,但在有限的計算資源和處理時延要求下,面對無限的更清晰更流暢的視聽體驗需求,單純的Codec優化往往顯得杯水車薪。兩全其美的辦法似乎不存在,以下談談自己作取舍和權衡的體會。
第一,是物盡其用原則。常有論調把智能手機劃歸為快速消費品之列,我們也能看到市場更迭很快。隨之而來的問題就是用戶側機型分布極其碎片化,各機型CPU/GPU計算能力、屏幕分辨率、視頻硬件模塊等方面的差異很大。所以,我們在哭喊“不可承受的復雜度”之前,其實很有必要先想想到底可以承受的復雜度上限在哪里?通常的做法是建立一個能力模型,將給定機型的軟硬件條件折算成一套視頻參數集,這個集合可以包括:默認情況下使用的Codec格式、默認情況下使用硬件/軟件Codec、最高圖像分辨率、碼率、Codec的Profile、幀率等。很多視頻聊天應用,在會話建立階段,往往也會進行通話兩端機型能力交換,然后按照木桶原則,來商定出最終通話過程中的Codec參數。
第二,貼合業務場景需求、抓住主要矛盾。上文也提到過,音視頻產品往往需要權衡和取舍,以爭取到端到端的整體表現和用戶體驗。以下有3個典型的場景舉例:
點對點視頻聊天、視頻會議場景。這類用戶場景對時延的要求很高,以至于傳輸協議很多時候是基于UDP的私有協議。甚至可以說,時延以及圖像聲音的連續性就決定了用戶體驗,而單幀圖像的分辨率、紋理細膩度等,應該讓位給前者。換言之,Codec的壓縮率可以作出一定程度犧牲。因為可以預期的是,我們輸入的圖像分辨率不會太大、目標輸出碼率也不會太高,所以我們可以選擇baseline方案、關閉B Frame類型、限制P Frame的參考范圍等等。這種場景下,對Codec的更大期望,反而是追求輸出碼率的平穩,盡量避免發送數據量的陡變。
個人直播、典型的1 vs. N場景。這類應用對時延的要求相比會議應用要寬松不少,協議側往往使用RTMP推流(主播端)和HTTP FLV/HLS播放(觀眾端)。顯然,用戶對圖像質量有了較高的期望,圖像分辨率和碼率會向高位傾斜。此時的Codec應該盡力迎合質量的要求,提升壓縮率、提升寶貴的上行帶寬利用率,但需要留意的底線是Codec編碼效率切勿直接造成(發送端)幀率低下、或者碼流輸出的嚴重滯后。如上文所言,我們需要建立和完善機型能力模型,另外APP內部具備不同檔位碼流切換的策略和能力。
拍攝類短視頻場景。嚴格意義上這個不算實時場景,但考慮拍攝環節所見即所得的用戶體驗要求,我也一并討論。這個場景下,對圖像質量的要求極高,拍攝階段需要盡可能快地響應用戶回看、編輯等操作,發表階段則一般是異步式的文件上傳,所以時延完全是個偽命題。重點說下拍攝階段的Codec要求,因為圖像質量極高,所以按理應該極致追求壓縮率,但如此一來,幾乎必然影響用戶回看操作的響應時間。可行的方案是轉換思維,在拍攝階段盡可能快、且保留圖像細節,硬件Codec、高碼率、“粗糙”的壓縮算法配置為先;等待拍攝完成后,再開啟復雜的Codec算法工具,作二次壓縮,提高壓縮率、保障發布階段的上行效率。
LiveVideoStack:在下一代編解碼器的市場,HEVC、AV1或其他產品中你更看好誰?
李大龍:現階段在國內市場,以H.264/AVC和HEVC為主的MPEG陣營占據了絕對份額。如果擴大到全球范圍,VP8/VP9的流量份額或許能形成一定挑戰。這背后當然主要是Google在全球互聯網領域的主導地位。
純粹技術層面的比較,有關壓縮效率、編碼復雜度、解碼復雜度等等,已經有太多的專業評測報告。拋開細節的數據,至少目前可以看到:MPEG陣營和Google開源陣營,并沒有哪一方是絕對完勝的。所以,到底是吃麥當勞還是肯德基?買單反,是選佳能還是尼康呢?雖然技術參數上難分高下,但綜合其它因素,我個人更看好MPEG陣營。
首先,視頻Codec市場是很廣義的。既存在于急吼吼的互聯網行業,也分布在慢吞吞的傳統行業。直接或者間接使用Codec產品的人,既有穿梭在科技園中的格子衫工友,也有扛著昂貴設備、扎馬尾的直男藝術家。更換Codec、更換軟硬件產品,對于前者是創新可以吹牛逼,對于后者是成本要破財。從技術生態鏈、產業完備性,包括技術品牌的延續性來看,MPEG陣營的地盤甚至可以形容為固若金湯。
其次,大家現在津津樂道于雙雄爭霸的局面,最直接的動機莫過于版權問題。大家心里的算盤應該比較類似:萬一哪天MPEG伸出魔爪扼住我的喉嚨,那么敵人的敵人就是我的朋友。道理如此,但存在一些變數:
VP8/9、AV1自身是否足夠“干凈”?目前提出的視頻編碼標準都是基于變換編碼和運動預測的混合框架模式,相同步驟下的算法工具設計理念比較類似。HEVC(包括其后代VVC)與AV1在技術方案上的交集可謂盤根錯節,如果Google真格地執意顛覆MPEG的技術領地,可能會觸發曠日持久的專利互訴大戰。
也許有明修棧道、暗度陳倉的辦法。大公司、巨頭企業可以通過參與視頻編碼標準化的方式主動加入專利池,小公司則可以通過向大公司購買技術服務的方式來規避或者打擦邊球。
今年年初MPEG創始人兼主席主動撰文,反思MPEG專利模式的危機。也許大家臆想中最大的敵人,從內部被攻破了呢?
最后我還想表達自己的另一點看法:技術發展的百家爭鳴是行業大幸,但標準化的分歧對峙,我更傾向于認為是勞民傷財。雖然綜合來看,我個人更看好HEVC及其續作VVC,但我也希望若干年后談起VP8/9、AV1時大家不光想到的是Google親兒子和免費午餐這樣的字眼。我很期待AOM聯盟能夠在某些細分領域,例如:甚低時延的恒定碼率應用、超大規模點云空間重建應用,在這些或小眾或前衛的領域上能夠突圍而出、另立乾坤。作為技術人員,相比新的商業模式,我更期待有新的技術流派和產品應用給這個行業注入動力。
LiveVideoStack:能否聊聊AI在多媒體領域的應用的現狀及未來機會?
李大龍:這一波AI熱潮的興起,最大的推手之一可歸為Deep Learning在Computer Vision上的突破。作為近緣的技術領域,AI對多媒體領域的賦能可謂是全方面的。限于我個人的知識體系,無法呈現全盤透徹的梳理,只能基于我熟悉的業務場景做以下零散舉例描述。
在內容編碼側,基于AI技術的感知編碼方案已經大行其道,而且在降低帶寬成本、提升圖像質量方面的效果令人振奮。有關感知編碼、Content Aware Encoding方面的技術內容,LiveVideoStack社區有長期深入的持續性報道,大家可以自行查閱。目前AI技術很多是Codec層以上,以輔助者角色來參與編碼,并沒有直接替換Codec框架內的算法工具。這既是出于碼流標準兼容性的考慮,同時也帶來一個有趣的問題:H.264/AVC借助AI輔助編碼后,幾乎就能完成大部分HEVC之于H.264/AVC的帶寬節省目標,而我們知道HEVC的解碼復雜度高、且目前HEVC解碼設備并沒有全面普及,所以這是否意味著HEVC的登基加冕日期還得放緩延后呢?
除參與編碼過程外,AI應用于圖像質量評測,尤其是無參考圖像質量評測,我個人認為是非常值得關注的。多媒體數據壓縮的根基很多時候就是利用人類視覺聽覺上的“遲鈍”或者掩蔽效應,而現行客觀指標PSNR/SSIM更多是對信號差異的數學性建模,VMAF已經融合累計了主觀評測的因素,那么未來是否有更加符合人眼特性的評價模型呢?而且可以預期的是,評價模型的深度變革或者歷史性突破,必然會反哺引爆編碼算法的躍進式發展,且讓我們拭目以待。
在內容傳輸側,無論像微信視頻聊天、FaceTime類型的RTC應用,還是Netflix、騰訊視頻這樣的大規模流媒體點播應用,服務提供商都很重視用戶體驗的建設。傳統QoS的思維,會著力于追蹤丟包、時延、錯誤、緩沖等這樣的客觀技術指標,而轉變為QoE的思維后,則需要全局考慮各項指標對用戶體驗的影響。QoE的困難之處就是難以嚴謹數學建模,而使用類似統計擬合的辦法,需要投入可觀的用戶調研,周期長、實際效果有待驗證。自適應流媒體架構,對前后臺的部署要求不高,目前業內都在廣泛使用以提升QoE。傳統的BBA(Buffer Based Adaptation)和RBA(Rate Based Adaptation)算法對復雜變化場景的適應性不好,MIT團隊基于強化學習的流媒體系統Pensieve(http://web.mit.edu/pensieve/)給大家提供了不錯的參考思路,目前這個項目已經開源,大家也可去了解下。
最后,在客戶端播放器層面,AI的應用更是花樣繁多。比如在圖像后處理算法環節,基于AI的實時視頻超分辨率算法,相比傳統的插值算法,能夠有更好的細節表現,也被寄希望用小圖像呈現高一檔分辨率的主觀體驗、以變相節省帶寬成本。AI技術的發展已經滲透到全產業鏈,芯片商推出NPU概念、Apple/Google在各自的系統Framework層提出ML解決方案、成熟的DL框架也在逐步推出適合移動平臺的Lite版本。可以預見的是,未來AI算法會在移動端以輕量模型的方式被廣泛實施,提供像SDR反向tone mapping、輸入低分辨率向空間域提升、輸入低幀率向時間域擴展等等超越傳統算法的能力,把視聽享受的“腦補”程度提到一個新高度。
LiveVideoStack:硬件編解碼觀察到哪些趨勢嗎?
李大龍:因為我自己沒有硬件領域工作的經驗,所以談不上趨勢解讀的高度。還是以軟件開發者的身份,從應用角度說點體會吧。
更高、更快的軍備競賽,沒太大意思。考慮目前手機設備的屏幕尺寸和分辨率,以及國內實際用戶帶寬的分布情況,4K、8K分辨率、50/60 fps的應用場景非常少,所以硬件不斷推高Codec能力意義不大。當然,持續減少Codec功耗還是不錯的,但可惜這樣的優化一般無法直接映射到用戶體驗層面。
HDR/WGC,有點意思,我個人比較看好這類干貨。Apple在HDR的支持上已經占得先機,但因為HDR的普及需要上游片源制作環節的響應,所以變相給廣大Android廠商提供了追趕的時機。期待芯片廠商、手機設備廠商以及屏幕供應商等相關環節能夠加快步伐,為廣大用戶帶來驚艷的視覺效果。
Android體系的開放性,對硬件編解碼的應用帶來很大的變數和不穩定因素。簡言之,無論是API穩定性還是版本兼容性方面,iOS體系的VideoToolbox都完勝Android體系的MediaCodec。上述痛點已是業內共識,且天下苦秦久矣。
通過系統API訪問到的硬件Codec能力,除開高運算效率和低功耗表現外,在實際壓縮效率表現、目標碼率與輸出碼率的差異、算法工具細節參數的控制等方面都明顯不如軟件方案。如果再考慮與AI這樣輔助工具的融合,軟件方案優勢更大。期待硬件廠商能夠調整思路,針對實際應用的痛點,作出適當妥協和改變。
LiveVideoStackCon 2018講師招募
LiveVideoStackCon 2018是音視頻技術領域的綜合技術大會,今年是在10月19-20日在北京舉行。大會共設立18個專題,預計邀請超過80位技術專家。如果你在某一領域獨當一面,歡迎申請成為LiveVideoStackCon 2018的講師,讓你的經驗幫到更多人,你可以通過speaker@livevideostack.com提交演講信息。了解大會更多詳情,請點擊『閱讀原文』訪問LiveVideoStackCon 2018官網,即刻享受7折優惠。
總結
以上是生活随笔為你收集整理的李大龙:音视频技术是互联网品质生活的连接器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 音视频技术开发周刊 53期
- 下一篇: Pensieve:AI带来的更流畅的高质