白虹贯日

怀才就像怀孕,时间久了才能让人看出来。

07
Apr

新技术,新挑战

自从CCBN展会之后,我本以为会继续做码流监测仪,更改硬件,增加录制码流等功能,没想到研发部的头找我说,打算开发码率重整复用器,国内还没人做,所 以前景可观,奇货可居。我觉得这样有难度,有挑战性,很喜欢,于是答应了。从上周开始,开始着手准备这方面的工作。

先是看MPEG-II标准,视频和音频部分,看了一天,晕菜了。讲的都什么东西啊,说得玄乎其玄,充满看不懂得术语和条目,满目的表格和语法,就像读某些 学者的宏篇高论,我拼命想读懂,可他努力不让人看懂,让我对自己的智商起了疑心。第二天,我决心抛开这劳什子,到网上找资料来看,找了半天,然后看上一 天,豁然开朗了,原来数据压缩是这么回事,视音频压缩是那么回事,用了那么多聪明巧妙的技术,真是佩服,大长了见识。

比方说,要直接把中等分辨率的原始色度,亮度数据传送出去,数据量那是相当惊人。怎么办?压缩数据呗,想尽一切办法压缩,压缩成百上千倍。人们最直接的想 法是,象素就这么多,难道是把一些数据扔掉不成?那样分辨率不就少了吗?这时候,多亏用了200年前一个聪明人,伟大的法国数学家傅立叶 (Fourier)的发明。没有他,就没有图像处理算法,也就没有多媒体。离散余弦变换(DCT)是傅立叶变换的一种变形,是一个无损的,可逆的数学过 程,把空间幅度数据转化为空间频率数据。不知道谁先使用的,想象力实在太丰富了,不然,怎么会想到把直观的空间域转成抽象的频域呢?正是这种转换奠定了压 缩的基础,也揭示了图形的空间能量分布。因为人眼对高频空间不敏感,所以,可以把高频的信号舍弃,只保留少数低频信号,这可以把数据压缩。但是光这样不够 啊,还得另辟蹊径。于是聪明人又想出一个主意,把DCT变换的矩阵元素除以一些足够大的数(所谓的量化表),这样大部分元素就接近零,四舍五入就成了0, 然后使用编码,用最简洁的方式表示这些元素(大部分是0),以后解码时再乘以量化表。而如何用最短的长度完整表示最多的信息,这就是编码的任务了。

MPEG-2采用了游程编码和huffman编码(典型的熵编码),这样使得变换后的数据能以最短的“01”方式保存。但这还不够,这仅仅是降低了空间冗 余,那么时间冗余呢?人们又想到,其实两帧图片至今大部分信息是相同的,只是稍微移位或者有点变化而已,如果对于第二帧数据,仅仅发送和第一帧的差异,那 么数据量就少多了。这是任何人动点脑筋都能想到的,术语叫做运动估计,看似简单,然而体现在算法上,就闪烁着人类的智慧。为了实现运动估计,光是搜索最匹 配部分(术语叫宏块)的算法就琳琅满目,但看似深奥的算法许多起源于简单的生活常识。

音频编码(mp3)也很有趣,同样利用了人类的弱点,如掩蔽效应(包括频域掩蔽效应和时域掩蔽效应
)和听闻界限。掩蔽效应简单地说,当我们说话的时候,听不到噪声,而当我们停下来,就听到了。而人耳的构造决定了我们听不见2KHz以上和20Hz以下的声音,因此可以把这部分频率的数据舍弃。

当了解了MPEG-2的大部分原理之后,回头再看标准,才觉得原来如此,理解更深了。这样的标准只有专业人士才看得懂,关键是得自学成才,入了这个门槛才 行。到了上周三,开始用google的学术搜索找码率重整方面的资料,结果查不到,换了几个可能的关键词,慢慢找阿找阿,国内资料很少,几乎全是IEEE 的论文,搜了一天论文,然后看一天英文论文,明白了我要做的东西到底是什么东西,属于哪门子技术,根据一篇篇论文的蛛丝马迹,好不容易找到几篇正中下怀的 文献。google的学术搜索看来赚了不少钱,中文搜的是维普资讯,万方数据,英文则是IEEE,都是要钱才能看全文的。不过google还算有良心,提 供了同一论文的“其它版本”,不少是指向pdf格式的论文,所以下载了几十篇相关论文,如获至宝。虽然五百多页英文论文看起来让人头晕,幸亏我申请的时候 和教授们套磁,他们的主页,论文不知道看了多少,可谓驾轻就熟。

当我看的论文越多,我就越发着迷。许多论文堪称经典,提供了十分巧妙的算法,效果又出奇地好,但是仔细想想,却是合乎情理,只要自己换一个角度思考,就能 得出类似的结论。比方说,转码(transcoding)或者码率压缩(transrating)问题,把一个压缩的视频流再次压缩,最简单的思路就是先 解码,然后再编码,然而这样会带来图像噪声的扩散,并且成本和计算量都很高;于是人们就想,不要解得那么多,只要一点点,解压缩到DCT域,再把量化步长 加大,造出更多的0就行了,这种方法实现起来很简单也很自然,但是效果还是不好,图形质量差;于是人们自然而然想到了防止误差扩散的办法,那就是闭环反馈 控制,计算复杂了,效果也好了。这时候,有个葡萄牙小伙子和一个伊朗老头跳出来说,我有更好的办法,能造出全频域的转码器,不要解压缩到象素域,到频域就 行了,然后在频域想办法加闭环防止误差扩散(DCT域运动补偿,MC-DCT)。当我看到他们这篇经典论文,我一下子被震撼了,赞叹不已。这不是正是我想 的吗?只是早了6年被他们说出来了。当我搜索论文的时候,还毫无头绪,研发的头也不懂,跟我说,他设想的方法是先解压缩,然后再重新编码。然后我想,这不 麻烦吗?有没有办法尽量不要解压缩,直接进行二次压缩行否?这真是一个伟大的想法,但我当时没意识到这简单的想法有多重要,只是在脑海里一闪而过,没想到 竟和他们不谋而合!

由此,我想起了一个印度数学家,他上不起学,然而天赋极高,独立发现了一个重要定理,然后给英国(法国?)的大数学家写信告诉他的发信,很遗憾,一个伟大 的数学家早在几年前就发现了这定理了。怪谁呢?只能怪他晚生了几年。我还听有人抱怨,说他读的文献足有3G多,埋怨老家伙们把重要的发现,定理,算法,发 明都抢光了,只剩下艰深冷僻的课题供他研究。就连大物理学家也有这样的感觉。20世纪到来时,开尔文勋爵宣称,物理大厦基本完工了,剩下的就是把边边角角 修补一下,装潢得富丽堂皇就好了。在我读论文时,感同身受。那么巧妙,那么完美的方法都被人想出来了,地盘都被抢光了,那以后的人以后怎么混饭吃啊?除非 绞尽脑汁想出更巧妙,更聪明,更完美的算法来。科学的进步也许就是这样被逼出来的。

经过8天的阅读,我感觉自己一下子成了专业人士了,进了专业店的门槛,里面的东西可以到处看,虽然有些玩意儿看不明白。总工薛老师让我有了方案之后开个技 术报告会,临阵磨枪,不快也光,于是趁着热乎劲,写了《MPEG标准综述》和《码率重整方案可行性论证报告》,洋洋洒洒共40多页,汇总了相关原理、技术 和算法,综合各种先进算法,提出了一种最佳方案,如果实施成功,可以领先于国外竞争对手。周四下午的技术报告会从下班一直开到7点半,讲了1个多小时,饿 得饥肠辘辘,不过讲完之后一身轻松,很有成就感。老总表扬说,调研报告做得很好,以后这样的技术交流会得多开,大家要多学习,才能与时俱进。然后,周五老 板找我谈话,准备给我加薪,提升为经理。我当然很高兴,也有点遗憾,不管薪水再高,9月初我也得辞职了。争取到时候把新产品开发出来,也算是填补国内空 白,留给公司一份有用的技术遗产吧。

Leave a Reply

© 2010 白虹贯日 | Entries (RSS) and Comments (RSS)

Design by Web4 Sudoku - Powered By Wordpress