馬開春
什么是編碼?
編碼是指將捕獲的視頻和/或渲染的PC圖形轉換為數字格式,便于記錄、移動、備乘、共享,改變或以其他方式來操作視頻內容以進行編輯,傳輸和查看。該過程需要遵循一組數字化視頻的規則,這個規則可以被“解碼器”反轉,用于觀看。解碼器可以是專用硬件也可以是簡單的軟件播放器,編碼過程可以使用市場通用標準或者專有編碼方案。
第一步:視頻捕獲
編碼的第一階段是視頻捕獲,其中包括同時捕獲音頻信號。可以“捕獲”的媒體內容多種多樣,視頻捕獲的最常見信號源包括:相機、視頻制作和交換設備,以及在PC上呈現的圖形。
對于攝像機和視頻制作和交換設備,有不同的端口可以訪問音頻和視頻。這些設備連接到編碼設備的流行端口(I/O)包括:HDMI和SDI。
從PC捕獲渲染的圖形或視頻可以通過多種方式完成。可以使用軟件捕獲PC顯示屏上可見的內容,也可以從流行端口(I/O)(如DisplayPort或HDMI)捕獲PC的圖形輸出,甚至可以通過PIP或基帶相機的視頻拼接CI-Express總線從PC內進行基于硬件的捕獲。與能夠處理多IP或基帶相機視頻拼接的 GPU結合使用時,支持高密度捕獲和/或編碼的產品可用于一些實時錄播,或者360°視頻,虛擬現實(VR)和增強現實(AR)的流媒體應用。
使用軟件編碼時,PC的捕獲硬件有多種形式:包括PCI-Express卡、USB捕獲設備和用于其他PC互連(I/O)的捕獲設備。
下一步:視頻編碼
視頻編碼可以通過硬件或者軟件方式來實現,不管是硬件還是軟件要滿足工作流程的要求,都需要不同的功能,也有不同的價格。捕獲和編碼視頻有多種方式,配備攝像頭的手持移動設備可以創建編碼視頻文件,也可以創建實時視頻流。
轉碼和轉換
轉碼和轉換也屬于其他形式的編碼,指的是拍攝數字視頻并進行格式轉換。比如說從一種格式(例如MPEG-2)獲取視頻內容,并將其轉換為另一種格式如H.264,這就是轉碼。轉換是獲取視頻資產并轉換其分辨率或比特率特征,但保持格式不變。對于某些轉碼操作,必須對視頻進行解碼后重新編碼。而有些類型的轉碼可以保持相同的編碼格式,但是可以改變諸如流媒體傳輸協議之類。
有時,在本地或在云中作為服務運行的軟件可用于轉碼應用程序,轉碼操作的目的和性能要求差別很大,流媒體視頻工作流可以容忍的延遲量會影響到對各種媒體的原始編碼和轉碼的選擇。
壓縮或非壓縮編碼
對原始視頻進行編碼可以通過壓縮和非壓縮方式來實現。例如,在視頻編輯環境中,視頻經常被操作,并且許多工作流程都設計有數字非壓縮視頻。在向互聯網上的用戶提供視頻的應用中,視頻通常是壓縮的,因此可以放在網絡上并在許多不同的設備上觀看。
當視頻直接從內容所有者提供給內容觀看者(如繞過有線和衛星服務提供商)時,被稱為“過頂”內容或簡稱OTT,指互聯網公司越過運營商,發展基于開放互聯網的各種視頻及數據服務業務。幾乎所有以任何格式到達觀眾的內容都是壓縮視頻,包括OTT、藍光、在線流媒體以及電影。
雖然視頻可以在有或沒有壓縮的情況下進行編碼(數字化),但在涉及壓縮時,這通常涉及視頻編解碼器,它是壓縮/解壓縮的簡寫。
當編碼的目的是用于實時流媒體傳輸或點播流媒體記錄媒體時,就會采用視頻編解碼器(如H.264)來壓縮視頻。軟件和硬件解碼器可以進行反轉并允許您查看媒體。
有許多用于在線信息資源可以用來評估流行的編解碼器,從大多數的報告反應的情況來看,H.264仍占據主導地位的市場份額。
實時與非實時編碼
對視頻進行編碼可以實時進行,也可能具有延遲性。例如,電影和節目流媒體服務中的許多在線視頻都使用多通道編碼來利用壓縮技術,為觀眾提供最佳的性能和服務質量。圖像質量和比特率通常是反相關的,優化一個必然以犧牲另一個為代價。 但是,使用多通道技術可以顯著減輕視頻的比特率,同時仍然為觀眾提供卓越的質量和性能。
在其他情況下,實時視頻編碼更適合應用程序如,在直播應用中,在相機視頻到達觀眾的延時容忍度非常低,通常會將視頻捕獲、編碼和打包以便以非常小的延遲進行傳輸。
在線會議和網絡會議通常使用實時視頻編碼,專業制作的實時網絡廣播也是如此。值得注意的是,觀看者在根據自己的時間記錄供以后觀看的“按需”版本的網絡會議和網絡廣播通常采用與實時視頻編碼器處理的原始直播事件相同的格式。這是因為一旦視頻通過壓縮進行原始編碼,就無法再改進質量。
在帶寬受限網絡上的應用上,基于硬件和基于軟件的實時編碼器之間的主要區別在于它們可以實現的延遲,質量和比特率優化。最好的編碼器,無論是基于硬件還是軟件,都能以極低的延遲和極低的比特率產生卓越的視頻品質。
有時編碼器也可以與相應的解碼器緊密耦合。這意味著廠商為編解碼兩端提供了一些額外的優化,例如,調整信號源和目標端點、信號管理和切換的簡易性和自動化連接,整體性能和質量都能得以補充和增強,或者在某些情況下,完全能夠取代傳統的硬件連接AV基礎設施。
硬件與軟件編碼
硬件和軟件編碼之間的區別在于硬件編碼使用專用的編碼處理,而軟件編碼依賴于通用的編碼處理。
當編碼由專用硬件來處理時,硬件自動執行編碼規則。良好的硬件設計可達到更高質量的視頻效果,更低的功耗以及極低的延遲,還可與其他功能結合使用。通常在需要實時編碼的情況下采用硬件編碼。
軟件編碼也需要使用硬件,但會使用更多通用處理方式,如PC或手持設備中的CPU。但在大多數情況下,軟件編碼仍然表現出更高的延遲和更大的功率要求。對高質量的視頻內容來說,使用軟件編碼對延遲和功耗的影響更大。許多現代CPU和GPU都具備一定程度的硬件加速以進行編碼。有些有I/O限制,主要用于轉碼。另外一些采用硬件來對單個流媒體如播放共享視頻游戲進行解碼。
視頻編輯是使用高質量視頻進行軟件編碼的一個很好的例子,內容編輯器經常會保存更改,未壓縮的編碼視頻用于保持視頻質量。在視頻編輯過程結束后,重新編碼(轉碼)視頻要使用壓縮技術進行共享視頻以便查看,或將文件縮小進行存儲。未壓縮視頻通常會存儲起來以供將來編輯選用,但額外的視頻COPY版本通常會采用壓縮格式方便查看。要移動未壓縮的視頻對帶寬影響很大,即使使用新的高帶寬網絡,在壓縮視頻時也始終要保持有效帶寬和可擴展性的最大化。
使用個人電腦的攝像頭或智能手持設備來進行視頻會議(或視頻呼叫)也是軟件編碼的例子,也就是在CPU上運行的軟件中進行的高度壓縮視頻編碼。
對于用戶來說,硬件加速編碼與軟件編碼之間的區別可能并不是那么清晰。硬件加速為不同的工作流程提供多種不同的用途,例如:許多手持設備包含的CPU可以加速高壓縮視頻的編碼,用于視頻呼叫等應用。在這種情況下,硬件加速的“目標”是在沒有加速的情況下保護手持設備的電池壽命,免于在手持設備的CPU上運行軟件。完全通過軟件視頻通話,觀看YouTube上的流媒體視頻或觀看存儲在手機上的視頻,這些行為都會大大消耗電池壽命。
在使用軟件編碼還是使用硬件加速編碼這個問題上,編碼任務的“復雜性”之間存在著一定相關性。保持視頻質量同時顯著壓縮視頻的大小,以便在網絡上進行存儲或傳輸就是典型例子。
這也是為什么視頻標準舉足輕重的原因之一。H.264作為一個長期服務的視頻標準,這意味著它在智能手持設備和個人計算機中采用的是硬件加速方式,這也是為什么H.264為何在制作,共享和使用視頻內容中如此得心應手的原因之一。
為家庭用戶提供電影和節目的流媒體視頻服務有時也使用軟件編碼,以最低比特率實現最高視頻質量,為數百萬并發用戶提供可靠的高質量體驗。但是對于這樣的目標用例,他們使用大量計算機長時間運行以尋求最優的編碼參數。這不是實時完成的,更適合點播流媒體傳輸,而不是實時流媒體傳輸。
對于具有更多窄播應用(例如視頻編輯基礎架構)的編碼,使用未壓縮或輕度壓縮的編碼進行一些簡單的處理還是有意義的。
企業、政府、教育機構等這些組織,經常會制作大量的視頻內容,需要平衡許多變量因素。首先視頻質量非常重要,在網絡上保持穩定性和性能的同時保持視頻質量,這一點是至關重要的。保持低編碼延遲,高視頻質量和低帶寬對于直播應用程序來說也是相當重要。用于點播流媒體的“錄制”通常在與用于直播的編碼同步進行,因此,視頻編輯的高帶寬方法在這里并不實用。電影流媒體服務的高度優化的多通道編碼方法基本都在預算范圍之外,而且是非實時的,并不適合在這些機構應用。
流媒體和錄播的編碼
對視頻進行編碼只是流媒體或錄播的第一步。那么編碼后的視頻如何從編碼器傳輸給用戶或者錄播設備呢?編碼器需要在某處發送視頻,同時也需要告訴接收端它正在發送什么內容。
流媒體協議是不同的視頻流媒體傳輸規則,用以處理不同的目標和優先級如視頻延遲、網絡帶寬、廣泛的設備兼容性、視頻幀速率和性能等。
流媒體協議讓被編碼的視頻隨后以實時或稍后的方式進行傳輸,協議不會影響視頻本身,但會影響用戶與視頻的交互方式,視頻流傳輸的可靠性,或者可以訪問它的那些設備或軟件播放器。有些協議是專有的,只能由特定的廠商硬件使用,也大大降低了該內容的互操作性和潛在覆蓋范圍。
AV行業中簡單的AV-over-IP產品通常會生成這些專有的流媒體格式,從而增加廠商產品的鎖定性,降低互操作性,并大大降低內容資源在企業中的使用靈活性。但專有的格式會對自己產品的互操作性負責,有時,客戶愿意接受這種產品鎖定性,以增強他們對大量分布式端點無縫協同工作的信心,而且,在產品并兼容、出現錯誤或者其他一些問題的情況下,廠商的支持隨時都能到位。
針對不同的應用需要不同的流媒體協議。例如,在本地網絡上共享實時事件時,延遲將是其中的關鍵因素,觀眾不一定需要回放控制,一些企業也可以確保網絡的可靠性,因此不需要采用復雜的糾錯方式。因此,跨云或公共互聯網使用的協議可能與用于AV over IP上的協議不同。
當將流媒體擴散到多個平臺以在互聯網上進行更廣泛的傳播時,HLS、MPEG-DASH和Web RTC都是用于廣泛傳輸內容的協議。在將這些協議用于流媒體傳輸之前,用于把內容上載到云服務的流媒體協議可能是諸如RTMP這類。如果網絡不可靠但仍需要保持視頻質量,或者需要保護視頻,一些新出現的協議(如SRT)也完全可以使用。
安全可靠傳輸(SRT)就是一種新協議,是作為RTMP的替代候選協議而開發的,許多硬件和軟件公司已經都能支持這種新傳輸協議。
流媒體協議比我們這里提到的要多得多,每種協議都有其自身不同的優勢。
在存儲視頻而不是作為實時流媒體進行觀看時,需要一種存儲方法。不出所料,我們也有廣泛的可選方式,用于存儲未壓縮、輕度壓縮以及高度壓縮的視頻。雖然我們可以對存儲的視頻執行操作以使其在以后具有不同的選項,但是對存儲的視頻最終如何使用,也就是存儲視頻的最終目的這個問題思考得越多,那么,我們就可以提前決定如何將這些視頻進行數字化。就像上面的流媒體討論一樣,每個工作流程都有不同的工具,在這種多通道編碼討論的情況下,許多存儲選項可以直接在捕獲點處理和/或使用媒體服務器和其他工具進行轉碼。(未完待續)