十三、熵编码CAVLC:2、编码上下文的确定与相邻块的有效性

本文介绍了熵编码CAVLC中宏块分级的概念,包括两次分级过程:cbp控制的8 * 8子块判断和CAVLC的4 * 4像素块解码。解析残差语法元素的顺序涉及numCoeff、trailingOnes、levels、totalZeros和runBefore。同时,详细讨论了编码上下文的确定,以及如何根据相邻块的有效性选择码流。
摘要由CSDN通过智能技术生成

1、前言

在实际进行预测残差的解析之前,还需要明确几个概念。我们已经知道一个宏块从亮度角度是16 * 16,然后编码器是不可能对一个16 * 16 的宏块整体编码的,在实际的编码中一个16 * 16 = 256个像素的编码,会进行两次分级。并且在两次分级中进行一系列的控制操作。

2、宏块分级

首先在两次分级中:

  1. 第一次采用的是cbp信息,在解析宏块结构中会得到一项非常重要的数据是coded_block_pattern,在一个宏块中,cbp会将这16 * 16的像素分为4个8 * 8的像素,并且通过CBP中每一位的值来指定这某一个8 * 8的子宏块究竟是包含实际的预测残差呢还是一个空的数据块;我们假设某一个宏块它的CBP将这个宏块分割模式就如同下图所示,分为4个8 * 8的子块,这个cbp中会有4个bit,根据是0还是1,判断4个子块是否有残差数据;如果某一个cbp中表示的是某一个子宏块的bit是0了,那么这一个子块就是一个空块,不包含任何残差信息,如果为1,按照规定的算法解析出相应的语法元素,这是由cbp控制的第一层的分级
  2. 第二层分割是由CAVLC的block来实现的,在CAVLC算法中,它的编码基本单元为4 * 4的像素块,也就是说,在8 * 8 的像素块中再进行一次分割࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值