Per-Title(按主題)編碼是指為了節省碼率、存儲空間以及ABR傳輸帶寬為每部電影(基于其獨特的空間和時間屬性以及復雜度)調整ABR碼率階梯(bitrate ladder)。換言之,Per-Title編碼的目的就是根據電影特點(慢動作、體育、動畫、卡通內容等)為每部電影生成一組不同的編碼或者壓縮參數。 接下來,我們將了解Per-Title編碼所涉及的編碼過程以及它為流媒體提供商帶來的優勢。
什么是Per-Title編碼?從哪里開始?
最早提到Per-Title編碼的地方是Netflix的博客,隨后IEEE發表了名為“Complexity-based consistent-quality encoding in the cloud(《云上基于復雜度的穩定質量編碼》”的論文。該論文的摘要中有一句話很有趣:
為了生產最佳質量的視頻流,系統需要使編碼適應每條內容(以一種自動、可擴展的方式)。在本篇論文中,我們描述了兩個算法優化,用于基于云的分布式編碼管道,它們分別是:(1)針對碼率-分辨率選擇的Per-Title復雜度分析;(2)針對穩定質量編碼的Per-chunk碼率控制。相對于簡單的“一刀切”的編碼系統,這些改進帶來了很多優勢,包括更高效的帶寬使用和更穩定的視頻質量。
上文這句“為了生產最佳質量的視頻流,系統需要使編碼適應每條內容”很好地總結了Per-Title編碼。
編碼器需要“理解”每一個視頻內容,并調整壓縮設置和參數與之適應,這樣就有可能達到最佳視頻質量。
傳統的ABR和壓縮過程發生了什么?
在使用ABR技術的傳統視頻傳輸方法中,一般是創建一個碼率階梯(或者一組profile),并將其應用于內容庫中的所有電影。關于ABR技術的更多介紹,請閱讀這篇文章:理解ABR及其工作原理。
比如,碼率階梯有一個6mbps 1080p的profile,并應用到了所有的分類——無論是動漫、體育還是脫口秀。
然而,這種方法存在一個問題:每部電影的特點和復雜度并不相同。
所有電影看上去都不一樣: 有些電影擁有快速動作場景(體育比賽、動作片),有些在動作上較慢(《肖申克的救贖》)。有些動畫片比較簡單(《辛普森一家》),有些卻擁有高度細節(《玩具總動員》)。所有電影都有它自己的“基因”和特點,所以每部制作出來的電影都與眾不同。
那么,為什么都要以相同方式壓縮電影,使用相同編碼器設置并使用相同碼率階梯進行ABR視頻傳輸呢?
讓我們來看看下文中來自《辛普森一家》、足球比賽和Park Joy測試序列的三張截圖,它們看起來都不一樣,是吧?
容易壓縮!
真的很難壓縮!
因為視頻中出現了水、草和樹葉,也很難壓縮!
現在,上述這些例子依賴于你對于視頻質量優劣的主觀判斷。讓我們看下Netflix技術博客上的數字實驗。下方的RD圖描述了不同序列在不同目標碼率下的碼率與視頻質量 (PSNR)。
看看圖中的變化有多大!在5000 kbps,一些序列擁有高達45 dB甚至更高的PSNR分值,而其他序列只有36 dB。這清楚地表明:沒有兩個視頻是相同的,應該根據它們各自的特點來進行處理。
用更專業的術語來說就是,這些視頻的時空復雜度及其特征之間存在差異,所以利用這一點來有效壓縮視頻會是一個好主意。
?
因此,Per-Title編碼就是從一個視頻變化到(或適應)另一個視頻的編碼。
使用Per-Title編碼,哪些變量是可以改變的?
使用Per-Title編碼時,很多編碼和傳輸參數都會發生變化,比如:
碼率階梯中的分辨率選擇:某些title可能會生成720p的質量內容(看上去也很棒),對于這類視頻,你也許不必將它切換成更高質量內容的1080p。
每個分辨率所選擇的碼率:這是Per-Title編碼中最重要的部分。如果你必須生成一組視頻分辨率(1080p、720p等),那么你可以為其中每個分辨率改變碼率。也就是說,你會發現自己可能不是在6mbps時生成1080p的視頻,而是在3mbps生成1080p,并達到相同的視頻質量!
碼率階梯中的profile數量:這是Per-Title編碼的又一大優勢。通過變換碼率-分辨率組合,也許能夠減少你需要在碼率階梯中產生的profile數量。
在使用Per-Title編碼時,其參數的范圍更大。在更精細的層面,你可以研究編碼器設置并對它們進行調整:
過濾器的強度
GOP長度
啟用和禁用二分之一像素或者四分之一像素運動估計
運動估計的搜索范圍
GOP結構(P幀與B幀的比率)
以及更多取決于如何設置視頻編解碼器。這里的首要重點應該是了解你的視頻復雜度,視頻編解碼器的能力,以及如何結合你所有的數據和視頻智能分析來有效壓縮視頻。
如何實現Per-Title編碼?
Per-Title編碼最重要的特點就是它能夠“理解”一部電影的復雜度、其中的場景和變化等。方法就是:通過收集電影信息和統計數據,并使用這些數據進行壓縮。
這就使我們需要了解多遍編碼(multi-pass encoding)的概念,其中第一遍(或者第N 遍)被用來收集電影相關信息。在最后的第M遍,使用這些信息來編碼視頻。
哪些信息對理解電影復雜度有所幫助?讓我們來看看:
全局速度或運動矢量:它將告訴我們場景移動的速度,可以被用來區分脫口秀(其中沒有人移動)和美國職業橄欖球比賽(充滿快速攝像機的移動)。
空間復雜度:電影中的大部分畫面是像《辛普森一家》中的純色塊?還是充滿了年代電影中那種復雜的圖案?
時間復雜度:想要理解電影內容如何快速地從一幀切換到另一幀,這又與上文中的全局運動向量和速度有關。
這些都是非常重要的視頻特點,它們決定了如何在確定的比特預算前提下有效壓縮視頻。簡單來說就是,如果你了解你的視頻屬性,你就可以調整編碼器設置從而達到最佳視頻質量(比如被要求壓縮視頻到x mbps) 所以,在你收集了這些信息以后,你就可以在視頻編解碼器上執行另一個pass來將視頻壓縮到正確碼率(由你的凸包算法決定)。
Per-Title編碼的優勢
執行Per-Title編碼擁有許多優勢,比如:
節省存儲空間:通過使用Per-Title編碼改變碼率和分辨率,你可以高效壓縮視頻,且節省很多存儲空間。
節省傳輸成本:因為每個被編碼的title都使用了一個最適合它的碼率階梯,所以你馬上就會看到CDN傳輸成本的節省。除此之外,終端用戶也將下載較小的文件,以此減少緩沖的發生和首屏延遲。
節省編碼時間:再者,由于編碼階梯會為每部電影而單獨調整,你可以很容易地看到編碼時間的節省。比如,如果我們不使用1080p編碼《辛普森一家》的片段,而是使用720p并獲得了相同視覺質量,那么分辨率的下降會提升編碼器的速度。這主要是因為分辨率的下降導致運動估計和補償算法的工作減少了。
提升質量:通過調整每部電影或者每個主題的編碼器、分辨率、碼率、幀率以及其他設置,你可以充分利用編碼器,并獲取最佳視頻質量。這將會帶來很棒的用戶體驗! 因此,通過切換到Per-Title編碼方案,你可以節省大量存儲、傳輸和編碼時間上的成本。
審核編輯:劉清
-
編碼
+關注
關注
6文章
944瀏覽量
54840 -
過濾器
+關注
關注
1文章
429瀏覽量
19616 -
ABR
+關注
關注
1文章
11瀏覽量
9699
原文標題:什么是Per-Title編碼?
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論