0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

有關(guān)AV1的編碼器優(yōu)化技術(shù)

LiveVideoStack ? 來源:LiveVideoStack ? 作者:LiveVideoStack ? 2021-02-23 17:14 ? 次閱讀

AV1視頻編解碼器是一種由開放媒體聯(lián)盟AOM開發(fā)的royalty-free的壓縮技術(shù)。libaom庫是AV1的參考軟件,應(yīng)用各種編碼器優(yōu)化技術(shù)來實現(xiàn)更好的編碼效率。本次分享,我們邀請到了來自Google 的李博晗,一起來討論 GOP優(yōu)化、時域濾波器、libaom庫的其他改進以及正在進行的一些工作。

大家好!我是來自Google網(wǎng)絡(luò)媒體團隊的李博晗。今天,我將討論有關(guān)AV1的編碼器優(yōu)化技術(shù)。 1 概 述

5755a1e8-7223-11eb-8b86-12bb97331649.png

AV1視頻編解碼器是一種由開放媒體聯(lián)盟AOM開發(fā)的royalty-free的壓縮技術(shù)。它于2018年發(fā)布,與其前身(VP9)相比,AV1提高了約30%的壓縮效率。libaom庫是AV1的參考軟件,它也是由大量AOM的成員開發(fā)的,且它是開源的。libaom庫使用了各種編碼器優(yōu)化技術(shù)以便達到更好的編碼效率。今天,我們將討論其中的部分技術(shù)。 首先我們將討論GOP優(yōu)化;接著,我們會討論時域濾波器;其后,我們還將提到libaom庫的其他改進和一些正在進行的工作。 2 GDP優(yōu)化

57a4050e-7223-11eb-8b86-12bb97331649.png

首先是GOP優(yōu)化,GOP代表圖片組(group of picture)。我們要編碼的視頻序列有很多幀,編碼器會將這些幀分組為GOP。然后,編碼器將順序?qū)γ總€GOP進行編碼?;旧螱OP是用于決定諸如分層編碼結(jié)構(gòu)和碼率分配等的基本單元。舉一個例子,這是一個包含九幀的GOP。
GOP內(nèi)具有層次結(jié)構(gòu),基礎(chǔ)層一般包括第一幀和最后一幀??梢詮倪@兩個幀來預(yù)測下一層的幀。而再下一層的幀可以由這個三個幀來預(yù)測,以此類推。現(xiàn)在,我們想要確定每個GOP的長度。它的長度非常重要,因為從直覺上來說,我們希望每個GOP中的幀都包含具有相似特征,或者這些幀在GOP內(nèi)部存在更高的相關(guān)性。
想要知道GOP的長度,就要確定最后一幀在哪里。通常,最后一幀位于基礎(chǔ)層,這意味著它將被用于預(yù)測此GOP中存在的所有其他幀。因此,為了提供更好的預(yù)測,我們想為最后一幀分配更高的質(zhì)量。
但是,如果我們錯誤地分配了GOP,例如,這里的最后一幀,如果它位于非常糟糕的位置,與其他幀之間相關(guān)性較低(比如GOP停止在場景更改的中間),那么即使我們此幀的重建質(zhì)量非常高,也不會幫助到其他幀的預(yù)測。

2.1 Utilizing first-pass stats

5801a984-7223-11eb-8b86-12bb97331649.png

從直覺出發(fā),我們希望可以確定GOP的長度,使得最后一幀可以更好的預(yù)測其他幀。我們可以使用一些自適應(yīng)方法來確定每個GOP應(yīng)該多長以及最后一幀應(yīng)該在哪里。在這里我們使用第一次編碼(first-pass)數(shù)據(jù)。liibom支持兩次(two-pass)編碼,它先將所有幀編碼處理一次,然后收集數(shù)據(jù),再重新對所有幀進行編碼。第一部分很快,而第二部分才是真正的編碼——它使用所有從第一部分收集到的各種幀級別的統(tǒng)計信息。

在這里有三個第一次編碼數(shù)據(jù)的示例,分別是幀內(nèi)編碼錯誤,一階編碼錯誤和二階編碼錯誤。幀內(nèi)編碼錯誤意味著在從其他幀預(yù)測的情況下對該幀進行幀內(nèi)預(yù)測而得到的平均誤差。一階編碼錯誤和我們前面提到的幀內(nèi)編碼錯誤意義相似,只是我們不僅可以進行幀內(nèi)編碼,還可以進行幀間預(yù)測,不過必須通過前一幀。這樣,該幀的最大平均預(yù)測誤差,就是一階編碼錯誤,二階編碼錯誤也非常相似。我們?nèi)匀豢梢允褂脦瑑?nèi)編碼或進行幀間預(yù)測,但是只能使用相隔兩幀的那一幀,這樣就得到了二階編碼錯誤。

擁有這些很多幀級別的特征和數(shù)據(jù),我們要使用它們來確定GOP的長度。我們想從這些統(tǒng)計信息中,獲悉或者至少估計一下幀之間的相關(guān)性,以及其他一些我們關(guān)注的特征,并依此來分析第一遍的統(tǒng)計數(shù)據(jù)。

2.2 The hidden Markov model

5855325c-7223-11eb-8b86-12bb97331649.png

這里,我們使用隱馬爾可夫模型(HMM)。該模型假設(shè)兩件事,首先,它假定基礎(chǔ)對象的亮度遵循馬爾可夫鏈。在此示例中,我們可以看這個球,此球沿著這樣的軌跡移動。沿著該運動軌跡,我們用xi表示在時間i的亮度。這個模型是一個回歸模型,但與自動回歸略微有所不同,因為ai會變化。對于xi來說,這是一個馬爾可夫鏈,因為你可以看到 x 在時間 i 的亮度,僅取決于 x 在時間 i-1 的亮度。在此條件下,它與以前所有的亮度都沒有關(guān)系,這就是馬爾可夫模型。

馬爾可夫模型已被廣泛用于對運動對象在運動軌跡上的建模。這里的ε是創(chuàng)新項(也就是新息),創(chuàng)新項代表xi無法從xi-1中預(yù)測的部分。例如,當(dāng)光逐漸變化,或者物體在其表面上有一些細微的變化時,你將無法得到精確為 1 的相關(guān)性,而可能會得到0.95、0.98之類的值,以及這樣一個無法預(yù)測的創(chuàng)新項。這基本就是我們使用的馬爾可夫模型。

應(yīng)用這里的馬爾可夫模型,我們進一步假設(shè)當(dāng)觀察物體的亮度時,例如如下所示,捕獲每一幀視頻時將會捕獲到噪聲,那些噪聲并不依賴于創(chuàng)新項,實際上也與xi無關(guān)。它們只是捕獲時的加性噪聲。在這里用另一個隨機變量ni對表示這些噪聲。我們假設(shè)它是IID(獨立同分布)的白噪聲。這樣我們便得到觀察值yi??梢钥吹剑驗樵肼暤拇嬖?,在對事物進行編碼時我們根本無法直接得知xi,而只能訪問觀測值 yi。我們在這里得出的yi以及它背后的模型,這就是一個隱馬爾可夫模型,也就是指實際的馬爾科夫模型被這種噪聲隱藏了。

以上是一個隱馬爾科夫模型的非常簡單的示例,這就是我們對模型的假設(shè)。要注意有兩點非常重要,第一是一個重要參數(shù)ai。ai基本控制著幀之間的相關(guān)性,如果假設(shè)xi的方差不變,則ai就是xi和xi-1 之間的相關(guān)系數(shù)。從我們的出發(fā)點來看,我們希望能夠估測幀之間的相關(guān)性,ai能夠幫助我們借用此模型來估測。同時,我們也想了解噪聲有多大,從實際情況來看,噪聲的方差也很重要。

2.3 Optimal linear prediction error

58e34114-7223-11eb-8b86-12bb97331649.png

我們能觀測到在任意的時間點i和j的觀測值yi和yj,并希望能夠估測ai和噪聲。為了能做到這一點,我們首先假設(shè)我們使用最優(yōu)線性預(yù)測器,也就是用一個系數(shù)w乘以yj來預(yù)測yi。如果我們考慮最優(yōu)線性預(yù)測的誤差,且使用先前的模型進行計算的話你最終會得到這個等式。此處顯示了最佳線性預(yù)測誤差e^i,j。這個等式是由幾個部分組成的。首先,你需要yi和yj的方差,以及從 j 到 i的ak,還需要該幀的噪聲的方差。有了這個方程式?;剡^頭來,我們將討論如何使用它來預(yù)測ai。

59345e28-7223-11eb-8b86-12bb97331649.png

讓我們來看看,首先,知道在這個方程式中,實際上很多東西可以直接從第一遍統(tǒng)計數(shù)據(jù)中估算出來。
例如yi的方差,也就是觀察到的像素方差,可以用幀內(nèi)編碼錯誤用以近似估計。其背后的原因是,當(dāng)你進行幀內(nèi)預(yù)測時,可以使用其相鄰像素預(yù)測該塊。然后從該塊中移除該預(yù)測,這與減去估算出的區(qū)塊平均值非常相似。這樣的話,則幀內(nèi)編碼錯誤基本上就可以看作像素的方差。這并非完全準確,但非常接近。
其后,當(dāng)j等于i-1時,我們是在從前一幀來預(yù)測當(dāng)前幀。而這恰恰是我們所說的一階編碼錯誤的含義。同理,如果j等于i-2,最佳線性預(yù)測誤差就基本可以看作是二階編碼錯誤。因此,我們使用這三個第一遍統(tǒng)計信息來估測隨機變量的這三個特征。我們將獲得y的方差,e^i,i-1的方差和e^i,i-2的方差。

2.4 Estimate correlation from first-pass stats

59b9eba6-7223-11eb-8b86-12bb97331649.png

如果假設(shè)所有這些都成立,同時再假設(shè)該鄰域中的噪聲方差不變,即nj的方差在該鄰域中保持不變,那么我們可以針對幀i,j寫出以下幾個等式。一個是從 i-1 預(yù)測 i,一個是從i -2預(yù)測i-1,還以一個是從i -2預(yù)測 i。也就是說我們關(guān)心這三個幀,以及其對應(yīng)的三個預(yù)測?,F(xiàn)在,如果你寫下這三個方程式,你將會發(fā)現(xiàn),實際上我們只有三個未知變量,即ai-1,ai-2,以及該鄰域中的噪聲方差。因而,基于這三個方程,我們可以很輕松地計算出這三個未知變量。算出之后,也就可以得到ai,aj,可以得到噪聲方差。到目前為止,基于此隱馬爾可夫模型,我們成功地僅通過第一遍的數(shù)據(jù),就能夠通過幀鄰域來估測幀與幀之間的相關(guān)性以及噪聲水平。

2.5 Frame regions and GOP length decision

59fe2730-7223-11eb-8b86-12bb97331649.png

如果現(xiàn)在我們想使用分析出的相關(guān)性和噪聲水平,來決定GOP長度。首先要做的是確定幀區(qū)域的類型,幀可能處于穩(wěn)定區(qū)域或不穩(wěn)定區(qū)域中。
我們將不穩(wěn)定區(qū)域分為三種:一種是高變化區(qū)域,它其中的幀會變化得較快;一種是場景切換,它會突然改變幀內(nèi)容;還有一種是漸變區(qū)域,這經(jīng)常出現(xiàn)在電影以及其他內(nèi)容類型的視頻中,一個場景淡出的同時,另一個場景淡入。有了這四種類型的幀區(qū)域,首先我們要將每一幀分組到這些區(qū)域中。該分組使用前面分析第一遍統(tǒng)計數(shù)據(jù)得到的ai,噪聲水平和其他數(shù)據(jù)。

5a6965a4-7223-11eb-8b86-12bb97331649.png

有了這些幀區(qū)域后,我們希望最終決定的GOP不包括場景切換,也就是不在一組圖片中改變場景。同時還希望該GOP的最后一幀找到處于穩(wěn)定區(qū)域,這背后的原因是,如果它在穩(wěn)定區(qū)域中,則意味著它可以很好地預(yù)測其相鄰幀。這是我們的首選,如果無法在穩(wěn)定的區(qū)域中找到結(jié)束幀,我們將嘗試在高變化區(qū)域內(nèi)找到相對穩(wěn)定的幀。
同時,我們也要確保我們不會在漸變區(qū)域的中間放置最后一幀。因為通過使用雙向多參考,實際上可以很好地對漸變區(qū)域進行預(yù)測。如果我們將其切開,則意味著預(yù)測將變得比較難。因而,我們一般希望將漸變區(qū)域放入一個單獨的GOP中,而不想將它從中切開??梢钥吹?,一旦我們得到所有幀區(qū)域,這些邏輯是很簡單的。

5aea291e-7223-11eb-8b86-12bb97331649.png

此處以流程圖形式展示以上的邏輯。在這里我不想再談得過于深入,但基本邏輯就如我們在這里所描述的這樣。

5b73e866-7223-11eb-8b86-12bb97331649.png

上圖是GOP長度優(yōu)化的一個例子。這里展示了幀的編碼錯誤。這是我們標準測試集中的mobisode視頻序列。這些編碼錯誤顯示了它與前一幀相比發(fā)生了多大變化。
你可以看到直到第40幀左右為止它的場景都相當(dāng)穩(wěn)定。而在40幀這里實際上是一個場景切換,這是一個漸變場景——實際上視頻中的人正在慢慢打開燈,在它(場景)之后這兒又有一個漸變場景。之后一段時間內(nèi)情況很穩(wěn)定,然后,就在這里還有另一個漸變場景。之后它會稍微穩(wěn)定一些,有點高變化,不過并不劇烈。這就是視頻序列的情況。

現(xiàn)在看這里的灰色圓圈,這些圓圈是最初由編解碼器在沒有此自適應(yīng)GOP技術(shù)的情況下完成的GOP長度決策??梢钥吹綄嶋H上切割發(fā)生在了該區(qū)域的中間。而且就在這個漸變區(qū)域的中間,這并不是我們真正想要的。通過自適應(yīng)方法得到的結(jié)果用黑色三角形表示,這是我們實際切割GOP的地方。
我們將最大間隙長度設(shè)置為20——而之前是固定為16。然后,如你所見,它選擇了最佳的切割位置,這是一個GOP,在這里附近切割。不過它沒有在漸變區(qū)域內(nèi)切割,以及下在一個漸變區(qū)域之前就結(jié)束了當(dāng)前GOP。對于這個序列,如果我們可以像這樣準確地切割GOP,我們會得到大約5%的增益,對于僅是更改GOP而言,這是相當(dāng)大的。

如你所見,此方法可能相當(dāng)高效,但這具體取決于視頻的內(nèi)容。當(dāng)然,如果視頻非常穩(wěn)定,則無需在此處進行太多調(diào)整,也不會有太多增益。但是如果對于這樣具有某些特定特征的序列,你將獲得很大增益。標準測試集中我們能看到平均0.4%(已經(jīng)比較大的)左右的增益,但是在用戶生成集中,我們看到的增益更大,約0.8%。因為對于用戶生成集而言,大多數(shù)視頻比標準測試集中的視頻更加不穩(wěn)定,其中有的是通過一直晃動的手機拍攝的,有的是包含像場景剪輯、光線變化之類快速變化的內(nèi)容。對于它們,自適應(yīng)GOP方法可以提供更多幫助。以上就是有關(guān)libaom編碼器中的自適應(yīng)GOP優(yōu)化的內(nèi)容。接下來我們要談?wù)剷r域濾波。

3 時域濾波

3.1 Frame decomposition

5bbd898a-7223-11eb-8b86-12bb97331649.png

首先我們需要提到AV1中的幀分解。AV1可將一幀分解為一個未顯示幀和一個覆蓋顯示幀。如此處所示,這仍然是我們的GOP。很多時候,GOP的最后一幀,或我們稱為ALTREF的幀,會被分解為兩幀,一個ALTREF和一個覆蓋幀。這里的想法是,我們將對ALTREF進行編碼。
然后,解碼器將解碼它,但不會顯示,只是將其保存在幀緩沖區(qū)中,并用以對其他幀進行預(yù)測。之所以要這樣做,是因為我們希望能夠?qū)υ搸M行某些處理,以便其可以為其他幀更好地提供預(yù)測。當(dāng)我們完成了其他幀之后又回到了這一幀時,我們不直接顯示該幀,而是再添加一個疊加幀,以修正我們對該幀的處理,這便是覆蓋幀的作用。
綜上所述,我們有一個通常沒有顯示的替代參考幀ALTREF,根據(jù)ALTREF預(yù)測我們得到一個覆蓋幀,能夠修正前面的處理,并且顯示出來,這就是每個幀的分解。正如我提到的為了提供更好的預(yù)測,我們想對ALTREF進行處理,使其可以很好地預(yù)測其他幀,在libaom編碼器中可行的一種方法是使用時域濾波器。 3.2 Temporal filtering of a frame

5c228ee8-7223-11eb-8b86-12bb97331649.png

那么,什么是時域濾波器呢?讓我們來看看,例如,對于某個像素,假設(shè)我要研究該像素的運動軌跡,正如我們前面提到的,運動軌跡存在觀察噪聲,而我們希望能夠濾除該噪聲。要做到這一點,我們對該軌跡上的像素進行平均,假設(shè)像素實際亮度沒有變化,但是存在噪聲,那么通過這種方式進行均衡,噪聲將有所減少,但像素原始值不會改變。這就是使用時域濾波器來降低噪聲的基本想法。
時間過濾包含了幾個步驟,第一步是通過運動估計及運動搜索來找到運動軌跡。如果我們可以為這些對象的像素塊在每一幀中尋找合適的位置,我們就可以對各個塊進行平均,以降低噪聲水平,從而達到預(yù)期的效果。然而,實際上,這并非易事,因為我們需要對所有對象求加權(quán)平均值,也就是說需要確定運動規(guī)矩上每個像素的權(quán)重。我們接下來會討論這一點。

5c67dfe8-7223-11eb-8b86-12bb97331649.png

出于實際考慮,首先,我們并沒有真正的運動軌跡,我們能做到的最好就是嘗試進行運動估計。而且由于我們只是在處理幀,無法真正執(zhí)行非常好的運動搜索,而大多數(shù)時候只是使用一個快速的算法,因此我們獲得的運動軌跡的運動矢量并不總是準確的,甚至有時候很不準確。我們還需要注意的是,過濾后的ALTREF幀并不一定是其他幀中唯一可用的參考幀,它們也可以參考其他可用的參考幀。因此,僅將所有這些像素放在一起求平均可能不是一個好主意,因為某些幀不會用這個參考幀來預(yù)測。因而,我們需要慎重考慮設(shè)定權(quán)重。 為了確定權(quán)重,我們提出以下直觀原因,首先,如果我們找到一些塊的運動軌跡,我們在這個軌跡中找到對應(yīng)的像素塊,然后將該塊與幀過濾源進行比較。如果這兩個區(qū)塊彼此之間差異太大,這意味著我們當(dāng)前的運動矢量非常糟糕,或者我們觀測到來非常高的噪聲影響,兩者皆有可能。
如果發(fā)生這種情況,我們可能不想為該塊分配太高的權(quán)重,因為很有可能該塊并不會不使用ALTREF作為參考或運動矢量不好,我們也不想冒險。
因此我們使用一種稱為非局部均值的方法來計算塊差異,并確定我們要分配給該塊的權(quán)重,這是一方面。另一個直觀感受是我們想要降低噪聲,因此當(dāng)噪聲水平較高時我們就傾向于使用更強的濾波。我們需要能夠估計噪聲水平,因而,我們在幀內(nèi)有一個噪聲水平估計算法,一旦噪聲很高時,我們便使用更強的過濾器。這個噪聲水平估計及其影響也被并入我們的非本地均值方法之中。

5ccf04fc-7223-11eb-8b86-12bb97331649.png

總體過濾方案如下:首先,我們要確定要使用的相鄰幀的數(shù)量,這很重要,如果說有一個場景變換,或者說幀之間相關(guān)性不是很高,我們將使用更少的幀數(shù)。反之,當(dāng)運動比較穩(wěn)定時,我們可以使用更多的幀,因為假設(shè)運動矢量良好,使用更多的幀可以將噪聲控制在較低水平。
幀數(shù)一旦確定,對于想過濾的幀中的每個塊,我們先在相鄰幀中找到匹配的塊,然后使用非局部均值方法來確定這些幀中每個塊的相關(guān)權(quán)重,接著應(yīng)用過濾器計算得到所有區(qū)塊的加權(quán)平均值?;痉椒ň褪沁@樣,還有很多細節(jié)的內(nèi)容我們這里不再作介紹。
從(這里引用的)文中你可以看到,在標準測試集上,這個方法得到了相當(dāng)大的增益,約2.4%。因此,在給出更好的預(yù)測方面,這種時間過濾器實際上非常有效。以上是時間過濾器相關(guān)內(nèi)容。 以上我們舉了兩個例子,GOP長度決策和時域濾波器。我們在libaom庫中還有很多其他的改進。 4 其他改進

5d0d5716-7223-11eb-8b86-12bb97331649.png

首先是運動搜索模式,我們改為使用八邊形運動搜索模式。之前我們使用的是棱形或四角搜索,但是現(xiàn)在我們我們使用八邊形,它基本上是八點搜索模式,可以更好地適應(yīng)復(fù)雜的角度。而且我們調(diào)整了采樣半徑,之前是2的次方,越遠,它越粗糙。但是現(xiàn)在我們對其作了一些微調(diào),并借此獲得了一些增益。我們還要注意的另一件事是從最近的報告來看,似乎,復(fù)合運動搜索并沒有帶來先前預(yù)期的那般增益。
復(fù)合模式是我們有多個參考塊,然后將參考結(jié)合在一起以創(chuàng)建對該區(qū)塊的預(yù)測。大多數(shù)的時間它是雙向或單向的,我們注意到它并沒有像預(yù)期的那樣帶來可觀的增益,但是復(fù)合運動搜索模式實際上非常強大,它擁有各種模式來適應(yīng)不同的條件。
所以,我們的確寄希望它會有更好的增益,這就是為什么我們最近正在重新設(shè)計復(fù)合模式的算法。這其中有很多速度方面的功能,現(xiàn)在我們正在嘗試重新設(shè)計它們。其中一些改變已經(jīng)在代碼中了,并獲得不錯的增益效果。 另一個非常重要的事是碼率控制。目前,碼率控制是不易做到的一塊。AV1中的原始碼率控制方案比較復(fù)雜,我們試圖簡化,重新設(shè)計控制邏輯,而且也希望借此獲得更好的控制性能,我們不想犧牲任何東西。目前,有嚴格的碼率控制條件時,也就是當(dāng)碼率控制非常準確時,與以前相比,壓縮性能比以前變得更好。我們?nèi)栽谂κ沟迷谀撤N程度上更寬松的控制情況下它能運行得更好。

5d547538-7223-11eb-8b86-12bb97331649.png

這里展示了編碼性能的提高。這是使用VBR模式(可變比特率模式),速度0(這是最高性能),150幀,今年(2020年)9月與去年9月的對比,視頻序列可在此處網(wǎng)址上找到。我們測試了很多視頻序列,并計算了平均增益。對于480p的中分辨率視頻,PSNR的增益約為4-5%,SSIM的增益約為9%。
這是相當(dāng)高的。對于720和1080p這類較高分辨率的視頻內(nèi)容,我們的PSNR增益約為6.5%,而SSIM的增益約為11%至12%??紤]到AV1本身的性能要比vp9約好30%,這些都是相當(dāng)不錯的增益,且僅基于編碼器優(yōu)化。我們認為libaom庫的性能還有較大的提升空間,我們也將繼續(xù)為之努力。

5db1a564-7223-11eb-8b86-12bb97331649.png

我們還要提到VMAF,這是一項以主觀質(zhì)量為目標的客觀質(zhì)量指標。我們也有一個特定的調(diào)優(yōu)模式,它有命令行選項。如果我們使用VMAF進行調(diào)優(yōu),我們大約能獲得30%到40%的增益,這是巨大的,但這是要通過先對視頻進行銳化然后運行所有編碼來達到的。
如果沒有經(jīng)過預(yù)處理,我們將獲得大約5%的增益,在沒有經(jīng)過銳化的情況下,這也非??捎^了。最近VMAF NEG模式也被提出,在這個模式下我們不過多地專注于預(yù)處理導(dǎo)致的影響。不過即使如此,我們的調(diào)優(yōu)模式也可以使它獲得大約8%到10%的增益。因此,如果你關(guān)心VMAF指標,你可以嘗試一下libaom庫的這些功能。

5df191b0-7223-11eb-8b86-12bb97331649.png

還有一點值得注意的,是我們的文檔。libaom是一個非常大的代碼庫,為了可以促進開發(fā)者加入貢獻,也使其作為參考編碼器更容易理解,我們進行了優(yōu)化文檔的工作。

首先,我們使用doxygen來從代碼注釋生成文檔。因此,你將獲得上層和重要函數(shù)的解釋和說明,這是可以在編譯時生成的。

此外,我們還添加了軟件開發(fā)人員指南,你也可以在代碼庫中找到(也需使用doxygen)。它包含一些重要的算法流程,例如GOP決策,時域濾波,TPL,碼率控制等。如果需要,你也可以參考它們。此外,我們也提交了關(guān)于AV1的更詳細的綜述論文,現(xiàn)在可以在此處的鏈接查看。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    159

    文章

    7664

    瀏覽量

    177196
  • 編碼器
    +關(guān)注

    關(guān)注

    44

    文章

    3552

    瀏覽量

    133794
  • 壓縮技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    8367

原文標題:AV1編碼器優(yōu)化技術(shù)

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    磁電編碼器和光電編碼器的區(qū)別

    磁電編碼器和光電編碼器是兩種不同類型的編碼器,它們在原理、結(jié)構(gòu)、性能和應(yīng)用領(lǐng)域上都有所不同。 磁電編碼器和光電編碼器的區(qū)別
    的頭像 發(fā)表于 10-12 09:54 ?177次閱讀

    編碼器有哪些類型? 編碼器如何選適合自己產(chǎn)品的型號?

    ?導(dǎo)語:當(dāng)涉及運動——速度、距離和方向——反饋系統(tǒng)時,這時就需要編碼器來充分發(fā)揮其作用了。簡而言之,編碼器主要是記錄運動技術(shù)指標并加以控制,可用于調(diào)節(jié)或監(jiān)測的方式來傳達它們,下面必優(yōu)傳感小編給大家
    的頭像 發(fā)表于 08-09 09:00 ?401次閱讀

    增量編碼器和絕對值編碼器的區(qū)別

    在工業(yè)自動化和精密測量領(lǐng)域,編碼器是不可或缺的關(guān)鍵設(shè)備。編碼器能夠?qū)C械位移轉(zhuǎn)換為電信號,以便于計算機或其他數(shù)字系統(tǒng)進行處理。在編碼器的眾多類型中,增量編碼器和絕對值
    的頭像 發(fā)表于 06-03 15:40 ?2158次閱讀

    微軟Teams應(yīng)用整合AV1編解碼,降低帶寬需求,提升畫面清晰度

    AVI是新一代的開源視頻編碼格式,因高效的壓縮能力而備受推崇。借助AV1,只需極小的帶寬即可保證視頻的高清傳輸。對于要求高清晰度和流暢度的Teams應(yīng)用,此時使用AV1編碼無疑成為最佳
    的頭像 發(fā)表于 03-28 09:52 ?361次閱讀

    谷歌計劃在Android系統(tǒng)升級中采用libdav1d替換libgav1,提高AV1視頻性能

    然而,盡管眾多流媒體公司提供AV1內(nèi)容卻仍用其他編碼器形式傳輸至終端設(shè)備,因為許多設(shè)備尚未配置硬件解碼AV1視頻的芯片,僅靠軟件解碼難以滿足需求。軟件解碼
    的頭像 發(fā)表于 02-28 11:02 ?1168次閱讀

    編碼器分辨率是什么意思 編碼器分辨率和脈沖數(shù)的關(guān)系

    按照編碼器支持的分辨率可以把編碼器分成標清編碼器、高清編碼器、全高清編碼器,分辨率越高幀率越高視頻就越清楚。
    的頭像 發(fā)表于 02-21 18:07 ?3446次閱讀
    <b class='flag-5'>編碼器</b>分辨率是什么意思 <b class='flag-5'>編碼器</b>分辨率和脈沖數(shù)的關(guān)系

    編碼器原點設(shè)定方法 | 編碼器原點丟失怎樣找回

    1. 確定位置參考:原點是編碼器位置的參考點,即零點位置。通過設(shè)定原點,可以確定編碼器位置的起點。這對于準確測量和跟蹤位置變化非常重要,尤其是在需要精確定位的應(yīng)用中。 2. 啟動和停止控制:在某些應(yīng)用中,
    的頭像 發(fā)表于 02-21 15:02 ?1515次閱讀

    編碼器零點位置怎么看 | 編碼器零位怎樣確定

    編碼器零點位置怎么看 要確定編碼器的零點位置,可以通過以下幾種方式進行觀察: 1. 物理標記點:一些編碼器在其旋轉(zhuǎn)軸上具有專門的物理標記點,例如凹槽或凸起。通過觀察軸上的標記點,可以確
    的頭像 發(fā)表于 02-18 18:28 ?1951次閱讀
    <b class='flag-5'>編碼器</b>零點位置怎么看 | <b class='flag-5'>編碼器</b>零位怎樣確定

    Vulkan 1.3.277新增AV1 Decode擴展,提升視頻解碼質(zhì)量

    NVIDIA始終積極投入這一開源計劃,不僅持續(xù)完善Vulkan Video演示范例,還示范了Encode H.264/H.265以及Decode AV1擴展在其平臺上的使用效果。
    的頭像 發(fā)表于 02-03 14:02 ?751次閱讀

    編碼器好壞怎么判斷,編碼器原理

    編碼器(Encoder)是將輸入數(shù)據(jù)轉(zhuǎn)化為特定編碼表示的一種技術(shù)。對于不同類型的編碼器,評判其好壞可以從多個方面進行考量,包括編碼質(zhì)量、速度
    的頭像 發(fā)表于 01-23 10:58 ?1656次閱讀

    磁性編碼器和光電編碼器的比較

    伺服電機編碼器是一種關(guān)鍵的反饋裝置,用于測量和控制電機的轉(zhuǎn)速和位置。在選擇伺服電機編碼器時,常常面臨一個選擇:使用磁電編碼器還是光電編碼器。接下來將從幾個關(guān)鍵方面比較這兩種類型的
    的頭像 發(fā)表于 01-18 10:29 ?2690次閱讀

    編碼器與PLC的接線方法

    編碼器分為旋轉(zhuǎn)編碼器和線性編碼器兩種。旋轉(zhuǎn)編碼器用于檢測旋轉(zhuǎn)位置和速度,而線性編碼器用于檢測直線位置和速度。
    發(fā)表于 12-22 09:20 ?1117次閱讀
    <b class='flag-5'>編碼器</b>與PLC的接線方法

    旋轉(zhuǎn)編碼器能直接換嗎_旋轉(zhuǎn)編碼器更換注意事項

    螺絲頂出來,免得損壞編碼器。第五步,旋轉(zhuǎn)新的編碼器,使編碼器的兩個標志重合。第六步,按以上相反的順序安裝編碼器。旋轉(zhuǎn)編碼器更換注意事項
    的頭像 發(fā)表于 11-12 08:07 ?1483次閱讀
    旋轉(zhuǎn)<b class='flag-5'>編碼器</b>能直接換嗎_旋轉(zhuǎn)<b class='flag-5'>編碼器</b>更換注意事項

    編碼器種類及原理

    編碼器種類及原理 常見的編碼器有兩種,分別為霍爾編碼器和GMR編碼器。 1.1 霍爾編碼器 霍爾編碼器
    的頭像 發(fā)表于 11-10 15:21 ?2370次閱讀
    <b class='flag-5'>編碼器</b>種類及原理

    磁性編碼器的優(yōu)點和原理

    磁性編碼器是一種先進的技術(shù)裝置,它通過利用磁性材料來實現(xiàn)精確的編碼功能。無論在哪個領(lǐng)域,磁性編碼器都扮演著重要的角色,為各種精密設(shè)備提供準確的測量和控制。
    的頭像 發(fā)表于 11-08 11:03 ?1240次閱讀
    磁性<b class='flag-5'>編碼器</b>的優(yōu)點和原理