H.264学习笔记1——相关概念
此处记录学习AVC过程中的一些基本概念,不定时更新。
frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵。
field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶场。
macroblock/MB:宏块,H.264中处理(预测、变换、量化)的基本单元,大小16*16个像素。
slice group:条带组,每一帧/场图像中,按照光栅扫面的顺序,将MB/MB对分成多个条带(slice)。
I/P/B 宏块:I宏块只能利用所在slice中已编码的像素进行帧内预测。P宏块是利用已编码的图像的像素进行帧间预测,属于前向预测,即参考图像是播放顺序中该帧图像之前的图像。B宏块也是利用已编码的图像像素进行帧间预测,属于双向预测,即参考图像可以是播放顺序前后的图像。
I/P/B条带:仅包含I宏块的是I条带,同时包含I宏块和P宏块的是P条带,同时包含I条带和B宏块的是B条带。
I/P/B帧:I帧只包含I条带,P帧只包含P条带,B帧只包含B条带。
List0/List1:List0是前向参考帧列表,List1是后向参考帧列表。所以P帧预测只用到List0,B帧预测会用到List0和List1。
profile:档次,所谓档次就是H.264支持的一组工具集合和特定的应用领域。AVC里规定了几种不同的档次,主要有基本档次(Baseline profile)、主要档次(Main profile)和扩展档次(Extended profile)。
三种档次共有工具:
》支持I帧和P帧进行帧内和帧间编码
》利用CAVLC(上下文自适应的可变长度编码)进行熵编码
》使用去块效应滤波
》zigzag扫描
》1/4像素精度的运动估计
》最小为4x4的三级运动估计分块
》4:2:0的YUV抽样
基本档次的特性:
主要档次的特性:
》支持B帧、加权的帧内预测、CABAC(上下文自适应的二进制算术编码)
扩展档次的特性:
》包括基本档次的所有特性和B帧、加权的帧内预测
》支持SP/SI条带,用于流间切换、拼接和随机接入
参考:《深入理解视频编解码技术——基于H.264标准及参考模型》
H.264学习笔记1——相关概念的更多相关文章
- H.264学习笔记5——熵编码之CAVLC
H.264中,4x4的像素块经过变换和量化之后,低频信号集中在左上角,大量高频信号集中在右下角.左边的低频信号相对数值较大,而右下角的大量高频信号都被量化成0.1和-1:变换量化后的残差信息有一定的统 ...
- 02:H.264学习笔记
H.264组成 1.网络提取层 (Network Abstraction Layer,NAL) 2.视讯编码层 (Video Coding Layer,VCL) a.H.264/AVC影像格式阶层架构 ...
- H.264学习笔记之一(层次结构,NAL,SPS)
一 H.264句法 1.1元素分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 图1 H.264分层结构由五层组成,分 ...
- H.264学习笔记
1.帧和场的概念 视频的一场或一帧可用来产生一个编码图像.通常,视频帧可以分成两种类型:连续或隔行视频帧.我们平常看的电视是每秒25帧,即每秒更换25个图像,由于视觉暂留效应,所以人眼不会感到闪烁.每 ...
- H.264学习笔记6——指数哥伦布编码
一.哥伦布码 哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id. >对于Group Id采用二元码编码: >对于Group内的编码对 ...
- H.264学习笔记4——变换量化
A.变换量化过程总体介绍 经过帧内(16x16和4x4亮度.8x8色度)和帧间(4x4~16x16亮度.4x4~8x8色度)像素块预测之后,得到预测块的残差,为了压缩残差信息的统计冗余,需要对残差数据 ...
- H.264学习笔记3——帧间预测
帧间预测主要包括运动估计(运动搜索方法.运动估计准则.亚像素插值和运动矢量估计)和运动补偿. 对于H.264,是对16x16的亮度块和8x8的色度块进行帧间预测编码. A.树状结构分块 H.264的宏 ...
- H.264学习笔记2——帧内预测
帧内预测:根据经过反量化和反变换(没有进行去块效应)之后的同一条带内的块进行预测. A.4x4亮度块预测: 用到的像素和预测方向如图: a~f是4x4块中要预测的像素值,A~Q是临块中解码后的参考值. ...
- 每天进步一点点------H.264学习 (一)
分三个阶段学习1.第一个阶段: 学习H.264,首先要把最基本最必要的资料拿在手里.这些资料包括:标准文档+测试模型+经典文章,在本FTP中能找到.首先看 <H.264_MPEG-4 Part ...
随机推荐
- Chapter1-data access reloaded:Entity Framework(下)
1.4 Delving deep into object/relational differences 深入挖掘对象关系的不同 理解面向对象和关系世界的不同是重要的,因为他会影响你设计一个对象模型或者 ...
- HTML的高富帅
1,前端的内容(组成部分有以下三部分) HTML CSS JS 裸体的人 穿上好看的衣服 ...
- linux driver开发
1 开发linux driver时的调试思路 基本上是打印调试,原因很简单,方便.或者使用工具挂住cpu.
- CXF+Spring+Tomcat 案例
多系统(异构系统)进行交互时,一种良好的方式便是调用Web Service,本示例基于Apache组织的CXF 环境:EclipseJDK6Tomcat6CXF2.6.1Spring3 示例项目结构图 ...
- 设计模式-(18)命令模式 (swift版)
一,概念: 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将 ...
- Android5.1修改以太网MAC地址(SElinux)【转】
本文转载自:http://blog.csdn.net/LoongEmbedded/article/details/71477203 最近高通平台Android5.1项目中有个关于设置以太网MAC的需求 ...
- 并不对劲的bzoj5341:loj2553:uoj400:p4565:[Ctsc2018]暴力写挂
题目大意 有两棵\(n\)(\(n\leq366666\))个节点的树,\(T\)和\(T'\),有边权 \(dep(i)\)表示在\(T\)中\(i\)号点到\(1\)号点的距离,\(dep'(i) ...
- bzoj 4543 HOTEL 加强版
题目大意: 求树上取三个点这三个点两两距离相等的方案数 思路: 远古时候的$n^2$做法是换根 但那样无法继续优化了 学习了一波长链剖分 考虑如何在一棵树上进行dp 设$f[i][j]$表示以$i$为 ...
- Mybatis invalid comparison: java.util.Date and java.lang.String
Mybatis的实体类是java.utils.Date类型,而在Mybatis的XML文件中,使用if判断了,不需要判断是否等于空字符串这种判断,需要人真一些 相关:https://blog.csdn ...
- 微信小程序中如何使用setData --- 修改数组对象、修改对象
看代码吧~ 这是修改对象 this.setData({ allStageIndex: e.detail.value, [`projectDetailsData.stage`]: this.data.a ...