視頻編解碼器如何工作?
 
現(xiàn)在我們對視頻編解碼器的作用有了基本的了解,我們可以看看編解碼器是如何工作的。
 
1、色度子采樣
 
如前所述,視頻由圖像組成,色度子采樣減少了每個(gè)圖像中的信息。為此,它減少了每個(gè)圖像中包含的顏色信息,但人眼如何檢測到這種顏色信息的減少?
 
人眼很擅長檢測亮度的變化,但對于顏色卻不能這樣說。這是因?yàn)榕c視錐細(xì)胞(負(fù)責(zé)區(qū)分顏色的感光細(xì)胞)相比,人眼具有更多的視桿細(xì)胞(負(fù)責(zé)檢測亮度變化的感光細(xì)胞)。在比較壓縮圖像和未壓縮圖像時(shí),視桿和視錐的差異會阻止眼睛檢測顏色變化。
 
AV1、h265 (HEVC) 、VP9這些編碼標(biāo)準(zhǔn)有什么區(qū)別?
 
為了執(zhí)行色度子采樣,視頻壓縮算法將 RGB 中的像素信息轉(zhuǎn)換為亮度和顏色數(shù)據(jù)。之后,該算法會根據(jù)壓縮級別減少圖像中的顏色量。
 
2、去除冗余幀信息
 
視頻由幾幀圖像組成,在大多數(shù)情況下,所有這些幀都包含相同的信息。例如,想象一段視頻,其中有一個(gè)人在固定背景下講話。在這種情況下,視頻中的所有幀都具有相似的構(gòu)圖。因此,不需要所有圖像來渲染視頻。我們所需要的只是一張基本圖片,其中包含從一幀移動到另一幀時(shí)與變化相關(guān)的所有信息和數(shù)據(jù)。
 
因此,為了減小視頻大小,壓縮算法將視頻幀分為 I ??幀和 P 幀(預(yù)測幀)。這里 I 幀是基本事實(shí),用于創(chuàng)建 P 幀。然后使用 I 幀中的信息和該特定幀的更改信息來渲染 P 幀。使用這種方法,視頻被分解成一組 I 幀,交織成 P 幀,進(jìn)一步壓縮視頻。
 
3、運(yùn)動壓縮

現(xiàn)在我們已經(jīng)將視頻分成 I 幀和 P 幀,我們需要看看運(yùn)動壓縮。視頻壓縮算法的一部分,有助于使用 I 幀創(chuàng)建 P 幀。為此,壓縮算法將 I 幀分成稱為宏塊的塊。然后為這些塊提供運(yùn)動矢量,運(yùn)動矢量定義這些塊在從一幀過渡到另一幀時(shí)移動的方向。
 
AV1、h265 (HEVC) 、VP9這些編碼標(biāo)準(zhǔn)有什么區(qū)別?
 
每個(gè)塊的運(yùn)動信息有助于視頻壓縮算法預(yù)測每個(gè)塊在即將到來的幀中的位置。
 
4、刪除高頻圖像數(shù)據(jù)
 
就像顏色數(shù)據(jù)的變化一樣,人眼無法察覺圖像中高頻元素的細(xì)微變化,但什么是高頻元素呢?嗯,你看,屏幕上呈現(xiàn)的圖像包含幾個(gè)像素,這些像素的值根據(jù)顯示的圖像而變化。
 
在圖片的某些區(qū)域,像素值逐漸變化,這些區(qū)域被稱為頻率較低。另一方面,如果像素?cái)?shù)據(jù)發(fā)生快速變化,則該區(qū)域被歸類為具有高頻數(shù)據(jù)。視頻壓縮算法使用離散余弦變換來減少高頻分量。
 
下面是它的工作原理。首先,DCT 算法在每個(gè)宏塊上運(yùn)行,然后檢測像素強(qiáng)度變化非??斓膮^(qū)域。然后它從圖像中刪除這些數(shù)據(jù)點(diǎn)——減小視頻的大小。
 
5、編碼
 
現(xiàn)在視頻中的所有冗余信息都已被刪除,我們可以存儲剩余的數(shù)據(jù)位。為此,視頻壓縮算法使用了一種編碼方案,例如霍夫曼編碼,它將幀中的所有數(shù)據(jù)位與它們在視頻中出現(xiàn)的次數(shù)相關(guān)聯(lián),然后以樹狀方式將它們連接起來。此編碼數(shù)據(jù)存儲在系統(tǒng)中,使其能夠輕松呈現(xiàn)視頻。
 
AV1、h265 (HEVC) 、VP9這些編碼標(biāo)準(zhǔn)有什么區(qū)別?
 
注:不同的視頻編解碼器使用不同的技術(shù)來壓縮視頻,但在最基本的層面上,它們使用上面定義的五種基本方法來減小視頻的大小。
裝機(jī)