大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
来自 http://blog.csdn.net/dansin/article/details/389149 MPEG-4编解码学习.
1.视频数据编码的办法 对数据进行编码的目的前面以前提过,一方面降低数据体积,一方面保留数据携带的信息量..对于视频数据,我们要做的将是降低数据何积和保证数据解码后的视觉效果.视频数据编码一般有三个方法: a.去除时间冗余度(时间冗余度是指视频数据在各帧之前的信息冗余) b.去除空间冗余度(空间冗余度是指视频数据帧中各像素的信息冗余) c.去除静态冗余度(静态冗余度是指视频数据在存储介质中的信息冗余) MPEG4是一种基于内容和视觉效果的编码方法. 编解码标准叫做MPEG-4,它旦生于1994年,是一个叫做MPEG(Motion Picture Expert Group)的研究小组开发出来的. 在它之前还有过MPEG-1,MPEG-2等标准,分别用于VCD和DVD多媒体技术中.下面针对视频数据的编解码。 2.MPEG4的编码方法 MPEG4是一种基于内容和视觉效果的编码方法. 基于内容: MPEG4的基本编码单元不是每个图像帧,而是一个AVO(Audio Visual Object),这时以VO为例.一个视觉场景中可以有多个VO.比如说背景VO,前景VO,头像VO等.对于前景等信息比较重要的VO,MPEG4采取高质量的编码策略,以保证图像质量;而对于背景等信息相对次要的VO来说,MPEG4采用低质量的编码策略,甚至可以丢弃不用.从而大大降低了数据的码率. 基于视觉效果: 我们知道,人眼对于不同的信号,它的各级敏感程度是不同的.比如,人眼对亮度信号的敏感程度大于色彩程度,对于低频信号的敏感程度大于高频信号的敏感程度;对于静态信号的的敏感程度大于动态信号的敏感程度.针对亮度信号的敏感性,MPEG4选择YUV(亮度色差空间)做为其视频输入格式,同时利用DCT(离散余弦变换)对视频数据的频率进于适当的处理等. 总的来说,MPEG4在视频数据编码中同样采用三个策略: a.采用动态补偿(Motion Compensation)支除数据时间冗余度 所谓动态被偿指的是当前帧可以通前一帧或前N帧加上它的运动预测构建得到,这就使得当前帧的体积中是一个运动分量,从而大大被降低了. b.采用离散余弦变换(DCT)和游程长度编码(RLC)去除数据空间冗余度. c.采用可变长编码去除数据静态冗余度 3.MPEG4编码标准层次结构 MPEG4编码标准的层次结构可以简单的表示如下: 视觉场景->VS(Visual Object Sequence)->VO->VOL(Visual Object Layer)->VOP(Visual Object Plane) 一般来说,一个视觉场景中可以包含一个VO的序列,称为VS.VO主要被定义为画面中分割出来的不同物体,每个VO有三类信息来描述:运动信息、形状信息、纹理信息.这里提到的VOL,指的是VO在基于内容或者要求较高的应用中,可以是场景中的某一层面,在一些低比特率的应用中,VO可以就是一个矩形帧,从而与原来的标准兼容.视频对象平面(VOP)是视频对象(VO)在某一时刻的采样。VOP是MPEG-4视频编码的核心概念。VOP之间可以互相独立的编码,也可以相互通过运动补偿来进行编码。VOP我们可以理解为普通编码中的帧. 4.MPEG4编码流程 第一步是VO的形成(VO Formation),先要从原始视频流中分割出VO,之后由编码控制(Coding control)机制为不同的VO以及各个VO的三类信息分配码率,之后各个VO分别独立编码,最后将各个VO的码流复合成一个位流。其中,在编码控制和复合阶段可以加入用户的交互控制或由智能化的算法进行控制。 XviD是一个编解码器,跟MPEG-4编码是一样的 XviD是一个开放源码的MPEG-4多媒体编码解码器,它是基于OpenDivX而编写的。XviD是由一群原OpenDivX义务开发者在OpenDivX于2001年7月停止开发后自行开发的。XviD支持多种编码模式,量化 (Quantization) 方式和范围控,运动侦测 (Motion Search) 和曲线平衡分配 (Curve),动态关键帧距 (I-frame interval),心理视觉亮度修正,演职员表选项,外部自定义控制,运动向量加速 (Hinted Me) 编码,画面优化解码等众多编码技术,对用户来说功能十分强大。这也是目前被Riper使用最为广泛的编码技术。
来自 http://blog.csdn.net/yanxue023454/article/details/1786675 音视频编码格式相关知识(一)
松解读音频视频编码及文件格式问题 近来,有不少朋友问我一些音视频编解码的入门问题,大概是随着手机、PDA等设备的普及以及带宽的提高,
音视频的传播越来越普及的缘故吧。 不过,我发现很多朋友对一些基本概念还是不清楚,尤其是编码和文件格式,这里就对基本的音视频知识作个
简单的入门说明。 音频视频编码及文件格式(容器)是一个很庞大的知识领域,完整的说清楚,那就需要些写成一本教材了。这
里先就几个简单的概念问题作以介绍: 首先要分清楚媒体文件和编码的区别: 文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器; 文件当中的视频和音频的压缩算法才是具体的编码。 也就是说一个.avi文件,当中的视频可能是编码a,也可能是编码b,音频可能是编码5,也可能是编码6,具体
的用那种编码的解码器,则由播放器按照avi文件格式读取信息去调用了。 编码介绍: 音频视频编码方案有很多,用百家争鸣形容不算过分,目前常见的音频视频编码有以下几类 MPEG系列:(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发 ) 视频编码方面主要是Mpeg1(vcd用的就是它)、Mpeg2(DVD使用)、Mpeg4(现在的DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC(现在正热门); 音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(大名鼎鼎的mp3)、MPEG-2 AAC 、MPEG-4 AAC等等。 注意:DVD音频没有采用Mpeg的 H.26X系列:(由ITU[国际电传视讯联盟]主导,侧重网络传输,注意:只是视频编码) 包括H261、H262、H263、H263+、H263++、H264(就是MPEG4 AVC-合作的结晶) 微软windows media系列:(公司牛,能自己定标准啊...) 视频编码有Mpeg-4 v1/v2/v3(基于MPEG4,DIVX3的来源,呵呵)、Windows Media Video 7/8/9/10 音频编码有Windows Media audeo v1/v2/7/8/9 Real Media系列:(注意,这里说的Real的编码,可不是rm、rmvb文件,呵呵) 视频编码有RealVideo G2(早期)、RealVideo 8/9/10 音频编码有RealAudio cook/sipro(早期)、RealAudio AAC/AACPlus等 QuickTime系列:(是一个平台,有很多编码器) 视频编码有Sorenson Video 3(用于QT5,成标准了)、Apple MPEG-4、Apple H.264 音频编码有QDesign Music 2、Apple MPEG-4 AAC (这个不错) 其它,如:Ogg、On2-vpx、flash vidio:不详述啦。
特殊说明的,是DVD这种媒介的音频编码,采用了相对独立的几种,就列2个常见的吧:AC3(杜比公司开发)、DTS文件格式(容器): AVI 音视频交互存储,最常见的音频视频容器。支持的视频音频编码也是最多的。 MPG MPEG编码采用的音频视频容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用
于 HDTV。 VOB DVD采用的音频视频容器格式(即视频MPEG-2,音频用AC3或者DTS),支持多视频多音轨多字幕章节等。 MP4 MPEG-4编码采用的音频视频容器,基于QuickTime MOV开发,具有许多先进特性。 3GP 3GPP视频采用的格式,主要用于流媒体传送。 ASF Windows Media 采用的音频视频容器,能够用于流传送,还能包容脚本等。 RM RealMedia 采用的音频视频容器,用于流传送。 注意:RMVB,是视频编码部分采用可变码率压缩的文件格式(容器) MOV QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,
3GP都没有这么厉害。 MKV MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。 WAV 一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。 MP3 如前所述,不用多说了吧?就是MPEG Audio Layer 3(Mpeg 1 的音频编码的一种)文件转换(实际上也是编码转换) 至于这些纷繁杂乱的文件转换(实际上也是编码转换),有很多工具了,像很多转换大师、万能转换什么的。
这里推荐一款:xilisoft video converter – 视频转换专家,它可以转换的文件(编码)比较多,功能较全。
关于音视频的知识,实在太庞杂,这里只是抛砖引玉,对于基础的、入门性的一些常识做了简单介绍,至于更进
一步的,比如每一种编码的算法、文件格式的规范等等,就需要大家参考相关专业书籍和资料了,当然,也可以
继续关注我的系列文章。
来自 http://www.cctime.com/html/2010-5-20/20105201614409268.htm 基于PC机的MPEG-4编码原理研究及实现
0 引言随着多媒体业务的发展,日益增长的多媒体通信量和有限的通信带宽之间的矛盾日益突出。为了减小传输的数据量,国际电信联盟和MPEG标准组织都制定过各自的视频压缩标准。其中,最新MPEG-4标准以其高压缩率,支持低码率传输和基于对象编码等优点,而在传真、视频点播、电视会议、医用图像传输等领域广泛应用。
MPEG-4继承了MPEG-2中档次和等级概念,共有视频档次、音频档次、图形档次和场景描述档次共四类。档次是针对某一特定的应用而采用的编码工具,它是MPEG-4提供的工具集中一个子集,不同的档次就是不同的子集。每一个档次分为一个或多个等级,等级则定义了比特流参数的规格,实际上是限定了解码一个编码序列所应具备的性能。
MPEG-4的独特之处在于支持基于内容的编解码,为此引入了视听对象AVO(Audio/VIDEO Object)的概念。AVO可以是一幅图像中一个小提琴或琴声等,每个AVO可独立编码,但相互之间又存在着时空结构关系,因此编码时,必须传送编码对象的组成结构信息体“场景描述”,以表示场景中各AVO之间的时空结构关系。解码时根据此“场景描述”对图像和声音的有关内容进行编辑和操作。视听对象还可以是一个矩形帧,从而使MPEG-4兼容原来的MPEG标准。视听对象中的视频对象VO通常由3类信息来描述,即运动、形状和纹理信息。
1 编码原理
MPEG-4编码器主要由形状编码、纹理编码和运动编码三部分组成。帧格式分为I-VoP,P-VOP和B-VOP。这里只讨论I-VOP和P-VOP。I-VOP采用纹理编码来消除一帧图像数据间的空间冗余度;P-VOP是参考前一帧图像,并采用两种参数来编码。一种是当前要编码的图像与参考图像之间的差值;另一种是运动矢量。编码器的具体结构模块如图1所示。
1.1 形状编码
形状编码主要用于记录从图像序列中提取VOP的形状信息,该信息分为二值形状信息和灰度形状信息。二值形状信息用0和1两个值表示VOP的形状;灰度形状信息用0~255表示VOP区域的不同透明度。在编码时,当提取的VOP具有非矩形形状时,需要对其进行边界扩展,使其矩形边界都是16的倍数,同时保证扩展后的面积最小,然后进行形状编码;当提取的VOP为矩形时(矩形的长度和宽度都是16的倍数),形状编码就会被屏蔽。
1.2 纹理编码
纹理编码主要对I-VOP内的图像像素或P-VOP内的差值像素进行编码,包括DCT、量化、DC和AC预测、熵编码等过程,最大程度地去除当前VOP内各像素之间的空间冗余度。
视频的第一帧图像采用I-VOP格式编码,其余的帧采用I-VOP,还是P-VOP格式则受两个因素制约。其用户会按照IPPPIPPPI的方式设置当前帧所采用的格式;二是已经人为地设置了当前帧为P-VOP,通过运动估计计算mad_P的值,如果mad_P满足下列两个条件之一,则当前帧就采用P-VOP编码格式,否则采用I-VOP编码格式。
条件1:mad P<50/3;
条件2:mad P<50,并且IntraMBRatio<0.4。其中,IntraMBRatio为当前帧中采用MBM_INTRA预测模式的宏块占总宏块的比重。
纹理编码中的DCT和量化模块比较简单,这里略过,重点介绍剩下的纹理编码模块。
1.2.1 DC和AC预测
8×8块经过DCT和量化后,系数排列呈现以下的规律,即非零系数集中在左上角,大部分的0系数集中在偏离DC系数向右和向下的位置上。特别是DC系数、第一行和第一列AC系数,数值非零且较大,如果能用较小的数值代替它们,会减少编码后的位流数,于是产生DC和AC预测。
在MPEG-4中,通常把一个宏块分为6个8×8块进行DC和AC预测。
首先对8×8块进行DC预测。如图2所示,X表示当前的8×8块;A,B和C表示X的相邻8×8块,其位置分别位于X的左边、左上角和上边。对X进行DC预测就是采用相邻块的DC系数值预测X的DC系数值,关键是选择哪个相邻块的DC系数。
程序采用了以下策略选取相邻块。定义块A,B,C,X的DC系数值分别为DC_A,DC_B,DC_C,DC_X。
如果DC_A与DC_B的差小于DC_B与DC_C的差,则DC_A与DC_B在数值上比较接近,即在垂直方向上的数值比水平方向上更接近,所以采用DC_C来预测DC_X;反之,在水平方向的数值比较接近,即采用DC_A来预测DC_X。
将当前块的DC系数与用来预测的相邻块的DC系数,经过特定处理后做差,其差存放到当前块的DC位置上,同时记录此DC系数的预测方向。
AC预测主要是针对8×8块的第一行或者第一列AC系数,其预测方向取决于当前块DC系数的预测方向。如图2所示,如果之前DC预测为水平预测,则当前块X的第一列AC系数采用A块的第一列AC系数预测,同时将X的第一列7个AC系数各自取绝对值后相加到变量S1(S1的初始值为0)上。将当前块第一列AC系数与用来预测的相邻块A的第一列AC系数做差,其7个差值存放到当前块的第一列AC系数的位置上,同时将7个差值各自取绝对值后相加到变量S2(S2的初始值为0)上。如果之前的DC预测为垂直预测,则只进行当前块X的第一行AC系数预测,其预测步骤同第一列AC系数的预测一样。
有时AC预测会产生较大的预测误差,并没有达到节省位流的目的,因此必须判断AC预测的有效性。在单个8×8小块的AC预测中,用S1记录了此小块的第一行或第一列AC系数的绝对值之和,用S2记录了第一行或第一列预测后7个差值的绝对和。以一个宏块的6个8×8小块为单位,将各个小块的S1与S2之差相加,得到值S。如果S非零,则此宏块进行AC预测,其标志ACpred_flag置1,否则此宏块不进行AC预测,ACpred_flag置0。
1.2.2 之字型扫描
DC和AC预测之后,对8×8块的系数进行之字形扫描,共有Zigzag,Zigzag_v(交替垂直扫描)和Zigzag_h(交替水平扫描)三种扫描方式。采用何种扫描方式由三个要素决定,即帧内还是帧间预测,AC预测标志ACpred_flag的值,DC系数的预测方向。
对于帧内预测的宏块,如果AC预测标志ACpredflag为0,则此宏块中的6个8×8块都使用Zigzag扫描;如果AC预测标志为1,则此宏块中的6个8×8块将根据各自的DC预测方向决定AC系数的扫描方向。如果DC预测为水平预测,则此8×8块使用Zigzag_v扫描方式扫描系数,否则使用Zigzag_h扫描方式。
对于帧间预测的宏块,其每个8×8块统一采用Zigzag扫描方式扫描系数。
8×8的系数矩阵经过之字型扫描后,大部分非零系数集中在一个一维数组的前部,大部分零系数集中在此一维数组的后面,根据此特点便产生了游程编码。
1.2.3 游程编码和熵编码
所谓游程编码就是对8×8系数矩阵的AC系数进行特定的处理,使其成为个数更少的三维矢量(Last,Run,Level)。其中,Level代表非0系数的大小。Run代表Level前面连续0的个数。Last代表终止标志:其值为0时,表示Level后还有不为0的系数;其值为1时表示该系数是最后不为0的数;余下的系数全为0。游程编码生成三维矢量,压缩了数据量,然后根据Last,Run和Level的不同组合作为索引,找到对应Huffman编码表中的码字,生成码流。
1.3 运动编码
运动编码对当前P-VOP和参考VOP进行运动估计与补偿,减小帧间的时间相关性,实现压缩。
通常采用块匹配法进行运动估计。块匹配法就是针对当前帧中某一特定大小的图像块,从参考帧的一定区域中找出该图像块绝对误差和(Sum of AbsoluteDifference,SAD)的最小匹配块,利用此匹配块来预测当前块。图像块的绝对误差和指两个大小相同的图像块的中像素差的绝对值之和。SAD16×16函数实现当前宏块和参考宏块间的绝对误差和;SAD8×8函数实现当前8×8块与参考8×8块间的绝对误差和。
确定了块匹配准则后,就要进行最优匹配点的搜索,MPEG-4校验模型最后采用钻石搜索法(Diamond Search,DS)。钻石搜索法是一种利用搜索模板的形状和大小,对运动估计算法速度及精度产生重要影响的快速搜索法。选用了两种形状和大小都不相同的搜索模板:一种是大钻石搜索模板(Large DiamondSearch Pattern,LDSP),它有9个候选位置:(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)。具体模板如图3所示。一种是小钻石搜索模板(Small Diamond Search Pattern,SDSP),它包含5个候选位置:(0,0),(0,1),(1,0),(0,-1)和(-1,0)。具体模板如图4所示。
钻石搜索过程如下:以当前帧的当前宏块的左上角起点坐标为大模板的原点(0,0),在参考帧的搜索范围内,分别以大模板的(0,0),(0,2),(1,1),(2,0),(1,-1),(0,-2),(-1,-1),(-2,0)和(-1,1)像素点作为宏块的左上角起点,将该宏块和当前帧的宏块做SAD16×16运算,选择SAD16×16值最小的左上角起点作为暂时的最佳匹配点,此点与当前宏块左上角起点之间的位移就是运动矢量。判断此运动矢量是否适合特定的规则,如果不适合,则进行新一轮的大钻石模板搜索,直到找到适合条件的运动矢量。然后再以大钻石模板搜索的最佳匹配点为中心点(0,0),用小钻石搜索模板进行(0,1),(1,0),(0,-1)和(-1,0)四个参考点的精确搜索,搜索到的SAD16×16值最小点就是最终的最佳匹配点,最佳匹配点与当前宏块的左上角起点之间的位移就是最终的运动矢量。
以上是基于宏块的全像素搜索,还可以选择是否进行基于8×8块的全像素搜索。利用已经得到的基于宏块的运动矢量,找到基于宏块的最佳匹配点。此匹配点为中心(0,0),其他匹配点为(-1,-1),(0,-1),(1,-1),(-1,0),(1,0),(-1,1),(0,1),(1,1),分别以这9个匹配点作为8×8像素块的左上角起点,将该8×8块和当前帧的8×8块做绝对差值和的运算,选择SAD8×8值最小的左上角起点作为最佳匹配点,以找到最佳运动矢量,得到宏块内每个8×8亮度块的运动矢量和SAD8×8值。将4个SAD8×8的和与SAD16×16做比较,将较小值按照一定的规则处理,从而判断当前宏块的预测模式为帧内或帧间预测。
如果采用帧间预测,进一步采用半像素搜索。首先对整个参考帧进行双线性差值,则参考帧的面积变为原来的4倍,然后在特定的搜索范围内搜索出更精确的运动矢量,最后根据参考图像的亮度信息、色度信息和运动矢量做运动补偿。
如果采用帧内预测,不再对当前宏块进行任何运动估计,相应运动补偿后的参考宏块数值为0。
最后用当前帧减去运动补偿后参考图像得到差值,将差值数据进行纹理编码;对每个宏块的运动矢量进行预测并求出差分值,对差分值进行位流转换并输出。
2 编码器的实现和测试
根据图1并结合MPEG-4编码器各个模块的实现原理,进行编码器主函数的编写和调试。初步确定编码器的主函数应包括以下三部分:
初始化部分由于参考代码中存在RGB到YUV的图像格式转换函数(本文未介绍),则应开辟相应的存储BMP和YUV图像的空间;还要开辟空间存放编码器生成的压缩文件;必须设置编码器的编码参数。
编码处理部分此部分是通过循环编码各帧图像来实现的,读入一帧图像后,判断是采用I帧还是P帧,然后输出VOP头信息,进行当前VOP的编码并输出位流信息到缓冲器中,最后利用fwrite函数形成磁盘文件。
释放资源前面两个阶段开辟的内存空间必须释放掉,整个视频的编码过程结束。
结合参考的编码主函数,调试并运行编码器,生成divx文件,相应地调试出解码器。逐一更改编码器的量化参数QP、帧率、输出码率和I帧间隔参数,测试出它们对编码效果的影响,如量化参数QP、帧率和I帧间隔参数与压缩比成正比,输出码率与压缩比成反比。经过综合测试,在保证解码图像质量的前提下,当QP为8,帧率为30 f/s,输出码率为400 000 b/s,I帧间隔为3时,压缩比为58.8,此时达到最好的压缩效果。当然,如果对解压后的视觉效果要求不高的话,压缩倍数还可以继续提高。
3 结语
所讲的MPEG-4是MPEG-4标准的Part2部分,其编解码器已经获得了许多厂商的支持。目前,作为MPEG-4 Part10的H.264也已经推出并发展,相比MPEG-4 Part2,H.264在同样质量下,其码率能降低50%左右,说明MPEG-4一直在发展。随着基于内容的编码技术的实用化发展,MPEG-4将有更为广泛的应用前景。
来自 http://www.cnblogs.com/candycaicai/archive/2011/02/17/1956737.html 音视频编码格式汇总
一、音频编解码格式
*MPEG Audio Layer 1/2
*MPEG Audio Layer 3(MP3)
*MPEG2 AAC
*MPEG4 AAC
*Windows Media audeo v1/v2/7/8/9
*RealAudio cook/sipro(real media series)
*RealAudio AAC/AACPlus(real media series)
*QDesign Music 2(apple series)
是QDesign 公司开发的用于高保真高压缩率的编码方式,类似于MP3,不过比MP3要先进。支持流式播放.
*Apple MPEG-4 AAC(apple series)
*ogg(ogg vorbis音频)
*AC3(DVD 专用音频编码)
*DTS(DVD 专用音频编码)
*APE(monkey’s 音频)
*AU(sun 格式)
*FLAC(fress lossless 音频)
*M4A(mpeg-4音频)(苹果改用的名字,可以改成.mp4)
*MP2(mpeg audio layer2音频)
*WMA
二、视频编解码格式
*MPEG1(VCD)
*MPEG2(DVD)
*MPEG4(divx,xvid)
*MPEG4 AVC/h.264
*h.261
*h.262
*h.263
*h.263+
*h.263++
*MPEG-4 v1/v2/v3(微软windows media系列)
*Windows Media Video 7/8/9/10
*Sorenson Video 3(用于QT5,成标准了)(apple series)
*RealVideo G2(real media series)
*RealVideo 8/9/10(real media series)
*Apple MPEG-4(apple series)
*Apple H.264(apple series)
*flash video
三、音视频文件格式
首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;文件当中的视频和音频的压缩算法才是具体的编码。 *AVI
音视频交互存储,最常见的音频视频容器。支持的视频音频编码也是最多的
*MPG
MPEG编码采用的音频视频容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用于 HDTV。
*VOB
DVD采用的音频视频容器格式(即视频MPEG-2,音频用AC3或者DTS),支持多视频多音轨多字幕章节等。
*MP4
MPEG-4编码采用的音频视频容器,基于 QuickTime MOV 开发,具有许多先进特性。
*3GP
3GPP视频采用的格式,主要用于流媒体传送。
*ASF
Windows Media 采用的音频视频容器,能够用于流传送,还能包容脚本等。
*RM
RealMedia 采用的音频视频容器,用于流传送。
*MOV
QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,3GP都没有这么厉害。
*MKV
MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。
*WAV
一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。
四、音视频技术
VCD
DVD
DVD目录是如何工作的
Audio CD
*标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数
**.cda格式,这就是CD音轨了,一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短,在电脑上看到的“*.cda文件”都是44字节长
MP3
*MPEG音频文件的压缩是一种有损压缩,MPEG3音频编码具有10:1~12:1的高压缩率,同时基本保持低音频部分不失真,但是牺牲了声音文件中12KHz到16KHz高音频这部分的质量来换取文件的尺寸,相同长度的音乐文件,用*.mp3格式来储存,一般只有*.wav文件的1/10,而音质要次于CD格式或WAV格式的声音文件
*MP3格式压缩音乐的采样频率有很多种,可以用64Kbps或更低的采样频率节省空间,也可以用320Kbps的标准达到极高的音质
*每分钟音乐的MP3格式只有1MB左右大小
MIDI:
经常玩音乐的人应该常听到MIDI(Musical Instrument Digital Interface)这个词,MIDI允许数字合成器和其他设备交换数据。MID文件格式由MIDI继承而来。MID文件并不是一段录制好的声音,而是记录声音的信息,然后在告诉声卡如何再现音乐的一组指令。这样一个MIDI文件每存1分钟的音乐只用大约5~10KB。今天,MID文件主要用于原始乐器作品,流行歌曲的业余表演,游戏音轨以及电子贺卡等。*.mid文件重放的效果完全依赖声卡的档次。*.mid格式的最大用处是在电脑作曲领域。*.mid文件可以用作曲软件写出,也可以通过声卡的MIDI口把外接音序器演奏的乐曲输入电脑里,制成*.mid文件。
WMA:
*WMA的压缩率一般都可以达到1:18左右,WMA的另一个优点是内容提供商可以通过DRM(Digital Rights Management)方案如Windows Media Rights Manager 7加入防拷贝保护。这种内置了版权保护技术可以限制播放时间和播放次数甚至于播放的机器等等,这对被盗版搅得焦头乱额的音乐公司来说可是一个福音,另外WMA还支持音频流(Stream)技术,适合在网络上在线播放
* WMA这种格式在录制时可以对音质进行调节。同一格式,音质好的可与CD媲美,压缩率较高的可用于网络广播
五、以文件名标识识别音频编码格式
*.aac
音频编码:aac
*.ac3
音频编码:ac3
*.ape
*.au
音频编码:pcm_s16be
*.m4a
音频编码:mpeg4 aac
*.mp2
*.mp3
*.ogg
音频编码:vorbis
*.wav
音频编码:pcm_s16le
*.flav
*.wma
音频编码:wma7x
以文件名标识识别音频编码格式
1.*.MP4 (MP4 MPEG-4视频)
视频编码:mpeg4
音频编码:mpeg4 aac
2.*.3gp (3GPP 第三代合作项目)
视频编码:mpeg4
音频编码:amr_nb((mono, 8000 Hz, Sample Depth 16 bit, bitrate 12 kbps)
3.*.3g2 (3GPP 第三代合作项目2)
视频编码:mpeg4
音频编码:mpeg4 aac
4.*.asf (ASF 高级流格式)
视频编码:msmpeg4
音频编码:mp3
5.*.avi (AVI 音视频交错格式)
视频编码:mpeg4
音频编码:pcm_s161e
6.*.avi (divx 影片)
视频编码:mpeg4
音频编码:mp3
7.*.avi(xvid 视频)
视频编码:Xvid
音频编码:mp3
8.*.vob (DVD)
视频编码:mpeg2 video
音频编码:ac3
9.*.flv (flash 视频格式)
视频编码:
音频编码:mp3
10.*.mp4 (iPod 320*240 MPEG-4 视频格式)
视频编码:mpeg4
音频编码:mpeg4 aac
11.*.mp4(iPod video2 640*480 MPEG-4 视频格式)
视频编码:mpeg4
音频编码:mpeg4 aac
12.*.mov (MOV 苹果quicktime 格式)
视频编码:mpeg4_qt
音频编码:mpeg4 aac_qt
13.*.mpg (mpeg1影片)
视频编码:mpeg1 video
音频编码:mp2
14.*.mpg (mpeg2 影片)
视频编码:mpeg2 video
音频编码:mp2
15.*.mp4 (mpeg4 avc 视频格式)
视频编码:h.264
音频编码:mpeg4 aac
16.*.mp4 (PSP mpeg4 影片)
视频编码:Xvid
音频编码:mpeg4 aac
17.*.mp4 (PSP AVC 视频格式)
视频编码:h.264
音频编码:mpeg4 aac
18.*.rm (RM realvideo)
视频编码:rv10
音频编码:ac3
19.*.mpg (超级VCD)
视频编码:mpeg2 video
音频编码:mp2
20.*.swf (SWF 格式)
视频编码:
音频编码:mp3
21.*.mpg (video CD 格式)
视频编码:mpeg1 video
音频编码:mp2
22.*.vob (mpeg2 ps格式)
视频编码:mpeg2 video
音频编码:ac3
23.*.wmv(windows 视频格式)
视频编码:wmv3x
音频编码:wma7x
现有MPEG-2视频标准的技术规范集包括5类(Profile)4级(Level)组成,并采用分级编码。类和集的若干组合构成MPEG-2标准在某种特定应用下的子集。级(Level)是指MPEG-2的输入格式,标识从有限清晰度的VHS 质量图像到HDTV图像,每一种输入格式编码后都有一个相应的范围。共分4级:1) 低级LL(Low Level),图像输入格式的像素是ITU-R Rec.BT 601格式的1/4,即352×240×30或352×288×25。2) 主级ML(Main Level),图像输入格式符合ITU-R Rec.BT 601格式,即720×480×30或720×576×25。3) 1440高级H14L(High 1440 Level),图像宽高比为4∶3,采用1440×1080×30的高清晰度格式。4) 高级HL(High Level),图像宽高比为16∶9,采用1920×1080×30的高清晰度格式。类(Profile)是指MPEG-2的不同处理方法,每一类都包括压缩和处理方法的一个集合,较高的类意味着采用较多的编码工具集,进行更精细的处理,达到更好的图像质量,同时实现的代价也更大。共分5类:1) 简单类SP(Simple Profile),使用最少的编码工具集。2) 主类MP(Main Profile),它比简单类增加了一种双向预测方法,在相同比特率的情况下,将给出比简单类更好的图像。3) 信噪比可分级类SNRP(SNR Scaleable Profile)和空域可分级类SPP(Spatially Scaleable Profile),这两种类允许将编码的视频数据分为基本层和附加层,提供了一种多种广播的方式。4) 高级类HP(High Profile),应用于图像质量、比特率要求更高的场合。
说了这么多,重要的是要分清编码与文件格式的区别。很多编码都是MPEG4的变种。视频编码无非是把原始图像分块、采用预测算法还有压缩算法来实现。即对应形状、运动和纹理过程。当然,视频编解码很复杂,这涉及很多专业的知识。暂时就不去作深入研究了。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191988.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...