認識高清視頻編碼(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.pswp.cn/news/455069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455069.shtml
英文地址,請注明出處:http://en.pswp.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 索引中的數據進行搜索、查看、交互操作。您可以很方便的利用圖表、表格及地圖對數據進行多元化…