H.264中IPCM宏块简介

在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宏块,这种宏块的脾气很古怪:不预测,没残差,不变换,无量化等操作,而是直接传像素值,直接将最原始的yuv数据写入到码流中,可见IPCM的信息不会有任何损失,是完全无损的. 如果将视频的所有宏块都编码成IPCM宏块,那么H.264就是一个无损编码,当然,在现实中,很少有人这么做. 那么,为什么要引入IPCM宏块呢?原因如下:

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

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

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

 

      最后闲聊一句:本人认为,一般来说,如果视频的静止区域少,那么,在视频中,I4x4方式的宏块数目 > I16x16宏块的数目 > IPCM宏块的数目.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值