MPEG2标准的压缩分层和编码原理

2023-10-17 06:58

本文主要是介绍MPEG2标准的压缩分层和编码原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

在多媒体信号传输中,只有对音频和视频信号进行有效的编码,才能最后解析出高质量的声音和图像。本文介绍了MPEG2标准的压缩分层和编码原理,并说明了如何在芯片上实现MPEG2音频编码。

 

MPEG2是当今最为流行的AV压缩标准,可用于视频、音频和数字信息存储。完整的MPEG2标准可满足STB等广播应用和DVD或D-VHS等多媒体应用。MPEG2并非对MPEG2编码器进行标准化,而是为经过MPEG2编码的位流提供了一种标准化格式,另一方面,它也为MPEG2解码器提供了一个标准模式。

 

MPEG2标准的音频部分大致基于MPEG1标准,因此二者兼容性很强。这一点使得现有的MPEG1设备可对MPEG2信号中兼容MPEG1的部分信号进行解码,而MPEG2设备也可解码MPEG1信号,从而实现前向兼容。

 

压缩分层

 

MPEG2和MPEG1音频压缩可分为三层。层数越高,压缩的程度、所需CPU处理能力以及声音质量也相应增加;而传输所需的带宽则相应减少。因此,第一层的压缩率最低、所需CPU处理能力最低、延迟也最少。由于压缩率最低同时声音质量最差,因此它所需的传输带宽最大。而第三层的声音质量最佳,压缩率可达1:10。处理时间也几乎是第一层的三倍。表1可很好地说明这一点。

 

之所以将压缩分为三个层,一部分是基于需要,一部分则是历史原因。

 

首先,它很大程度取决于所压缩信号将用于哪种应用中。例如,当我们主要希望能再现高品质的声音,其次才关注处理能力/成本,那么应选择第三层。而如果主要考虑的是处理能力和成本,则可选择第一层或第二层。不过,如果选用的不是第三层,则声音在重现时会有所欠缺,因此,用户必须权衡考虑,选择适合于其特殊应用的那一层。

表1:MPEG2和MPEG1音频压缩可分为三层。

 

其次,压缩层的概念是逐渐发展而来的。第三层规范比第一、二层定得晚。当第三层规范开始流行时,采用第一、二层规范的设备已十分普及,消费者也非常熟悉了。因此,必须让消费者能自由地选择适合自己应用的那一层规范。

 

MPEG2音频压缩及编码

 

三层规范的音频压缩及编码过程如图1所示。滤波器组采用快速傅利叶变换(FFT)将时域采样转换成同样数目的频域采样。输出是一系列带宽相等的子带。心理声学模式过程计算每一子带的信号掩蔽比(SMR),以便决定每一子带可用于编码的信号位数。在信号位或噪声分配过程中,通过滤波器组的输出及SMR信息来决定每个子带可承受的量化噪声。量化噪声越高,这一子带所分配的信号位数就越低。在位流格式化模块中,子带频率采样与分配给该层的信号位及一些其它信息相结合,形成一个音频帧,这个帧包括一个信号头和其它信息段。

图1:三层规范的音频压缩及编码过程。

 

MPEG2音频增强功能

 

与MPEG1相比,MPEG2在以下方面有所改善。

 

1. 半采样率

 

在MPEG2中,仅需使用MPEG1中一半的采样率便可保持极佳的声音质量。这一点对评论频道、多语频道及多媒体等应用尤其有益,这些频道的频率范围为20Hz到20kHz,但极少使用。

 

2. 多频道扩展

 

MPEG2支持5个音频信道,共同实现一种“环绕”立体声效果,以便获得更为逼真的立体声。这5个信道分别是左信道(L)、右信道(R)、中央信道(C)、左后环绕信道(Ls)和右后环绕信道(Rs)。这种情况下,在前面布置3个高音音箱,在后面布置2个,因此也可称为3/2立体声。如图2所示。

图2:MPEG2支持5个音频信道,共同实现一种“环绕”立体声效果,以便获得更为逼真的立体声。

 

在芯片上实现MPEG2音频编码

 

MPEG2音频编码可以单独或与MPEG2视频编码一起在硬件上实现。在后一种情况下需要增加多路复用器或多路输出选择器,以进行相应的编码或解码;也可以采用一个编解码器来完成两个功能。通常MPEG2音频编码是通过DSP来实现的,这种方案成本更低而且更为灵活。MPEG2音频解码器芯片电路方块图如图3所示。

 

许多电子设备厂商生产的MP3播放器中都有这一系统,并带有MPEG2音频第三层解码器。一些MP3播放器可存储约1-2小时的音乐,这种情况下通常存储在记忆棒或闪存中。带有硬盘的播放器则可存储更多信息。图3:MPEG2音频解码器芯片电路方块图。

 

如果要同时实现MPEG2音频和视频编码,则两种数据流的多路复用是一个关键问题。可以在同一块芯片上进行音频和视频信号编码,也可以采用另一块芯片。这一过程由ITU 13818-3标准控制,可选择使用程序流(program stream)或传输流(transport stream)。在多路复用的情况下,MPEG2音频和视频信号共用带宽。除了音频和视频信号外,数据流中还携带了有关两种信号的合成信息。这种情况下,总的比特率(也称为系统比特率)是音频和视频信号比特率以及数据头和字节填充的总和。显然,视频部分占用了大部分带宽。当系统比特率高时,音频信号的比特率比视频信号或多路复用数据流的比特率低。这种情况下,由于带宽十分丰富,因此用户可对音频流的各种参数进行设置以获得最佳的声音质量。然而,如果比特率较低,情况就不太一样。如果音频部分稍稍浪费一些带宽,视频部分的带宽便会不够用。最后解析出来的视频质量便会严重受损。这种情况下应小心设置MPEG2音频参数。如将“音频PES调节”关闭,音频比特率也应该降低到192kbps或甚至128kbps。这些设置对改善MPEG2信息流解析质量十分有效。

 

作者:


Waqar Saleem


应用工程师


技术解决方案组


富士通微电子美国公司

这篇关于MPEG2标准的压缩分层和编码原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/223700

相关文章

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

Qt实现文件的压缩和解压缩操作

《Qt实现文件的压缩和解压缩操作》这篇文章主要为大家详细介绍了如何使用Qt库中的QZipReader和QZipWriter实现文件的压缩和解压缩功能,文中的示例代码简洁易懂,需要的可以参考一下... 目录一、实现方式二、具体步骤1、在.pro文件中添加模块gui-private2、通过QObject方式创建

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于