视频编码的运动估计从整像素搜索到仿射预测的四十年算法博弈

一个4K视频帧包含超过800万个像素,而相邻两帧之间可能只有5%的像素发生了显著变化。如果不利用这种时间冗余,每秒60帧的4K视频需要大约12Gbps的原始带宽——这是任何网络都无法承受的。运动估计(Motion Estimation, ME)就是解决这个问题的核心技术,它通过在参考帧中寻找当前块的最佳匹配位置,将视频压缩效率提升一个数量级。 ...

15 min · 7452 words

无损压缩如何工作:从香农信息论到现代算法的七十年演进

1952年,克劳德·香农在贝尔实验室的办公室里写下了这样一个公式: $$H(X) = -\sum_{i=1}^{n} p_i \log_2 p_i$$这个看似简洁的等式,定义了信息的数学本质,也为接下来七十年的压缩技术发展奠定了理论基础。当我们今天用gzip压缩文件、用PNG保存图片、用HTTP传输网页时,这些技术的根源都可以追溯到香农的信息论。 ...

14 min · 6644 words

HyperLogLog:用1.5KB内存估算十亿级基数的概率魔法

引言:一个看似不可能的问题 假设你正在运营一个日活用户超过十亿的社交平台,产品经理问你:“今天有多少独立用户访问了我们的网站?“这个问题听起来简单,但当你真正思考如何回答时,会发现它蕴含着深刻的计算机科学难题。 ...

13 min · 6308 words

一行正则表达式如何让全球互联网瘫痪27分钟——从Cloudflare宕机事件看回溯灾难的技术真相

2019年7月2日,一个普通的周二下午,全球数十万网站突然无法访问。Cloudflare的全球服务中断了27分钟,受影响的网站包括Discord、Omegale、Buffer等知名服务。这不是黑客攻击,不是硬件故障,也不是配置错误。罪魁祸首是一行正则表达式。 ...

18 min · 8925 words
Beam Search算法概念图

Beam Search:为什么这个「折中」算法统治了序列生成三十年

1997年,IBM的研究人员在开发统计机器翻译系统时遇到了一个棘手的问题:如何在庞大的搜索空间中找到最优的翻译序列?穷举搜索计算量太大,贪婪搜索又太短视。他们最终选择了一个折中方案——Beam Search。二十多年过去了,这个算法不仅没有被淘汰,反而成为了Transformer、GPT等现代大模型的标准配置。一个「妥协」的产物为何能统治序列生成领域如此之久? ...

1 min · 321 words

二分图匹配为何能用增广路不断扩充:从匈牙利算法到Hopcroft-Karp的完整LeetCode通关指南

三个工人、三份工作,每个人只能胜任其中几份。如何安排才能让最多的人找到工作?这个问题看似简单,却隐藏着图论中最优雅的算法之一——二分图匹配。它不仅能解决工作分配问题,还能处理从课程排期到广告投放的各类实际场景。 ...

8 min · 3686 words

股票买卖问题为何能用一套代码解决所有变体从状态机DP到贪心的统一框架

当你面对LeetCode上的六道股票买卖问题时,第一反应可能是:每道题都要单独学一种解法?这正是无数开发者的误区。实际上,这六道题可以用同一套状态转移方程统一解决——区别只在于边界条件的细微差异。 ...

8 min · 3792 words