来自:https://blog.csdn.net/leibniz_zsu/article/details/4325324

Coded_block_pattern,即CBP,指亮度和色度分量的各小块的残差的编码方案

CBP详解

cbp一共6bit,高2bit表示cbpc(2:cb、cr中至少一个4x4块的AC系数不全为0;1:cb、cr中至少一个2x2的DC系数不全为0;0:所有色度系数全0)

低4bit分别表示4个8x8亮度块,其中从最低一位开始的4位分别对应00,10,01,11位置的8*8亮度块。如果某位为1,表示该对应8*8块的4个4*4块中至少有一个的系数不全为0。

ICBPTAB[0] = 0  (00 0000)表示既没有亮度系数,也没有色差系数

ICBPTAB[1] = 16 (01 0000)表示没有亮度系数,有色差直流系数(没有交流系数)

ICBPTAB[2] = 32 (10 0000)表示没有亮度系数,有色差交流系数(可能含有直流系数)

ICBPTAB[3] = 15 (00 1111)表示有亮度系数,没有色差系数

ICBPTAB[4] = 31 (01 1111)表示有亮度系数,有色差直流系数(没有交流系数)

ICBPTAB[5] = 47 (10 1111)表示有亮度系数,有色差交流系数(可能含有直流系数)

来自:https://blog.csdn.net/feixiaku/article/details/8849126

以下是我的理解:

cbp用于表示当前宏块是否存在非零值

在x264中,

对于luma

由i_cbp_luma的第i位(i= 0、1、2、3)位表示一个MB中第i行4x4子块是否有非零值

若存在非零值,则将相应位置1

对于chroma

由i_cbp_chroma表示

0x00表示:全为零

0x01表示:DC参数不为零

0x02表示:有不为零的参数

在获得i_cbp_luma和i_cbp_chroma后,会把他们保存在cbp数组中,用

h->mb.cbp[h->mb.i_mb_xy] = (i_cbp_dc << 8) | (h->mb.i_cbp_chroma << 4) | h->mb.i_cbp_luma;

实现,也就是说

cbp的高8位放的是i_cbp_dc,低8位中高4位放的i_cbp_chroma,低4位放的i_cbp_luma

之后会根据cbp进行其它操作~

这只对于X264,JM就不是很清楚了~

=====================================================================

利用CBP判断要不要SKIP,里面还关系到向量预测

=====================================================================

cbp一共6bit,高2bit表示cbpc(2:cb、cr中至少一个4x4块的AC系数不全为0;1:cb、cr中至少一个2x2的DC系数不全为0;0:所有色度系数全0)

低4bit分别表示4个8x8亮度块,其中从最低一位开始的4位分别对应00,10,01,11位置的8*8亮度块。如果某位为1,表示该对应8*8块的4个4*4块中至少有一个的系数不全为0。

ICBPTAB[0] = 0  (00 0000)表示既没有亮度系数,也没有色差系数

ICBPTAB[1] = 16 (01 0000)表示没有亮度系数,有色差直流系数(没有交流系数)

ICBPTAB[2] = 32 (10 0000)表示没有亮度系数,有色差交流系数(可能含有直流系数)

ICBPTAB[3] = 15 (00 1111)表示有亮度系数,没有色差系数

ICBPTAB[4] = 31 (01 1111)表示有亮度系数,有色差直流系数(没有交流系数)

ICBPTAB[5] = 47 (10 1111)表示有亮度系数,有色差交流系数(可能含有直流系数)

=======================================================================

关于CBP(回忆一下,“ CAVLC是用于亮度和色度残差数据的编码。”,所以,变换量化后求的cpb值对熵编码非常有用。)

·DC 直流系数 AC交流系数

dc指变换后处于(0,0)位置的系数。其它为ac。

(电工学中,AC——Alternating Current交流; DC——Direct Current直流)

当使用帧内16*16时,类型名称由如下的结构组成:I_16*16_x_y_z。

其中,x对应于表中“帧内预测模式”字段的值,y对应于“色度CBP”字段的值,对应于“亮度CBP”字段的值。

Coded_block_pattern,即CBP,指亮度和色度分量的各小块的残差的编码方案

所谓的残差方案包括:

(1)       所有残差(包括DC、AC)都编码。

(2)       只对DC系数编码。

(3)       所有残差(包括DC、AC)都不编码。

对于非帧内16*16的宏块类型:

CodedBlockPatternLuma = coded_block_pattern % 16

CodedBlockPatternChroma = coded_block_pattern / 16

对于帧内16*16的宏块类型,CodedBlockPatternLuma和CodedBlockPatternChroma 的值不是由本句法元素给出,而是通过mb_type得到的。

H264编码器7( h264 CBP详解)相关推荐

  1. 【H264/AVC 句法和语义详解】(二):h264码流格式与NALU详解一

    上一篇中,我们站在句法元素(或称语法元素)的角度,介绍了H.264的句法和语义,和句法元素的分层结构.在这篇中,我们更进一步,从比特的角度出发,来探索h264码流的组成.通过这篇的学习,我们会初步具备 ...

  2. 【H264/AVC 句法和语义详解】(五):Exp-Golomb指数哥伦布编码(理论篇)

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/u011399342/article/details/80472399 本篇隶属于文集:< ...

  3. 变分自编码器(VAE)详解与实现(tensorflow2.x)

    变分自编码器(VAE)详解与实现(tensorflow2.x) VAE介绍 VAE原理 变分推理 VAE核心方程 优化方式 重参数化技巧(Reparameterization trick) VAE实现 ...

  4. h264、sps、pps详解

    1.学习路线 step1.初步了解h264,了解h264数据帧分类和识别 step2.h264语法相关算法解析,这里对理解h264的视频帧很重要.通俗的说h264数据定义是由一组Bit组成,但是某个字 ...

  5. H264编码器12( H264基本原理 --图文表达很清晰)

    来自:https://blog.csdn.net/garrylea/article/details/78536775 前言 H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的.随着 ...

  6. 轮毂电机光电增量编码器的ABZ信号详解

    轮毂电机ABZ信号详解. 轮毂电机的定位使用了霍尔信号和光电增量编码器,1024线的.也就意味着,轮子转一圈,A信号和B信号各有1024个高电平和低电平. 实际应用中,我们将A/B信号的上升沿和下降沿 ...

  7. 单片机c语言编程编码器数值,基于单片机的光电编码器测速报告详解.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  8. 深入讲解音视频编码原理,H264码流详解——手写H264编码器

    音视频高手课08-H264 I帧 P帧 B帧及手写H264编码器 1 三种帧的说明 1.I 帧:帧内编码帧,帧表示关键帧,你可以理解为这一帧画面的完整保留:解码时只需要本帧数据就可以完成(因为包含完整 ...

  9. PS流详解(载荷H264)

    目录 PS简介 标准结构 标准H264流结构 定长音频帧和其他流式私有数据的结构 PS流封装标准 PSH结构 PES包结构 PSM包结构体 元素流 PS 封装规则 H264元素流封装规则 音频元素流封 ...

最新文章

  1. java_泛型 TreeSet 判断hashcode/length(升序排列)
  2. Kali Linux安装中文输入法
  3. 顶级项目管理工具 Top 10
  4. 前端技术分享:锥形渐变conic-gradient你了解多少?
  5. 依赖倒置原则(DIP)、控制反转(IoC)、依赖注入(DI)(C#)
  6. 新版火狐浏览器怎么调整字体 火狐浏览器字体调整技巧分享
  7. g2是一种编程语言吗_我写了一种编程语言。 这也是您可以的方式。
  8. 太极图正确画法_太极图的三种画法你知道吗?
  9. 8月22日见!iQOO Pro跑分曝光:近50万得分 无对手
  10. IT女性必备——5个方法变身小腰精
  11. find 排除_排列五248期定位预测,大师排除两头两尾
  12. AVATR阿维塔11维修手册电路图技术资料
  13. 复数基础——二次公式的复根,复平面上标复数值点_7
  14. 服务器无线网卡禁止怎么办,台式机无线网卡被禁用了如何解决
  15. Pylab Plotting
  16. 计算机网络实验指导gns3,计算机网络实践教程——基于GNS3网络模拟器(CISCO技术)...
  17. Android JetPack组件之DataBinding的使用详解
  18. 微信‘小程序’: web前端的春天 or 噩梦?
  19. 利用electron-vue技术实现一个邮箱客户端应用的项目总结
  20. python 爬取智联招聘

热门文章

  1. Mac Navicat远程连接群晖MariaDB 10
  2. 磁盘管理---RAID磁盘阵列(重点容错能力)软RAID的实现
  3. 难懂的操作系统--PV操作
  4. 案例教学 | 如何确定ADAMS简化模型的准确性,以及简化模型精度不够怎么办?
  5. 两相步进电机TMC5130A-TA-高压驱动器内置MOS管
  6. [DDCTF2018]流量分析(TLS)
  7. Ubuntu下运行Swarm Bee节点
  8. JS高级做的导航条。可展开可挂起。可简化。
  9. Python : Json Ascii <-> Hex互相转换
  10. ProtoBuf 3语法