最近在研究音视频编解码这一块儿,看到@bitbit大神写的【各种音视频编解码学习详解】这篇文章,非常感谢,佩服的五体投地。奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读。大神博客传送门:https://www.cnblogs.com/skyofbitbit/p/3651270.html。若读过@bitbit大神写的【各种音视频编解码学习详解】这篇文章,就不用向后看啦
在上次对MPEG-2的学习整理中,有一个疑惑,双声道理解,就是左右立体声,但是5.1声道是什么?我们经常看到杜比5.1声道的说法。“0.1”声道具体指什么?今天去wiki查了一下,相关内容也整理入我们的学习笔记。本文档资料来源:
5.1声道
使用杜比数字技术下,最标准常用的是5.1声道设置,但杜比数字容许一系列不同声道的选择。全部可供选择的声道如下列所示:
以上所有这些设置可选择性地使用低频效果和杜比数字EX矩阵编码中加入附加后环绕声道。杜比编码技术是向下兼容 的,很多杜比播放器/解码器均备有向下混音作用是发布不同声道至可供使用的扬声器。这包括一些功能例如声音数据通过前扬声器播放(如适用),和当中央扬声器不适用时发布中央频道至左或右扬声器。或当用户只有2.0喇叭时,杜比解码器能把多声道信号混音编码为 2.0立体声。
在5.1, 7.1 或其他等文字中,'.1'指的是低频LFE声道。
其实5.1声道就是使用5个喇叭和1个超低音扬声器来实现一种身临其境的音乐播放方式,它是由杜比公司开发的,所以叫做“杜比5.1声道”。在5.1声道系统里采用左(L)、中(C)、右(R)、左后(LS)、右后(RS)五个方向输出声音,使人产生犹如身临音乐厅的感觉。五个声道相互独立,其中“.1” 声道,则是一个专门设计的超低音声道。正是因为前后左右都有喇叭,所以就会产生被音乐包围的真实感。如右图所示。
MPEG-4
总体介绍
MPEG-4是一套用于音频、视频信息的压缩编码标准, 由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“動態影像专家组”(Moving Picture Experts Group,即MPEG) 制定,第一版在1998年10月通過,第二版在1999年12月通過。MPEG-4格式的主要用途在於網上流媒体、光碟、語音傳送(視訊電話),以及電視廣播。MPEG-4作为ISO/IEC14496正式发布。ISO/IEC 14496-Coding of audio-visual object (AV对象编码)。
为了应对网络传输等环境,传统的 MPEG-1/2 已经不能适应,所以促使了 MPEG-4 的诞生。 与 MPEG-1和MPEG-2相比,MPEG-4的特点是其更适于交互AV服务以及远程监控。MPEG-4是第一个使你由被动变为主动(不再只是观看,允许 你加入其中,即有交互性)的动态图像标准,它的另一个特点是其综合性。从根源上说,MPEG-4试图将自然物体与人造物体相溶合 (视觉效果意义上的)。MPEG-4的设计目标还有更广的适应性和更灵活的可扩展性。 MPEG-4 采用了一系列新技术,来满足在低带宽下传输较高视频质量的需求。DivX,XviD,MS MPEG4 都是采用的MPEG-4 视频编码,除了在 DVDRip 上面的应用,3GPP现在也接纳了 MPEG-4 作为视频编码方案。
最初MPEG-4的主要目的是用于低比特率下的视频通信,但是作为一个多媒体的编码标准,它的范围最后得到了扩展。在技术方面MPEG-4允许不同的软件/硬件开发商创建多媒体对象来提供更好的适应性、灵活性,为数字电视,动态图像,互联网等业务提供更好的质量。
MPEG-4提供范围从每秒几k比特到每秒数十兆比特的,它具有下面功能:
MPEG-4视频编码核心思想
在MPEG-4制定之前,MPEG-1、MPEG-2、H.261、H.263都是采用第一代压缩编码技术,着 眼于图像信号的统计特性来设计编码器,属于波形编码的范畴。第一代压缩编码方案把视频序列按时间先后分为一系列帧,每一帧图像又分成宏块以进行运动补偿和编码,这种编码方案存在以下缺陷:
MPEG-4则代表了基于模型/对象的第二代压缩编码技术,它充分利用了人眼视觉特性,抓住了图像信息传输的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能,这适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势。
AV对象(AVO,AudioVisual Object)是MPEG-4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。在MPEG-4中所见的视音频已不再是过去MPEG-1、MPEG-2中图像帧的概念,而是一个个视听场景(AV场景),这些 不同的AV场景由不同的AV对象组成。AV对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始AV对象,它可以是自然的或合成的声音、图像。原 始AV对象具有高效编码、高效存储与传输以及可交互操作的特性,它又可进一步组成复合AV对象。因此MPEG-4标准的基本内容就是对AV对象进行高效编 码、组织、存储与传输。AV对象的提出,使多媒体通信具有高度交互及高效编码的能力,AV对象编码就是MPEG-4的核心编码技术。
MPEG-4实现基于内容交互的首要任务就是把视频/图像分割成不同对象或者把运动对象从背景中分离出来,然后针对不同对象采用相应编码方法,以实现高效压缩。因此视频对象提取即视频对象分割,是MPEG-4视频编码的关键技术,也是新一代视频编码的研究热点和难点。
MPEG-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用。
MPEG-4各部分
MPEG-4由一系列的子标准组成,被称为部,包括以下的部分。对于媒体编解码,重点关注Part2,Part 3, Part 10。
第一部(ISO/IEC 14496-1):系统
描述视訊和音訊的同步以及混合方式(Multiplexing,简写为MUX)。定义了 MP4 容器格式, 支持类似 DVD 菜单这样的直观和互动特性等。
第二部(ISO/IEC 14496-2):视频
定义了一个对各种视觉信息(包括视訊、静止纹理、计算机合成图形等等)的编解码器。对视訊部分来说,众多”Profiles”中很常用的一种是Advanced SimpleProfile (ASP),例如XviD编码就 属于MPEG-4Part 2。包括 3ivx, DivX4/Project Mayo, DivX 5, Envivio,ffmpeg/ffds, mpegable, Nero Digital, QuickTime, Sorenson, XviD 等常见的视频格式, 需要注意的是 Divx 3.11, MS MPEG-4, RV9/10, VP6,WMV9 并不属于标准的 MPEG-4 标准。
第三部(ISO/IEC 14496-3):音频
定义了一个对各种音訊信号进行编码的编解码器的集合。包括高级音訊编码(Advanced Audio Coding,缩写为AAC) 的若干变形和其他一些音频/语音编码工具。即 AAC 音频标准, 包括 LCAAC, HE AAC 等, 支持 5.1 声道编码, 可以用更低的码率实现更好的效果 (相对于 MP3, OGG 等) 。
第四部(ISO/IEC 14496-4):一致性
定义了对本标准其他的部分进行一致性测试的程序。
第五部(ISO/IEC 14496-5):参考软件
提供了用于演示功能和说明本标准其他部分功能的软件。
第六部(ISO/IEC 14496-6):多媒体传输集成框架
即DMIF:Delivery Multimedia IntegrationFramework
第七部(ISO/IEC 14496-7):优化的参考软件
提供了对实现进行优化的例子(这裡的实现指的是第五部分)。
第八部(ISO/IEC 14496-8):在IP网络上传输
定义了在IP网络上传输MPEG-4内容的方式。
第九部(ISO/IEC 14496-9):参考硬件
提供了用于演示怎样在硬件上实现本标准其他部分功能的硬件设计方案。
第十部(ISO/IEC 14496-10):进阶视频编码,也即ITU H.264,常写为H.264/AVC
或称高级视频编码(Advanced Video Coding,缩写为AVC):定义了一个视频编解码器(codec),AVC和XviD都属于MPEG-4编码,但由于AVC属于MPEG-4Part 10,在技术特性上比属于MPEG-4 Part2的XviD要先进。另外从技术上讲,它和ITU-T H.264标准是一致的,故全称为MPEG-4 AVC/H.264。
第十一部(ISO/IEC 14496-11):场景描述和应用引擎
可用于多种profile(包括2D和3D版本)的互交互媒体。修订了MPEG-4 Part 1:2001以及Part1的两个修订方案。它定义了应用引擎(交付,生命周期,格式,可下载Java字节代码应用程序的行为),二进制场景格式 (BIFS:Binary Format for Scene),可扩展MPEG-4文本格式(一种使用XML描述MPEG-4多媒体内容的文本格式)系统level表述。也就是MPEG-4 Part21中的BIFS,XMT,MPEG-J。
第十二部(ISO/IEC 14496-12):基于ISO的媒体文件格式
定义了一个存储媒体内容的文件格式。
第十三部(ISO/IEC 14496-13):IP
知识产权管理和保护(IPMP for Intellectual Property Management and Protection)拓展。
第十四部(ISO/IEC 14496-14):MPEG-4文件格式
定义了基于第十二部分的用于存储MPEG-4内容的視訊檔案格式。
第十五部(ISO/IEC 14496-15):AVC文件格式
定义了基于第十二部分的用于存储第十部分的视频内容的文件格式。
第十六部(ISO/IEC 14496-16):动画框架扩展
动画框架扩展(AFX : Animation Framework eXtension)。
第十七部(ISO/IEC 14496-17):同步文本字幕格式
尚未完成-2005年1月达成”最终委员会草案”,FCD: Final Committee Draft。
第十八部(ISO/IEC 14496-18):字体压缩和流式传输(针对公开字体格式)。
第十九部(ISO/IEC 14496-19):综合用材质流(Synthesized TextureStream)。
第二十部(ISO/IEC 14496-20):简单场景表示
LASeR for Lightweight Scene Representation,尚未完成-2005年1月达成”最终委员会草案”,FCD for Final Committee Draft。
第二十一部(ISO/IEC 14496-21):用于描绘(Rendering)的MPEG-J拓展
尚未完成-2005年1月达成“委员会草案”,CD for Committee Draft)。
Profile和Level
MPEG-4提供大量的编码方式和丰富的设置。 和MPEG-2一样,应用一般不可能支持MPEG-4全集,通过profile和level来描述子集。这些子集,通过 “profile”来表明解码器要求,为了避免计算的复杂,每个profile都有一个或者多个“level”。profile和level的有效组合使得编码生成器只需实现标准中所需的子集,同时保持与其他MPEG-4设备的互通。(解码支持范围通常比编码支持范围大),检查其他MPEG-4设备是否符 合标准,即一致性测试。
对于H.264/AVC(也就是MPEG-4 Part 4)提供下面的profile:
Feature support in particular profiles
Feature |
CBP |
BP |
XP |
MP |
HiP |
Hi10P |
Hi422P |
Hi444PP |
B slices |
No |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
SI and SP slices |
No |
No |
Yes |
No |
No |
No |
No |
No |
Flexible macroblock ordering (FMO) |
No |
Yes |
Yes |
No |
No |
No |
No |
No |
Arbitrary slice ordering (ASO) |
No |
Yes |
Yes |
No |
No |
No |
No |
No |
Redundant slices (RS) |
No |
Yes |
Yes |
No |
No |
No |
No |
No |
Data partitioning |
No |
No |
Yes |
No |
No |
No |
No |
No |
Interlaced coding (PicAFF, MBAFF) |
No |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
CABAC entropy coding |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
8×8 vs. 4×4 transform adaptivity |
No |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
Quantization scaling matrices |
No |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
Separate Cb and Cr QP control |
No |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
Monochrome (4:0:0) |
No |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
Chroma formats |
4:2:0 |
4:2:0 |
4:2:0 |
4:2:0 |
4:2:0 |
4:2:0 |
4:2:0/4:2:2 |
4:2:0/4:2:2/4:4:4 |
Sample depths (bits) |
8 |
8 |
8 |
8 |
8 |
8 to 10 |
8 to 10 |
8 to 14 |
Separate color plane coding |
No |
No |
No |
No |
No |
No |
No |
Yes |
Predictive lossless coding |
No |
No |
No |
No |
No |
No |
No |
Yes |
level用来表明一个profile的解码器的性能要求的范围,例如最大图片分配了,帧频,比特率等等。对于解码器,一个指定的level要求可以对该level以及低于该level的码流进行解码。(A decoder that conforms to agiven level is required to be capable of decoding all bitstreams that areencoded for that level and for all lower levels. 来源:http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC)
Levels with maximum property values
Level |
Max macroblocks |
Max video bit rate (VCL) |
Examples for high resolution @ |
||||
per second |
per frame |
BP, XP, MP |
HiP |
Hi10P |
Hi422P, Hi444PP |
||
1 |
1,485 |
99 |
64 |
80 |
192 |
256 |
128×[email protected] (8) |
1b |
1,485 |
99 |
128 |
160 |
384 |
512 |
128×[email protected] (8) |
1.1 |
3,000 |
396 |
192 |
240 |
576 |
768 |
176×[email protected] (9) |
1.2 |
6,000 |
396 |
384 |
480 |
1,152 |
1,536 |
320×[email protected] (7) |
1.3 |
11,880 |
396 |
768 |
960 |
2,304 |
3,072 |
320×[email protected] (7) |
2 |
11,880 |
396 |
2,000 |
2,500 |
6,000 |
8,000 |
320×[email protected] (7) |
2.1 |
19,800 |
792 |
4,000 |
5,000 |
12,000 |
16,000 |
352×[email protected] (7) |
2.2 |
20,250 |
1,620 |
4,000 |
5,000 |
12,000 |
16,000 |
352×[email protected](10) |
3 |
40,500 |
1,620 |
10,000 |
12,500 |
30,000 |
40,000 |
352×[email protected] (12) |
3.1 |
108,000 |
3,600 |
14,000 |
17,500 |
42,000 |
56,000 |
720×[email protected] (13) |
3.2 |
216,000 |
5,120 |
20,000 |
25,000 |
60,000 |
80,000 |
1,280×[email protected] (5) |
4 |
245,760 |
8,192 |
20,000 |
25,000 |
60,000 |
80,000 |
1,280×[email protected] (9) |
4.1 |
245,760 |
8,192 |
50,000 |
62,500 |
150,000 |
200,000 |
1,280×[email protected] (9) |
4.2 |
522,240 |
8,704 |
50,000 |
62,500 |
150,000 |
200,000 |
1,920×1,[email protected] (4) |
5 |
589,824 |
22,080 |
135,000 |
168,750 |
405,000 |
540,000 |
1,920×1,[email protected] (13) |
5.1 |
983,040 |
36,864 |
240,000 |
300,000 |
720,000 |
960,000 |
1,920×1,[email protected] (16) |