Huawei Facts

用小故事构建起舆论氛围的万里长城

  • PACD战地记者
    分: 437
    2023-01-09 09:40:04  已同步 【华为家事】
    12168
    18
    只看楼主

    解出难题的那一瞬,脑内释放的多巴胺给林泽辉带来了无语伦比的刺激和享受。使他沉迷的成就感驱使他逐渐成长成为了“别人家的孩子”:小学一头扎进了数学奥赛;因爱玩电脑游戏自学C语言;初高中横扫国内各大信息学竞赛,一路在市赛、省赛、全国赛中斩获好成绩;大学更是五次夺得ICPC区域赛金奖。林的奖状整整齐齐地放满了比人高的柜子。

     

    离开象牙塔后,林加入了华为2012实验室中央媒体技术院。心怀对媒体技术的热情,他有备而来。林泽辉说:“站在人生的岔路口,我总会倾听内心真正的热爱,然后不断练习和成长,把我对技术的愿景和希冀做出来,变成现实。”

     

    他没有让自己失望。加入华为短短一年半后,林在中央媒体技术院交出了一份掷地有声的答卷。首先,他和团队在主观效果无损的前提条件下将渲染数据压缩比率从现有的50倍提升至X百倍 。其次,他和团队还创新性地重构软件,提出了端云协同渲染辅助渲染视频编解码的方法。

     

    且听林泽辉原汁原味地讲述他在华为披荆斩棘、沿途下蛋的经历。



    五次夺得ICPC金奖让林泽辉非常自豪,图中为其中三次金奖的奖状

     

    端云协同渲染数据压缩X百倍 – 竞赛方法论使我快速上手


    端云协同的前提下做某种渲染数据的编解码是我在华为拿到的第一个课题。我们对未来的期待是将终端算力的负重迁移到云上,数据在云里算好了再将结果回传终端。数据在云上走一遭的过程中,如果没有优秀的压缩算法,就会消耗大量宽带资源,产生高额的流量费。

     

    目前业界能做到无损地将数据压缩50倍,但该算法却不支持有损压缩,而我进组的时候,华为的目标是在主观效果无损的前提下将压缩X百倍! 野心勃勃的目标让我兴奋非常,我立马着手用竞赛解题的方法论来攻克这个难题。

     

    在编程竞赛中,我的起跑点永远是分析题目:查看数据范围、运行时间限制、内存限制;然后我将问题抽象化,建立数学模型;模型就像一把锁,面对这个锁,我的大脑就像搜索引擎得到了关键词一样,将脑内的经典算法排列组合、拆分重构去做出适配这个锁的钥匙。经过不断的打磨验证,我总会听到锁被打开时那一声美妙的“啪嗒”。

     

    对于渲染数据编解码,我也是这么做的。我首先厘清了压缩的目标,包括带宽、时延、耗时、帧率等的要求;然后我学习了这种渲染数据的生成算法,分析确定了待压缩数据的数据特点;接下来我就去寻找可用的算法。因为我在编解码方面是小白,所以阅读了不少资料,同时也请教了很多人,包括我的导师蔡博(蔡康颖)和浜哥(陈焕浜)等同事,他们都非常乐于指导我。有了前辈们的提点,我的编解码知识在短时间内有了快速的提升。入职一个月左右,我就确定了数据的初步压缩技术路线。

     

    然而,在实现和验证时,我却遇到了一个难题:我缺少渲染效果的测试环境,无法测试编解码算法的各方面指标。虽然导师蔡博帮我向周边团队询问资源,但当时因为大家都是刚起步,还没什么积累。与此同时,我在网上找到了一些开源代码,但是它们的渲染效果很糟糕,还有很多bug。我心想,虽然这个算法复杂,但我们搞竞赛的,最擅长的就是编写逻辑复杂的代码,我为什么不自己实现呢?说干就干,两个星期,我就把渲染算法实现好了。又两个星期,我把测试环境搭好了。再过了两个星期,第一版算法产出了让人惊喜的测试结果。后来,我们又设计和实现了更多的算法,经过测试,我们的算法在主观无损的情况下,压缩率成功达到X百倍,同时也保证达到端云协同算法的设计指标,为其可行性提供了重要的保障。

     

    至此,我入职华为后的首战告捷。虽然我学生时代折腾过很多东西,但也不是所有经验所得到现在都能用派上用场,没想到当年打竞赛的经验却是格外好用。

     


    我大展拳脚的“小家”

     

    端云辅助视频编解码实现从0到1的突破 – 可不要小瞧前竞赛选手的毅力


    当然,我在华为的研发路除了小坎小坷,也遇见过横在马路中央的大路墩子,一度堵得我差点想放弃。所幸我在竞赛中锻炼出的毅力,加上身边专家老师们的耳提面命和各种帮助,使我有勇气和实力扫开障碍。

     

    用渲染信息去辅助视频编解码,是媒体标准与编解码部很久前就一直在尝试的一个新方向。与自然的视频不同,计算机图形学所生成渲染的视频,拥有上帝视角,拥有整个场景,包括几何、光照等信息。理论上,用这些渲染信息去辅助编解码肯定比编码自然视频更有优势。但实际情况是压缩团队要打通技术堵点非常困难。

     

    万事开头难

     

    在华为倡导一杯咖啡吸收宇宙能量的氛围里,我也参与了讨论。因为心里认为这个方案困难重重,所以我曾在与渲染专家刘利刚老师的交流中反复讨论了这个方案的各种难点。说着说着我的心里似乎就觉得这事儿做不成了。刘老师可能看出了我心里的坎,在我们的讨论后若有所思地拍了拍我的肩膀,给我留下了一句话:“这是一个很重要的方向,这个事情我们华为不做,其它公司也肯定会做的,我们不能错失这个机会。”

     

    刘老师这句话像个榔头一样捶在我的心上。我想起了从前在竞赛中,我总是不断在寻求更优解,而不是一步登天去找到一个标准答案。每个竞赛中的难题都是一个更大难题的其中一部分,就如同用渲染信息辅助编解码虽然是一个庞大的问题,但我可以把它拆解开,通过不断的学习和调研,一步步地去解开它的每一个方面。不能放弃!总会有办法的!刘老师不仅仅给我打了一针鸡血,还指点我沿着几个方向去做尝试。受到激励的我决心沿着刘老师设下的路标走一遭。即便这难题并不在我的KPI里,我心里还是默默地就跟这难题干上了。

     

    皇天不负有心人。我有一次在调研商业渲染引擎的计算流程的时候,突然发现,商业渲染引擎的计算方法与我正在做的端云协同渲染数据有不少相似之处!我往深了想,这其实很合理。两者都是渲染,算法也是相互借鉴的,自然会有很多相似的地方。我想起来我此前分析过端云协同渲染数据编解码,它能压缩X百倍的主要有利因素。那么在渲染视频上,它是不是也有这些有利于压缩的特点呢?我马上着手分析,发现有利于压缩的特点确实存在,虽然不能生搬硬套此前渲染数据编解码的做法,但是对算法做一些改造之后,就应该能够在端云场景下利用起来这些特点。

     

    将一种应用场景下的方法迁移到另一种场景下,一直是我的强项。这也得感谢算法竞赛锻炼我,让我拥有了较强的横向思维能力。算法竞赛与其它竞赛很大一点不同,就是题目更偏向应用形式,虽然题目总能抽象出一个具体的数学模型,但光看这个数学模型却很难看出来需要什么样的算法去解决。这就使我养成了不断地去尝试验证的锲而不舍的做事方式。

     


    想起这些当年在ICPC竞赛中流血流泪挣来的气球,觉得没啥难题接不了的,斗志就被点燃了。

     

    一波二折

     

    我快速修改好了一个现有的渲染引擎的代码,实现了算法思路,并将结果可视化为视频,以便于检验思路和规划下一步改进方向。但问题又来了:可视化视频中总有噪声,显示算法不是很理想。噪声是比较混乱的,信息熵比较大,从基础原理上就不利于编解码。这可让我犯了难。幸运的是,就像算法竞赛中有mentor一样,华为的导师天团再一次拯救了我。

     

    常年的竞赛经验使我养成了有问题就问,积极沟通请教的好习惯。一筹莫展的我立马将问题升级到了我的导师们蔡博和建同(周建同)那里。建同建议我可以试试将现有的结果复用标准视频编解码的能力进行处理,看看效果如何。建同一针见血的建议使我醍醐灌顶。对呀!现有的视频编解码标准应当对这样的噪声有一些处理策略的,我一下就找到了前进的方向。

     

    我呼叫了同事浜哥的帮助。浜哥帮我改造了H.265编解码标准的参考软件后,我便将算法改进集成到了参考软件中,进行仿真测试。测试结果显示,对渲染视频编解码的性能的提升幅度,竟然接近一代视频编解码标准提升幅度的一半!要知道,而一代视频编解码标准,是包括华为、三星等很多公司在内,研究若干年才有的成果。

     

    一波三折

     

    果然0到1的突破都不是那么好实现的。项目很快到了原型验证的阶段。我、逸群、威岚和廖晶堂博士的团队一起花了一个多月搭建起了端云编解码系统,并将算法集成到系统里,事情似乎朝着顺利的方向发展。

     

    距离原定的演示时间只剩下一周,我正喜滋滋地把端云系统部署到便携电脑,意想不到的问题发生了。以台式的电脑作为云侧,以便携电脑作为端侧时,传输中的视频画面会随着时间的偏移不断地变绿!把台式电脑作为端侧,把便携电脑作为云侧,结果视频画面又会不断地变红!

     

    紧凑的Deadline给我带来了很重的焦虑,整个下午我的心情和脸色就像这视频颜色一样在红绿中来回切换。接近傍晚的时候,我回想起竞赛时的初心。我在算法竞赛中所编写的复杂程序,几乎没有一次性成功的时候,更多情况下都是需要反复地定位问题、解决问题,甚至还有发现思路不对推倒重来的代码,或者在临近比赛结束才发现并修复漏洞。想到之前我直到最后一刻都不会放弃的经历,我逐渐冷静了下来。

     

    在知道方法可行的前提下,只要排查我一定能成功。我开始逐个逐个模块地调试、——把每个模块地输出存为文件,并进行端云数据的逐一比较,成功定位到了一个导致端云数据不一致的模块。之后又逐句地检查这个模块地代码,定位到了一句调用硬件的语句。我将这句调用硬件的语句替换成另一句调用硬件的语句,再运行端云,果然视频变得跟红绿灯似的问题解决了。整个调试花了两天的时间。

     

    而后在剩下的五天时间了,我又遇到了各种各样的bug或错误,但有了第一次冷静应对的经验,我最终还是在团队的通力合作下,成功及时地完成了演示。

     

    竞赛的确能让我更顺利地融入产业的工作模式中,但这并不意味着竞赛出身的我们能立马干得和老法师们一样好。我进入华为后经历着不断成长的过程。在这过程中,我很感恩身边有解惑的导师专家们、不吝荷助的同事们、支持我去试错的主管和很多给予我帮助的人们。

     


    文中提到的浜哥和我媒体标准与解码部的其他小伙伴们,大家都非常nice

     

    编者按:
    在与林泽辉交流的时候,编者注意到林泽辉总是会在说出一个观点之前停顿大约2-3秒的时间,他想一想的时间虽然稍微会让人觉得有些着急,但泽辉的回答总是那么条理清晰。先总结归纳上一个说话人的要点,然后在这基础上回应并提出独到的见解和观点。

    竞赛带给林泽辉的不仅仅是知识面的提升,更磨砺了他的心性和做事方法,这些是能够更长远地助力他一生的东西。而他的心性和方法论也会更好地助力我们的研发和产品线开发出更好的技术和产品。

     

    更正:

    文章修改了第6段中关于目标的描述。另附上有关“该算法”的论文出处 https://dl.acm.org/doi/abs/10.1145/3458305.3463379

    该论文通过对一种渲染算法的数据进行无损压缩,保证了渲染效果无损,但压缩比有限;而有损压缩需要仔细考究压缩算法对主观渲染效果的影响,该论文的算法并不直接适用于有损压缩。

  • 全部评论
  • CISCO
    分: 1719
    文明分 : 89
    CISCO 发表于 2023-01-09 11:18:18
    只看该作者 | 

    厉害~年轻有为,期待云手机早日得到实现和普及!

  • 小毛驴的贝贝猪
    分: 527
    文明分 : 80
    小毛驴的贝贝猪 发表于 2023-01-09 12:57:23
    1
    只看该作者 | 
    泽辉很棒!有方法、有韧性,继续加油!
  • 小树2008
    分: 3592
    文明分 : 81
    小树2008 发表于 2023-01-09 20:55:42
    1
    只看该作者 | 

    好牛啊。赞

  • 漏马甲
    分: 3664
    文明分 : 87
    漏马甲 发表于 2023-01-10 20:31:15
    1
    只看该作者 | 

    为年轻人点赞

  • word他哥
    分: 8315
    文明分 : 93
    word他哥 发表于 2023-01-10 21:52:38
    5
    只看该作者 | 
    云手机?这玩意没啥前途吧。谷歌都把云游戏关掉了。
  • 研发二狗
    分: 5898
    文明分 : 93
    研发二狗 发表于 2023-01-10 23:06:42
    1
    只看该作者 | 
    呵呵
  • metameta
    分: 2542
    文明分 : 86
    metameta 发表于 2023-01-10 23:44:35
    4
    只看该作者 | 
    关键是时延,只有10ms的机会,高于10ms就是神,低于10ms就是垃圾
  • dreamgod
    分: 5789
    文明分 : 93
    dreamgod 发表于 2023-01-11 16:09:46
    只看该作者 | 

    看起来有点像搞跨平台传输呢

  • 寻找手机
    分: 1969
    文明分 : 91
    寻找手机 发表于 2023-01-12 15:33:57
    只看该作者 | 

    搞固网的恨的牙痒痒,哈哈!

    • 回复 江湖再不见 2023-02-16 18:01

      都这么搞,还怎么撑管道,
      云核,IP,无线还怎么扩容。

    • 回复 七步之植 2023-02-17 08:45

      尤其是搞家宽的,FTTR的,不就指着成大管道然后卖设备吗?

      公司的各个产品线之间的冲突还是挺矛盾的。

     
    我也来说两句......
  • 锦瑟五十
    分: 2097
    文明分 : 81
    锦瑟五十 发表于 2023-01-12 15:54:23
    只看该作者 | 

    效果好,放在端侧也是也可以的,没必要一定放在云,实时性数据请求太多,云服务也会被DOS

    • 回复 我也是奋斗者 2023-01-12 17:26

      这个压缩是为了减少传输带宽和时延吧。如果放在端侧,就不需要压缩了?

     
    我也来说两句......
  • Clayman
    分: 1918
    文明分 : 84
    Clayman 发表于 2023-01-13 09:07:26
    只看该作者 | 

    支持有想法创新,别人不行不代表我们不行

  • myfnl
    分: 165
    文明分 : 80
    myfnl 发表于 2023-01-18 11:11:29
    只看该作者 | 

    学以致用,敢想敢做,赞!

  • 地球上的火星人
    分: 338
    文明分 : 80
    地球上的火星人 发表于 2023-02-14 11:09:45
    2
    只看该作者 | 

    X百倍?  这个要是真的话,那视频行业中的其它技术人员的大脑必定是被智子锁死了.大笑

    • 回复 雪豹悲秋 2023-02-16 09:23
      1

      要么前人傻+笨,要么吹牛逼多了吹的太随意,这有这X百倍压缩效率的提升,你让他赶紧弄个VR MR AR出来,又给你扯上一堆的约束限制

    • 回复 心如斯水 2023-02-23 16:43

      @雪豹悲秋 X= 0.0y

     
    我也来说两句......
友情提示:
请自觉遵守《心声社区管理规定》及中华人民共和国其他各项法律法规。
心声社区所有帖子仅代表作者本人观点,不代表社区立场。