学习 H.261 规范以介绍现代视频压缩技术是否有用,还是应该从其他地方开始?我不知道从哪里开始,但 H.261 似乎很简单,可以很容易地掌握这些概念。
2 回答
该规范不是一个很好的介绍——它主要是为了准确而编写的,并且几乎没有解释为什么事情是这样的。H.261 本质上与 MPEG-1 相同。我用过的一本书(并且写得很好)是MPEG Video compression stanadard,作者是 Mitchell、Pennebaker、Fogg 和 LeGall。FWIW,这涵盖了 MPEG-1 和 MPEG-2(分别称为 h.261 和 h.262)。
我部分同意 Jerry Coffin 的观点;我认为 H.261 对于任何学习视频压缩的人来说绝对是一个很好的起点,但直接阅读规范并不是一个好主意。
我将关注的 H.261 的基本构建块是运动补偿、宏块、用于减少空间冗余的 DCT,以及用于减少时间冗余的差分 PCM (DPCM)。
如果我必须为学习目的选择一种视频压缩的一般原则,请从运动估计和运动补偿开始。试试这个思维练习:想象两个连续的视频帧仅相隔 1/30 秒。它们会非常相似,对吧?在不上网的情况下,你会如何利用第一帧中编码的信息来减少第二帧的代码长度?现在,去搜索运动估计。
接下来,您将如何减少空间冗余?H.261 使用 JPEG 之类的东西并使用 DCT。
编辑:来自 Wang、Osterman 和 Zhang(关于 H.261 本质上是基于块的混合视频编码的第 293-4 页):
在这个编码器中,每个视频帧被分成固定大小的块,每个块或多或少独立处理,因此称为“基于块”。“混合”一词意味着每个块都使用运动补偿时间预测和变换编码的组合进行编码。...首先,使用基于块的运动估计从先前编码的参考帧预测块。运动矢量指定当前块和最佳匹配块之间的位移。预测块是使用运动补偿从估计的 MV 上的前一帧获得的。然后,预测误差块被编码,通过使用 DCT 对其进行变换,量化 DCT 系数,并使用可变长度编码将它们转换为二进制码字。