91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

LiveVideoStack ? 來(lái)源:LiveVideoStack ? 作者:LiveVideoStack ? 2021-02-23 17:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

2.1 Utilizing first-pass stats

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

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

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

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

2.2 The hidden Markov model

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

這里,我們使用隱馬爾可夫模型(HMM)。該模型假設(shè)兩件事,首先,它假定基礎(chǔ)對(duì)象的亮度遵循馬爾可夫鏈。在此示例中,我們可以看這個(gè)球,此球沿著這樣的軌跡移動(dòng)。沿著該運(yùn)動(dòng)軌跡,我們用xi表示在時(shí)間i的亮度。這個(gè)模型是一個(gè)回歸模型,但與自動(dòng)回歸略微有所不同,因?yàn)?a href="http://www.makelele.cn/tags/ai/" target="_blank">ai會(huì)變化。對(duì)于xi來(lái)說(shuō),這是一個(gè)馬爾可夫鏈,因?yàn)槟憧梢钥吹?x 在時(shí)間 i 的亮度,僅取決于 x 在時(shí)間 i-1 的亮度。在此條件下,它與以前所有的亮度都沒(méi)有關(guān)系,這就是馬爾可夫模型。

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

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

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

2.3 Optimal linear prediction error

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

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

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

讓我們來(lái)看看,首先,知道在這個(gè)方程式中,實(shí)際上很多東西可以直接從第一遍統(tǒng)計(jì)數(shù)據(jù)中估算出來(lái)。
例如yi的方差,也就是觀察到的像素方差,可以用幀內(nèi)編碼錯(cuò)誤用以近似估計(jì)。其背后的原因是,當(dāng)你進(jìn)行幀內(nèi)預(yù)測(cè)時(shí),可以使用其相鄰像素預(yù)測(cè)該塊。然后從該塊中移除該預(yù)測(cè),這與減去估算出的區(qū)塊平均值非常相似。這樣的話(huà),則幀內(nèi)編碼錯(cuò)誤基本上就可以看作像素的方差。這并非完全準(zhǔn)確,但非常接近。
其后,當(dāng)j等于i-1時(shí),我們是在從前一幀來(lái)預(yù)測(cè)當(dāng)前幀。而這恰恰是我們所說(shuō)的一階編碼錯(cuò)誤的含義。同理,如果j等于i-2,最佳線(xiàn)性預(yù)測(cè)誤差就基本可以看作是二階編碼錯(cuò)誤。因此,我們使用這三個(gè)第一遍統(tǒng)計(jì)信息來(lái)估測(cè)隨機(jī)變量的這三個(gè)特征。我們將獲得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í)再假設(shè)該鄰域中的噪聲方差不變,即nj的方差在該鄰域中保持不變,那么我們可以針對(duì)幀i,j寫(xiě)出以下幾個(gè)等式。一個(gè)是從 i-1 預(yù)測(cè) i,一個(gè)是從i -2預(yù)測(cè)i-1,還以一個(gè)是從i -2預(yù)測(cè) i。也就是說(shuō)我們關(guān)心這三個(gè)幀,以及其對(duì)應(yīng)的三個(gè)預(yù)測(cè)?,F(xiàn)在,如果你寫(xiě)下這三個(gè)方程式,你將會(huì)發(fā)現(xiàn),實(shí)際上我們只有三個(gè)未知變量,即ai-1,ai-2,以及該鄰域中的噪聲方差。因而,基于這三個(gè)方程,我們可以很輕松地計(jì)算出這三個(gè)未知變量。算出之后,也就可以得到ai,aj,可以得到噪聲方差。到目前為止,基于此隱馬爾可夫模型,我們成功地僅通過(guò)第一遍的數(shù)據(jù),就能夠通過(guò)幀鄰域來(lái)估測(cè)幀與幀之間的相關(guān)性以及噪聲水平。

2.5 Frame regions and GOP length decision

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

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

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

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

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

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

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

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

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

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

3 時(shí)域?yàn)V波

3.1 Frame decomposition

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

責(zé)任編輯:lq

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

    關(guān)注

    162

    文章

    8413

    瀏覽量

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

    關(guān)注

    45

    文章

    3958

    瀏覽量

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

    關(guān)注

    0

    文章

    14

    瀏覽量

    8581

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    編碼器:解鎖未來(lái)科技的“雙核密碼”

    在人工智能與數(shù)據(jù)處理技術(shù)狂飆突進(jìn)的時(shí)代,數(shù)據(jù)的高效處理與精準(zhǔn)解析已成為企業(yè)競(jìng)爭(zhēng)力的核心。當(dāng)傳統(tǒng)單編碼器逐漸觸及性能天花板, 雙編碼器架構(gòu) 正以“雙核驅(qū)動(dòng)”的顛覆性?xún)?yōu)勢(shì),重新定義數(shù)據(jù)處理的效率與精度
    的頭像 發(fā)表于 03-05 08:39 ?348次閱讀
    雙<b class='flag-5'>編碼器</b>:解鎖未來(lái)科技的“雙核密碼”

    基于 MT6816 的磁編碼器系統(tǒng)調(diào)試與參數(shù)優(yōu)化

    MT6816 是一款基于 AMR 技術(shù)的 14 位高精度絕對(duì)式磁編碼器,具備低延時(shí)、寬溫區(qū)、多接口等優(yōu)勢(shì),廣泛應(yīng)用于伺服系統(tǒng)、機(jī)器人關(guān)節(jié)、云臺(tái)等高精度運(yùn)動(dòng)控制場(chǎng)景。本文圍繞 MT6816 磁編碼器
    的頭像 發(fā)表于 03-03 16:26 ?112次閱讀

    探索Broadcom AS20系列微型編碼器:創(chuàng)新技術(shù)與卓越性能

    微型編碼器,一款融合了創(chuàng)新技術(shù)與卓越性能的磁絕對(duì)套件編碼器。 文件下載: Broadcom AS20-Series微型編碼器套件.pdf 一、技術(shù)
    的頭像 發(fā)表于 12-30 15:30 ?330次閱讀

    Vishay USB編碼器接口技術(shù)解析與應(yīng)用指南

    Vishay/MCB Industrie RAMK/RAME USB編碼器接口是一款設(shè)計(jì)用于Vishay MCB編碼器(AMK和RAME系列,包括霍爾效應(yīng))的電子板。該接口板只需使用隨附的USB
    的頭像 發(fā)表于 11-12 11:51 ?901次閱讀

    Vishay RAIK060 旋轉(zhuǎn)絕對(duì)感應(yīng)套件編碼器技術(shù)解析

    Vishay RAIK060旋轉(zhuǎn)絕對(duì)電感套件編碼器專(zhuān)門(mén)用于電機(jī)驅(qū)動(dòng)、機(jī)器人位置和具有精確定位的工業(yè)運(yùn)動(dòng)控制。這些編碼器通過(guò)LED狀態(tài)顏色輕松組裝,對(duì)外部磁場(chǎng)、電場(chǎng)和溫度不敏感。RAIK060編碼器
    的頭像 發(fā)表于 11-11 11:31 ?953次閱讀
    Vishay RAIK060 旋轉(zhuǎn)絕對(duì)感應(yīng)套件<b class='flag-5'>編碼器</b><b class='flag-5'>技術(shù)</b>解析

    如何選擇適合的SSI編碼器?

    如何選擇適合的SSI編碼器?選擇適合的SSI編碼器需要綜合考慮應(yīng)用場(chǎng)景、技術(shù)參數(shù)、環(huán)境適應(yīng)性以及性?xún)r(jià)比等因素。以下是根據(jù)工業(yè)自動(dòng)化領(lǐng)域?qū)I(yè)技術(shù)人員需求整理的選型指南:
    的頭像 發(fā)表于 11-03 14:53 ?688次閱讀
    如何選擇適合的SSI<b class='flag-5'>編碼器</b>?

    舵機(jī)伺服編碼器

    舵機(jī)伺服編碼器是用于實(shí)時(shí)檢測(cè)舵機(jī)輸出軸位置、速度或角度的核心反饋元件,它能將機(jī)械運(yùn)動(dòng)轉(zhuǎn)化為電信號(hào),讓控制系統(tǒng)實(shí)現(xiàn)對(duì)舵機(jī)的精準(zhǔn)閉環(huán)控制。 這個(gè)問(wèn)題切得很準(zhǔn),它直接指向了舵機(jī) “精準(zhǔn)控制” 的關(guān)鍵所在
    的頭像 發(fā)表于 10-30 10:05 ?339次閱讀

    增量式編碼器工作原理是什么?

    增量式編碼器工作原理是什么?增量式編碼器是一種通過(guò)輸出脈沖信號(hào)來(lái)反映旋轉(zhuǎn)位置變化的傳感,廣泛應(yīng)用于電機(jī)測(cè)速、位置控制等領(lǐng)域。其工作原理可從機(jī)械結(jié)構(gòu)、信號(hào)產(chǎn)生、信號(hào)處理三個(gè)層面展開(kāi),增量式編碼
    的頭像 發(fā)表于 09-29 11:00 ?2190次閱讀
    增量式<b class='flag-5'>編碼器</b>工作原理是什么?

    國(guó)產(chǎn)編碼器在人形機(jī)器人領(lǐng)域的進(jìn)展

    電子發(fā)燒友網(wǎng)綜合報(bào)道?編碼器是測(cè)量旋轉(zhuǎn)角度、位移及速度的傳感,作為伺服系統(tǒng)的核心部件,在人形機(jī)器人領(lǐng)域,其數(shù)據(jù)反饋對(duì)實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)的精密控制與定位至關(guān)重要。 ? 編碼器種類(lèi)豐富,按技術(shù)
    的頭像 發(fā)表于 09-24 09:41 ?1493次閱讀

    Bourns發(fā)布全新增量式微型編碼器

    Bourns 推出 PEC04 系列 4 mm 增量式微型編碼器、PEC05 PEC05 系列 5 mm 增量式微型編碼器,以及 PEC06 型號(hào) 6 mm 增量式微型編碼器。Bourns 全新微型
    的頭像 發(fā)表于 09-22 16:05 ?1319次閱讀

    絕對(duì)值編碼器與增量式編碼器相比有哪些優(yōu)勢(shì)?

    絕對(duì)值編碼器與增量式編碼器相比有哪些優(yōu)勢(shì)?核心功能:斷電后位置信息不丟失,絕對(duì)值編碼器:通過(guò)機(jī)械結(jié)構(gòu)或電子存儲(chǔ)(如電池備份),能實(shí)時(shí)輸出當(dāng)前位置的唯一絕對(duì)值編碼(如二進(jìn)制、格雷碼)。無(wú)
    的頭像 發(fā)表于 08-11 13:57 ?1681次閱讀
    絕對(duì)值<b class='flag-5'>編碼器</b>與增量式<b class='flag-5'>編碼器</b>相比有哪些優(yōu)勢(shì)?

    宜科電子推出適用于電機(jī)運(yùn)動(dòng)控制的正余弦編碼器

    正余弦信號(hào)編碼器(Sin/Cos編碼器)是一種特殊的增量式編碼器,其核心特點(diǎn)是輸出?高質(zhì)量的正弦波和余弦波模擬信號(hào)?。區(qū)別于傳統(tǒng)增量編碼器的數(shù)字方波輸出,正余弦
    的頭像 發(fā)表于 07-29 11:40 ?1317次閱讀

    增量型編碼器與絕對(duì)值型編碼器怎么選擇?

    在選擇增量型編碼器與絕對(duì)值型編碼器時(shí),需要考慮多個(gè)因素,包括應(yīng)用需求、成本、精度、可靠性以及環(huán)境適應(yīng)性等。以下是對(duì)兩種編碼器的詳細(xì)比較及選擇建議: 一、增量型編碼器
    的頭像 發(fā)表于 07-10 10:34 ?1419次閱讀

    一文讀懂什么是磁性編碼器

    磁性編碼器是一種用于測(cè)量角度和線(xiàn)性位置的傳感。它使用磁性信號(hào)來(lái)監(jiān)測(cè)旋轉(zhuǎn)或線(xiàn)性位置的變化,并把這些變化轉(zhuǎn)換成數(shù)字信號(hào)。磁性編碼器可用于各種應(yīng)用中,比如機(jī)器人、汽車(chē)、數(shù)控機(jī)床等領(lǐng)域
    的頭像 發(fā)表于 04-27 17:18 ?1099次閱讀

    解碼未來(lái):數(shù)字編碼器如何重塑智能世界

    標(biāo)題:《解碼未來(lái):數(shù)字編碼器如何重塑智能世界》 在數(shù)字化浪潮席卷全球的今天,每一個(gè)微小的信號(hào)轉(zhuǎn)換都可能成為推動(dòng)技術(shù)革命的關(guān)鍵。而在這場(chǎng)無(wú)聲的變革中,數(shù)字編碼器——這個(gè)看似不起眼的技術(shù)
    的頭像 發(fā)表于 04-07 08:44 ?789次閱讀
    解碼未來(lái):數(shù)字<b class='flag-5'>編碼器</b>如何重塑智能世界