<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          視頻編碼完全指南

          共 6236字,需瀏覽 13分鐘

           ·

          2021-10-11 08:57

          點(diǎn)擊上方“LiveVideoStack”關(guān)注我們

          翻譯 | Alex

          技術(shù)審校 | 袁榮喜

          本文來自O(shè)TTVerse,作者為Krishna Rao Vijayanagar。

          視頻編碼是一門在減少視頻數(shù)據(jù)體積大小或碼率的同時(shí)而不對(duì)其質(zhì)量產(chǎn)生不良影響(在人類的視覺感知下)的科學(xué)。對(duì)視頻進(jìn)行編碼從而減少其數(shù)據(jù)體積同時(shí)保持視頻質(zhì)量是一項(xiàng)綜合了藝術(shù)和科學(xué)的技術(shù)。在本篇文章中,我們將介紹這個(gè)復(fù)雜且神奇的領(lǐng)域?qū)σ曨l流和視頻傳輸產(chǎn)生的巨大影響。


          視頻編碼

          ?Easy?Tech


          #003#


          本文我們將會(huì)學(xué)習(xí):

          • 什么是視頻編碼

          • 什么是視頻轉(zhuǎn)碼以及視頻轉(zhuǎn)碼與視頻編碼的區(qū)別

          • 視頻質(zhì)量VS碼率

          • 視頻編碼中的關(guān)鍵概念:編解碼器、碼率、分辨率、時(shí)間、GOP和幀類型

          • 視頻編碼是藝術(shù)還是科學(xué)?


          ? ?什么是視頻編碼?


          視頻編碼是一門在減少視頻數(shù)據(jù)體積或碼率的同時(shí)而不對(duì)其質(zhì)量產(chǎn)生不良影響(在人類的視覺感知下)的科學(xué)。

          減小文件體積被稱為壓縮,視頻壓縮通過一系列定義明確且記錄在案的數(shù)學(xué)工具和算法(被稱為視頻編解碼器)來完成。當(dāng)對(duì)某個(gè)視頻數(shù)據(jù)進(jìn)行壓縮,一般來說,壓縮后的格式(被稱為比特流)只能被可以解碼這種格式的相應(yīng)的軟件所理解。比如,一個(gè)使用H.264/AVC視頻編碼器編碼的視頻是無(wú)法被HEVC解碼器解碼的。

          當(dāng)一個(gè)視頻被壓縮,那么就可以從主觀和客觀上來判斷視頻質(zhì)量:

          客觀方法包括PSNR、SSIM、VMAF。這些軟件使用數(shù)學(xué)方法來判斷視頻質(zhì)量。

          主觀方法如MOS(Mean Opinion Score, 平均主觀意見分),這種方法包含強(qiáng)烈的個(gè)人主觀色彩,通過一群人為視頻打分(0~5分)來確定視頻質(zhì)量。這種方法也被稱為“黃金眼觀測(cè)(Golden-eye viewing)”。

          ? ?什么是視頻轉(zhuǎn)碼以及視頻轉(zhuǎn)碼與視頻編碼的區(qū)別


          你可能經(jīng)常聽到人們交替使用視頻編碼和視頻轉(zhuǎn)碼這兩個(gè)術(shù)語(yǔ)。這種做法有失偏頗,因?yàn)閮烧咧g還存在細(xì)微的差別。

          視頻編碼通常指將原始視頻數(shù)據(jù)壓縮成編碼數(shù)據(jù)的整個(gè)過程。而視頻轉(zhuǎn)碼是指重新編碼壓縮文件,但它多了一個(gè)編碼之前對(duì)傳入視頻解碼的步驟。

          但不要搞混了,這兩個(gè)過程都需要在最后階段編碼視頻。

          通常轉(zhuǎn)碼器有很多功能,比如:

          • 解碼不同的容器格式(mp4,ts等)。
          • 使用不同的視頻編解碼器解碼比特流,如H.264/AVC、HEVC、AV1和VP9等。
          • 改變視頻的分辨率,從而可以輸出不同的分辨率(對(duì)ABR流制作至關(guān)重要)。

          除了轉(zhuǎn)碼,還有兩個(gè)術(shù)語(yǔ)不常在行業(yè)中使用:

          • Transrate是指改變視頻碼率。
          • Transmux是指改變?nèi)萜鞲袷?,如將mp4更改為avi或者ts。

          在介紹了視頻編碼和轉(zhuǎn)碼之后,現(xiàn)在讓我們學(xué)習(xí)下一部分中最重要的率失真折衷(Rate-distortion Trade-off)。

          ? ?視頻質(zhì)量VS視頻編碼/轉(zhuǎn)碼中的碼率


          想要理解碼率和視頻質(zhì)量之間的平衡關(guān)系,就要先理解視頻壓縮是如何操作的。你不必深入探究質(zhì)量與碼率的折衷,但你需要明白幾件事:

          視頻壓縮算法要做兩件重要的事(如在H.264/AVC、HEVC、VP9和AV1等編解碼器中):

          • 使用DCT(Discrete Cosine Transform,離散余弦變換)將“像素域”轉(zhuǎn)換為“頻域”。如果你還不了解什么是DCT,可以看下這篇文章(如何給5歲孩子解釋DCT?)。

          • 通過一種被稱為量化的技術(shù)舍棄一些頻域數(shù)據(jù)(被稱為系數(shù)),同時(shí)確保人眼無(wú)法感知這種數(shù)據(jù)丟失。

          本質(zhì)上,當(dāng)你壓縮視頻時(shí),你需要丟掉一些信息,但同時(shí)要保證視頻質(zhì)量沒有被破壞。

          • 如果你使用過高的壓縮率來壓縮視頻數(shù)據(jù),那么將丟掉大量信息,壓縮的效果顯而易見——糟糕的視頻質(zhì)量。

          • 如果你使用較低的壓縮率來壓縮視頻,那么壓縮后文件就會(huì)很大,但會(huì)得到很棒的視頻質(zhì)量。
          • 上面所述被稱為視頻壓縮中的率失真折衷。碼率越小,視頻質(zhì)量越差(假設(shè)分辨率、比特位深、色度二次采樣、編碼時(shí)間和硬件等都是固定的。

          下面兩張CrowdRun的屏幕截圖說明了這一點(diǎn),它們分別使用 H.264/AVC 以兩種不同碼率編碼,其他參數(shù)在編碼過程中保持不變。


          1080P,低碼率


          1080P,高碼率


          低碼率流的視頻質(zhì)量要比高碼率流的視頻質(zhì)量差,這正說明了我們之前對(duì)于率失真折衷的論述。

          然而,不要誤以為較低的碼率就意味著較差的視頻質(zhì)量,要依據(jù)視頻內(nèi)容的性質(zhì)而定,降低碼率但并不影響視頻質(zhì)量是非常有可能的。

          在編碼和轉(zhuǎn)碼之前,讓我們來學(xué)習(xí)一些影響視頻編碼的重要因素。

          ? ?影響視頻編碼的重要因素


          有很多重要因素影響視頻編碼和轉(zhuǎn)碼,并且大部分因素之間也相互影響。比如,在轉(zhuǎn)碼時(shí),你不能隨便改變視頻的分辨率而不去調(diào)整碼率,對(duì)吧?

          在本節(jié)中,讓我們來看看一些能夠產(chǎn)生壓縮充分且高質(zhì)量的比特流的最重要的因素。

          內(nèi)容性質(zhì)

          并不是所有創(chuàng)造出來的視頻都一樣!每個(gè)視頻都獨(dú)一無(wú)二,都有自己的風(fēng)格,這就使得視頻壓縮成為了一門藝術(shù)。充滿各種動(dòng)作的職業(yè)橄欖球比賽視頻背后的各種設(shè)置和調(diào)整肯定不同于壓縮《辛普森的一家》那樣的卡通視頻,對(duì)吧?


          非常容易壓縮!


          沒那么容易壓縮!


          影響視頻分類的因素有很多,比如:

          • 視頻里有充滿各種動(dòng)作的體育運(yùn)動(dòng)嗎?
          • 有大量的草地或者水(二者都很難壓縮)嗎?
          • 充滿各種動(dòng)作的電影(戰(zhàn)爭(zhēng)或者高速追車)
          • 露出頭部和肩部的內(nèi)容,比如新聞或者脫口秀
          • 卡通、日本動(dòng)畫?
          • 內(nèi)容中是否有提示文字(Ticker text)向一側(cè)移動(dòng),而電影向著另一側(cè)移動(dòng)?

          電影中存在許多不同的場(chǎng)景,這些場(chǎng)景使得每部影片都與眾不同,了解了這些,工程師就能更好地壓縮視頻。如果你知道視頻中含有諸如卡通這樣的平場(chǎng)區(qū)域(Flat region),如上所示,你就可以給它分配一個(gè)更低的碼率,而不必像處理體育運(yùn)動(dòng)視頻那樣用高碼率。

          視頻編解碼器

          我是這樣定義視頻編解碼器的:它們是一組用來壓縮視頻以達(dá)到預(yù)定率失真折衷的工具和算法。視頻編解碼器通常由工程師、學(xué)術(shù)界和工業(yè)界(軟件和硬件公司)的科學(xué)家組成的委員會(huì)來協(xié)商創(chuàng)建。

          現(xiàn)在市面上流行的視頻編解碼器包括H.264/AVC、HEVC、AV1、VP9、EVC、VVC和LCEVC。

          每一個(gè)編碼器在設(shè)計(jì)時(shí)都有一個(gè)特定的目標(biāo)。它們有可能比上一代具有更高的性能,或者免版稅,或者推出一種新的壓縮方法(像LCEVE那樣)。

          因?yàn)槊恳环N編碼器都擁有不同的設(shè)計(jì)和優(yōu)化方法,它們的性能也必然有所不同。比如,AV1在壓縮效率上就比H.264/AVC高出很多,但卻比AVC要消耗更多時(shí)間和資源。但這些都沒有關(guān)系,重要的是是否能滿足你自己的需求和資源。

          碼率控制模式(CBR、VBR和有上限的VBR)

          每個(gè)編碼器都擁有碼率控制算法,該算法用于確定在一段時(shí)間(或者GOP)內(nèi)如何消耗碼率預(yù)算。編解碼器中的碼率控制技術(shù)極大地影響了壓縮效率、視頻質(zhì)量和速度。

          下面是三種常用的碼率控制算法。

          1.CBR(Constant Bitrate,固定碼率):在犧牲視頻質(zhì)量的同時(shí),平均碼率保持不變。
          2.VBR(Variable Bitrate,可變碼率):在碼率出現(xiàn)波動(dòng)的同時(shí),視頻質(zhì)量保持不變。
          3.Capped VBR(Capped Variable Bitrate,有上限的VBR):視頻質(zhì)量保持不變的同時(shí),允許碼率在一定限制或者上限之內(nèi)波動(dòng)。

          根據(jù)你為視頻編碼/轉(zhuǎn)碼選擇的模式,編碼器將在視頻質(zhì)量和碼率(或者文件尺寸)之間折衷優(yōu)化。

          碼率

          視頻碼率是指每秒傳送信息的比特?cái)?shù)。碼率單位通常為:

          • kbps(千比特每秒)
          • mbps(兆比特每秒)

          當(dāng)你開始編碼時(shí),你通常需要設(shè)置編碼器的碼率,根據(jù)編碼模式(CBR、VBR、2-pass VBR和Capped VBR),編碼器將使用設(shè)置的碼率值作為壓縮視頻的指南。

          根據(jù)經(jīng)驗(yàn),碼率越大,視頻質(zhì)量越好。但是也有例外,如果調(diào)整了視頻分辨率和內(nèi)容(動(dòng)作快慢,頭肩是否出鏡),增加碼率也有可能不會(huì)提高視頻質(zhì)量。

          分辨率

          視頻分辨率是指視頻圖像的寬度乘以高度,其中衡量分辨率的單位是像素。視頻分辨率通常有以下兩種表現(xiàn)形式:

          1.使用視頻圖像高度描述分辨率:1080p或720p
          2.或者使用圖像寬乘高描述分辨率:1920×1080或者1280×720

          視頻分辨率在編碼過程中能夠發(fā)揮重要作用的原因如下:

          • 高分辨率的視頻(如4K)需要更多內(nèi)存空間和時(shí)間來壓縮。

          • 低分辨率的視頻(如360p)需要較少內(nèi)存空間,并且能夠很快被壓縮。


          所以,當(dāng)選擇編碼碼率時(shí),視頻分辨率是一個(gè)重要的決策因素。

          編碼時(shí)間

          壓縮、編碼以及轉(zhuǎn)碼視頻時(shí)所需的時(shí)間也是一個(gè)關(guān)鍵因素。不同環(huán)境下有不同的解決方案,對(duì)吧?

          • 如果你正在視頻直播,那么你肯定不能每分鐘只編碼1幀,那么做將是大災(zāi)難!你需要以接近24fps、50fps或者60fps的刷新率來實(shí)時(shí)壓縮視頻。在這樣的情況下,編碼器通常會(huì)為了提升速度而犧牲視頻質(zhì)量。


          • 然而,當(dāng)你在點(diǎn)播視頻時(shí),你可以花幾個(gè)小時(shí)的時(shí)間來壓縮視頻。在這樣的情況下,編碼器被調(diào)整為緩慢壓縮,并使用復(fù)雜的工具來獲得更高的壓縮效率及更好的視頻質(zhì)量。


          比如,在FFmpeg這種編碼器中,你已經(jīng)預(yù)定義了Slow、Slower,、VerySlow、Fast、Faster和Fastest的設(shè)置,而這些設(shè)置表明了編碼器中速度、質(zhì)量和壓縮效率之間的權(quán)衡。

          所以應(yīng)該依據(jù)視頻應(yīng)用場(chǎng)景(直播還是點(diǎn)播)來選擇你的編碼設(shè)置(和速度)。

          GOP(一組圖像,Group of Pictures)和GOP長(zhǎng)度

          一組圖像(GOP)是指一批按照事先定義好的順序被編碼、解碼和播放的視頻幀。GOP長(zhǎng)度對(duì)視頻壓縮效率、視頻流恢復(fù)能力和視頻質(zhì)量影響深遠(yuǎn)。

          簡(jiǎn)而言之,GOP尺寸越大,視頻壓縮效率越高,但視頻質(zhì)量和視頻流恢復(fù)能力也越差,反之亦然。

          Closed GOP和Open GOP

          Closed GOP和Open GOP常見于視頻流中,并影響壓縮效率、視頻容錯(cuò)能力以及ABR流的切換能力。

          • 顧名思義,Closed GOP對(duì)GOP外部的幀是封閉的。一個(gè)屬于Closed GOP的幀只能參考這個(gè)GOP之內(nèi)的幀。
          • Open GOP與Closed GOP相反,Open GOP內(nèi)部的幀可以參考其他GOP中的幀。

          幀的類型?(I幀、P幀和B幀)


          I幀、P幀和B幀是視頻壓縮領(lǐng)域中的基礎(chǔ)概念,用于提升視頻壓縮效率、視頻質(zhì)量和視頻恢復(fù)能力。

          • I幀(關(guān)鍵幀或幀內(nèi)幀)僅由幀內(nèi)預(yù)測(cè)的宏塊組成。
          • P幀代表預(yù)測(cè)幀,除了空域預(yù)測(cè)以外,它還可以通過時(shí)域預(yù)測(cè)來進(jìn)行壓縮。P幀通過使用已經(jīng)編碼的幀進(jìn)行運(yùn)動(dòng)估計(jì)。
          • B幀可以參考在其前后出現(xiàn)的幀,B幀中的B代表雙向(Bi-Directional)。



          升頻、降采樣的工具和算法

          本篇文章中,我們不會(huì)深入講解升頻和降頻算法。但是需要注意的是這些工具會(huì)對(duì)視頻質(zhì)量產(chǎn)生很大的影響。假如輸入的視頻分辨率為540p,你想輸出720p的視頻,那你就需要一個(gè)可以升頻的工具,對(duì)吧?通過降低視頻采樣率,該工具又深深影響了視頻質(zhì)量——如果它出色地完成了任務(wù),那么輸出視頻也會(huì)很清晰。否則,你就陷入了大麻煩。

          通常來說,升采樣和降采樣工具使用經(jīng)過充分研究的圖像處理過濾器(如 Lanczos 或 Bicubic 過濾器)來創(chuàng)建具有新分辨率的視頻。在選擇購(gòu)買或使用編碼器/轉(zhuǎn)碼器之前,最好先對(duì)這些工具進(jìn)行詳細(xì)的測(cè)試。

          現(xiàn)在,我們對(duì)于影響視頻編碼的重要因素的學(xué)習(xí)已經(jīng)將近尾聲,雖然沒有那么詳盡,但也為音視頻技術(shù)的學(xué)習(xí)提供了一個(gè)指南。下面我們將通過視頻編碼一覽表來總結(jié)我們所學(xué)過的知識(shí)。

          視頻編碼一覽表


          在編碼視頻之前,有幾點(diǎn)要銘記于心。這雖然不是一個(gè)詳盡無(wú)遺的表單,但卻能幫助你縮小視頻壓縮中使用到的正確參數(shù)范圍。

          1.理解你的觀眾:你的觀眾平時(shí)常用的帶寬是多少?你是為擁有高速互聯(lián)網(wǎng)的城市居民提供視頻服務(wù),還是為低網(wǎng)速的鄉(xiāng)村人口提供服務(wù)?他們是使用固定連接的網(wǎng)線,還是使用移動(dòng)互聯(lián)網(wǎng)?

          2.你的終端用戶使用什么設(shè)備?他們平時(shí)會(huì)看大屏幕的智能電視嗎?還是使用智能手機(jī)看視頻?

          3.你所提供的視頻服務(wù)的內(nèi)容性質(zhì)是什么?是充滿各種動(dòng)作的電影、體育賽事,還是沒有那么多動(dòng)作的新聞,亦或是很容易壓縮的卡通片?

          4.你擁有多少時(shí)間壓縮視頻?你所提供的服務(wù)是直播還是點(diǎn)播?

          5.你使用哪種視頻編解碼器?你的目標(biāo)觀眾的設(shè)備能否解碼H.264/AVC、 HEVC、AV1或者VP9?

          以上這些只是部分(在編碼、轉(zhuǎn)碼視頻前)影響因素,我相信還有更多,但我希望這個(gè)一覽表對(duì)你來說是個(gè)好的開始。

          現(xiàn)在,讓我們來看下視頻編碼和轉(zhuǎn)碼中用到的工具和服務(wù)。

          ? 視頻編碼和轉(zhuǎn)碼工具


          在這一部分,我們將了解視頻壓縮、編碼和轉(zhuǎn)碼中的常用工具和服務(wù)。其中一些是付費(fèi)的,一些是開源的。每種工具或服務(wù)都擁有不同的功能和特性。

          我們先來看開源的工具。

          FFmpeg (開源)

          FFmpeg是目前為止最流行的視頻編解碼工具。它支持視頻解碼、大部分容器格式的多路分離和多路復(fù)用、改變視頻分辨率、能夠在最常用的視頻編解碼器(如H.264/AVC、HEVC、AV1和VP9等)中編碼,這些功能使FFmpeg成為不可或缺的視頻壓縮工具。



          Handbrake(開源)

          作為開源視頻轉(zhuǎn)碼器,Handbrake被認(rèn)為是基于GUI的最佳視頻編碼和轉(zhuǎn)碼工具。操作簡(jiǎn)單、可基于多平臺(tái)、并涵蓋廣泛的預(yù)設(shè)和設(shè)備。這意味著你無(wú)需花錢購(gòu)買轉(zhuǎn)換或轉(zhuǎn)碼工具,更無(wú)需花費(fèi)數(shù)小時(shí)制作命令行參數(shù),就能夠前所未有地輕松、快速壓縮視頻。

          視頻編碼的付費(fèi)工具和服務(wù)

          基于云的視頻壓縮付費(fèi)服務(wù)有好幾百個(gè),這些服務(wù)通常支持多種類型的容器、編解碼器、ingest/egress格式,如RTMP、HLS、DASH等。

          下面簡(jiǎn)略地列出了一些比較常用的服務(wù):

          • Mux.com

          • Encoding.com

          • Wowza.com

          • Harmonic 360

          • AWS Elemental

          • QEncode

          • Coconut.co

          • Bitmovin.com


          ? ?所以,視頻編碼究竟是藝術(shù)還是科學(xué)?


          學(xué)習(xí)了這么多視頻編碼和壓縮的知識(shí),這里有一個(gè)有趣的哲學(xué)問題:視頻編碼/轉(zhuǎn)碼究竟是藝術(shù),還是科學(xué)?你認(rèn)為呢?

          老實(shí)講,如果你問我,我只能回答,各有千秋。

          說視頻編碼是科學(xué),是因?yàn)樗枰_的公式和算法,而這些公式和算法都是在世界各地的實(shí)驗(yàn)室中被發(fā)明出來的,并需要接受不斷的測(cè)試和改進(jìn)。

          另一方面,說視頻編碼是藝術(shù),是因?yàn)閷?duì)視頻編碼質(zhì)量的感知是主觀的,不同的人對(duì)視頻質(zhì)量好壞的判斷不同。所以,當(dāng)你在設(shè)置某個(gè)編碼器或者編碼器的壓縮工具時(shí),你不能只是按照發(fā)給你的表格中的質(zhì)量措施和碼率值來設(shè)置編碼器。

          一位態(tài)度認(rèn)真的工程師在進(jìn)行視頻編碼設(shè)計(jì)時(shí),一定會(huì)嘗試在不同的參數(shù)設(shè)置下觀察編碼效果,并最后決定哪種設(shè)置才能最大程度上滿足他的觀眾。你看,取悅他人是一門藝術(shù)??

          你是怎么想的?編碼是藝術(shù),還是科學(xué)?在評(píng)論區(qū)告訴我你的想法!

          ? ?結(jié)束語(yǔ)


          我希望本篇關(guān)于視頻編碼和解碼的文章能夠?qū)δ阌兴鶐椭?,并讓你領(lǐng)略視頻壓縮中藝術(shù)和科學(xué)的魅力。

          我們下次再見,祝直播愉快!



          本文已獲得作者Krishna Rao Vijayanagar授權(quán)翻譯和發(fā)布,特此感謝。
          原文鏈接:https://ottverse.com/what-is-video-encoding-transcoding-codecs-compression/




          掃描圖中二維碼或點(diǎn)擊閱讀原文
          了解大會(huì)更多信息

          喜歡我們的內(nèi)容就點(diǎn)個(gè)“在看”吧!

          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高清无码视频免费在线观看 | 六月婷婷AV | 国精产品一区二区三区糖心269 | 天天干天天射天天操 | 欧美久久久久久久久久久久 |