H.264中IPCM宏块简介

本文介绍了H.264编码标准中宏块的不同类型及其应用场景。详细解释了I4x4、I16x16及IPCM宏块的特点,并讨论了它们如何适应不同复杂度的图像区域。

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

       在H.264中,一个宏块包括16*16个像素,I宏块有三种形式:

 

       1. 16个I4x4编码方式组成的宏块(为了方便,简称I4x4方式的宏块);

       2. I16x16宏块;

       3. IPCM宏块(特殊)

 

 

       为什么一个宏块有时要分成16个I4x4方式的宏块呢?

       因为分块越细,就越准确。

       所以I4x4编码方式适合编码那些纹理比较复杂的宏块,而I16x16编码方式就更加笼统,适合编码那些比较平滑的区域.

 

      在实验中也可以看出来:

      用JM8.6编码foreman视频,用H.264visa分析码流,可以发现,在第一帧中,只有5个I16x16宏块,而这5个宏块所在区域都非常平坦,像素值几乎没有什么差异.

 

      最特别的是IPCM宏块,这种宏块的脾气很古怪:

      a.不预测

      b. 没残差

      c. 不变换

      d.无量化等操作

 

     那怎么玩呢?它是直接传像素值,直接将最原始的yuv数据写入到码流中,可见IPCM的信息不会有任何损失,是完全无损的.

 

       想象一下:

      如果将视频的所有宏块都编码成IPCM宏块,会怎样呢?

      显然,此时H.264就是一个无损编码。

      当然,在现实中,很少有人这么做.

 

      那么,为什么要引入IPCM宏块呢?原因如下:

      (1). 在某些特别的情况下(这种情况极少),某种编码方式并不是data compressor而是data expander, 这时候,与其进行复杂的变换,还不如直接传输原始yuv数据;

      (2). 传输宏块所需要的代价有了一个上限,最大限度不得超过IPCM编码方式;

      (3).  该宏块可以实现无失真传输,从理论上来讲,H.264可以实现无失真传输.

 

      看最后一个问题:

      一般来说,如果视频的静止区域少,那么,在视频中,有如下关系式:

      I4x4方式的宏块数目 > I16x16宏块的数目 > IPCM宏块的数目.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值