最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

實(shí)時(shí)音視頻開(kāi)發(fā)理論必備:如何省流量?視頻高度壓縮背后的預(yù)測(cè)技術(shù)

2021-06-15 11:47 作者:nickkckckck  | 我要投稿

本文引用了“拍樂(lè)云Pano”的“深入淺出理解視頻編解碼技術(shù)”和“揭秘視頻千倍壓縮背后的技術(shù)原理之預(yù)測(cè)技術(shù)”文章部分內(nèi)容,感謝原作者的分享。

1、引言

從 20 世紀(jì) 90 年代以來(lái),數(shù)字音視頻編解碼技術(shù)迅速發(fā)展,一直是國(guó)內(nèi)外研究的熱點(diǎn)領(lǐng)域。隨著5G的成熟和廣泛商用,帶寬已經(jīng)越來(lái)越高,傳輸音視頻變得更加容易。視頻直播、視頻聊天,已經(jīng)完全融入了每個(gè)人的生活。

視頻為何如此普及呢?是因?yàn)橥ㄟ^(guò)視頻能方便快捷地獲取到大量信息。但視頻數(shù)據(jù)量非常巨大,視頻的網(wǎng)絡(luò)傳輸也面臨著巨大的挑戰(zhàn)。于是視頻編解碼技術(shù)就出場(chǎng)了。

具體到實(shí)時(shí)視頻場(chǎng)景,不僅僅是數(shù)據(jù)量的問(wèn)題,實(shí)時(shí)通信對(duì)時(shí)延要求、設(shè)備適配、帶寬適應(yīng)的要求也非常高,要解決這些問(wèn)題,始終離不開(kāi)視頻編解碼技術(shù)的范疇。

本文將從視頻編解碼技術(shù)的基礎(chǔ)知識(shí)入手,引出視頻編解碼技術(shù)中非?;A(chǔ)且重要的預(yù)測(cè)技術(shù),學(xué)習(xí)幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)的技術(shù)原理。

(本文已同步發(fā)布于:http://www.52im.net/thread-3581-1-1.html)

2、相關(guān)文章

如果你是音視頻技術(shù)初學(xué)者,以下3篇入門級(jí)干貨非常推薦一讀:

《零基礎(chǔ),史上最通俗視頻編碼技術(shù)入門》

《零基礎(chǔ)入門:實(shí)時(shí)音視頻技術(shù)基礎(chǔ)知識(shí)全面盤(pán)點(diǎn)》

《實(shí)時(shí)音視頻面視必備:快速掌握11個(gè)視頻技術(shù)相關(guān)的基礎(chǔ)概念》

3、為什么需要視頻編解碼

首先,來(lái)復(fù)習(xí)一下視頻編解碼方面的理論常識(shí)。

視頻是由一系列圖片按照時(shí)間順序排列而成:

  • 1)每一張圖片為一幀;

  • 2)每一幀可以理解為一個(gè)二維矩陣;

  • 3)矩陣的每個(gè)元素為一個(gè)像素。

一個(gè)像素通常由三個(gè)顏色進(jìn)行表達(dá),例如用RGB顏色空間表示時(shí),每一個(gè)像素由三個(gè)顏色分量組成。每一個(gè)顏色分量用1個(gè)字節(jié)來(lái)表達(dá),其取值范圍就是0~255。編碼中常用的YUV格式與之類似,這里不作展開(kāi)。

以1280x720@60fps的視頻序列為例,十秒鐘的視頻有:1280*720*3*60*10 = 1.6GB。

如此大量的數(shù)據(jù),無(wú)論是存儲(chǔ)還是傳輸,都面臨巨大的挑戰(zhàn)。視頻壓縮或者編碼的目的,也是為了保證視頻質(zhì)量的前提下,將視頻減小,以利于傳輸和存儲(chǔ)。同時(shí),為了能正確還原視頻,需要將其解碼。

PS:限于篇幅,視頻編解碼方面的技術(shù)原理就不在此展開(kāi),有興趣強(qiáng)烈推薦從這篇深入學(xué)習(xí):《即時(shí)通訊音視頻開(kāi)發(fā)(十九):零基礎(chǔ),史上最通俗視頻編碼技術(shù)入門》。

總之,視頻編解碼技術(shù)的主要作用就是:在可用的計(jì)算資源內(nèi),追求盡可能高的視頻重建質(zhì)量和盡可能高的壓縮比,以達(dá)到帶寬和存儲(chǔ)容量的要求。

為何突出“重建質(zhì)量”?

因?yàn)橐曨l編碼是個(gè)有損的過(guò)程,用戶只能從收到的視頻流中解析出“重建”畫(huà)面,它與原始的畫(huà)面已經(jīng)不同,例如觀看低質(zhì)量視頻時(shí)經(jīng)常會(huì)碰到的“塊”效應(yīng)。

如何在一定的帶寬占用下,盡可能地保持視頻的質(zhì)量,或者在保持質(zhì)量情況下,盡可能地減少帶寬利用率,是視頻編碼的基本目標(biāo)。

用專業(yè)術(shù)語(yǔ)來(lái)說(shuō),即視頻編解碼標(biāo)準(zhǔn)的“率失真”性能:

  • 1)“率”是指碼率或者帶寬占用;

  • 2)“失真”是用來(lái)描述重建視頻的質(zhì)量。

與編碼相對(duì)應(yīng)的是解碼或者解壓縮過(guò)程,是將接收到的或者已經(jīng)存儲(chǔ)在介質(zhì)上的壓縮碼流重建成視頻信號(hào),然后在各種設(shè)備上進(jìn)行顯示。

4、什么是視頻編解碼標(biāo)準(zhǔn)

視頻編解碼標(biāo)準(zhǔn),通常只定義上述的解碼過(guò)程。

例如 H.264 / AVC 標(biāo)準(zhǔn),它定義了什么是符合標(biāo)準(zhǔn)的視頻流,對(duì)每一個(gè)比特的順序和意義都進(jìn)行了嚴(yán)格地定義,對(duì)如何使用每個(gè)比特或者幾個(gè)比特表達(dá)的信息也有精確的定義。

正是這樣的嚴(yán)格和精確,保證了不同廠商的視頻相關(guān)服務(wù),可以很方便地兼容在一起,例如用 iPhone、Android Phone 或者 windows PC 都可以觀看同一在線視頻網(wǎng)站的同一視頻。

世界上有多個(gè)組織進(jìn)行視頻編碼標(biāo)準(zhǔn)的制定工作,國(guó)際標(biāo)準(zhǔn)組織 ISO 的 MPEG 小組、國(guó)際電信聯(lián)盟 ITU-T 的 VCEG 小組、中國(guó)的 AVS 工作組、Google 及各大廠商組成的開(kāi)放媒體聯(lián)盟等。

視頻編碼標(biāo)準(zhǔn)及發(fā)展歷史:

自 VCEG 制定 H.120標(biāo)準(zhǔn)開(kāi)始,視頻編碼技術(shù)不斷發(fā)展,先后成功地制定了一系列滿足不同應(yīng)用場(chǎng)景的視頻編碼標(biāo)準(zhǔn)。VCEG 組織先后制定了H.120、H.261、H.262(MPEG-2 Part 2)、H.263、H.263+、H.263++。

MPEG也先后制定了MPEG-1、MPEG-2、MPEG-4 Part 2。以及兩個(gè)國(guó)際組織合作制定的H.264/AVC、H.265/HEVC、H.266/VVC。

中國(guó)自主知識(shí)產(chǎn)權(quán)的 AVS、AVS2、AVS3 視頻編碼標(biāo)準(zhǔn);Google 制定的 VP8、VP9。

Google、思科、微軟、蘋(píng)果等公司組成的開(kāi)放媒體聯(lián)盟(AOM)制定的 AV1。

這里特別提一下H.264/AVC:H.264/AVC雖有近20年歷史,但它優(yōu)秀的壓縮性能、適當(dāng)?shù)倪\(yùn)算復(fù)雜度、優(yōu)秀的開(kāi)源社區(qū)支持、友好的專利政策、強(qiáng)大的生態(tài)圈等多個(gè)方面的因素,依舊讓它保持著強(qiáng)大的生命力,特別是在實(shí)時(shí)通信領(lǐng)域。像 ZOOM、思科 Webex 等視頻會(huì)議產(chǎn)品和基于 WebRTC SDK 的視頻服務(wù),大多數(shù)主流場(chǎng)景都采用 H.264/AVC。

有關(guān)視頻編解碼標(biāo)準(zhǔn),這里就不深入展開(kāi)。更多詳細(xì)資料,可以讀一下下面這些精選文章:

《即時(shí)通訊音視頻開(kāi)發(fā)(五):認(rèn)識(shí)主流視頻編碼技術(shù)H.264》

《即時(shí)通訊音視頻開(kāi)發(fā)(十三):實(shí)時(shí)視頻編碼H.264的特點(diǎn)與優(yōu)勢(shì)》

《即時(shí)通訊音視頻開(kāi)發(fā)(十七):視頻編碼H.264、VP8的前世今生》

《愛(ài)奇藝技術(shù)分享:輕松詼諧,講解視頻編解碼技術(shù)的過(guò)去、現(xiàn)在和將來(lái)》

5、混和編碼框架

縱觀視頻編解碼標(biāo)準(zhǔn)歷史,每一代視頻標(biāo)準(zhǔn)都在率失真性能上有著顯著的提升,他們都有一個(gè)核心的框架,就是基于塊的混合編碼框架(如下圖所示)。它是由J. R. Jain 和A. K. Jain在1979年的國(guó)際圖像編碼學(xué)會(huì)(PCS 1979)上提出了基于塊運(yùn)動(dòng)補(bǔ)償和變換編碼的混合編碼框架。

我們一起來(lái)對(duì)該框架進(jìn)行拆解和分析。

從攝像頭采集到的一幀視頻:通常是 YUV 格式的原始數(shù)據(jù),我們將它劃分成多個(gè)方形的像素塊依次進(jìn)行處理(例如 H.264/AVC 中以16x16像素為基本單元),進(jìn)行幀內(nèi)/幀間預(yù)測(cè)、正變換、量化、反量化、反變換、環(huán)路濾波、熵編碼,最后得到視頻碼流。從視頻第一幀的第一個(gè)塊開(kāi)始進(jìn)行空間預(yù)測(cè),因當(dāng)前正在進(jìn)行編碼處理的圖像塊和其周圍的圖像塊有相似性,我們可以用周圍的像素來(lái)預(yù)測(cè)當(dāng)前的像素。我們將原始像素減去預(yù)測(cè)像素得到預(yù)測(cè)殘差,再將預(yù)測(cè)殘差進(jìn)行變換、量化,得到變換系數(shù),然后將其進(jìn)行熵編碼后得到視頻碼流。

接下來(lái):為了可以使后續(xù)的圖像塊可以使用已經(jīng)編碼過(guò)的塊進(jìn)行預(yù)測(cè),我們還要對(duì)變換系統(tǒng)進(jìn)行反量化、反變換,得到重建殘差,再與預(yù)測(cè)值進(jìn)行求合,得到重建圖像。最后我們對(duì)重建圖像進(jìn)行環(huán)路濾波、去除塊效應(yīng)等,這樣得到的重建圖像,就可以用來(lái)對(duì)后續(xù)圖像塊進(jìn)行預(yù)測(cè)了。按照以上步驟,我們依次對(duì)后續(xù)圖像塊進(jìn)行處理。

對(duì)于視頻而言:視頻幀與幀的間隔大約只有十到幾十毫秒,通常拍攝的內(nèi)容不會(huì)發(fā)生劇烈變化,它們之間存在非常強(qiáng)的相關(guān)性。

如下圖所示,將視頻圖像分割成塊,在時(shí)間相鄰的圖像之間進(jìn)行匹配,然后將匹配之后的殘差部分進(jìn)行編碼,這樣可以較好地去除視頻信號(hào)中的視頻幀與幀之間的冗余,達(dá)到視頻壓縮的目的。這就是運(yùn)動(dòng)補(bǔ)償技術(shù),直到今天它仍然是視頻編解碼的核心技術(shù)之一。

運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償:

變換編碼的核心思想:是把視頻數(shù)據(jù)分割成塊,利用正交變換將數(shù)據(jù)的能量集中到較少幾個(gè)變換系數(shù)上。結(jié)合量化和熵編碼,我們可以獲得更有效的壓縮。視頻編碼中信息的損失和壓縮比的獲得,很大程度上來(lái)源于量化模塊,就是將源信號(hào)中的單一樣本映射到某一固定值,形成多到少的映射,從而達(dá)到壓縮的目的,當(dāng)然在壓縮的過(guò)程中就引入了損失。量化后的信號(hào)再進(jìn)行無(wú)損的熵編碼,消除信號(hào)中的統(tǒng)計(jì)冗余。熵編碼的研究最早可以追溯到 20 世紀(jì) 50 年代,經(jīng)過(guò)幾十年的發(fā)展,熵編碼在視頻編碼中的應(yīng)用更加成熟、更加精巧,充分利用視頻數(shù)據(jù)中的上下文信息,將概率模型估計(jì)得更加準(zhǔn)確,從而提高了熵編碼的效率。例如H.264/AVC中的Cavlc(基于上下文的變長(zhǎng)編碼)、Cabac(基于上下文的二進(jìn)制算術(shù)編碼)。算術(shù)編碼技術(shù)在后續(xù)的視頻編碼標(biāo)準(zhǔn),如AV1、HEVC/H.265、VVC/H.266 中也有應(yīng)用。

視頻編碼發(fā)展至今,VVC/H.266 作為最新制定的標(biāo)準(zhǔn),采納了一系列先進(jìn)的技術(shù),對(duì)混合編碼框架的各個(gè)部分都進(jìn)行了優(yōu)化和改進(jìn),使得其率失真性能相比前一代標(biāo)準(zhǔn),又提高了一倍。

例如:VVC/H.266 采用了128x128大小的基本編碼單元,并且可以繼續(xù)進(jìn)行四叉樹(shù)劃分,支持對(duì)一個(gè)劃分進(jìn)行二分、三分;色度分量獨(dú)立于亮度分量,支持單獨(dú)進(jìn)行劃分;更多更精細(xì)的幀內(nèi)預(yù)測(cè)方向、幀間預(yù)測(cè)模式;支持多種尺寸和形式的變換、環(huán)內(nèi)濾波等。

VVC/H.266 的制定,目標(biāo)是對(duì)多種視頻內(nèi)容有更好支持,例如屏幕共享內(nèi)容、游戲、動(dòng)漫、虛擬現(xiàn)實(shí)內(nèi)容(VR、AR)等。其中也有特定的技術(shù)被采納進(jìn)標(biāo)準(zhǔn),例如調(diào)色板模式、幀內(nèi)運(yùn)動(dòng)補(bǔ)償、仿射變換、跳過(guò)變換、自適應(yīng)顏色變換等。? ?

回到本文的正題,接下來(lái)的內(nèi)容,我們著重介紹視頻編解碼中的預(yù)測(cè)技術(shù)。

6、幀內(nèi)預(yù)測(cè)技術(shù)

視頻數(shù)據(jù)被劃分成方塊之后,相鄰的方塊的像素,以及方塊內(nèi)的像素,顏色往往是逐漸變化的,他們之間有比較強(qiáng)的有相似性。這種相似性,就是空間冗余。既然存在冗余,就可以用更少的數(shù)據(jù)量來(lái)表達(dá)這樣的特征。

比如:先傳輸?shù)谝粋€(gè)像素的值,再傳輸?shù)诙€(gè)像素相對(duì)于第一個(gè)像素的變化值,這個(gè)變化值往往取值范圍變小了許多,原來(lái)要8個(gè)bit來(lái)表達(dá)的像素值,可能只需要少于8個(gè)bit就足夠了。

同樣的道理,以像素塊為基本單位,也可以進(jìn)行類似的“差分”操作。我們從示例圖中,來(lái)更加直觀地感受一下這樣的相似性。

如上圖中所標(biāo)出的兩個(gè)8x8的塊:其亮度分量(Y)沿著“左上到右下”的方向,具有連續(xù)性,變化不大。

假如:我們?cè)O(shè)計(jì)某種特定的“模式”,使其利用左邊的塊來(lái)“預(yù)測(cè)”右邊的塊,那么“原始像素”減去“預(yù)測(cè)像素”就可以減少傳輸所需要的數(shù)據(jù)量,同時(shí)將該“模式”寫(xiě)入最終的碼流,解碼器便可以利用左側(cè)的塊來(lái)“重建”右側(cè)的塊。

極端一點(diǎn)講:假如左側(cè)的塊的像素值經(jīng)過(guò)一定的運(yùn)算可以完全和右側(cè)的塊相同,那么編碼器只要用一個(gè)“模式”的代價(jià),傳輸右側(cè)的塊。

當(dāng)然,視頻中的紋理多種多樣,單一的模式很難對(duì)所有的紋理都適用,因此標(biāo)準(zhǔn)中也設(shè)計(jì)了多種多樣的幀內(nèi)預(yù)測(cè)模式,以充分利用像素間的相關(guān)性,達(dá)到壓縮的目的。

例如下圖所示的H.264中9種幀內(nèi)預(yù)測(cè)方向:以模式0(豎直預(yù)測(cè))為例,上方塊的每個(gè)像素值(重建)各復(fù)制一列,得到幀內(nèi)預(yù)測(cè)值。其它各種模式也采用類似的方法,不過(guò),生成預(yù)測(cè)值的方式稍有不同。有這么多的模式,就產(chǎn)生了一個(gè)問(wèn)題,對(duì)于一個(gè)塊而言,我們應(yīng)該采用哪種模式來(lái)進(jìn)行編碼呢?最佳的選擇方式,就是遍歷所有的模式進(jìn)行嘗試,計(jì)算其編碼的所需的比特?cái)?shù)和產(chǎn)生的質(zhì)量損失,即率失真優(yōu)化,這樣明顯非常復(fù)雜,因而也有很多種其它的方式來(lái)推斷哪種模式更好,例如基于SATD或者邊緣檢測(cè)等。

從H.264的9種預(yù)測(cè)模式,到AV1的56種幀內(nèi)方向預(yù)測(cè)模式,越來(lái)越多的模式也是為了更加精準(zhǔn)地預(yù)測(cè)未編碼的塊,但是模式的增加,一方面增加了傳輸模式的碼率開(kāi)銷,另一方面,從如此重多的模式中選一個(gè)最優(yōu)的模式來(lái)編碼,使其能達(dá)到更高的壓縮比,這對(duì)編碼器的設(shè)計(jì)和實(shí)現(xiàn)也提出了更高的要求。

7、幀間預(yù)測(cè)技術(shù)

以下5張圖片是一段視頻的前5幀:可以看出,圖片中只有Mario和磚塊在運(yùn)動(dòng),其余的場(chǎng)景大多是相似的,這種相似性就稱之為時(shí)間冗余。編碼的時(shí)候,我們先將第一幀圖片通過(guò)前文所述的幀內(nèi)預(yù)測(cè)方式進(jìn)行編碼傳輸,再將后續(xù)幀的Mario、磚塊的運(yùn)動(dòng)方向進(jìn)行傳輸,解碼的時(shí)候,就可以將運(yùn)動(dòng)信息和第一幀一起來(lái)合成后續(xù)的幀,這樣就大大減少了傳輸所需的bit數(shù)。這種利用時(shí)間冗余來(lái)進(jìn)行壓縮的技術(shù),就是運(yùn)動(dòng)補(bǔ)償技術(shù)。該技術(shù)早在H.261標(biāo)準(zhǔn)中,就已經(jīng)被采用。

細(xì)心地讀者可能已經(jīng)發(fā)現(xiàn):Mario和磚塊這樣的物體怎么描述,才能讓它僅憑運(yùn)動(dòng)信息就能完整地呈現(xiàn)出來(lái)?

其實(shí)視頻編碼中并不需要知道運(yùn)動(dòng)的物體的形狀,而是將整幀圖像劃分成像素塊,每個(gè)像素塊使用一個(gè)運(yùn)動(dòng)信息。即基于塊的運(yùn)動(dòng)補(bǔ)償。

下圖中紅色圈出的白色箭頭即編碼磚塊和Mario時(shí)的運(yùn)動(dòng)信息,它們都指向了前一幀中所在的位置。Mario和磚塊都有兩個(gè)箭頭,說(shuō)明它們都被劃分在了兩個(gè)塊中,每一個(gè)塊都有單獨(dú)的運(yùn)動(dòng)信息。這些運(yùn)動(dòng)信息就是運(yùn)動(dòng)矢量。運(yùn)動(dòng)矢量有水平和豎直兩個(gè)分量,代表是的一個(gè)塊相對(duì)于其參考幀的位置變化。參考幀就是已經(jīng)編碼過(guò)的某一(多)個(gè)幀。

當(dāng)然:傳輸運(yùn)動(dòng)矢量本身就要占用很多 bit。為了提高運(yùn)動(dòng)矢量的傳輸效率,主要有以下措施。

一方面:可以盡可能得將塊劃分變大,共用一個(gè)運(yùn)動(dòng)矢量,因?yàn)槠教箙^(qū)域或者較大的物體,他們的運(yùn)動(dòng)可能是比較一致的。從 H.264 開(kāi)始,可變塊大小的運(yùn)動(dòng)補(bǔ)償技術(shù)被廣泛采用。

另一方面:相鄰的塊之間的運(yùn)動(dòng)往往也有比較高的相似性,其運(yùn)動(dòng)矢量也有較高的相似性,運(yùn)動(dòng)矢量本身也可以根據(jù)相鄰的塊運(yùn)動(dòng)矢量來(lái)進(jìn)行預(yù)測(cè),即運(yùn)動(dòng)矢量預(yù)測(cè)技術(shù);

最后:運(yùn)動(dòng)矢量在表達(dá)物體運(yùn)動(dòng)的時(shí)候,有精度的取舍。像素是離散化的表達(dá),現(xiàn)實(shí)中物體的運(yùn)動(dòng)顯然不是以像素為單位進(jìn)行運(yùn)動(dòng)的,為了精確地表達(dá)物體的運(yùn)動(dòng),需要選擇合適的精度來(lái)定義運(yùn)動(dòng)矢量。各視頻編解碼標(biāo)準(zhǔn)都定義了運(yùn)動(dòng)矢量的精度,運(yùn)動(dòng)矢量精度越高,越能精確地表達(dá)運(yùn)動(dòng),但是代價(jià)就是傳輸運(yùn)動(dòng)矢量需要花費(fèi)更多的bit。

H.261中運(yùn)動(dòng)矢量是以整像素為精度的,H.264中運(yùn)動(dòng)矢量是以四分之一像素為精度的,AV1中還增加了八分之一精度。一般情況,時(shí)間上越近的幀,它們之間的相似性越高,也有例外,例如往復(fù)運(yùn)動(dòng)的場(chǎng)景等,可能相隔幾幀,甚至更遠(yuǎn)的幀,會(huì)有更高的相似度。

為了充分利用已經(jīng)編碼過(guò)的幀來(lái)提高運(yùn)動(dòng)補(bǔ)償?shù)臏?zhǔn)確度,從H.264開(kāi)始引入了多參考幀技術(shù)。

即:一個(gè)塊可以從已經(jīng)編碼過(guò)的很多個(gè)參考幀中進(jìn)行運(yùn)動(dòng)匹配,將匹配的幀索引和運(yùn)動(dòng)矢量信息都進(jìn)行傳輸。

那么如何得到一個(gè)塊的運(yùn)動(dòng)信息呢?最樸素的想法就是,將一個(gè)塊,在其參考幀中,逐個(gè)位置進(jìn)行匹配檢查,匹配度最高的,就是最終的運(yùn)動(dòng)矢量。

匹配度:常用的有SAD(Sum of Absolute Difference)、SSD(Sum of Squared Difference)等。逐個(gè)位置進(jìn)行匹配度檢查,即常說(shuō)的全搜索運(yùn)動(dòng)估計(jì),其計(jì)算復(fù)雜度可想而知是非常高的。為了加快運(yùn)動(dòng)估計(jì),我們可以減少搜索的位置數(shù),類似的有很多算法,常用的如鉆石搜索、六邊形搜索、非對(duì)稱十字型多層次六邊形格點(diǎn)搜索算法等。

以鉆石搜索為例,如下圖所示,以起始的藍(lán)色點(diǎn)為中心的9個(gè)匹配位置,分別計(jì)算這9個(gè)位置的SAD,如果SAD最小的是中心位置,下一步搜索中心點(diǎn)更近的周圍4個(gè)綠色點(diǎn)的SAD,選擇其中SAD最小的位置,繼續(xù)縮小范圍進(jìn)行搜索;如果第一步中SAD最小的點(diǎn)不在中心,那么以該位置為中心,增加褐色的5或者3個(gè)點(diǎn),繼續(xù)計(jì)算SAD,如此迭代,直到找到最佳匹配位置。

編碼器在實(shí)現(xiàn)時(shí),可根據(jù)實(shí)際的應(yīng)用場(chǎng)景,對(duì)搜索算法進(jìn)行選擇。

例如:在實(shí)時(shí)音視頻場(chǎng)景下,計(jì)算復(fù)雜度是相對(duì)有限的,運(yùn)動(dòng)估計(jì)模塊要選擇計(jì)算量較小的算法,以平衡復(fù)雜度和編碼效率。當(dāng)然,運(yùn)動(dòng)估計(jì)與運(yùn)動(dòng)補(bǔ)償?shù)膹?fù)雜度還與塊的大小,參考幀的個(gè)數(shù),亞像素的計(jì)算等有關(guān),在此不再深入展開(kāi)。

更多預(yù)測(cè)技術(shù)方面的原理這里就不再贅述。如果你對(duì)上面所述的預(yù)測(cè)技術(shù)理解上感到力不從心,這里有篇入門級(jí)的文章,可以先讀讀這篇《即時(shí)通訊音視頻開(kāi)發(fā)(四):視頻編解碼之預(yù)測(cè)技術(shù)介紹》。

8、寫(xiě)在最后

音視頻編解碼技術(shù),歸根結(jié)底就是在有限的資源下(網(wǎng)絡(luò)帶寬、計(jì)算資源等),讓音質(zhì)更清晰、視頻更高質(zhì)。

這其中,對(duì)于視頻來(lái)說(shuō),質(zhì)量的提升仍然有很多可以深入研究的熱點(diǎn)問(wèn)題。

比如:基于人眼的主觀質(zhì)量?jī)?yōu)化,主要利用人眼的視覺(jué)特性,將掩蔽效應(yīng)、對(duì)比度靈敏度、注意力模型等與編碼相結(jié)合,合理分配碼率、減少編碼損失引起的視覺(jué)不適。

AI在視頻編解碼領(lǐng)域的應(yīng)用:包括將多種人工智能算法,如分類器、支持向量機(jī)、CNN等對(duì)編碼參數(shù)進(jìn)行快速選擇,也可以使用深度學(xué)習(xí)對(duì)視頻進(jìn)行編碼環(huán)外與編碼環(huán)內(nèi)的處理,如視頻超分辨率、去噪、去霧、自適應(yīng)動(dòng)態(tài)范圍調(diào)整等編碼環(huán)外處理,達(dá)到提升視頻質(zhì)量的目的。

此外還有打破傳統(tǒng)混合編碼框架的深度神經(jīng)網(wǎng)絡(luò)編碼,如Nvidia的Maxine視頻會(huì)議服務(wù),利用深度學(xué)習(xí)來(lái)提取特征,然后對(duì)特征進(jìn)行傳輸以節(jié)省帶寬。

附錄:更多精華文章

[1] 實(shí)時(shí)音視頻開(kāi)發(fā)的其它精華資料:

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(一):視頻編解碼之理論概述》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(二):視頻編解碼之?dāng)?shù)字視頻介紹》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(三):視頻編解碼之編碼基礎(chǔ)》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(四):視頻編解碼之預(yù)測(cè)技術(shù)介紹》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(五):認(rèn)識(shí)主流視頻編碼技術(shù)H.264》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(六):如何開(kāi)始音頻編解碼技術(shù)的學(xué)習(xí)》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(七):音頻基礎(chǔ)及編碼原理入門》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(八):常見(jiàn)的實(shí)時(shí)語(yǔ)音通訊編碼標(biāo)準(zhǔn)》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(九):實(shí)時(shí)語(yǔ)音通訊的回音及回音消除概述》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十):實(shí)時(shí)語(yǔ)音通訊的回音消除技術(shù)詳解》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十一):實(shí)時(shí)語(yǔ)音通訊丟包補(bǔ)償技術(shù)詳解》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十二):多人實(shí)時(shí)音視頻聊天架構(gòu)探討》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十三):實(shí)時(shí)視頻編碼H.264的特點(diǎn)與優(yōu)勢(shì)》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十四):實(shí)時(shí)音視頻數(shù)據(jù)傳輸協(xié)議介紹》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十五):聊聊P2P與實(shí)時(shí)音視頻的應(yīng)用情況》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十六):移動(dòng)端實(shí)時(shí)音視頻開(kāi)發(fā)的幾個(gè)建議》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十七):視頻編碼H.264、VP8的前世今生》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十八):詳解音頻編解碼的原理、演進(jìn)和應(yīng)用選型》

  • 《即時(shí)通訊音視頻開(kāi)發(fā)(十九):零基礎(chǔ),史上最通俗視頻編碼技術(shù)入門》

  • 《實(shí)時(shí)語(yǔ)音聊天中的音頻處理與編碼壓縮技術(shù)簡(jiǎn)述》

  • 《網(wǎng)易視頻云技術(shù)分享:音頻處理與壓縮技術(shù)快速入門》

  • 《學(xué)習(xí)RFC3550:RTP/RTCP實(shí)時(shí)傳輸協(xié)議基礎(chǔ)知識(shí)》

  • 《基于RTMP數(shù)據(jù)傳輸協(xié)議的實(shí)時(shí)流媒體技術(shù)研究(論文全文)》

  • 《聲網(wǎng)架構(gòu)師談實(shí)時(shí)音視頻云的實(shí)現(xiàn)難點(diǎn)(視頻采訪)》

  • 《淺談開(kāi)發(fā)實(shí)時(shí)視頻直播平臺(tái)的技術(shù)要點(diǎn)》

  • 《還在靠“喂喂喂”測(cè)試實(shí)時(shí)語(yǔ)音通話質(zhì)量?本文教你科學(xué)的評(píng)測(cè)方法!》

  • 《實(shí)現(xiàn)延遲低于500毫秒的1080P實(shí)時(shí)音視頻直播的實(shí)踐分享》

  • 《移動(dòng)端實(shí)時(shí)視頻直播技術(shù)實(shí)踐:如何做到實(shí)時(shí)秒開(kāi)、流暢不卡》

  • 《如何用最簡(jiǎn)單的方法測(cè)試你的實(shí)時(shí)音視頻方案》

  • 《技術(shù)揭秘:支持百萬(wàn)級(jí)粉絲互動(dòng)的Facebook實(shí)時(shí)視頻直播》

  • 《簡(jiǎn)述實(shí)時(shí)音視頻聊天中端到端加密(E2EE)的工作原理》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(一):開(kāi)篇》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(二):采集》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(三):處理》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(四):編碼和封裝》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(五):推流和傳輸》

  • 《移動(dòng)端實(shí)時(shí)音視頻直播技術(shù)詳解(六):延遲優(yōu)化》

  • 《理論聯(lián)系實(shí)際:實(shí)現(xiàn)一個(gè)簡(jiǎn)單地基于HTML5的實(shí)時(shí)視頻直播》

  • 《IM實(shí)時(shí)音視頻聊天時(shí)的回聲消除技術(shù)詳解》

  • 《淺談實(shí)時(shí)音視頻直播中直接影響用戶體驗(yàn)的幾項(xiàng)關(guān)鍵技術(shù)指標(biāo)》

  • 《如何優(yōu)化傳輸機(jī)制來(lái)實(shí)現(xiàn)實(shí)時(shí)音視頻的超低延遲?》

  • 《首次披露:快手是如何做到百萬(wàn)觀眾同場(chǎng)看直播仍能秒開(kāi)且不卡頓的?》

  • 《Android直播入門實(shí)踐:動(dòng)手搭建一套簡(jiǎn)單的直播系統(tǒng)》

  • 《網(wǎng)易云信實(shí)時(shí)視頻直播在TCP數(shù)據(jù)傳輸層的一些優(yōu)化思路》

  • 《實(shí)時(shí)音視頻聊天技術(shù)分享:面向不可靠網(wǎng)絡(luò)的抗丟包編解碼器》

  • 《P2P技術(shù)如何將實(shí)時(shí)視頻直播帶寬降低75%?》

  • 《專訪微信視頻技術(shù)負(fù)責(zé)人:微信實(shí)時(shí)視頻聊天技術(shù)的演進(jìn)》

  • 《騰訊音視頻實(shí)驗(yàn)室:使用AI黑科技實(shí)現(xiàn)超低碼率的高清實(shí)時(shí)視頻聊天》

  • 《微信團(tuán)隊(duì)分享:微信每日億次實(shí)時(shí)音視頻聊天背后的技術(shù)解密》

  • 《近期大熱的實(shí)時(shí)直播答題系統(tǒng)的實(shí)現(xiàn)思路與技術(shù)難點(diǎn)分享》

  • 《福利貼:最全實(shí)時(shí)音視頻開(kāi)發(fā)要用到的開(kāi)源工程匯總》

  • 《七牛云技術(shù)分享:使用QUIC協(xié)議實(shí)現(xiàn)實(shí)時(shí)視頻直播0卡頓!》

  • 《實(shí)時(shí)音視頻聊天中超低延遲架構(gòu)的思考與技術(shù)實(shí)踐》

  • 《理解實(shí)時(shí)音視頻聊天中的延時(shí)問(wèn)題一篇就夠》

  • 《實(shí)時(shí)視頻直播客戶端技術(shù)盤(pán)點(diǎn):Native、HTML5、WebRTC、微信小程序》

  • 《寫(xiě)給小白的實(shí)時(shí)音視頻技術(shù)入門提綱》

  • 《微信多媒體團(tuán)隊(duì)訪談:音視頻開(kāi)發(fā)的學(xué)習(xí)、微信的音視頻技術(shù)和挑戰(zhàn)等》

  • 《騰訊技術(shù)分享:微信小程序音視頻技術(shù)背后的故事》

  • 《微信多媒體團(tuán)隊(duì)梁俊斌訪談:聊一聊我所了解的音視頻技術(shù)》

  • 《新浪微博技術(shù)分享:微博短視頻服務(wù)的優(yōu)化實(shí)踐之路》

  • 《實(shí)時(shí)音頻的混音在視頻直播應(yīng)用中的技術(shù)原理和實(shí)踐總結(jié)》

  • 《以網(wǎng)游服務(wù)端的網(wǎng)絡(luò)接入層設(shè)計(jì)為例,理解實(shí)時(shí)通信的技術(shù)挑戰(zhàn)》

  • 《騰訊技術(shù)分享:微信小程序音視頻與WebRTC互通的技術(shù)思路和實(shí)踐》

  • 《新浪微博技術(shù)分享:微博實(shí)時(shí)直播答題的百萬(wàn)高并發(fā)架構(gòu)實(shí)踐》

  • 《技術(shù)干貨:實(shí)時(shí)視頻直播首屏耗時(shí)400ms內(nèi)的優(yōu)化實(shí)踐》

  • 《愛(ài)奇藝技術(shù)分享:輕松詼諧,講解視頻編解碼技術(shù)的過(guò)去、現(xiàn)在和將來(lái)》

  • 《零基礎(chǔ)入門:實(shí)時(shí)音視頻技術(shù)基礎(chǔ)知識(shí)全面盤(pán)點(diǎn)》

  • 《實(shí)時(shí)音視頻面視必備:快速掌握11個(gè)視頻技術(shù)相關(guān)的基礎(chǔ)概念》

  • 《淘寶直播技術(shù)干貨:高清、低延時(shí)的實(shí)時(shí)視頻直播技術(shù)解密》

  • 《實(shí)時(shí)音視頻開(kāi)發(fā)理論必備:如何省流量?視頻高度壓縮背后的預(yù)測(cè)技術(shù)》

  • >>?更多同類文章 ……

[2] 開(kāi)源實(shí)時(shí)音視頻技術(shù)WebRTC的文章:

  • 《開(kāi)源實(shí)時(shí)音視頻技術(shù)WebRTC的現(xiàn)狀》

  • 《簡(jiǎn)述開(kāi)源實(shí)時(shí)音視頻技術(shù)WebRTC的優(yōu)缺點(diǎn)》

  • 《訪談WebRTC標(biāo)準(zhǔn)之父:WebRTC的過(guò)去、現(xiàn)在和未來(lái)》

  • 《良心分享:WebRTC 零基礎(chǔ)開(kāi)發(fā)者教程(中文)[附件下載]》

  • 《WebRTC實(shí)時(shí)音視頻技術(shù)的整體架構(gòu)介紹》

  • 《新手入門:到底什么是WebRTC服務(wù)器,以及它是如何聯(lián)接通話的?》

  • 《WebRTC實(shí)時(shí)音視頻技術(shù)基礎(chǔ):基本架構(gòu)和協(xié)議棧》

  • 《淺談開(kāi)發(fā)實(shí)時(shí)視頻直播平臺(tái)的技術(shù)要點(diǎn)》

  • 《[觀點(diǎn)] WebRTC應(yīng)該選擇H.264視頻編碼的四大理由》

  • 《基于開(kāi)源WebRTC開(kāi)發(fā)實(shí)時(shí)音視頻靠譜嗎?第3方SDK有哪些?》

  • 《開(kāi)源實(shí)時(shí)音視頻技術(shù)WebRTC中RTP/RTCP數(shù)據(jù)傳輸協(xié)議的應(yīng)用》

  • 《簡(jiǎn)述實(shí)時(shí)音視頻聊天中端到端加密(E2EE)的工作原理》

  • 《實(shí)時(shí)通信RTC技術(shù)棧之:視頻編解碼》

  • 《開(kāi)源實(shí)時(shí)音視頻技術(shù)WebRTC在Windows下的簡(jiǎn)明編譯教程》

  • 《網(wǎng)頁(yè)端實(shí)時(shí)音視頻技術(shù)WebRTC:看起來(lái)很美,但離生產(chǎn)應(yīng)用還有多少坑要填?》

  • 《了不起的WebRTC:生態(tài)日趨完善,或?qū)?shí)時(shí)音視頻技術(shù)白菜化》

  • 《騰訊技術(shù)分享:微信小程序音視頻與WebRTC互通的技術(shù)思路和實(shí)踐》

  • 《融云技術(shù)分享:基于WebRTC的實(shí)時(shí)音視頻首幀顯示時(shí)間優(yōu)化實(shí)踐》

  • >>?更多同類文章 ……

本文已同步發(fā)布于“即時(shí)通訊技術(shù)圈”公眾號(hào)。

▲ 本文在公眾號(hào)上的鏈接是:點(diǎn)此進(jìn)入。同步發(fā)布鏈接是:http://www.52im.net/thread-3581-1-1.html


實(shí)時(shí)音視頻開(kāi)發(fā)理論必備:如何省流量?視頻高度壓縮背后的預(yù)測(cè)技術(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
池州市| 阜城县| 光山县| 德钦县| 高台县| 于田县| 旺苍县| 新平| 赫章县| 阿鲁科尔沁旗| 噶尔县| 永仁县| 勃利县| 承德市| 富平县| 平乐县| 江孜县| 偃师市| 英吉沙县| 荔波县| 鄂托克旗| 广昌县| 类乌齐县| 延庆县| 凤翔县| 体育| 内江市| 三河市| 霞浦县| 洪江市| 肥西县| 临清市| 治多县| 黄梅县| 亳州市| 河池市| 新余市| 永嘉县| 柳江县| 如东县| 鄂托克旗|