x265发起者陈敏:别人看我是专注,其实我只是感兴趣而已
認識陳敏是通過朋友介紹,當時我正在為第一次LiveVideoStackCon甄選講師,陳敏的背景一下子吸引了我,如此低調、默默貢獻的技術人正是我們希望挖掘的。但事與愿違,在通了十幾封郵件后沒能說服陳敏,但我知道“搞定”他只是時間問題。陳敏第二次引起我的注意是在2018年六七月間,在與快手音視頻技術部負責人于冰溝通中得知,陳敏加入了快手,從那時開始我就知道,更加接近邀請陳敏來LiveVideoStackCon了。不過好事多磨,我們先從一篇采訪開始吧,于是就有了本文。話說,這篇稿子反反復復被陳敏review了三、四次,而我經歷的大部分郵件采訪基本上一次review就通過。對文字如此較真的人,寫出的代碼應該也不會差吧。
?
作為DivX/Xvid、x264參與者和x265的發起人,陳敏依然專注在工程實踐第一線,用他的話說:(專注在Codec領域)是受自己的經歷和性格影響,是我感興趣而已。
文 / 陳敏
策劃 / LiveVideoStack
LiveVideoStack:陳敏你好,很榮幸代表LiveVideoStack采訪你。能否向LiveVideoStack的讀者介紹下自己,以及目前關注的領域。
?
陳敏:我的經歷比較簡單,最近20多年一直停留在改進性能的工程實踐領域,主要關注視頻編解碼領域,最近10多年也擴展到其它相關領域,例如芯片前端設計、系統架構等。
?
八幾年的時候,我開始對數據壓縮領域感興趣,自己看書和試驗摸索學習相關理論知識,從1998年開始,隨著開源軟件在國內的興起,興趣逐漸轉到開源視頻編解碼領域。
?
1999年左右有一個轉折點,當時我第一次參加軟件專業技術資格(水平)考試,以接近滿分的成績順利拿到了高級程序員水平證書,這件事讓我有信心把更多精力投入到軟件研發上。2000年以來,我分別在StepDigital、Grandstream、Multicoreware幾家公司負責軟硬件設計、實現等方面的研發工作,參與和組織過最近30年來大部分音視頻編解碼標準(合計超過15種)的相關產品的開發工作。我的工作長期以來聚焦在常用硬件平臺上的底層開發和代碼移植優化等方向,主要包括 ARM、x86、TI、Philips、Freescale、Xtensa 等平臺。我也是目前廣泛使用的視頻編碼器標準HEVC的開源編碼器x265的發起者以及主要貢獻者之一。
?
我在2018年5月加入快手,目前在快手負責視頻編解碼算法實現和優化工作,參與快手自研視頻編解碼器的架構設計、性能優化以及自研算法的實現。
我自己業余關注的興趣領域主要有芯片設計(僅數字前端)、CPU設計、軟件加解密和攻擊等領域,搞過如RISC-V CPU、硬件HEVC編碼和自動駕駛核心部件設計等等有趣的項目。
?
LiveVideoStack:我們第一次接觸還是在2017年,我記得通過許開強認識了你,當時LiveVideoStack剛剛成立不久,好不容易找到一位大牛所以就“咬住了不放”。我們前前后后差不多通了十幾封郵件,最后很遺憾的未能邀請你參加第一屆LiveVideoStackCon。當去年得知你加入快手后,我知道能邀請的時機正在逐步成熟了。為什么選擇來快手?
陳敏:作為x265創始人,后期x265的發展受很多外部因素影響,逐漸開始跟不上時代變遷。舉個例子,當時直播領域所需要的移動設備視頻編解碼器,國內的仟壹(qy265)做的比較好,而x265在移動端沒有充分優化,所以我希望對x265進行改進。另外,新一代編碼標準也開始制定了,很希望有機會加入一個好的團隊參與下一代產品。
?
2017年年初的時候,有朋友知道我準備回國,推薦說可以關注下快手,于是和快手的于冰老師聯系上。我當時和國內多家公司聯系過,最后選擇快手是因為看好于老師的技術眼光以及快手對技術的重視。我感覺到加入快手能真正專心做技術,同時快手用戶量非常大,可以更好的錘煉相關技術造福很多用戶。目前加入一年多,感覺當初的選擇沒錯。
?
首先,快手的戰場足夠大,目前日活2億,短視頻日播放量超過200億次,日上傳量超過1500萬,直播日活過億。此外,快手用戶機型覆蓋廣情況復雜,這給移動端編解碼技術帶來的挑戰是非常大的。面對這些挑戰,我們得從用戶的需求出發,用技術來優化視頻的上傳、分發和傳輸,在視頻編碼質量、吞吐率、速度,以及最終用戶體驗上都做到極致。
?
我們團隊希望能夠獨立從頭到尾構建一個最強大的視頻系統,解決一些別人解決不了的問題,這恰巧也是我想做的。比別人提前幾年就在做一些事情,這是最吸引我的。
?
目前取得的主要成果,是自主研發的視頻編解碼標準算法,目前已經可以做到小批量上線測試,幾個月后會做到大批量上線實驗。我們從提出這個愿景到做好,花了兩年的時間。另外我們的視頻標準實驗室,在下一代國際標準VVC中貢獻了很多提案,最近還在評估各種硬件編碼方案,為5G做準備。我們提前做了很多開拓性的工作,希望能在移動端視頻這個特定領域做得更好吧。
?
LiveVideoStack:從Step Digital,Grandstream Networks到MulticoreWare,三段工作經歷專注在研發,并沒有改變技術路線,也沒有往項目或管理方向轉變。你很享受這一過程嗎?有沒有什么挑戰或有趣的經歷?
?????
陳敏:我能一直專注在技術研發,是受自己的經歷和性格影響吧。剛開始接觸計算機,那個時候別說是搜索引擎,想進入網頁都只能抱著黃頁去找網址。而我一直以來的工作中,很多工作是沒有可供參考的資料,需要自己在一片黑暗中去探索。當時的情況和現在不同,現在遇到了問題,通過搜索關鍵字輕松獲取相關知識、案例或是開源代碼,解決問題的渠道很多;那個時候,搜索引擎還不存在,也沒有太多相關知識,只能摸著石頭過河。于是在黑暗中摸索,做探索性的工作,已經成了我的習慣。
?
比如說1997年前后,當時興趣驅動需要研究MPEG4國際視頻標準,而手頭只有一本高文教授的《多媒體數據壓縮》一書,當時國內還無法找到國際標準文檔,我花了不少時間訪問了很多國外學校的FTP,才勉強找到參考模型源代碼。下載回來后又遇到了編譯錯誤、缺少配置文件說明等問題,由于沒有資料可以參考,只能憑借自己的經驗逐步將源代碼修改為可分析、可執行調試的代碼。通過這種方式我大致理解了MPEG4標準的實現方式和協議細節,為其后參與DivX項目打好了基礎。
?
比較有挑戰的經歷,這里我舉兩個例子吧。
?
在x265開發早期,我也遇到了如何保證編碼器結果正確性的問題。我基于多年的嵌入式軟硬件系統研發經驗,參考硬件芯片研發流程,建立的自校驗系統,通過修改版的HM(注:HEVC參考軟件)輸出測試數據 Gold Test Vector,然后自己的x265編碼器讀入該數據,并在每一步自動校對,一旦發現不同就可以報告出來方便排查。該方法極大的提升了研發效率。
x265實現線程池(Thread Pool)后有段時間發現會出現很小概率的數據不匹配,表現為輸出結果不固定,由于數據解碼不出錯,但是數據的變動必然是存在bug,經過很長時間排查,最后發現是對一個控制量沒有做線程同步,造成畫面下面的視頻行會比上面更早完成,最終影響了后續處理流程。尋找和排查這個錯過的過程是很艱難但是快樂的,使得我積累了不少并行程序開發的經驗。
而每每我克服了困難,回頭看當時認為不可戰勝的勁敵,就只會覺得,也不過如此。我真正享受的可能是摸索的過程吧。
?
LiveVideoStack:你是如何做到如此的專注的?難道除了Codec沒有吸引你的技術方向或領域嗎?
?
陳敏:別人看我是專注,其實在我看來,是我感興趣而已。可能是因為不善于交流,加上享受純粹的技術工作,我才能一直專注。對于其他技術方向而言,除去Codec,我在業余時間會研究技術領域的發動機,像AI芯片、CPU設計等,如同有了好用的發動機,至于車怎么造就留給用戶自行發揮了。
?
比如說2017年RISC-V開源指令集比較火,被印度選為國家CPU項目基礎指令集,我也跟風去看了下,為了深入探索,為自己業余時間使用Verilog語言實現了這個CPU,期間獲得不少收獲:首先發現了一些指令集設計上的缺陷,期間和編譯器開發團隊以及其它業內設計公司進行技術上的探討,并將和國外大學實驗室一起發表論文并給出建議解決方案;其次我跟著MIT的在線課程學習了CPU設計技術,掌握了OOO(Out Of Order, 亂序執行)、分支預測、超線程、多發射等高級CPU設計技術。期間為了在RISC-V上實現自定義SIMD指令,對LLVM也學習了一段時間,掌握了如何在LLVM編譯器中添加和實現自定義SIMD指令,同時和LLVM編譯器開發團隊中RISC-V模塊實現者在指令優化上進行了收獲良多的探討。
?
LiveVideoStack:從1999年開始,你一直在為開源項目貢獻,包括Xvid,x264,x265,x266,THEVC。是什么原因讓你在這些項目中投入這么多精力,你獲得了什么?在這些項目的協作過程中,如何讓自己的patch(或其他貢獻)獲得認可,有沒有經驗可以分享的?
?
陳敏:我在最近20多年一直都在開源領域貢獻自己的成果,主要原因還是興趣驅動,我從小學開始就對數據壓縮技術比較感興趣,最初使用6502匯編語言完成一個Huffman壓縮器就感覺到很開心,這也為之后探索興趣的養成奠定了基礎,比如說我當初從Basic語言轉為C語言大約用了一天時間,數據壓縮中的算術編碼器也是一天以內就能完全理解。
?
我通常會在業余時間做這些研究,大多數使用雙休和節假日,遇到特別感興趣的也會在下班回家后忙到凌晨,對我的感覺只是做玩具而已,并不覺得是在工作。
?
貢獻patch的時候只是覺得自己的修改可以提升開源軟件的效果,純粹貢獻力量,發patch到mail-list就好,能否被官方接受純粹看運氣,也不會太多計較得失。
?
LiveVideoStack:能否介紹下Xvid,x264,x265,x266,THEVC這些項目,與我們平時提到的H.264,H.265,H.266有什么不同?
?
陳敏:Xvid、x264、x265是工程領域的視頻編碼器軟件,而H.264、H.265、H.266是視頻編碼標準,最大的區別在于一個是工程實踐,一個是算法原型。
?
Xvid是當年DivX事件后重新成立的MPEG4參考軟件[1,2],也是最后幸存下來的實用化開源MPEG4視頻編碼器。x264、x265是對應國際標準H.264/AVC、H.265/HEVC的開源視頻編碼器。
?
THEVC是x265的前身,主要用于架構和算法驗證,在x265創立之后就停止開發了。x266是前幾年我創建的一個小項目,當時主要想法是實現一個軟硬結合的視頻編碼器框架,加入快手后工作太忙暫停了。
?
x264和x265中都離不開VideoLan基金會的影子。x264在后期開始走商業化路線,通過雇傭人手來加快開源項目的研發進度和代碼品質。由于這個路線被實踐證明可行,MulticoreWare公司在x265時代被多家公司投資,以商業團隊去運作H.265/HEVC視頻編碼器。
?
LiveVideoStack:為什么在2017年開始就不再為這些開源項目貢獻了呢?發生了什么?
陳敏:2017年我被MulticoreWare公司抽調去協助Steve(x265的另一位主要貢獻者)的雷達芯片項目,所以整個2017年往后都沒再對x265項目作出公開貢獻,只是負責日常內部代碼review。
?
LiveVideoStack:在海外工作十多年回到國內,對比國內外的企業、文化方面有哪些不同?
?
陳敏:首先更正下,我拿到美國工作簽證是2013年,但是離開中國是2014年春節后,算起來只是在海外工作了五年。
?
我個人的感受是國外公司會對工程技術更重視一些。由于我在海外沒有換過工作,一直都在MulticoreWare公司,所以對國內外企業的對比可能不太完善,只能簡單說下重點。
?
我和國內的朋友交流過程中了解到,國內的一些大公司在招人的時候,HR會比較看重學歷、論文等,對工程實踐能力重視度不夠,但做研發應該更看重工程實踐能力,這樣可能會讓學歷和論文不強的人在HR這關就錯失了機會。國外企業更需要解決實際問題的人才,大多更加注重工程實踐能力。在快手一年多,我感受到了快手對技術的重視,對能夠解決實際問題的人才的重視,這也是我可以在這里專心做的原因。做技術的人都希望跟強者一起合作,這樣會效率更高,這里做事情講究追求極致,注定有機會產生一流的技術團隊。和優秀的人一起工作,也會有更大的成長空間。
?
快手的音視頻團隊,從初期幾個人成長到如今一百多人的規模,這個成長速度是創業團隊才有的。另外,我們加班不算多,只在業務需求比較緊的時候才需要加班,很多時候是自己主動要求加班,想要加快項目進度。快手的加班可以自己選擇調休或者換算成工資。對待工程師比較人性化這一點,非常接近硅谷的互聯網公司,讓我很容易適應。
?
LiveVideoStack:你在海外這五年,恰恰是國內互聯網乃至移動互聯網爆炸式發展的關鍵階段,是否也會感嘆“錯過了”許多?
?
陳敏:在海外這五年,正是x265從創立發展到現在輝煌階段的關鍵五年。x265目前在世界范圍內廣泛應用,是HEVC編碼器工業界的實際參考標準。x265項目在2011年底創建,我在2013年加入Multicoreware全職開發這個項目。這個項目中,我和Steve、Deepthi 是代碼提交量的前三名,我的提交量僅在Steve之后。
?
在海外的五年,正好是國內移動互聯網爆炸式發展的時代,但是作為一個經歷過2000年“.com”從輝煌到破滅時代的程序員,我完全沒有覺得錯過了。我認為事情都有兩面性,可能錯過了很多機會,但是收獲了人生,這就看個人如何抉擇了。國外環境好和生活壓力小,可以專心做技術,感覺還是很愜意的。可能關注點只是在技術吧,沒有太在乎其他。
?
LiveVideoStack:作為一名有過豐富國內外工作經歷的技術人,能否給即將走向社會的畢業生一些求職建議?比如選擇國外的公司,還是國內的工作?如果選擇國外的工作,有哪些需要注意的地方?
?
陳敏:對于求職的畢業生來說,我覺得首先是要選擇自己的方向。如果是走純技術路線,或考慮家庭、環境等,國外會好很多。對于理論研究能力強、學歷高的人,留在國內發展可能機會更多更好。其次,心態很重要,能夠在一個領域專注沉淀20年、30年甚至更久,是比較考驗毅力的,但是當停留的時間夠久時,會發現未來的機會和上升空間會更加巨大。在我看來,還是建議年輕人應該靜下心沉下去做事情。
?
最后針對選擇去國外工作的朋友,我有兩點建議,流利的英語很重要,再有就是年輕人還是要沉下心來,把基礎打好打牢,提升基礎業務水平。
?
我再舉兩個人的例子說說國外研究技術的環境。國外可能更偏向于興趣驅動來選擇工作,同時社會大環境也會給予埋頭技術的人以不錯的回報。
?
比如說Steve,他一直埋頭于技術幾十年,開發各種工具以及底層支持代碼。我對他的印象是為人隨和,平時穿著也很普通隨意,雖然每天工作到很晚,但覺得做自己感興趣的事情很開心。而Title一直都是Software Engineer,但待遇是VP級別。
?
另外一位令人敬佩是DCT三位發明人之一的K.R.Rao教授,他當了幾十年的終身教授,另外兩位發明人已經去開公司做的風風火火,他卻還留在UTA(The University of Texas at Arlington)任教。我和他見過一面,那次見面印象深刻。是2017年我第一次去UTA辦公室拜訪Rao教授,我到達的時候是中午十二點多,而學校是下午兩點上課,教學大樓只有零零散散的三五個人。我在大廳等到十二點半多的時候,看見一個老人步履蹣跚走過,由于位置原因,我看見的是背影,但直覺告訴我這很可能就是Rao教授,一會果然看見他走到掛著Rao教授牌子的辦公室,開門到桌前埋頭翻著文檔做著研究工作。我上前打招呼才得知我的猜測沒錯,他果然是Rao教授,接著我們愉快的聊了一下午,得知他一直奮斗域領域前沿研究領域,同時著書育人,每天忙碌并快樂著。這里不得不提一句,Rao教授可是1936年出生的,這么多年來還能一直堅持在第一線做自己感興趣的研究工作,也是非常難得的。
?
LiveVideoStack:平時有哪些業余愛好?能否分享最近看的一本書或一部電影?
?
陳敏:典型技術宅,平時可能也就象棋、羽毛球吧。在北京空閑時間少,最近看的都是休閑類小說。當然,我經常翻閱的經典收藏書有幾本,單獨選取一本有點困難,如果非要說,我推薦《數據壓縮的原理與應用》(Data compression Principles and Applications),有吳老師翻譯的中文版,個人還是覺得第一版更好。我不經常看電影,當然還是推薦我經常反復看的經典影片《肖申克的救贖》。
?
LiveVideoStack:最后一個問題,你會來參加LiveVideoStackCon2019北京嗎 : )
?
陳敏:因為LiveVideoStack一般都在工作日舉辦,所以是否參加看公司安排。
?
[1]?https://zh.wikipedia.org/wiki/Xvid
[2] http://www.voidcn.com/article/p-njplwegw-us.html
?
LiveVideoStackCon 2019北京 音視頻技術大會最新日程現已上線,掃描圖中二維碼或點擊【閱讀原文】了解大會最新日程。
總結
以上是生活随笔為你收集整理的x265发起者陈敏:别人看我是专注,其实我只是感兴趣而已的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 倒计时3天:3D音带你起飞
- 下一篇: 倒计时1天:AI在改变一切