H264学习二:H.264/AVC编码标准

H264学习二:H.264/AVC编码标准整体的编码框架方面,H.264依然采用块结构的混合编码框架;整个结构可以分为网络抽象层(NAL(为了提升h264视频对网络传输和数据存储的亲和性))和视频编码层(VCL(帧内预测,运动搜索运动补偿,变换量化));每一帧被分为一个或多个条带(slice)进行编码;每一个条带包含多个宏块(MB,Macroblock);宏块是H.264基本的编码单元,本结构包含一个包含16×16亮度块+两个8×8色度块+其他一些宏块头信息;

一. H.264/AVC标准

发起者:ITU-T的VCEG(Video Coding Experts Group)
发起时间:1998年早期发布H.26L Call for Proposal,1999.8发布第一版草案
强强联合:2001年MPEG发布新标准的CFP,VCEG以H.26L草案响应,并提出联合制定新标准,成立了JVT(Joint Video Team)
H.264/AVC第一版本于2003年发布
同MPEG-4标准关注的灵活性和可交互性不同,H.264专注于采用新技术提高视频信号的编码效率和提高网络传输亲和性;
H.264的应用场景:数字电视广播、视频实时通信、网络视频流媒体、DVD视频存储、视频点播等场合;
H.264和AVC区别:H264和AVC是一个东西两种叫法

二. H.264视频编码方法简介

整体的编码框架方面,H.264依然采用块结构的混合编码框架;整个结构可以分为网络抽象层(NAL(为了提升h264视频对网络传输和数据存储的亲和性))和视频编码层(VCL(帧内预测,运动搜索运动补偿,变换量化));
每一帧被分为一个或多个条带(slice)进行编码;每一个条带包含多个宏块(MB,Macroblock);
宏块是H.264基本的编码单元,本结构包含一个包含16×16亮度块+两个8×8色度块+其他一些宏块头信息;
在这里插入图片描述

H.264首先通过帧内或者帧间预测来获取预测数据,并且对残差进行变换和量化操作,然后将编码语法元素来进行熵编码来形成压缩后的码流

整个编码结构可以分为两层,我们所熟悉的预测编码、变换量化、熵编码工具主要工作在slice层或以下,这一层通常被称为视频编码层(video codec layer)比较底层;slice往上主要是压缩之后的码流和更上一层所进行的数据和算法通常称为网络抽象层;设计定义NAL层的主要意义在于提升H.264格式的视频对网络传输和数据存储的亲和性

H.264对一个宏块的编码

H.264的宏块编码提供了更加灵活的编码方式
每一个宏块会分割成多种不同大小的子块进行预测
帧内预测采用的块大小可能为16×16或者4×4
帧间预测/运动补偿采用的块可能有7种不同的形状:16×16、16×8、8×16、8×8、8×4、4×8和4×4
针对预测残差数据进行变换编码的变换块大小为4×4或8×8
更加细分的宏块分割方法提供了更高的预测精度和编码效率
效率更高的熵编码方法:CAVLC和CABAC

帧内预测

H.264中采用了基于像素块的帧内预测技术,用于降低图像空间内的像素相关性;
在H.263、MPEG-4等前期标准中,帧内预测数据由变换域实现;H.264使用空间域的左方与上方的相邻像素预测当前编码的像素值;
H.264的一个宏块若为Intra(帧内预测)宏块,其亮度分量有两种分割模式:一个16×16像素块或16个4×4像素块;
对于每个4×4像素块,共定义9种预测模式;
对于16×16像素块,共定义4种预测模式;
H.264的一个宏块中包含两个8×8的色度分量,对色度分量定义4种预测模式,同16×16的亮度分量;

在这里插入图片描述
H264学习二:H.264/AVC编码标准插图4

补充

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36215.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注