LentP

我在研究生期间参与了LentP项目,它是一套图片压缩方案,已经被UC手机浏览器使用。UC将其用于服务器端图片转码,手机客户端解码图片,通过此方法节省服务器带宽,也减少用户的流量消耗。

LentP相关的技术细节写成了硕士毕设,在北大图书馆网站可以查到。下边主要讲一些自己的体会和感悟。

  1. 要知道产品的核心竞争力来自哪里。
    • 我们做了一个程序或者算法,他到底哪里具有优势。
    • JPEG、PNG是目前主流的图片标准,但是有将近20年的历史了,这期间不断出现过想取代他们的标准或者产品,影响力最大的就是谷歌基于VP8视频标准推出的WebP了。WebP在标准层面具有压缩效率的优势,同时现代的计算机的计算能力也跟得上了,许多厂家已经使用WebP来优化带宽消耗了,比如淘宝、微信、UC等。
    • LentP使用了比VP8更新一代的视频标准HEVC,在压缩效率方面具有优势。同时由于组内在Strongene Lentoid视频编解码器汇编优化方面积累的经验,LentP在汇编优化方面很具优势。最终LentP在保证压缩效率的同时,达到了实际可用的水平,能够直接对标WebP。
  2. 产品要经过严格的测试。
    • 对于产品压缩效率的对比测试,在硕士论文中有详细介绍。这里的经验是,测试要有理有据,公平客观,测试的样本要全。一句话概括就是测试过程和结果要能说服别人。
    • 如果是用户量少的软件,或者课程大作业里做的程序,测试并不会消耗很多时间。但是对于用户量有几亿的软件来说,每一个新特性都要被严格的测试,测试也分为内部测试和外部的灰度测试。
    • LentP在给UC测试前,我们自己写过一些脚本来测试,包括测试内存泄露和崩溃,我们测试使用的图片集是4万张图片,测试了编码器和解码器里的每个参数。
    • 当把产品拿给UC进行灰度测试时,经历了漫长的迭代过程。用户量和安卓机型多起来后,一些崩溃现象就暴露了出来。经历过逐步的灰度测试并修复后,LentP得到了UC的认可。
  3. 持续改进。
    • 产品上线后,还是可以持续改进的。比如编码器增加AVX2指令集优化,解码器使用更高效的NEON指令集优化,编码器使用性价比更高的帧内预测优化算法。

通过LentP项目,自己亲身体验了实际的产品开发,同时开发出的产品得到了实际使用,并且用户量过亿。虽然用户不知道使用了我们的产品,但是我们的库被过亿用户每天使用,还是给自己很大自信心的。

Loading Disqus comments...
Table of Contents