H.264/AVC视频编解码技术详解
课时介绍
首先,让我们来了解一下H.261视频编码标准。H.261诞生于1988年,是视频压缩编码发展以来的第一个里程碑。从H.261开始,视频编码方法采用了沿用至今的基于波形的混合编码方案。H.261标准的主要目标是用于视频会议和可视电话等高实时性、低码率的图像传输场合。在H.261标准产生的时代,由于各国电视制式的不一致,因此不能直接互通。为了解决数据源格式不兼容的问题,H.261定义了一种公共的中间格式,称为SAFE(Common Intermediate Format的缩写)。在使用H.261进行编码之前,必须将目标格式转化为SAFE格式来进行编码和传输。接收端在执行解码之后,再将其转化为各自的格式。H.261规定的SAFE格式视频的亮度分辨率为352x288,比SAFE格式小四分之一的QSAFE格式的亮度分辨率为176x144个像素。整个H.261视频编码的系统图大致如下,首先SAFE和QSAFE格式通过新源编码器、复合编码器、传输缓冲器以及传输编码器生成符合标准的H.261码流,而它的解码过程与编码过程正好相反,H.261码流通过传输解码器、接收缓冲器,然后通过复合解码器以及新源解码器,还原为SAFE与QSAFE的像素格式。这个流程中最关键的一点就是新源编码器,它奠定了后续视频编码标准的基础。后续的标准包括MPEG-2、H.264以及H.265,基本上都是通过这一个结构来进行改进。整个视频编码的大体结构并没有发生根本的变化,更多的是对每一个模块的技术进行提高。其中,新源编码器所主要用到的技术有帧内、帧间编码、运动估计和运动补偿,还有帧内编码以及环路滤波器等技术。在帧内编码与帧间编码判定的过程中,它是根据帧间的相关性来判定的。如果当前帧与其他帧相关性比较高,则使用的是帧间编码,否则,当前帧与其他帧的相关性不大,那么这一帧就将使用帧内编码。在运动估计、运动补偿部分,H.261标准使用的是以红化为基础的运动补偿预测编码。在这个过程中,当前红化会从参考帧中查找最佳匹配的红化,并计算其相对的偏移量,这个相对偏移量Vx和Vy被称之为运动始量。运动始量在一定程度上可以表示当前红化与它在参考帧中的匹配化相对的运动的方向和距离。随后,编码器会使用DCT和量化编码,来对当前红化与预测红化的残差信号进行编码。这可以说就是H.261的帧内编码部分。而对于H.261的帧内编码部分,在帧内编码部分,H.261直接使用DCT来编码8x8的像素值。另外,H.261还采用了环路滤波器技术,即一个数字低通滤波器,通过滤除那个像素中不必要的高频信息,来消除解码之后图像的方块效应。这部分主要就是新闻编码器所采用的技术。下一部分是H.261的复合编码器,它将H.261不同层次的语法元素编码为H.261格式的码流。这个符合格式的H.261码流通常可以分为四层,最高一层是帧层,在帧层中,一般由帧首和快数据组成,帧首包括了J帧相关的一些参数信息,包括了J起始码、J技术码以及J类型等等。
课程介绍
H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术。本课程将从原理、标准和实现等多个角度,详细讲述了H.264/AVC视频编码标准的整体架构与技术细节,不但讲解了H.264/AVC标准协议文档中的内容,还通过实际的H.264码流分析/解码程序的开发来帮助观众更深入地理解H.264编码标准的原理。
推荐课程
信息系统项目管理师自考笔记
李明 · 570人在学
python从0到1:期货量化交易系统(CTP实战,高频及合成K线数据
王先生 · 21015人在学
手把手搭建Java超市管理系统【附源码】(毕设)
汤小洋 · 4115人在学
Java毕设springboot外卖点餐系统 毕业设计毕设源码 使用教
黄菊华 · 747人在学
基于SSM酒店管理系统(毕设)
小尼老师 · 804人在学
java项目实战之购物商城(java毕业设计)
Long · 5123人在学
手把手搭建Java求职招聘系统【附源码】(毕设)
汤小洋 · 1475人在学
Python Django 深度学习 小程序
钟翔 · 2264人在学
城管局门前三包管理系统+微信小程序(vue+springboot)
赖国荣 · 525人在学
Vue+Uni-app(uniapp)入门与实战+赠送仿美团点餐小程序
李杰 · 3914人在学