0c12c9d5fae997be79d037be57f792b9 懸盪已久的次世代影像編碼格式 H.265,終於在2013年1月25日收到國際電信聯盟(ITU)的認可,成為新一代標準格式,它除了肩負縮小影片所需資料流量,以舒緩繁重的網路負擔外,同時也是 4K UHD 解析度影片編碼的不二人選。

影片流量拖垮網路

影片壓縮最主要的終極目標,就是要降低影片檔案的大小,如此一來可以減少儲存時所佔用的空間,同時也能夠降低傳輸時消耗的網路頻寬。或許讀者會覺得現在硬碟便宜的跟什麼一樣,網路速度也非常快,但若以目前主流的HD影片來推估,並以下列條件進行試算: 

  1. 解析度=1920 x 1080
  2. 顏色取樣深度=24bit(R、G、B各色8bit)
  3. 每秒幀數=60幀

那麼每秒需要的流量可能是多少?
1920 x 1080 x 24bit x 60=2985984000bit
2985984000bit/8bit/1024/1024=355.957MB

以2小時的電影來說,就需要佔用2.44TB的儲存空間,大約需要使用50片雙層藍光光碟才能裝得完(而且以上估算還不包括音訊部分),更罔談以網路即時串流,影片壓縮的重要性可見一斑。

以目前主流的藍光光碟為例,採用大部分H.264編碼格式的影片流量落於20至25Mbps之間,壓縮率大約為113.9至142.38倍之間,節省的空間相當可觀。即便H.264的壓縮能力足夠滿足目前使用需求,但是遇到解析度更高的4K UHD格式,還是顯得捉襟見肘,需要尋求壓縮效率更好的編碼器,才能將影片壓縮到適合傳輸與儲存的流量範圍。

▲由此圖可以看出各種不同解析度的尺寸差異,4K UHD的解析度為HD的4倍,與480P相比,差距更是高達24倍。

▲規格比較表

工作時程超過8年

H.265的起源為2004年時,國際電信聯盟旗下的視訊編碼專家小組(Video Coding Experts Group)開始研讀可以取代H.264的技術,並且將專案名稱暫定為H.265與H.NGVC (Next-generation Video Coding,次世代視訊編碼),其目標為與H.264 High Profile比較時,在相同畫質表現下,可以為影片節省25至50%的資料流量。

2007年國際標準化組織(ISO)旗下的動態畫像專家小組(Moving Picture Experts Group)也開始了相似的工作,它們也希望能提出壓縮效率更高的編碼方式。2010年4月時,這2個小組一起組成了視訊編碼聯合工作小組(JCT-VC,Joint Collaborative Team on Video Coding),共同提出了27項提案,並針對這些提案進行研討,於2010年10月發佈第1份規格草案。

在累積許多工作成果後,2012年2月推出了以第6份規格草案為基礎的委員會版草案,接下來以第8份規格草案為基礎的國際規格草案,於2012年6月推出。最後原訂於2013年2月發佈最終版國際規格草案,則是提前於1月25日確認,確定了H.265的基本功能。

▲影像技術年表(點圖看大圖)

節省一半流量

H.265的研發目的從命名就可以看出端倪,H.265又名HEVC(High Efficiency Video Coding,高效率視訊編碼),其最主要的用途就是要進一步降低影片所需的流量,以降低儲存與傳輸的成本。以上述27項提案中最重要3項為例,H.265要求在最佳的編碼範本(profile)中,能在維持相同PSNR的前提下,節省以H.264壓縮的1080P影片36%左右的資料量,並且能在影像品質差不多時,將節省的幅度進一步提升到50%。

而第3項重要提案,則是針對壓縮、解壓縮所需的運算量做出限制,以最佳編碼範本進行H.265編碼所需的時間,只能比H.264編碼多出10%,而解碼時間則是可以多出60%。有趣的是,限制H.265的運算量需求,勢必會降低它的編碼效率,恰巧與節約流量的初衷相互矛盾,但是會做出這種決定,其目的不外乎是預想到日後解析度與每秒幀數更高的影片,會讓運算量大幅提高,先做出折衷的限制,才能在處理器或是行動裝置效能足夠負荷的前提下,盡可能提高壓縮效率。

PSNR為畫質打分數

影片的畫質分析可以分為主觀的人肉測試,與相對客觀的量化測試,人肉測試的方式不外乎用肉眼觀察影片的畫面,分析不同樣本中熟優熟劣,這種方式雖然直接,但卻容易受到測試者主觀喜惡的影響,而且也不夠精確。量化測試是採用數學方式分析影片處理前後的差異,雖然可以得到精確的分數,但是該分數不一定能完全反應視覺上的感受。

PSNR(Peak Signal-to-Noise Ratio,尖峰訊噪比)為量化測試的一種,其定義為「10 x log10(MAX^2 / MSE)」,其中MAX為每個像素中,能夠表現出的最大可能性數量,若以8bit取樣深度為例,MAX將等於2^8-1 = 255。MSE為方均誤差,其數學上的定義為比較處理前後的影片,針對每一個像素計算其量化數據上差異,再將這個差異平方後加總計算,最後再將總和除以像素總數。簡單地說,尖峰訊噪比越大,就表示訊號越強、雜訊越小,也代表畫面與原始檔案比較相近。反之若是數值很小的話,就表示影片受雜訊干擾的情況嚴重,畫質表現比較不好。

 

以H.264為基礎,H.265效率更高

自從H.261編碼格式引入混合式(hybrid)編碼方式開始,後續的編碼格式大多會延用這個方式,將影像進行畫面間、畫面內預測(inter prediction、intra prediction),刪去影片中不需要的重複資料。H.265也不例外,它也是基於這個概念進行設計,不過它擁有諸多新的編碼工具,可以讓增進壓縮效率。

僅支援循序掃瞄

為了要節省影片資料流量,有些媒體會以交錯掃描(interlaced scan)進行傳輸,交錯掃描的原理為將影片依照掃瞄線(即水平方向像素)將畫面拆分為2個群組,奇場群組包含第1、3、5……等奇數條掃瞄線,偶場群組則包含偶數條掃瞄線,奇場、偶場群組會在螢幕上交替播出,在快速輪換的結果下,人眼就會因視覺暫留而看到完整畫面。

雖然交錯掃描可以降低影片資料流量,但是對畫質仍會造成一定影響,尤其是高速移動的物體,容易在邊緣產生抖動或毛邊等干擾。循序掃描(progressive scan)則是每次都傳送完整畫面,雖然會佔用較多流量,但可以提供較佳畫質。

由於目前的顯示器皆以循序掃描模式運作,因此H.265設計時並不支援交錯掃描方式進行編碼,但若為了節省流量或其他因素,編碼器可以透過參考資料語法(metadata syntax),將完整畫面在編碼前先拆分為奇場及偶場群組,編碼器會將2個不同的群組視為不同影片來源,分別進行編碼工作,以此變通方式達成儲存交錯掃描影片的需求。

▲交錯掃描會將畫面分為機奇場與偶場群組,並在播放時交替播出,如此就可以減少資料流量。

捨巨區塊,採編碼樹

從H.265的發展延革來看,它勢必會站在H.264的基礎上發展,但是兩者間最大的不同,存在於最基礎的編碼單元。以往H.264會以16 x 16像素為單位(或是16 x 8、8 x 8、8 x 4、4 x 4等配置),將畫面切割為數個大小相同的巨區塊(macroblock),並以這些巨區塊做為編碼時的最小元素。H.265則是將切割畫面的工作從使用者手動設定,轉交給編碼器來決定,讓編碼器可視情況以16 x 16、32 x 32、64 x 64等尺寸,將畫面切割為數個編碼樹單元(Coding Tree Unit),一般來說區塊尺寸越大,壓縮效率就會越好。

每個編碼樹單元內包含1個亮度與2個色度編碼樹區塊(Coding Tree Block),以及記錄額外資訊的語法元素(syntax element)。一般來說影片大多是以YUV 4:2:0色彩採樣進行壓縮,因此以16 x 16的編碼樹單元為例,其中會包含1個16 x 16的亮度編碼樹區塊,以及2個8 x 8的色度編碼樹區塊。

▲編碼樹皆是以4分法,將影像切割成子區塊,編碼樹區塊可切為編碼單元,再切下去即可得到預測單元。

延伸閱讀:

免費下載Windows 8 專用影音編碼包,支援多種影音格式不求人

認識VP8 影像編碼:整合HTML5 更小更漂亮、挑戰H.264 地位

視訊編碼格式VP8 對決H.264,高畫質的表現誰比較好?

動態補償如何讓影片壓縮變小?B-frame 能讓影片變多瘦?

高畫質奧運平台MOD 解析,編碼、頻寬、錄影問題如何解?

(後面還有更多H.265編碼格式介紹)

使用 Facebook 留言

國寶大師 李文恩
2.  國寶大師 李文恩 (發表於 2013年4月11日 15:10)
※ 引述《SOP》的留言:
> 8K 的解析度應該是 7680 x 4320 吧 ╮(╯_╰)╭

感謝提醒,正確為7680 x 4320,誤植為7680 x 7320
已修正
nvsJ5rL490
3.  nvsJ5rL490 (發表於 2013年4月12日 05:52)
外行人問一下...
我現在用mp4編碼的影片大小如果是1000MB
那我用H.265編碼 同解析度,同位元率情況下
檔案大小會減半變500MB 而且畫質還會變更好是嗎?
藍澤葵
4.  藍澤葵 (發表於 2013年4月13日 20:22)
※ 引述《regmax》的留言:
> 外行人問一下...
> 我現在用mp4編碼的影片大小如果是1000MB
> 那我用H.265編碼 同解析度,同位元率情況下
> 檔案大小會減半變500MB 而且畫質還會變更好是嗎?
不是的mp4只是一個副檔名(容器) 至於裡面裝的是怎麼編碼的影片是另一件事(只要支援副檔名mp4) 所以不能這樣推論

上述的資料在理論上理想化推斷的話意思是相同片源(影片來源 原始檔 通常大到一個可怕的地步)以"h264"這種方式編碼的影片改用"h265"來編碼的話可以達到相同品質 體積減半 或更佳的效果
不過一切都要看詳細測試與使用的參數 片源品質等 才能有更精確的結論
nvsJ5rL490
5.  nvsJ5rL490 (發表於 2013年4月13日 21:37)
※ 引述《藍澤葵》的留言:
> 上述的資料在理論上理想化推斷的話意思是相同片源(影片來源 原始檔 通常大到一個可怕的地步)以"h264"這種方式編碼的影片改用"h265"來編碼的話可以達到相同品質 體積減半 或更佳的效果
> 不過一切都要看詳細測試與使用的參數 片源品質等 才能有更精確的結論
了解 謝謝
國寶大師 李文恩
6.  國寶大師 李文恩 (發表於 2013年4月14日 16:48)
※ 引述《regmax》的留言:
> ※ 引述《藍澤葵》的留言:
> > 上述的資料在理論上理想化推斷的話意思是相同片源(影片來源 原始檔 通常大到一個可怕的地步)以"h264"這種方式編碼的影片改用"h265"來編碼的話可以達到相同品質 體積減半 或更佳的效果
> > 不過一切都要看詳細測試與使用的參數 片源品質等 才能有更精確的結論
> 了解 謝謝

謝謝藍澤葵大大的回覆
基本上是要用相同的影片來源,分別壓製為H.264、H.265才會有這種差異

如果將H.264檔案再次壓縮成H.265的話,影響品質不可能會變更好,但是容量可能可以變更小
液態氮
7.  液態氮 (發表於 2013年4月18日 09:09)
印象中,
轉換編碼再怎樣轉,
最多只能跟片源差不多品質,
要超過片源變成更好的品質...
不知道有沒有這樣的技術啊~"~
可能利用程式去補的話,
反而會破壞品質吧orz。
朱朱
9.  朱朱 (發表於 2015年5月17日 00:38)
對了,我這篇要拿來做報告,請在5/19前回我,謝謝大大(≧▽≦)
寫得非常詳細呢!
朱朱
10.  朱朱 (發表於 2015年5月17日 00:50)
還有一處,我也不太了解:
【H.265的範本可分為Level、Tire、Profile等3個項目。】
【Tire的用意在限制影片最大流量,在Level 3.1以下只具有Main Tire可以選擇】
【H.265具有Main、Main 10、Main Still Picture等3種Profile】

所以level是大項目,profile > Level 1~13 > Main、Main 10...
main tire是其中一種profile(編碼範本)
而main tire的tire又可以省略不寫

若沒錯的話,希望能把文改得更清楚一點!(≧▽≦)

發表回應

謹慎發言,尊重彼此。按此展開留言規則