H.264 Part 10 White Paper 学习笔记 v0.2

本文介绍H.264编码的基本原理和技术细节,包括宏块处理、运动估计与补偿等关键技术,并解释了编码器如何通过内外部模式生成预测宏块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2001年,JVT(Joint Video Team)成立,H.26L和AVC以及H.264是一个东西。

未命名

图中,ME/MC(运动估计、运动补偿);暂时不知道T、Q是什么……

下面是白皮书的部分译文,水平有限,大概是这个意思吧~~~~

Encoder (forward path):

输入的Fn帧是当前准备编码的。帧是以宏块为单位处理的,宏块对应原始图像中16x16的像素。宏块编码可以为内部或外部模式。在任意一种情况中,预测宏块P基于重建帧生成。在内部模式中,P从当前帧n的编解码、重建后的样本中生成,图中的uF’n是没有过滤的P的样本。在外部模式中,P是由运动补偿预测从一个或多个相关帧生成的。在图片中,相关帧就是以前编码过的帧,F’n-1。

当前宏块减去预测P来记录差异的宏块Dn。为了得到X,使用一套量化转换系数来转换宏块。这些系数重新排列以及熵编码过。解码宏块时是需要熵编码系数和其他信息(比如压缩码流中宏块预测模式下的量化步长,描述运动补偿后宏块的运动矢量信息等等)。码流在NAL(Network Abstraction Layer)层传输或存储。

Encoder (reconstruction path):

量化宏块参数X是为了从Dn重建Fn’而生成。参数X经过重新缩放的(Q-1)和逆变换的(T-1)来产生一个不同的宏块Dn’。这和原来的区别宏块Dn不一样,量化过程导致失真,所以Dn’是Dn的歪曲版本。

预测宏块P加上Dn’,生成重建宏块uFn’(一个原宏块的歪曲版本)。一个过滤器用来减少块歪曲,最后得到重建的帧。

Decoder:

解码器从NAL收到一个压缩的比特流。基本数据经过熵解码,然后记录生成一套量化的参数X。X经过缩放和逆变换给出Dn’(这和编码器图中的Dn’相同)。用解码比特流的头信息,解码器生成一个预测宏块P,和编码器产生的P一样。P加上Dn’,得到uFn’,再经过过滤器得到宏块Fn’。

必须了解编码器中重建路径的目的,是为了保证编码器和解码器都用同样的帧来创建预测P。如果没有这个过程,预测P在编码器和解码器将不能一致,导致错误的增多或者帧在两者之间漂移。

心得: 白皮书很短,但是非常重要,特别是那个编解码的图。首先要记住编解码的过程,以及内外部模式的区别,还有重建路径的作用。 总体而言,编码的时候不是整张图都要编码,而是编码的帧间的差异部分,内外部模式只是用的P帧不同,考虑代码实现的话,应该是一个需要全局储存上次处理的结果,一个只需要多跑一个流程。 协议只规定了解码器的详细说明,而实际的编码器可以自行定义,但是从编码器应该能生成重建帧,与解码器生成的重建帧应该完全一样,否则就是编码有问题。

现在理解的还不深入,待今后补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值