H263/H264/MPEG4及其差别 && Android 用MediaCodec实现视频硬解码

      目前比较流行的几种适合网络传输的视频编码有:MPEG4、H263、H264。下面简要介绍下这些编码。

(1)MPEG4:MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图象质量。它采用面向对象的压缩方式,根据图像的内容,把其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率(对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比)。

(2)H263:263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用。H.263采用无限制的运动向量以及基于语法的算术编码,采用事先预测和与MPEG中的P-B帧一样的帧预测方法。H.263支持5种分辨率,即除了支持QCIF和CIF外,还支持SQCIF、4CIF和16CIF。

(3)H.264是ITU-T的VCEG (Video Coding Experts Group)和ISO/IEC的MPEG(Motion Picture Experts Group)联合成立的“联合视频组”(JVT:Joint Video Team)共同制定的新建议,它等同于ISO的MPEG-4的Part10。可以说,264是263的发展和延续,同时吸收了MPEG的一些优点。它的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用,

(4)比较:和H.263、H.264比较而言,MPEG4相对简单,实现起来对系统要求也最低,但效果也最差的。对这种编码,和另外两种比起来,优势并不大,不多讲,主要的讲263和264。

      263是种优秀的编码,它可以根据需要产生适合网络情况传输的视频流,在网络允许的条件下生成最好的视频效果。也就是说,它产生的流量是可变的,可以适应很宽的网络带宽,满足不同需要。另外,263的标准也很完备,它充分考虑了不同厂家产品的兼容性,不同厂家的产品之间互通不存在问题,因此,263也是视频产品领域个厂家所必须支持的标准之一。

       从产品开发的角度讲,264和263的差别并不大:它是263的发展,与之比较,除了263的优点外,还有更高的压缩比,有更好的图象质量。这也就意味着,同样的网络和同样的流量情况下,264能够产生更好的视觉效果,从实际来看,这个效果是好很多的。

       但264也是有缺点的。首先,由于264的算法更加复杂,程序实现烦琐,运行它需要更多的处理器和内存资源。在相同的系统下,可能可以跑起四路MPEG4,两路263,却不一定跑得起一路264(当然跟这个程序的效率有关)。因此,运行264对系统要求是比较高的。其次,由于264的实现更加灵活,它把一些实现留给了厂商自己去实现,虽然这样给实现带来了很多好处,但是不同产品之间互通成了很大的问题,造成了通过A公司的编码器编出的数据,必须通过A公司的解码器去解这样尴尬的事情。

 参考原文:http://blog.csdn.net/wcl0715/archive/2006/04/25/676137.aspx

==================================Android 用MediaCodec实现摄像头H264硬编码解码===================================

参见http://blog.csdn.net/halleyzhang3/article/details/11473961

你可能感兴趣的:(音视频与电视)