图像压缩原理简介之H.261/H.263
佚名|
雷特视频网| 2005-08-26
***---H.261---***
H.261概述
·该标准由CCITT于1988至1990间发展制定。
·应用于ISDN电话线的视频会议,可视电话等。
·ISDN的基本速率为64kbps,可以使用多路复用(p×64kbps)。
·解码序列如下:

·图像帧类型为 CCIR 601 CIF(352×288)和 QCIF(176×144),信号色度格式4:2:0。
·两种帧编码类型:帧内编码 Intraframes(I-frames)和帧间编码 Interframes (P-frames)。
·帧内编码的 I-frames主要使用JPEG的技术。
·帧间编码的 P-frames使用与前一帧(预测帧,predicted frame)的差值进行编码,因此当前帧依赖于前一帧。
·I-frame可以作为随机读取点。
帧内编码(Intra Frame Coding)
下图显示了帧内编码的流程,和JPEG编码过程基本一致。

·宏块(macroblock)为原始图像里16×16像素区域。
在4:2:0格式中,一个宏块对应4个亮度块(Y block),1个Cr块,1个Cb块(Cr block & Cb block,子采样后的色度信号块)
·对所有DCT系数用常数值进行量化(即,没有JPEG标准里的量化表)
帧间编码(Inter-frame (P-frame) Coding)
·帧间编码的基本思路如下图所示:

上图中:
·参考图像(reference image)指前面(已编码)的图像。
·目标图像(target image)指当前要编码的图像
在帧间编码中,关键过程称为运动估值(motion estimation),对于当前目标图像中的某一宏块,在参考图像中寻找与之最相似的宏块(best match),然后对他们的差值进行和帧内编码类似的编码。
这样作的好处是得到的差值矩阵比较小,编码需要的比特量业也比较小。但是这里还要传送最匹配宏块和当前编码宏块之间相对位置的信息,
这里称为运动向量(motion vector)。
·两点补充:
1.这里用解码后的图像(decoded image)作为参考图像,而不用原始图像。
2.一般使用“平均绝对差值”(MAD: Mean Absolute Difference)作为判断最匹配块的标准。也可以使用“均方差”(MSE: Mean Squared Errow)
细节:如何对宏块编码

很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr
·有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type
·若想调制量化以得到更好的压缩效果,传送量化值-->Quant
·运动向量-->vector
·宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。
·象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb)
H.261比特流结构

·很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr
·有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type
·若想调制量化以得到更好的压缩效果,传送量化值-->Quant
·运动向量-->vector
·宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。
·象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb)
H.261比特流结构
H.261中的难点问题
1.运动向量搜
当前目标图像中待编码宏块C,其右上角坐标为(x,y),则该宏块中像素为C(x+k,y+l)
参考图像内,右上角坐标(x+i,y+j)的参考宏块R内像素为R(x+i+k,y+j+l)
下式求绝对误差平均值(MAE: Mean Absolute Error):
运动向量搜索的目标就是寻找一个MAE值最小的参考宏块,其对应向量(u,v)为运动向量。
·全搜索(Full Search Method)
1.对参考图像内范围为[-p,p]搜索区域的所有可能宏块进行搜索。
2.全搜索方法的运算量为:
设对比每个像素需要3次操作:减法、求绝对值,相加。
当搜索范围(p)较大时,全搜索算法的运算量相当大,因此需要各种快速算法。
·二维对数搜索。(Two-Dimensional Logarithmic Search)
类似于binary search,在一个范围为[-p/2, p/2] 的窗口内对九个点进行初始的MAE计算(如下图所示)
1.在上述九点求出的MAE中,找出最小的一个。
2.以该点为中心,用上一步搜索范围的一半形成新的搜索区域,对新的九点进行搜索。
3.重复上两步,直到搜索区范围为一个像素。
层次化运动估值(Hierarchical Motion Estimation)
1.对目标图像和参考图像,生产若干低分辨率的版本。
2.对最低分辨率版本搜索运动向量。
3.由低分辨率向高分辨率,逐级修改运动向量。(在每一级进行小范围搜索,最后得到的运动向量可能很大)
各种快速算法运算量大大小于全搜索算法,但搜索结果要比全搜索算法差,全搜索算法得到全局极小点,而快速算法可能只能找到局部极小点。以下是各种算法性能比较:

2.误差传递(Propagation of Errors)
·不能有太多连续的P帧。
·在比较时(求MAD时),参考帧使用解码帧。
3.比特率控制(Bit-rate Control)
·基于“缓冲器充满程度”(buffer fullness)进行简单的反馈控制。
若缓冲器太满,增加量化比例因子来降低数据量。
H.263
H.263是1996年3月发表的,针对低码率应用的视频压缩标准。和h.261一样,该标准对帧内压缩
采用transform 编码,对帧间压缩采用预测编码
改进:
·半象素精度运动补偿
·无限制运动向量
·Syntax-based arithmetic coding
·先进的预测,PB帧
除了CIF和QCIF,H.263还支持SQCIF,4CIF和16CIF
以下是H.261/H.263支持的视频格式:
H.261概述
·该标准由CCITT于1988至1990间发展制定。
·应用于ISDN电话线的视频会议,可视电话等。
·ISDN的基本速率为64kbps,可以使用多路复用(p×64kbps)。
·解码序列如下:

·图像帧类型为 CCIR 601 CIF(352×288)和 QCIF(176×144),信号色度格式4:2:0。
·两种帧编码类型:帧内编码 Intraframes(I-frames)和帧间编码 Interframes (P-frames)。
·帧内编码的 I-frames主要使用JPEG的技术。
·帧间编码的 P-frames使用与前一帧(预测帧,predicted frame)的差值进行编码,因此当前帧依赖于前一帧。
·I-frame可以作为随机读取点。
帧内编码(Intra Frame Coding)
下图显示了帧内编码的流程,和JPEG编码过程基本一致。

·宏块(macroblock)为原始图像里16×16像素区域。
在4:2:0格式中,一个宏块对应4个亮度块(Y block),1个Cr块,1个Cb块(Cr block & Cb block,子采样后的色度信号块)
·对所有DCT系数用常数值进行量化(即,没有JPEG标准里的量化表)
帧间编码(Inter-frame (P-frame) Coding)
·帧间编码的基本思路如下图所示:

上图中:
·参考图像(reference image)指前面(已编码)的图像。
·目标图像(target image)指当前要编码的图像
在帧间编码中,关键过程称为运动估值(motion estimation),对于当前目标图像中的某一宏块,在参考图像中寻找与之最相似的宏块(best match),然后对他们的差值进行和帧内编码类似的编码。
这样作的好处是得到的差值矩阵比较小,编码需要的比特量业也比较小。但是这里还要传送最匹配宏块和当前编码宏块之间相对位置的信息,
这里称为运动向量(motion vector)。
·两点补充:
1.这里用解码后的图像(decoded image)作为参考图像,而不用原始图像。
2.一般使用“平均绝对差值”(MAD: Mean Absolute Difference)作为判断最匹配块的标准。也可以使用“均方差”(MSE: Mean Squared Errow)
细节:如何对宏块编码
很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr
·有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type
·若想调制量化以得到更好的压缩效果,传送量化值-->Quant
·运动向量-->vector
·宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。
·象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb)
H.261比特流结构

·很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr
·有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type
·若想调制量化以得到更好的压缩效果,传送量化值-->Quant
·运动向量-->vector
·宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。
·象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb)
H.261比特流结构
H.261中的难点问题
1.运动向量搜
当前目标图像中待编码宏块C,其右上角坐标为(x,y),则该宏块中像素为C(x+k,y+l)
参考图像内,右上角坐标(x+i,y+j)的参考宏块R内像素为R(x+i+k,y+j+l)
下式求绝对误差平均值(MAE: Mean Absolute Error):
运动向量搜索的目标就是寻找一个MAE值最小的参考宏块,其对应向量(u,v)为运动向量。
·全搜索(Full Search Method)
1.对参考图像内范围为[-p,p]搜索区域的所有可能宏块进行搜索。
2.全搜索方法的运算量为:
设对比每个像素需要3次操作:减法、求绝对值,相加。
当搜索范围(p)较大时,全搜索算法的运算量相当大,因此需要各种快速算法。
·二维对数搜索。(Two-Dimensional Logarithmic Search)
类似于binary search,在一个范围为[-p/2, p/2] 的窗口内对九个点进行初始的MAE计算(如下图所示)
1.在上述九点求出的MAE中,找出最小的一个。
2.以该点为中心,用上一步搜索范围的一半形成新的搜索区域,对新的九点进行搜索。
3.重复上两步,直到搜索区范围为一个像素。
层次化运动估值(Hierarchical Motion Estimation)
1.对目标图像和参考图像,生产若干低分辨率的版本。
2.对最低分辨率版本搜索运动向量。
3.由低分辨率向高分辨率,逐级修改运动向量。(在每一级进行小范围搜索,最后得到的运动向量可能很大)
各种快速算法运算量大大小于全搜索算法,但搜索结果要比全搜索算法差,全搜索算法得到全局极小点,而快速算法可能只能找到局部极小点。以下是各种算法性能比较:

2.误差传递(Propagation of Errors)
·不能有太多连续的P帧。
·在比较时(求MAD时),参考帧使用解码帧。
3.比特率控制(Bit-rate Control)
·基于“缓冲器充满程度”(buffer fullness)进行简单的反馈控制。
若缓冲器太满,增加量化比例因子来降低数据量。
H.263
H.263是1996年3月发表的,针对低码率应用的视频压缩标准。和h.261一样,该标准对帧内压缩
采用transform 编码,对帧间压缩采用预测编码
改进:
·半象素精度运动补偿
·无限制运动向量
·Syntax-based arithmetic coding
·先进的预测,PB帧
除了CIF和QCIF,H.263还支持SQCIF,4CIF和16CIF
以下是H.261/H.263支持的视频格式:
责任编辑:lmtwadmin
版权声明:凡注明来源“流媒体网”的文章,版权均属流媒体网所有,转载需注明出处。非本站出处的文章为转载,观点供业内参考,不代表本站观点。文中图片均来源于网络收集整理,仅供学习交流,版权归原作者所有。如涉及侵权,请及时联系我们删除!
24小时热文
流 • 视界
专栏文章更多
- [常话短说] 【热评】广电做“错”了什么?! 2025-12-15
- [常话短说] 【重要】广电“壮士断腕”! 2025-12-11
- [常话短说] 【解局】广电降本增效“大有空间”?! 2025-12-10
- [勾正科技] 短剧榜单|电商,美妆行业持续发力,精品定制短剧推动品牌高声量 2025-12-09
- [探显家] CTV 广告从“注意力”转向“可验证的结果” 2025-12-09

