H264编码器7( h264 CBP详解)
来自: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详解)相关推荐
- 【H264/AVC 句法和语义详解】(二):h264码流格式与NALU详解一
上一篇中,我们站在句法元素(或称语法元素)的角度,介绍了H.264的句法和语义,和句法元素的分层结构.在这篇中,我们更进一步,从比特的角度出发,来探索h264码流的组成.通过这篇的学习,我们会初步具备 ...
- 【H264/AVC 句法和语义详解】(五):Exp-Golomb指数哥伦布编码(理论篇)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011399342/article/details/80472399 本篇隶属于文集:< ...
- 变分自编码器(VAE)详解与实现(tensorflow2.x)
变分自编码器(VAE)详解与实现(tensorflow2.x) VAE介绍 VAE原理 变分推理 VAE核心方程 优化方式 重参数化技巧(Reparameterization trick) VAE实现 ...
- h264、sps、pps详解
1.学习路线 step1.初步了解h264,了解h264数据帧分类和识别 step2.h264语法相关算法解析,这里对理解h264的视频帧很重要.通俗的说h264数据定义是由一组Bit组成,但是某个字 ...
- H264编码器12( H264基本原理 --图文表达很清晰)
来自:https://blog.csdn.net/garrylea/article/details/78536775 前言 H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的.随着 ...
- 轮毂电机光电增量编码器的ABZ信号详解
轮毂电机ABZ信号详解. 轮毂电机的定位使用了霍尔信号和光电增量编码器,1024线的.也就意味着,轮子转一圈,A信号和B信号各有1024个高电平和低电平. 实际应用中,我们将A/B信号的上升沿和下降沿 ...
- 单片机c语言编程编码器数值,基于单片机的光电编码器测速报告详解.doc
课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...
- 深入讲解音视频编码原理,H264码流详解——手写H264编码器
音视频高手课08-H264 I帧 P帧 B帧及手写H264编码器 1 三种帧的说明 1.I 帧:帧内编码帧,帧表示关键帧,你可以理解为这一帧画面的完整保留:解码时只需要本帧数据就可以完成(因为包含完整 ...
- PS流详解(载荷H264)
目录 PS简介 标准结构 标准H264流结构 定长音频帧和其他流式私有数据的结构 PS流封装标准 PSH结构 PES包结构 PSM包结构体 元素流 PS 封装规则 H264元素流封装规则 音频元素流封 ...
最新文章
- java_泛型 TreeSet 判断hashcode/length(升序排列)
- Kali Linux安装中文输入法
- 顶级项目管理工具 Top 10
- 前端技术分享:锥形渐变conic-gradient你了解多少?
- 依赖倒置原则(DIP)、控制反转(IoC)、依赖注入(DI)(C#)
- 新版火狐浏览器怎么调整字体 火狐浏览器字体调整技巧分享
- g2是一种编程语言吗_我写了一种编程语言。 这也是您可以的方式。
- 太极图正确画法_太极图的三种画法你知道吗?
- 8月22日见!iQOO Pro跑分曝光:近50万得分 无对手
- IT女性必备——5个方法变身小腰精
- find 排除_排列五248期定位预测,大师排除两头两尾
- AVATR阿维塔11维修手册电路图技术资料
- 复数基础——二次公式的复根,复平面上标复数值点_7
- 服务器无线网卡禁止怎么办,台式机无线网卡被禁用了如何解决
- Pylab Plotting
- 计算机网络实验指导gns3,计算机网络实践教程——基于GNS3网络模拟器(CISCO技术)...
- Android JetPack组件之DataBinding的使用详解
- 微信‘小程序’: web前端的春天 or 噩梦?
- 利用electron-vue技术实现一个邮箱客户端应用的项目总结
- python 爬取智联招聘