H.264/AVC 片——slice

本文详细解读H.264视频编码中的slice概念,包括其作用、不同类型(如冗余、ASO和FMO)、以及它们在误码恢复中的关键作用。还介绍了slice结构和不常见的高级特性。

一帧视频可以编码成一个或多个片slice,每个slice包含有一个或多个宏块MB(最多时一个slice包含整帧的宏块)。具体来说有三种关系:

  • 每个编码图像一个切片,这是许多H.264编码应用程序的常见做法。

  • 每个图片有N个切片,每个切片包含M个宏块,N和M个整数。每个编码切片中的字节数将根据图像区域的运动量和细节而变化。

  • 每个图片有N个切片,包含不同数量的宏块,选择这些切片来保持每个切片的字节数大致不变。例如,如果将每个片映射到固定大小的网络包,这可能很有用。

设置slice的目的是为了限制误码的扩散和传输(编码的片之间有最小的数据依赖关系,这有助于限制错误在片之间的传播。怪不得搞编码速度/性能的paper大都不考虑多个slice,只考虑一帧只有一个slice,因为这些paper不会考虑出现误码的情况),使得每个slice之间是相互独立的,不能互相作为预测时的参考。

slice的结构如下图所示:

 slice头用于确定slice的类型、slice的参考帧以及slice属于哪帧图像

 slice数据包含一系列宏块,每个宏块里包含当前块的预测模式、参考图像索引、编码残差等数据


slice这东西再细分有这么几种,下面的三种都被基础/扩展的profile支持:

1. Redundant Slices

标记为redundant的slice包含部分或全部的编码帧的冗余表示。

在正常的流程里,解码器只会通过non-redundant的slice来重建frame,不会管redundant slice的东西。如果流程不正常,比如primary decoded frame因

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值