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