红岗花园的电被掐了,实验室里一片漆黑。只有几台自带电池的笔记本电脑还亮着微弱的荧光,把几个人的脸照得惨白。
楼下的喧闹声透过窗户缝隙钻进来。那是电信局的人在剪线,铁钳咬合金属的声音,在寂静的夜里格外刺耳。
“别管外面。”
张汉玉把一张白纸拍在桌子上,借着屏幕的光,手里那支签字笔在纸上划出一道粗重的墨痕。
“只要核心算法没跑通,就算他们把光缆铺到我床头,这生意也做不成。”
陈志远教授坐在对面,头发乱得像个鸡窝。这位从鹏城大学被硬请来的数学系主任,此刻正对着满屏幕的乱码发愁。
“跑不通。”陈志远把眼镜摘下来,在那件满是粉笔灰的中山装上擦了擦,“帧间差分已经是极限了。只要画面剧烈运动,数据量瞬间就会冲破带宽阀值。除非你能把64K的电话线变成光纤,否则这就是个死胡同。”
苏晓月靠在机箱旁,手指还在键盘上机械地敲击。她已经三十个小时没合眼了。
“现在的压缩比是20:1。”苏晓月盯着屏幕上的数据,“要想在电话线上跑流畅视频,至少要做到50:1。这在数学上是不可能的。”
“数学上没有不可能。”
张汉玉拿起笔,在纸上画了一个正方形。
“陈教授,您是搞拓扑学的。如果我们不把图像看作一个个像素点,而是看作波呢?”
陈志远戴眼镜的手停在半空。
“你是说……傅里叶变换?”
“不。傅里叶变换计算量太大,现在的CPU跑不动。”张汉玉在正方形里画了几个波浪线,“用余弦。离散余弦变换(DCT)。”
他在纸上飞快地写下一串公式。
`F(u,v)=(1/4)C(u)C(v)ΣΣf(x,y)s[…]`
陈志远凑过来,盯着那个公式看了半分钟。
“把空间域转化成频率域……”陈志远喃喃自语,“把图像里的高频信号——也就是细节部分切掉,只保留低频的轮廓和色块。人眼对高频信号不敏感,根本看不出来。”
“对。”张汉玉笔尖不停,又画了三个方块,分别标上I、P、B。
“光切掉高频还不够。视频是连续的。前一秒我在举手,后一秒手举高了五厘米。背景没变,脸没变,衣服没变。为什么要重复传输这些没变的数据?”
他指着第一个方块I。
“这是关键帧。这一帧,我们完整传输。”
笔尖移向第二个方块P。
“这是预测帧。我们不传图像,只传‘运动向量’。告诉电脑,这块像素往上移动了五厘米。电脑自己去算。”
最后是方块B。
“这是双向预测。既看前面,也看后面。通过前后两帧来补全中间的画面。”
陈志远猛地站起来,膝盖撞在桌腿上,那一摞摇摇欲坠的书哗啦啦倒了一地。他顾不上扶,抓起那张纸,手在抖。
“运动补偿……把时间冗余也干掉……”
陈志远在狭窄的过道里来回踱步,鞋底摩擦着水泥地。
“天才。这是天才的想法。”他猛地转过身,盯着张汉玉,“这套理论一旦实现,压缩效率能提高三倍。不,五倍!”
“晓月。”张汉玉没有理会陈教授的激动,转头看向角落,“把之前的代码全删了。”
苏晓月愣了一下:“全删?”
“全删。那是垃圾。”张汉玉指了指陈志远手里的纸,“按这个架构重写。陈教授负责数学模型,你负责把模型变成汇编指令。我要在天亮之前看到Deo。”
“天亮?”苏晓月看了一眼窗外漆黑的夜空,“只有四个小时了。”
“四个小时够了。”张汉玉走到窗前,看着楼下那些还在忙碌的电信局工人。手电筒的光束在黑暗中乱晃。
“他们以为剪断了线就能困住我们。却不知道,我们正在造一双翅膀。”
……
实验室里安静下来。只剩下键盘敲击声和粉笔在黑板上摩擦的沙沙声。
陈志远趴在地上,直接在地板上演算矩阵。苏晓月十指飞舞,屏幕上的代码行数疯狂增长。
张汉玉坐在一旁,手里拿着那把剪刀,修剪着一盆快要枯死的发财树。
咔嚓。枯枝落地。
去芜存菁。这就是压缩的本质。把没用的信息扔掉,只留下最核心的骨架。
在这个年代,MPEG标准还没诞生,H.261还在实验室里酝酿。全世界的科学家都在为了如何把视频塞进细细的电话线而挠破头皮。
张汉玉现在做的,是直接把十年后的技术标准搬到了1995年。
这是一场降维打击。
时间一分一秒过去。
东方的天空开始泛起鱼肚白。楼下的喧闹声终于停了,电信局的人完成了任务,心满意足地收工回家。红岗花园所有的同轴电缆都被切断,切口整齐,露着铜芯。
“搞定了。”
苏晓月的声音有些哑。她按下最后一个回车键,整个人瘫软在椅子里。
陈志远从地上爬起来,满身灰尘,脸上却红得吓人。
“快!测试!”
张汉玉扔下剪刀,走过去。
没有网线。测试只能在本地模拟带宽限制。
苏晓月在命令行里输入了一个参数:`liit_rate64kbps`。
这相当于最普通的电话拨号速度。
回车。
屏幕黑了一下。紧接着,那个熟悉的视频窗口跳了出来。
还是那只猎豹。
它在草原上奔跑。肌肉的起伏,斑点的纹路,甚至扬起的尘土。
流畅。丝滑。
画面右下角的码率监控显示:48kbps。
“我的天……”陈志远摘下眼镜,揉了揉发红的眼眶,“清晰度比之前高了一倍,带宽却只有原来的三分之一。这……这是魔法吗?”
“这是科学。”张汉玉看着屏幕,脸上没有丝毫波澜。