认识高清视频编码(MPEG、H.264、WMV-HD、RMVB)

文章出处:www.net1980.com 原创

       最近两年,“高清”这个词语非常火热,已经成为家电和IT行业的最新潮流了。高清视频和普通视频有什么区别呢?主要是分辨率上的区别,720P视频的分辨率为1280X720,1080P视频的分辨率更达到了1920X1080,而曾经风靡一时,画质让大家惊叹的DVD最高分辨率也只有720X480。网络上流传的高清视频有很多种格式,常见的编码有MPEG、H.264、WMV-HD等,除了这三种编码以外,在互联网上常见的高清视频还有RMVB,RMVB也能达到720P分辨率,但画质较差,不是真正的高清。本文为大家介绍这几种编码各自的技术特点。

一、MPEG视频编码

mpeg logo

       MPEG的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法从而减少运动图像中的冗余信息。MPEG的压缩方法说的更加深入一点就是保留相邻两幅画面绝大多数相同的部分,而把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,但真正能达到高清标准的只有MPEG-2和MPEG-4。

 

1、MPEG-2简介

 

1)MPEG-2编码的DVD

       MPEG-2制定于1994年,设计目标是高级工业标准的图象质量以及更高的传输率。MPEG-2所能提供的传输率在3-10Mbits/sec间,其在 NTSC制式下的分辨率可达720X486,MPEG-2也可提供并能够提供广播级的视像和CD级的音质。MPEG-2的音频编码可提供左右中及两个环绕 声道,以及一个加重低音声道,和多达7个伴音声道(这就是DVD可有8种语言配音的原因)。

       由于MPEG-2的出色性能表现,已能适用于高清视频,使得原打算为高清视频设计的MPEG-3,还没出世就被抛弃了。MPEG-3要求传输速率在20Mbits/sev-40Mbits/sec间,但这将使画面有轻度扭曲。

 

2)MPEG-2 TS编码的高清视频

       MPEG-2高清视频采用的编码是MPEG-2 TS格式,其英文全称是(MPEG-2 Transport Stream),这是一种视频流格式,主要用于实时传送节目,目前已经成为数字电视领域中普遍应用的系统层编码标准。

       MPEG-2 TS格式的高清视频文件一般采用mpg、tp、ts为后缀。采用MPEG-2 TS格式压缩后的高清视频文件通常都相当大,以一部90分钟的电影为例,文件大小通常都在8GB以上,有的甚至超过15GB。在播放以tp和ts为后缀的高清视频文件时也比较麻烦,因为文件中分别包含有AC’3音频信息和MPEG-2视频信息,需要使用专门的软件来进行播放。

 

2、MPEG-4简介

       MPEG-4制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。这种编码方式多用于HDTV-Rip上,它把原有的高清视频文件按照比例缩小到一定的尺寸,以减少文件的大小,同时画面效果不差于DVD效果,以此来寻求一个画面效果和文件尺寸的平衡。相对于高清视频来说,MPEG-4格式 还显得有点不够用,因此它也不是主流的高清视频信号来源。这种视频格式的文件扩展名包括.asf、.mov和DivX 、AVI等。

 

二、H.264视频编码

h.264 logo

       H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

       H.264最具价值的部分是更高的数据压缩比,在同等的图像质量,H.264的数据压缩比能比DVD系统中使用的 MPEG-2高2~3倍,比MPEG-4高1.5~2倍。举个例子,原始文件的大小如果为100GB,采用MPEG-2压缩标准压缩后变成4GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为1GB,从100GB到1GB,H.264的压缩比达到惊人的100∶1。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像。

       正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在MPEG-2需要6Mbps的传输速率匹配时,H.264只需要1Mbps~2Mbps的传输速率。

       H.264格式的文件一般采用mkv后缀,mkv是一种新兴的多媒体封装格式,可以将各类视频编码、16条或以上不同格式的音频和语言不同的字幕封装在一个文件内,它具有开放源代码、音视频编码丰富等优势,已经得到众多视频压制组和玩家的支持,正逐渐成为高清视频的主流格式。

 

三、WMV-HD/VC-1视频编码

wmv-hd logo

       WMV-HD是由软件业的巨头微软公司所创立的一种视频压缩格式。其压缩率远高于MPEG-2标准,同样是2小时的HDTV节目,如果使用MPEG-2最多只能压缩至30GB,而使用WMV-HD这样的高压缩率编码器,在画质丝毫不降的前提下都可压缩到15GB以下。虽然WMV-HD是微软的独有标准,在开放性和兼容性上没有其他几种格式好,但由于目前大家都在使用微软的操作系统,因此推出之后仍然迅速普及。

  除了WMV-HD以外,微软WMV第九版(WMV9)编码技术叫做VC-1,2003年正式提出,于2006年正式成为国际标准,是微软开发的视频压缩技术系列中的最新版本。VC-1结合几种编码格式的优点于一身,在压缩比率上介于H.264与MPEG-2之间,画质表现方面与H.264接近,且在编码算法的复杂度上只为H.264的一半,处于一个中间的平衡点位置,对硬件要求较低、高压缩率、高画质、低耗时等特点使得VC-1成为一种比较理想的编码方式,发展前景较为可观。 

       WMV-HD及VC-1编码的视频文件一般采用wmv为后缀,wmv文件通常包括了WMV格式编码的视频和WMA编码的音频。

 

四、RMVB视频编码

rmvb logo

       当前在网络上见的最多的,肯定是RMVB视频,RMVB之所以这么流行,主要是RMVB在图像质量与文件大小之间取得了最好的平衡。一部720P的电影如果采用H.264编码,一般会有4G的大小,但如果改成RMVB格式,1G大小就可以了。目前国内的家庭宽带一般只有2M~4M,假如4M带宽,下载1G文件大概需要1个小时,下载4G文件最少在4个小时以上,因此很多人都会选择下载RMVB文件。虽然RMVB文件的清晰度比不上H.264,但是基本上可以满足大部分人的要求了。

       RMVB之所以可以图像质量与文件大小之间取得最好的平衡,主要是使用了可变比特率的编码。RMVB中的VB指VBR,Variable Bit Rate(可改变之比特率),RMVB打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上,采用浮动比特率编码的方式,将较高的比特率用于复杂的动态画面(如歌舞、飞车、战争等),而在静态画面中则灵活地转为较低的采样率,从而合理地利用了比特率资源,使RMVB最大限度地压缩了影片的大小,最终拥有了近乎完美的接近于H.264品质的视听效果。

       虽然RMVB表现出色,可以达到720P以上的分别率,但在大屏幕的电视上观看,会有比较明显的色块,始终算不上是高清视频。但它最大的优点是文件体积较小,在国内的互联网带宽没有大幅度提升之前,估计还会流行很长的一度时间。

 

五、总结

       总的来说,MPEG2由于压缩比例较小,视频所占空间太大,目前已经基本处于了被淘汰的边缘。目前比较流行的高清编码是H.264与微软的VC-1。但就压缩的比率来看H.264>VC-1>MPEG-2;对于低分辨率的视频文件,MPEG-2的画质表现还是不错的,但基于720P以上的则明显略低于H.264和VC-1的效果;而VC-1与H.264相比,由于无明显编码优势,而且限于Windows平台使用、标准推出较晚,因此给微软VC-1编码的应用前景带来了较大的不确定性,能否跟H.264一较高下,尚需实践检验。另外不得不提的是RMVB视频,由于目前国内家庭宽带的速度不高,很多人都不愿意下载大容量H.264的视频,从而给了RMVB很大的发展空间,目前国内互联网上的视频仍然是RMVB占的比例最高。

 

此文章本站原创,转载请保留出处:http://www.net1980.com/2011/01/07/mpeg-h-264-wmv-hd/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解读SPP / SPPF / SimSPPF / ASPP / RFB / SPPCSPC

SPP与SPPF 一、SPP的应用的背景 在卷积神经网络中我们经常看到固定输入的设计,但是如果我们输入的不能是固定尺寸的该怎么办呢? 通常来说,我们有以下几种方法: (1)对输入进行resize操作,让他们…

go mongodb排序查询_《MongoDB》day two

Mongodb的更新方式有?db.集合名.update() 函数:用于更新已存在的文档。语法格式:db.COLLECTION_NAME.update({查询条件},{更新内容},{更新参数(可选)}) 注:这种方式会覆盖原有的文档。使用更新操作符 使用 save()函数更新文档 Mongodb的updat…

【转】 JMeter学习(二十四)linux启动jmeter,执行./jmeter.sh报错解决方法

1.l-bash: ./jmeter.sh: Permission denied解决办法:jmeter.sh的执行权限改改,是权限不够chmod 777 jmeter.sh2.An error occurred:No X11 DISPLAY variable was set, but this program performed an operation which requires it.步骤一:Lin…

哈希表思路图解和代码实现

原文链接传送门 哈希表(散列)-Google上机题 看一个实际需求,google公司的一个上机题: 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址…),当输入该员工的id时,要求查找到该员工的 所有信息. 要求: 不使用数据库,尽量节省内存,速度越…

android开发学习——Mina框架

Apache Mina Server 是一个网络通信应用框架,对socket进行了封装。 http://www.cnblogs.com/moonandstar08/p/5475766.html http://blog.csdn.net/u010739551/article/details/47361365 http://www.cnblogs.com/yanghuiping/p/4108063.html (mina 自定…

glibc交叉编译_TSN之linuxptp交叉编译

0 开发环境1 linuxptp是什么2 为什么要交叉编译linuxptp3 修改makefile4 修改源码5 交叉编译0 开发环境笔记本:ubuntu18.04.5,内核版本为5.3 开发板:imx8mp-evk内核版本:Linux5.4.24交叉编译工具链:fsl-imx-xwayland-g…

230. Kth Smallest Element in a BST

题目: Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Note: You may assume k is always valid, 1 ≤ k ≤ BSTs total elements. Follow up:What if the BST is modified (insert/delete operations) often …

声音编码

1.脉冲编码调制PCM文件格式简介 将音频数字化,其实就是将声音数字化。最常见的方式是透过脉冲编码调制PCM(Pulse Code Modulation) 。运作原理如下。首先我们考虑声音经过麦克风,转换成一连串电压变化的信号,如图一所示。这张图的横座标为秒&…

Elastic Stack简介

Elastic Stack简介 如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elast…

webpack v3 结合 react-router v4 做 dynamic import — 按需加载(懒加载)

为什么要做dynamic import? dynamic import不知道为什么有很多叫法,什么按需加载,懒加载,Code Splitting,代码分页等。总之,就是在SPA,把JS代码分成N个页面份数的文件,不在用户刚进来…

go kegg_工具篇丨GO和KEGG富集不到通路?快试试这个超赞的功能分析工具吧

GO和KEGG富集分析是我们在筛选出差异表达基因之后,都会去做的套路性分析。然鹅……我相信,总有那么一些“倒霉孩子”会遇到跟我一样的窘境吧,好不容易筛选出来的差异基因,尝试了DAVID(https://david.ncifcrf.gov/)、Metascape(htt…

大龄程序员的未来在何方

来源:http://www.gad.qq.com//article/detail/30358?sessionUserTypeBFT.PARAMS.229862.TASKID&ADUIN114328649&ADSESSION1501026740&ADTAGCLIENT.QQ.5533_.0&ADPUBNO26719 作者:foruok 大家都对大龄技术人员的未来非常关心&#xff0c…

搭建Telnet服务器

搭建Telnet服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 可能大家都知道现在已经很少有人用TELNET服务器, 因为它传输数据是以明文的方式,我们很容易通过抓包软件讲数据进行抓包&a…

table取tr对象 vue_Vue笔记

Vue集成了React和Angular的优点,摒弃了他们的缺点。Vue的官网:https://cn.vuejs.org/v2/api/Vue诞生于2016年,是现在非常流行的MVVM框架。Vue提供了“引包”的使用方法,初学者可以在这之下学习语法。不需要webpack,不需…

Beats入门简介

使用Beat收集nginx日志和指标数据 项目需求 Nginx是一款非常优秀的web服务器,往往nginx服务会作为项目的访问入口,那么,nginx的性能保障就变得非常重要了,如果nginx的运行出现了问题就会对项目有较大的影响,所以&…

PHP-curl

//初始化$curl curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, http://www.baidu.com);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 1);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_R…

MPlayer开发

一、介绍 不论是音频数据还是视频数据,我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。 学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充&#x…

可编程led灯带原理_SCPSD-250-04-27派克真空压力传感器故障和工作原理

SCPSD-250-04-27派克PARKER真空压力传感器故障和工作原理PARKER压力开关现货 PARKER压力传感器特价 派克真空压力传感器 PARKER数字压力开关2020年还剩最后2天了,这一年大家都过得不太容易,尤其是我自己这是30年以来过得最艰难的一年,经…

总结面试时没有回答上的内存对齐问题

前两天面试某公司时,没有回答上的一个问题,总结如下,以供参考。 问:下面这个结构类型的实例变量占用多少内存: struct struct1 { int i; short j; char c; }; 我反问:是啥语言啥机器啥编译环境…

Kibana入门安装与介绍

Kibana入门 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化…