中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

關(guān)鍵幀,幀間和視頻壓縮

2019-03-22    來源:多智時代

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

關(guān)鍵幀,幀間和視頻壓縮

image

視頻壓縮的默認(rèn)心理圖像涉及不需要的視頻偽像,如圖像中的像素化和塊效應(yīng)。盡管如此,實際上壓縮視頻內(nèi)容的復(fù)雜性仍然很短。特別是,它忽略了一個稱為幀間的迷人過程,它涉及關(guān)鍵幀和增量幀,以便以一種意圖不被注意的方式智能地壓縮內(nèi)容。

本文詳細(xì)介紹了此過程,同時還提供了可應(yīng)用于IBM Cloud Video實時流式傳輸?shù)淖罴褜嵺`和理想編碼器設(shè)置。由于自適應(yīng)比特率,這些具體建議大部分涉及流式傳輸。要了解有關(guān)該技術(shù)的更多信息,請參閱我們的 自適應(yīng)流傳輸如何解決查看器帶寬問題白皮書。

了解視頻幀

流媒體技術(shù)有很多術(shù)語和方面可以理所當(dāng)然。隨著某人成為一名廣播公司,有必要更詳細(xì)地了解元素,以了解流程的原因以及最佳設(shè)置。

例如,一個關(guān)鍵幀是一些廣播公司之前已經(jīng)提到過的東西,或者看到像Wirecast這樣的編碼器中的設(shè)置,卻沒有完全意識到它是什么以及這個過程對于流媒體有多么有益。關(guān)鍵幀是一個重要元素,但實際上只是較長過程的一部分,有助于減少視頻所需的帶寬。要理解這種關(guān)系,首先需要了解視頻幀。

從高層開始,大多數(shù)人可能意識到視頻內(nèi)容由一系列幀組成。通常表示為FPS(每秒幀數(shù)),每幀是靜止圖像,當(dāng)按順序播放時,創(chuàng)建運(yùn)動圖像。因此,使用30的FPS創(chuàng)建的內(nèi)容意味著有30個“靜止圖像”將播放每秒視頻。

壓縮的機(jī)會:InterFrame

在一般的視頻中,如果有人要連續(xù)拍攝90幀并將它們展開,他們會看到很多相同的元素。例如,如果某人正站在一動不動的植物旁邊說話,那么與該植物相關(guān)的信息就不會發(fā)生變化。結(jié)果,這就是用來傳達(dá)某些東西沒有改變的大量浪費(fèi)帶寬。

關(guān)鍵幀,幀間和視頻壓縮

關(guān)鍵幀的靜止幀

因此,在尋找壓縮視頻內(nèi)容的有效方法時,幀管理成為基石原則之一。因此,如果示例中的工廠不會改變,為什么不繼續(xù)在一些后續(xù)框架中使用相同的元素來減少空間?

這種認(rèn)識催生了幀間預(yù)測的概念。這是一種視頻壓縮技術(shù),它將幀劃分為宏塊,然后查找塊之間的冗余。此過程通過使用關(guān)鍵幀(也稱為i幀或幀內(nèi)幀)和增量幀來實現(xiàn),增量幀僅存儲圖像中的更改以減少冗余信息。這些幀的集合通常由“圖片組”的相當(dāng)非技術(shù)性的聲音名稱來引用,縮寫為GOP。用于編碼或解碼數(shù)字?jǐn)?shù)據(jù)流的視頻編解碼器都具有某種形式的幀間管理。H.264,MPEG-2和MPEG-4都使用三幀方法,包括:關(guān)鍵幀,p幀和b幀。

什么是關(guān)鍵幀?

關(guān)鍵幀(i幀)是視頻中圖像的完整幀。后續(xù)幀(增量幀)僅包含已更改的信息。關(guān)鍵幀將在流中多次出現(xiàn),具體取決于它的創(chuàng)建方式或流式傳輸方式。

如果有人使用Google“關(guān)鍵幀”,他們可能會找到一些與動畫和視頻編輯相關(guān)的結(jié)果。在這個例子中,我們使用關(guān)鍵幀一詞來說明它與視頻壓縮的關(guān)系及其與增量幀的關(guān)系。

關(guān)鍵幀,幀間和視頻壓縮

關(guān)鍵幀和P或B幀示例

P幀如何工作?

也稱為預(yù)測幀或預(yù)測幀,p幀遵循另一幀并且僅包含視頻中的圖像的一部分。由于這個原因,它被歸類為三角形框架。P幀向后看向前一個p幀或關(guān)鍵幀(i幀)以進(jìn)行冗余。p幀中呈現(xiàn)的圖像量取決于幀之間包含的新信息量。

例如,有人在靜態(tài)背景前與相機(jī)交談可能只包含與其移動相關(guān)的信息。然而,有人在相機(jī)平移的情況下穿過一個場地,每個p幀都會有更多的信息來匹配它們的移動和不斷變化的背景。

什么是B幀?它們與P幀有何不同?

也稱為雙向預(yù)測幀,b幀遵循另一幀并且僅包含視頻中的圖像的一部分。b幀中包含的圖像量取決于幀之間的新信息量。

與p幀不同,b幀可以向后和向前看到前一個或后一個p幀或關(guān)鍵幀(i幀)以進(jìn)行冗余。與p幀相比,這使得b幀更有效,因為它們更有可能發(fā)現(xiàn)冗余。但是,當(dāng)編碼配置文件在編碼器內(nèi)設(shè)置為基線時,不使用b幀。這意味著編碼器必須設(shè)置在基線以上的編碼配置文件中,例如“main”或“high”。

你如何設(shè)置關(guān)鍵幀?

關(guān)于用于直播的視頻壓縮,在編碼器內(nèi)設(shè)置關(guān)鍵幀。這是由編碼器內(nèi)部有時稱為“關(guān)鍵幀間隔”的選項配置的。

關(guān)鍵幀間隔控制在視頻中創(chuàng)建關(guān)鍵幀(i幀)的頻率。關(guān)鍵幀間隔越高,通常對內(nèi)容應(yīng)用的壓縮越多,盡管這并不意味著質(zhì)量明顯降低。有關(guān)關(guān)鍵幀間隔如何工作的示例,如果您的間隔設(shè)置為每2秒,并且您的幀速率為每秒30幀,則這意味著大約每60幀生成一個關(guān)鍵幀。

術(shù)語“關(guān)鍵幀間隔”不是通用的,大多數(shù)編碼器都有自己的術(shù)語。例如,Adobe Flash Media Live Encoder(FMLE)和vMix使用術(shù)語“關(guān)鍵幀頻率”來描述此過程。其他程序和服務(wù)可能將間隔稱為“GOP大小”或“GOP長度”,返回“圖片組”縮寫。

在編碼器級別選擇關(guān)鍵幀間隔

在設(shè)置關(guān)鍵幀間隔方面,它因編碼器而異。

對于FMLE,此選項(表示為“關(guān)鍵幀頻率”)可通過單擊格式右側(cè)的扳手圖標(biāo)在軟件編碼器中找到。

在Wirecast中,這是從編碼器預(yù)設(shè)菜單設(shè)置的,該選項稱為“每幀關(guān)鍵幀”。Wirecast是不同的,因為間隔實際上以幀表示。因此,對于30 FPS廣播,將“每幀關(guān)鍵幀”設(shè)置為60幀將大致給出2秒的關(guān)鍵幀間隔,因為每秒有30幀。

對于vMix編碼器,首先需要點(diǎn)擊流媒體附近的齒輪圖標(biāo),這將打開流媒體設(shè)置。接近質(zhì)量選項的是另一個齒輪圖標(biāo),單擊此按鈕將打開一個菜單,可以修改“關(guān)鍵幀頻率”。

關(guān)鍵幀,幀間和視頻壓縮

如何在OBS中設(shè)置關(guān)鍵幀間隔

在開放廣播軟件(OBS)的v0.542b版本中設(shè)置關(guān)鍵幀間隔

在開放式廣播軟件(OBS)中,對于v0.55b之后的版本,可以在“高級”下的“設(shè)置”區(qū)域中設(shè)置關(guān)鍵幀間隔。對于 v0.542b之前的OBS版本,如何修改關(guān)鍵幀間隔并不是很清楚,但這實際上是“設(shè)置”的一個組件。在那里,轉(zhuǎn)到Advanced,然后選擇“Custom x264 Encoder Settings”。在此字段中,需要輸入以下字符串:“keyint = XX”,其中XX是觸發(fā)關(guān)鍵幀之前的幀數(shù)。與Wirecast一樣,如果需要2秒的關(guān)鍵幀間隔且FPS為30秒,請輸入以下內(nèi)容:“keyint = 60”。

對于XSplit,關(guān)鍵幀間隔是通道屬性的一個組成部分。在視頻編碼區(qū)域下,可以找到一個名為“Keyframe Interval(secs)”的列表。在這最右邊是一個齒輪圖標(biāo)。單擊齒輪將啟動“視頻編碼設(shè)置”彈出窗口。這將允許某人以秒為單位指定關(guān)鍵幀間隔。

關(guān)鍵幀和比特率之間的關(guān)系

此解釋中的里程可能會有所不同,因為編碼器會以不同方式管理比特率和關(guān)鍵幀。使用像Wirecast這樣的編碼器,人們可能會注意到,與播放某人在移動背景中上下跳躍相比,播放某人與靜止背景進(jìn)行對話的人具有“更高的質(zhì)量”。當(dāng)使用它們之間相同的精確平均比特率和關(guān)鍵幀間隔時,可以重現(xiàn)這一點(diǎn)。造成這種情況的原因部分是因為增量幀在跳躍示例中有大量信息要分享。冗余非常少,這意味著需要在每個增量幀上傳送更多數(shù)據(jù)。

但是,如果您有像Wirecast這樣的編碼器,那么它正在努力將流保持在所選擇的平均比特率附近。因此,增量幀中包含的附加信息所需的附加帶寬導(dǎo)致質(zhì)量降低,以試圖將平均比特率保持在相同水平附近。

什么是關(guān)鍵幀間隔的最佳設(shè)置?

從來沒有一個行業(yè)標(biāo)準(zhǔn),雖然10秒經(jīng)常被稱為良好的關(guān)鍵幀間隔,即使不再建議流式傳輸。建議它的原因是,對于標(biāo)準(zhǔn)的29.97 FPS文件,生成的內(nèi)容響應(yīng)足以支持從預(yù)覽滑塊輕松導(dǎo)航。為了解釋更多,播放器無法在p幀或b幀上開始播放。因此,使用10秒示例,如果有人試圖導(dǎo)航到進(jìn)入5秒的點(diǎn),它實際上會將5秒鐘移回最近的關(guān)鍵幀并開始播放。這被認(rèn)為是較小帶寬消耗的良好折衷,盡管參考DVD選擇使用遠(yuǎn)小于10秒的東西。

但是,對于直播,推薦級別已大幅下降。其原因是自適應(yīng)比特率流的出現(xiàn)。對于那些不熟悉自適應(yīng)流媒體的人來說,這項技術(shù)使視頻播放器能夠根據(jù)觀看者試圖觀看時在可用分辨率和/或比特之間動態(tài)變化。因此,如果可用,下載速度較慢的用戶將獲得較低的比特率版本。其他標(biāo)準(zhǔn)(如播放窗口大。┮矔绊懡o定的比特率。

關(guān)鍵幀,幀間和視頻壓縮

播放器顯示關(guān)鍵幀

然而,真正的自適應(yīng)流媒體不僅在視頻內(nèi)容最初加載時進(jìn)行此檢查,而且還可以基于觀看者側(cè)的變化來改變比特率。例如,如果觀眾要在他們的移動設(shè)備上移出Wi-Fi網(wǎng)絡(luò)的范圍,他們將開始使用他們的正常蜂窩服務(wù),這可能導(dǎo)致下載速度變慢。結(jié)果,觀看者可能正在嘗試觀看比其下載速度更高的比特率的內(nèi)容。自適應(yīng)流技術(shù)應(yīng)該實現(xiàn)這種差異并使切換到不同的比特率。

關(guān)鍵幀間隔在此處起作用,因為在下一個關(guān)鍵幀期間進(jìn)行切換。因此,如果有人以10秒的間隔進(jìn)行廣播,則意味著在比特率和分辨率可能會發(fā)生變化之前可能需要10秒鐘。這段時間意味著內(nèi)容可能會在更改發(fā)生之前緩沖在觀看者一側(cè),這可能導(dǎo)致觀看者放棄。

因此,建議將實時流的關(guān)鍵幀間隔設(shè)置為2秒。這產(chǎn)生了一種結(jié)果,其中視頻軌道可以在用戶可能由于其下載速度降低而經(jīng)歷緩沖之前經(jīng)常有效地改變比特率。

什么是IDR框架?

我們正在循環(huán)這一點(diǎn),但在討論什么是IDR幀或瞬時解碼刷新幀之前,理解p幀,b幀并在自適應(yīng)流媒體中獲得速成課程是值得的。這些實際上是關(guān)鍵幀,每個關(guān)鍵幀可以是基于IDR或基于非IDR。兩者之間的區(qū)別在于基于IDR的關(guān)鍵幀是一個硬停止。IDR幀防止p幀和b幀引用在IDR幀之前發(fā)生的幀。非IDR關(guān)鍵幀將允許這些幀進(jìn)一步追溯冗余。

在紙面上,非IDR關(guān)鍵幀聽起來很理想:它可以通過允許查看更大的幀樣本來減少文件大小。不幸的是,導(dǎo)航出現(xiàn)了很多問題,并且該功能與自適應(yīng)流媒體不能很好地兼容。對于導(dǎo)航,假設(shè)有人開始觀看流中的6分鐘。這會引起問題,因為p幀和b幀可能引用了觀眾從未實際訪問過的信息。對于自適應(yīng)流傳輸,如果更改比特率和分辨率,則會出現(xiàn)類似的問題。這是因為新選擇可能引用觀看者以不同質(zhì)量設(shè)置觀看并且不再平行的數(shù)據(jù)。出于這些原因,始終建議基于IDR制作關(guān)鍵幀。

通常,編碼器將提供打開或關(guān)閉基于IDR的關(guān)鍵幀的選項,或者根本不提供選項。對于那些沒有提供選項的編碼器,幾乎可以肯定是因為編碼器設(shè)置為僅使用IDR幀。

有人應(yīng)該使用“自動”關(guān)鍵幀設(shè)置嗎?

簡而言之:沒有。

原則上,自動關(guān)鍵幀設(shè)置非常棒。他們將在場景更改期間手動強(qiáng)制關(guān)鍵幀。例如,如果您從PowerPoint幻燈片切換到在相機(jī)前面說話的人的圖像,這會強(qiáng)制使用新的關(guān)鍵幀。這是理想的,因為增量幀不會有太多工作,無法在PowerPoint幻燈片和相機(jī)圖像之間找到冗余。

遺憾的是,此過程不適用于某些自適應(yīng)流技術(shù),尤其是HLS。HLS過程要求關(guān)鍵幀可預(yù)測且同步。使用“自動”設(shè)置將在關(guān)鍵幀之間創(chuàng)建可變間隔。例如,關(guān)鍵幀之間的時間可能是7秒,如果場景發(fā)生快速變化,則可能是2秒。

關(guān)鍵幀,幀間和視頻壓縮

在OBS中設(shè)置關(guān)鍵幀間隔

在OBS v0.55b中設(shè)置整數(shù)以禁用自動切換

對于大多數(shù)編碼器,要禁用“自動更改”或“場景變化檢測”功能,這通常意味著表示關(guān)鍵幀間隔。例如,在OBS中,如果關(guān)鍵幀間隔設(shè)置為0秒,則自動功能將啟動。在此處放置任何數(shù)字,如1或2,將禁用自動功能。

如果編碼器(如Wirecast)具有“關(guān)鍵幀對齊”選項,則應(yīng)該知道這不是同一個過程。關(guān)鍵幀對齊是創(chuàng)建特定時間戳的過程,最適合保持廣播公司通過編碼器同步發(fā)送的多個比特率。

完善關(guān)鍵幀策略

隨著自適應(yīng)比特率的出現(xiàn),該行業(yè)處于一個奇怪的時刻,關(guān)鍵幀和實時流的最佳實踐有一個非常明確的答案。該戰(zhàn)略包括:

  • 將關(guān)鍵幀間隔設(shè)置為大約2秒

  • 禁用任何“自動”關(guān)鍵幀功能

  • 利用基于IDR的關(guān)鍵幀

  • 使用高于基線的編碼配置文件以允許b幀

該策略允許容易地導(dǎo)航內(nèi)容,以便在廣播之后進(jìn)行點(diǎn)播觀看,同時仍然獲得幀管理的好處并節(jié)省帶寬以減少冗余。它還支持自適應(yīng)btirate流媒體,這是成功直播的重要元素,能夠支持連接速度較慢的觀眾。

作者:納蘭少

鏈接:https://www.jianshu.com/p/6c90f0513084

標(biāo)簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:遷移至云之前首先要做好IT資產(chǎn)的整理

下一篇:中端市場SaaS基礎(chǔ)設(shè)施監(jiān)控工具重磅出爐