首页 > 其他分享 >H.264学习笔记——基本概念

H.264学习笔记——基本概念

时间:2024-05-06 12:12:34浏览次数:24  
标签:Profile 编码 H.264 条带 档次 笔记 图像 宏块 基本概念

1.基本概念

frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵。

field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶场。

macroblock/MB:宏块,H.264中处理(预测、变换、量化)的基本单元,大小16*16个像素。

slice group:条带组,每一帧/场图像中,按照光栅扫面的顺序,将一帧图像分成多个条带(slice),而一个条带又由多个MB/MB对构成

 

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 的主要规格

1、Baseline Profile(BP)

支持 I / P 帧,只支持无交错(Progressive)和 CAVLC;
一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等即时通信领域。

2、Extended Profile(XP)

在 Baseline 的基础上增加了额外的功能,支持流之间的切换,改进误码性能;
支持 I / P / B / SP / SI 帧,只支持无交错(Progressive)和 CAVLC;
适合于视频流在网络上的传输场合,比如视频点播。

3、Main Profile(MP)

提供 I / P / B 帧,支持无交错(Progressive)和交错(Interlaced),支持 CAVLC 和 CABAC;
用于主流消费类电子产品规格如低解码(相对而言)的 MP4、便携的视频播放器、PSP 和 iPod 等。

4、High Profile(HiP)

最常用的规格,在 Main 的基础上增加了 8x8 内部预测、自定义量化、无损视频编码和更多的 YUV 格式(如 4:4:4);
High 4:2:2 Profile(Hi422P);
High 4:4:4 Predictive Profile(Hi444PP);
High 4:2:2 Intra Profile;
High 4:4:4 Intra Profile;
用于广播及视频碟片存储(蓝光影片),高清电视的应用。

标签:Profile,编码,H.264,条带,档次,笔记,图像,宏块,基本概念
From: https://www.cnblogs.com/lanlancky/p/18174774

相关文章

  • H.264学习笔记——相关概念
    基本概念frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵。field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶场。macroblock/MB:宏块,H.264中处理(预测、变换、量化)的基本单元,大小16*16个像素。slicegroup:条带组,每一帧/场图像中,按照光栅扫面的顺序......
  • Razavi - RF Microelectronics的笔记 - Differential Output Current
    Onpage400,example6.26,weareaskedtoanalyzeadouble-balancedcircuitonits\(IP_2\).Idon'tgetwheredoes(6.127)comefrom.Sincethere'snoexplanationon(6.127),Iguessthisequationisobvious.SoIreducetheproblemandtry......
  • C++学习笔记
    参考https://github.com/weidongshan/cpp_projects《C++PrimerPlus》C++StandardsSupportinGCCGCCGCC中有libstdc++库的实现LLVMLLVM中有libc++库的实现面向对象编程的3大特点封装继承多态struct声明的类里的成员都是publicclass声明的类的成员都是pr......
  • TinyRender学习笔记
    通过手写软光栅渲染器加深对计算机图形学基本原理的理解,并练习C++面向对象程序设计。github链接:blackbird2003/blackbirdTinyRenderer(github.com)该项目主要参考Home·ssloy/tinyrendererWiki(github.com)编写推荐先过一下GAMES101Lesson0GettingStartedUsingTGAi......
  • 《自动机理论、语言和计算导论》阅读笔记:p402-p427
    《自动机理论、语言和计算导论》学习第13天,p402-P427总结,总计26页。一、技术总结无。二、英语总结1.eludee--,assimilatedformofex-(out,away)+ludere(toplay,seeludicrous)。vt.ifsthyouwanteludesyou,youdonotsucceedinachievingit。p426,Mor......
  • sqlserver笔记
    明确的性能低的定义:在现有资源还没有达到最大吞吐量的前提下,系统如果不能满足合理的预期表现。最小化每个SQL的响应时间;合理增加吞吐量;减少网络延时优化磁盘IO、CPU能够协调、平衡的运行,合理的响应外部的请求,实现资源利用的最大化。影响性能的常见因素:1.数据库结构的设计--了解......
  • 网络流学习笔记
    1.概述网络指的是一类特殊的有向图G=(V,E),与一般有向图不同的是有容量和源汇点对于网络G=(V,E),流是一个从边集E到整数集或实数集的函数,满足如下性质容量限制:对于每条边,该边流经的流量不得超过该边的容量流守恒性:除源汇点外,其余任何点的净流量为0,其中,我们定义节点u的净流......
  • Redis基础篇笔记
    一、Redis入门1.认识NoSQL1.1 什么是NoSQLNoSQL最常见的解释是"non-relational",很多人也说它是"NotOnlySQL"NoSQL仅仅是一个概念,泛指非关系型的数据库区别于关系数据库,它们不保证关系数据的ACID特性NoSQL是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,相对于......
  • 【学习笔记】初次学习斜率优化的代码及笔记
    include<bits/stdc++.h>usingnamespacestd;intn,m;intdp[10000],s[6100],q[10000];intslope(intj,intk){intx=(dp[j]-dp[k]+s[j]s[j]-s[k]s[k])/(s[j]+s[k]);returnx;}//求斜率intmain(){while(scanf("%d%d",&n,&m)!=EOF){for(in......
  • 集合幂级数学习笔记
    基本操作集合并卷积集合幂卷积定义为:给定两个集合幂级数\(F,G\),计算集合幂级数\(H\)满足:\[\begin{aligned}h_S=\sum_{L\subset2^U}\sum_{R\subset2^U}[L\cupR=S]f_Lg_R\end{aligned}\]我们考虑用类似于FFT的方式,把\(f,g\)按某种线性变换后,然后把问题变成点乘。......