MPEG2视频编码简介
MPEG-2视频编码简介
MPEG-2是一组用于视音频压缩编码及其数据流封装的国际标准。它定义了编解码技术及数据流的传输协议;制定了MPEG-2解码器之间的共同标准。编码是MPEG-2标准的核心内容之一,其涉及到MPEG-2视频流层结构、MPEG-2帧间编码结构、MPEG-2的类与级、MPEG-2运动估值等技术。
1. 编码复用系统
MPEG-2 码流分为三层,即基本流(ES,elementary bit stream)、包基本码流(PES,packetelementary stream)和复用后的传送码流(TS,transport stream)、节目码流(PS,programstream)。其编码复用系统结构如图1所示。
图1 MPEG-2 编码复用系统
ES:由视频压缩编码后的视频基本码流(Video ES)和音频压缩编码后的音频基本码流(Audio ES)组成。
PES:把视音频ES分别打包,长度可变,最长为65536字节。
TS、PS:若干个节目的PES复用后输出为传输流TS或节目流PS,分别用于传输和存储。
2. 档次和级别
MPEG-2按不同的压缩比分成五个档次,按视频清晰度分为四个级别,如表1所示。共有20种组合,最常用的为其中的11种组合,分别用于标准数字电视、高清晰度电视,码率从4Mbps到100Mbps。
表1 MPEG-2 Profile, level
3. MPEG-2 视频编码器
3.1 框图
MPEG-2 编解码器结构与H.261 区别不大,如图2 和图3 所示。
图2 MPEG-2 编码器
图3 MPEG-2 解码器
3.2 ES码流结构
ES码流采用图像序列(PS)、图像组(GOP)、图像(P)、片(slice)、宏块(MB)、块(B)六层结构,具体结构见图 4。
(1)图像序列层,图像序列包括若干GOP,序列头包含起始码和序列参数,如档次、级别、彩色图像格式、帧场选择等等;
(2)图像组层,图像组包含若干幅图像,组头包含起始码、GOP标志等,如视频磁带记录器时间、控制码、B帧处理码等;
(3)图像层,一幅图像包含若干片,头信息中有起始码、P标志,如时间、参考帧号、图像类型、MV、分级等;
(4)片层,片是最小的同步单位,包含若干宏块,片头中有起始码、片地址、量化步长等;
(5)宏块层,宏块由4个8×8 亮度块和2个色度块组成,宏块头包括宏块地址、宏块类型、运动矢量等。
图4 ES码流结构
3.3 MPEG-2帧间编码结构
为了在高效压缩编码的条件下、获得可随机存取的高压缩比、高质量图像,MPEG定义了I、P、B三种图像格式,分别简称为帧内图(Intra Picture)、预测图(Predicted Picture)及双向图(Bidirec tional Picture),即I帧、P帧及B帧,用于表示帧序列画面。因为要满足随机存取的要求,仅利用I图本身信息进行帧内编码就可以了;要满足高压缩比和高质量图像的要求,单靠I图帧内编码还不行,还要加上由P图和B图参与的帧间编码,以及块匹配运动补偿预测,即用前一帧图像预测当前图像的因果预测和用后一帧图像预测当前图像的内插预测。这就要求帧内编码与帧间编码平衡,因果预测与内插预测间的平衡。平衡的结果是随机存取的高压缩比、高质量图像的统一。图5是MPEG-2帧间编码结构图,其中:
图5 MPEG-2帧间编码结构图
1) 帧内编码图像(ICP)
I帧为不要基准图像编码作为基准所产生的图像,称为帧内编码图像(ICP-Intra Coded Pictures)。特点是:数据量最大;帧内中等程度压缩;无运动预测,可采用自相关性,即帧内相邻像素、相邻行的亮度、色度信号都具有渐变的空间相关性,可作静止图像处理,无条件传送;图像可随机进入压缩图像数据序列,进行编码。
2) 预测编码图像(PCP)
P帧是以最近的上一个I帧或P帧为基准进行运动补偿预测所产生的图像,称为预测编码图像(PCP-Predictive Coded Pictures)。P帧的特点是:本身是前I帧或P帧的前向预测(FP-Forward Prediction)结果,也是产生下一个P帧的基准图像;高编码效率,与I帧相较,可提供更大的压缩比;前一个P帧是下一个P帧补偿预测的基准,如果前者存在误码,则后者会将编码误差积累起来、传播下去。
3) 双向预测编码帧(BPCP)
B帧是同时以前面的I帧或P帧和后面的P帧或I帧为基准进行运动补偿预测所产生的图像,称为双向预测编码图像(BPCP-Bidirectional Predictive Coded Picture)。前面的I帧或P帧代表"过去信息",后面的P帧或I帧代表"未来信息",由于同时使用了"过去"和"未来"两种信息,所以称为双向预测。
由图5可见,一个GOP由I帧为起始的一串IBP帧组成,GOP的长度是前一个I帧到下一个I帧之前的B帧之间的间隔,如I1B2B3P4B5B6P7B8B9I10中从I1到B9就是GOP的长度。GOP越长,MPEG-2编码越有效,而数据流的编辑及组接越困难。基准帧重复频率的不同,可提供不同的输出码率。GOP的结构随码率变化而不同,码率大时可以采用较短的GOP,具有高效率的优点;码率低时需要采用较长的GOP,有延迟,影响存取速度。
4 基于帧或场的DCT编码
MPEG-2 可用于逐行扫描图像也可用于隔行扫描图像。对逐行扫描图像,可按行分割成块,基于块进行DCT 变换。对逐行扫描图像,一帧由两场组成,于是就有基于帧的分割和基于场的分割两种宏块结构,如图5所示。
图5 按帧分割进行DCT 变换的亮度宏块结构
同一帧内的各邻近行之间空间相关性比同一场内各邻近行之间的相关性要强。因此基于帧的DCT 编码适用于相对静止或慢运动的景物。
同一场内各邻近行之间时间相关性比同一帧内各邻近行之间的时间相关性要强(因为同一帧内当前行的下一行要等到一场扫描完后才出现在当前行之下,时间相关性弱),基于场的DCT 编码适用于运动大的景物。
根据帧的行间相关系数和场的行间相关系数可判定采用帧分割还是场分割进行编码。
5. 分级服务
为了适应信道的变化和扩大应用范围,MPEG-2 采用三种分级编码:空间域分级、时间域分级和信噪比分级。
以空间域分级为例,用户接收HDTV 信号时,丢弃一部分解码其中的SDTV 信号,也可再丢弃一部分解出CIF 甚至QCIF信号。这种分级可为不同用户提供不同质量的服务。
MPEG2视频编码简介相关推荐
- MPEGl和MPEG2数字视频编码标准
MPEGl和MPEG2数字视频编码标准(转) 2007-08-31 15:11 本文的目的在于给出有关MPEGl和MPEG2视频编码算法及标准的概述.以及它们在视频通信中的作用.论文的正文是这样安 排 ...
- 【转】流媒体技术笔记(视频编码相关)
转自:http://www.cnblogs.com/MikeZhang/archive/2012/07/17/videoCodec.html 一.视频编码原理 视频图像数据有极强的相关性,也就是说有大 ...
- 流媒体技术笔记(视频编码相关)
一.视频编码原理 视频图像数据有极强的相关性,也就是说有大量的冗余信息.其中冗余信息可分为空域冗余信息和时域冗余信息.压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数 ...
- 视频编码标准汇总及比较
MPEG-1 类型:Audio&Video 制定者:MPEG(Moving Picture Expert Group) 所需频宽:2Mbps 特性:对动作不激烈的视频信号可获得较好的图像质量, ...
- 又一篇关于各种音视频编码的
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- 视频编码标准H.264/AVC
H.264/AVC 是ITU-T VCEG 和ISO/IEC MPEG 共同开发的视频处理标准,ITU-T作为标准建议H.264,ISO/IEC作为国际标准14496-10(MPEG-4 第10部分) ...
- 视频编码方案之间的比较(HEVC,H.264,MPEG2等)
Jens-Rainer Ohm等人在文献<Comparison of the Coding Efficiency of Video Coding Standards-Including High ...
- 试简介视频编码技术?——知乎大神神回答
https://www.zhihu.com/question/22567173 我需要宏观的关于视频编码的指导,最好是基于HEVC的编码器原理.如帧间预测编码过程,帧内预测编码过程,熵编码过程.细节可 ...
- FFmpeg入门详解之20:视频编码原理简介
视频为何需要压缩? 原因:未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频. ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟. 主要压缩了什么东西 ...
最新文章
- run cuda samples ubuntu_NVIDIA cuDNN v8 deb方法安装教程(Linux/Ubuntu)
- Java 基本功之(二)Java 面向对象
- 微软OTech第二次会议(广州站)
- 克隆ubuntu硬盘_使用Ubuntu Live CD克隆硬盘
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
- 第三章 组装个人计算机
- 玩游戏学python的网站_娱教于乐!四大游戏类编程网站,学Python再也不枯燥无味了...
- MySQL内存----使用说明全局缓存+线程缓存) 转
- 【07】processing-字体(中文)
- vue刷新左菜单消失_vue+Element框架menu菜单刷新后保持选中状态
- 黑马程序员—八期黑马,我放弃了
- 蓝桥杯 2015 javaB组 校赛
- 知到网课中国戏曲剧种鉴赏考试试题|真题演练|题库(含答案)
- 硬件知识:一款全隔离的电机驱动电路分析
- CF115B Lawnmower
- 1.9UPC寒假个人训练第一场
- python过京东app图形验证勾股定理_泰尔实验室检测结果公布,京东金融app安全性得以验证...
- 基于hexo使用github.io免费域名搭建个人博客记录
- 小程序页面卡顿解决问题
- 字节跳动一站式数据治理解决方案及平台架构