B_Direct_16x16 整个宏块都采用Direct的方式进行预测(请参考h.264直接预测),不需要编码mvd以及refIdx,在解码时重建宏块所用的mv与refIdx靠直接预测进行推导,只需要编码residual(请参考h.264语法结构分析) B_X0_mxn 当宏块的分割方式为16x16时,意味着宏块不需要进行分割,因此只需要用一个字段(L0:前向预测;L1:...
P_L0_L0_16x8表示宏块的的分割方式为16x8,也就是宏块被分成俩个16x8的块,每个16x8的块都有一个前向参考图像L0,即两个L0,按顺序写成P_L0_L0_16x8 P_L0_L0_16x8表示宏块的的分割方式为8x16,也就是宏块被分成俩个8x16的块,每个8x16的块都有一个前向参考图像L0,即两个L0,按顺序写成P_L0_L...
但是这样是值得的,因为图像的压缩效率有了显著提高,也就是编码后得到的相同质量的图像,H.264的压缩比更大,占用的空间及带宽更小。 宏块种类 I宏块利用从当前片中,已解码的像素作为参考进行帧内预测,注意是当前片内,不能取其他片中已解码的像素作为参考进行帧内预测。 P宏块利用前面已编码的图像作为参考图像,进行...
1、宏块(Macro Block):一个编码图像首先要划分成多个块(4x4 像素)才能进行处理,显然宏块应该是整数个块组成,通常宏块大小为16x16个像素。宏块分为I、P、B宏块,I宏块只能利用当前片中已解码的像素作为参考进行帧内预测;P宏块可以利用前面已解码的图像作为参考图像进行帧内预测;B宏块则是利用前后向的参考图形进行帧...
padding 是为了做对齐的:OceanBase 宏块为2MB,不足部分需要做 padding。 后面我们针对不同的部分,一一介绍其结构的存储格式。 2.1 宏块的 header 宏块的头部记录的自然就是宏块的元数据,它由多个部分组成,如下图所示: 宏块头部的各个部分存储的是不同的元数据,具体含义如下: ...
宏块对是一个计算技术语。假设 A、B 是上下相邻的两个 MB:在非宏块对的情况下:A、B宏块序号不连续,相差图像一行宏块个数。即按光栅扫描顺序编号。在帧宏块对的情况下:A、B宏块序号连续,即按锯齿扫描顺序编号。A、B 组成不变。A 称为顶帧宏块,B 称为低帧宏块。在场宏块对的情况下:A、B宏块序号连续...
OceanBase 宏块的垃圾回收和坏块检查主要采用 TIMER 定时任务调度,TIMER 的主要特点是启动一个后台线程,周期性的对任务进行调度。关于其他的调度方式,后续会单独介绍。 既然采用 TIMER 调度,那么其调度的时机也很明显,在启动 OBServer 进程时,就启动了一个后台线程,周期性的进行垃圾回收和坏块检查,代码如下(省略了部分...
宏块类型表示的是宏块的分割和编码方式。在h.264语法结构中,宏块类型在宏块层(macroblock_layer)用mb_type表示。不同类型的宏块对应不同的mb_type,该数值与当前宏块所在的slice类型相关。I slice的宏块类型只能是I宏块类型(I开头),共有26个数值。每个宏块类型对应特定的参数,如transform_size_8x8_...
宏块(Macroblock)是H.264编码的基本单位,以16x16像素为标准,进一步细分为更小的4x4或8x8块。宏块内的像素相似性决定了编码复杂度和效率。编码结构 切片头包含片的详细信息,如数量和顺序等。宏块编码遵循特定算法,以实现高效压缩。宏块种类 合理分块避免块效应,海思等公司提供了应对策略,如deblock...