「碼途拾貝」音視頻,視頻編碼,從像素到比特的藝術(shù)

????在我們?nèi)粘I钪?,無論是沉浸于高清電影的視覺盛宴,還是參與流暢無阻的遠(yuǎn)程會(huì)議,都離不開一項(xiàng)核心技術(shù)的支持——視頻編碼。視頻編碼,如同現(xiàn)代科技中的魔法,將連續(xù)變化、豐富多彩的動(dòng)態(tài)畫面轉(zhuǎn)化為可以存儲(chǔ)和傳輸?shù)臄?shù)據(jù)流,讓我們能夠在各種設(shè)備上實(shí)時(shí)或按需欣賞高質(zhì)量的視頻內(nèi)容。本文將帶你踏上一段揭秘視頻編碼技術(shù)的神奇之旅,領(lǐng)略它如何實(shí)現(xiàn)從像素到比特的藝術(shù)轉(zhuǎn)化。

未壓縮原始數(shù)據(jù)大小計(jì)算
RGB格式不適合直接用于視頻壓縮編碼,因此沒有對(duì)應(yīng)的編碼格式和壓縮后的數(shù)據(jù)量估算

視頻編碼基礎(chǔ)原理

????視頻實(shí)質(zhì)上是一系列靜態(tài)圖像(幀)以一定的速率連續(xù)播放形成的視覺效果。視頻編碼的核心目標(biāo)就是高效地壓縮這些海量的圖像數(shù)據(jù),使之能在有限的存儲(chǔ)空間和帶寬條件下進(jìn)行傳播。

1??采樣和量化

視頻信號(hào)首先經(jīng)歷采樣過程,將連續(xù)的模擬圖像信號(hào)轉(zhuǎn)譯為離散的數(shù)字像素點(diǎn)。

接著進(jìn)行量化處理,即將連續(xù)的灰度或色彩值映射到有限數(shù)量的離散級(jí)別上,這通過犧牲一定精度來顯著減少數(shù)據(jù)量。

2??顏色空間轉(zhuǎn)換

在編碼過程中,通常使用類似YUV或YCbCr這樣的顏色空間替代RGB,其中Y表示亮度,Cb和Cr代表色度信息。

因?yàn)槿搜蹖?duì)亮度的變化更加敏感,而對(duì)色度變化相對(duì)不敏感,所以此轉(zhuǎn)換有助于在保持視覺質(zhì)量的同時(shí)進(jìn)行有效壓縮。

3??幀內(nèi)預(yù)測(cè)

利用圖像內(nèi)部相鄰像素的相似性,在編碼單個(gè)像素時(shí),可根據(jù)已編碼的臨近像素進(jìn)行預(yù)測(cè),只需傳輸預(yù)測(cè)值與實(shí)際像素值之間的差異(即殘差),從而縮減所需的傳輸數(shù)據(jù)量。

4??幀間預(yù)測(cè)(運(yùn)動(dòng)估計(jì)和補(bǔ)償)

在連續(xù)的視頻幀中,許多區(qū)域的內(nèi)容雖有變動(dòng)但本質(zhì)上相同,僅是位置發(fā)生變化。運(yùn)動(dòng)估計(jì)是用來識(shí)別前后幀之間像素位移的技術(shù)(即運(yùn)動(dòng)矢量)。

運(yùn)動(dòng)補(bǔ)償依據(jù)這些運(yùn)動(dòng)矢量生成預(yù)測(cè)幀,只需要傳輸運(yùn)動(dòng)矢量和殘差數(shù)據(jù),大大減輕了數(shù)據(jù)傳輸壓力。

5??熵編碼

利用霍夫曼編碼、算術(shù)編碼或者上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)等熵編碼方法,根據(jù)數(shù)據(jù)出現(xiàn)的概率差異進(jìn)行高效的編碼。

這意味著低概率事件用較短的比特序列表示,而高概率事件用較長的比特序列表示,以此進(jìn)一步壓減數(shù)據(jù)體積。

6??變換編碼

通過離散余弦變換(DCT)、小波變換等數(shù)學(xué)手段,將空間域的像素?cái)?shù)據(jù)轉(zhuǎn)換至頻率域。

在頻率域中,大部分能量集中于低頻部分,而高頻部分通常包含較多的噪聲和細(xì)節(jié)信息。編碼時(shí),可以重點(diǎn)保留低頻部分,對(duì)高頻部分施加更高的量化級(jí)別來增強(qiáng)壓縮效果。

7??環(huán)路濾波

編碼和解碼過程中可能引入一些失真,通過環(huán)路濾波器可以在解碼前對(duì)這些失真進(jìn)行一定程度的修復(fù),進(jìn)而提升還原出的圖像質(zhì)量。

8??編碼層次結(jié)構(gòu)

如H.264/AVC等編碼標(biāo)準(zhǔn)采用了諸如B幀(雙向預(yù)測(cè)幀)、P幀(前向預(yù)測(cè)幀)和I幀(幀內(nèi)編碼幀)等不同類型的幀結(jié)構(gòu),構(gòu)造了一套靈活的幀間預(yù)測(cè)體系。

這樣的設(shè)計(jì)不僅能有效壓縮視頻,還支持錯(cuò)誤恢復(fù)和隨機(jī)訪問等功能。

9??率失真優(yōu)化

根據(jù)不同的帶寬限制和期望的視頻質(zhì)量水平,編碼器必須在壓縮率和重構(gòu)圖像質(zhì)量之間找到最佳折衷點(diǎn),這就是所謂的率失真優(yōu)化(Rate-Distortion Optimization, RDO)。

通過RDO,編碼器能夠在有限的帶寬條件下自動(dòng)調(diào)整編碼參數(shù),力求達(dá)到最佳的視頻質(zhì)量和碼率平衡。

主流視頻編碼標(biāo)準(zhǔn)

H.26x系列是國際電信聯(lián)盟(ITU-T)制定的一系列視頻編解碼標(biāo)準(zhǔn),歷經(jīng)多代演進(jìn),始終致力于提高視頻編碼的效率,以便在有限的帶寬和存儲(chǔ)資源下傳輸和存儲(chǔ)高質(zhì)量的視頻內(nèi)容。從早期的H.261標(biāo)準(zhǔn)開始,這一系列標(biāo)準(zhǔn)逐步引領(lǐng)著視頻編碼技術(shù)的革新:

H.261?是為視頻會(huì)議設(shè)計(jì)的第一代標(biāo)準(zhǔn),奠定了后來視頻編碼技術(shù)的基礎(chǔ);

H.263 和 H.263+ 是在窄帶網(wǎng)絡(luò)環(huán)境下優(yōu)化的編解碼標(biāo)準(zhǔn),尤其適合早期的網(wǎng)絡(luò)視頻應(yīng)用;

H.264/AVC(Advanced Video Coding)被譽(yù)為過去二十年最重要的視頻編碼標(biāo)準(zhǔn)之一,憑借出色的壓縮效率和廣泛的應(yīng)用范圍,它幾乎無所不在,覆蓋了從高清電視廣播到移動(dòng)設(shè)備和網(wǎng)絡(luò)流媒體等眾多領(lǐng)域;

H.265/HEVC(High Efficiency Video Coding)在H.264的基礎(chǔ)上進(jìn)一步提升了壓縮性能,允許在相同的帶寬條件下傳輸更高分辨率的視頻,尤其對(duì)于4K和8K超高清視頻的傳輸尤為重要;

H.266/VVC(Versatile Video Coding)作為新一代標(biāo)準(zhǔn),旨在突破現(xiàn)有的技術(shù)瓶頸,以更高的壓縮效率實(shí)現(xiàn)更佳的畫質(zhì)表現(xiàn),滿足不斷增長的視頻數(shù)據(jù)傳輸需求,特別是在5G網(wǎng)絡(luò)、超高清視頻、虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)等新興應(yīng)用場景中。

與此同時(shí),VPx系列由Google主導(dǎo)研發(fā),主要針對(duì)互聯(lián)網(wǎng)視頻應(yīng)用的需求,以其開放性和免專利費(fèi)的優(yōu)勢(shì)吸引了業(yè)界的關(guān)注:

VP8?雖然不是ITU-T標(biāo)準(zhǔn)的一部分,但其良好的編碼性能和開放許可使其在WebRTC和其他Web應(yīng)用中得到了廣泛應(yīng)用;

VP9?是VP8的升級(jí)版本,與H.265/HEVC相比,它在某些情況下能夠提供更好的壓縮效率和畫質(zhì),尤其是在網(wǎng)絡(luò)視頻傳輸領(lǐng)域,尤其是YouTube等大型流媒體服務(wù)平臺(tái)對(duì)其進(jìn)行了大力推廣;

AV1(AOMedia Video 1)作為VP9的繼承者,由開放媒體聯(lián)盟(AOMedia)成員共同開發(fā),包括Google、Mozilla、思科、亞馬遜等多家科技巨頭。AV1的目標(biāo)是超越現(xiàn)有的商業(yè)標(biāo)準(zhǔn),提供更高水平的壓縮效率和更廣泛的適應(yīng)性,同時(shí)繼續(xù)保持開源和免專利費(fèi)的特性,以期在未來視頻編碼市場占據(jù)主導(dǎo)地位。

視頻編碼技術(shù)的革新意義

????隨著5G通信、云計(jì)算、VR/AR等新技術(shù)的發(fā)展,視頻編碼的重要性日益凸顯。更低的延遲、更高的分辨率、更豐富的色彩深度、以及適應(yīng)不斷增長的網(wǎng)絡(luò)流量需求,都需要視頻編碼技術(shù)持續(xù)創(chuàng)新和發(fā)展。

低延遲直播與實(shí)時(shí)通信:通過優(yōu)化編碼算法,降低視頻編碼過程中的延遲,使得實(shí)時(shí)互動(dòng)更加順暢。

超高清視頻時(shí)代:支持4K、8K甚至更高分辨率的視頻編碼,確保用戶能夠享受到極致細(xì)膩的畫面質(zhì)量。

跨平臺(tái)兼容性:面向多種設(shè)備和操作系統(tǒng)設(shè)計(jì)的視頻編碼標(biāo)準(zhǔn),保證了內(nèi)容在不同平臺(tái)上的無縫呈現(xiàn)。

????視頻編碼不僅是一種技術(shù)手段,更是一門藝術(shù),是人類智慧與技術(shù)完美融合的產(chǎn)物。它使我們得以跨越時(shí)空限制,共享精彩的視聽世界。未來,隨著AI、深度學(xué)習(xí)等前沿技術(shù)的融入,視頻編碼將進(jìn)一步打破邊界,開啟全新的視界體驗(yàn)。讓我們共同期待并見證這一領(lǐng)域的無限可能!

視頻編碼技術(shù)的難點(diǎn)

高效壓縮

數(shù)據(jù)冗余消除:視頻數(shù)據(jù)包含大量的空間冗余和時(shí)間冗余,編碼技術(shù)需要通過預(yù)測(cè)、變換編碼、量化等步驟減少數(shù)據(jù)量。預(yù)測(cè)技術(shù)如幀內(nèi)預(yù)測(cè)(如像素差分、模式匹配等)和幀間預(yù)測(cè)(運(yùn)動(dòng)補(bǔ)償),變換編碼如DCT(離散余弦變換)或DWT(離散小波變換)等,量化則是權(quán)衡壓縮比與視覺質(zhì)量的關(guān)鍵步驟。

熵編碼:熵編碼技術(shù)如變長編碼(Variable Length Coding, VLC)如霍夫曼編碼、算術(shù)編碼等,用于去除統(tǒng)計(jì)上的冗余,進(jìn)一步壓縮數(shù)據(jù)。熵編碼要求高效地估計(jì)和建模視頻信號(hào)的概率分布。

復(fù)雜度控制

算法復(fù)雜度:視頻編碼算法的運(yùn)算復(fù)雜度較高,尤其是在實(shí)時(shí)編碼和解碼過程中,需要在硬件資源有限的情況下保證編碼速度和解碼效率,這對(duì)編碼算法的設(shè)計(jì)提出很高要求。

比特率控制:編碼器需要?jiǎng)討B(tài)調(diào)整編碼參數(shù)以達(dá)到特定的比特率目標(biāo),確保在不同網(wǎng)絡(luò)條件和存儲(chǔ)容量限制下視頻能夠順利傳輸或存儲(chǔ),同時(shí)保持良好的視頻質(zhì)量。

質(zhì)量與帶寬的權(quán)衡

主觀視頻質(zhì)量:編碼器需要在有限的帶寬約束下最大化視頻的主觀質(zhì)量,這意味著要在丟棄圖像細(xì)節(jié)和保持流暢性之間做出折衷,同時(shí)考慮人的視覺系統(tǒng)的特性。

高分辨率與高幀率支持

高清與超高清視頻:隨著4K、8K等超高分辨率視頻的普及,編碼器需要處理更大規(guī)模的數(shù)據(jù)量,同時(shí)還要考慮如何在高分辨率下提高壓縮效率和保真度。

高動(dòng)態(tài)范圍(HDR)和廣色域(WCG):對(duì)于HDR視頻,編碼器不僅要處理亮度和色彩范圍的擴(kuò)展,還要確保在編碼過程中盡可能保留豐富層次和細(xì)節(jié)。

低延遲編碼

實(shí)時(shí)通信:在實(shí)時(shí)互動(dòng)應(yīng)用(如視頻會(huì)議、遠(yuǎn)程教育、游戲直播)中,編碼器需要實(shí)現(xiàn)低延遲編碼,這對(duì)算法的復(fù)雜度管理和幀內(nèi)編碼優(yōu)化提出了特殊要求。

錯(cuò)誤恢復(fù)與魯棒性

抗丟包與錯(cuò)誤擴(kuò)散:在網(wǎng)絡(luò)傳輸過程中可能會(huì)發(fā)生數(shù)據(jù)包丟失,編碼器需要集成錯(cuò)誤檢測(cè)和恢復(fù)機(jī)制,以保證在一定程度上抵抗傳輸錯(cuò)誤帶來的畫面損傷。

新一代標(biāo)準(zhǔn) :H.266/VVC

高效壓縮: H.266/VVC的目標(biāo)是在保持相同畫質(zhì)的情況下,相較于它的前任H.265/HEVC,將視頻文件的大小進(jìn)一步減少約30%50%。這意味著在同樣的網(wǎng)絡(luò)帶寬下,我們可以傳輸更高清的視頻內(nèi)容,或者在相同的視頻質(zhì)量下,顯著降低流量消耗。

復(fù)雜度較高: 雖然壓縮效果更好,但代價(jià)是計(jì)算復(fù)雜度更高。H.266/VVC采用了更復(fù)雜的算法和模型,使得編碼和解碼過程更為繁復(fù),對(duì)硬件設(shè)備的處理能力要求更高。

技術(shù)創(chuàng)新: VVC引入了一系列創(chuàng)新技術(shù)來提高壓縮效率,比如塊劃分更加細(xì)致、預(yù)測(cè)模式更多樣、更好的紋理編碼方案、改進(jìn)的熵編碼方法以及更先進(jìn)的運(yùn)動(dòng)補(bǔ)償?shù)取?/p>

適應(yīng)性強(qiáng): 除了針對(duì)傳統(tǒng)的分辨率,H.266/VVC特別優(yōu)化了對(duì)超高分辨率(如4K、8K甚至更高)視頻的支持,使其更適合未來超高清視頻的應(yīng)用場景,如8K電視、虛擬現(xiàn)實(shí)(VR)和增強(qiáng)現(xiàn)實(shí)(AR)等領(lǐng)域。

主流的視頻編碼框架

FFmpeg

FFmpeg 是一個(gè)跨平臺(tái)的命令行工具集合,同時(shí)也提供了一個(gè)強(qiáng)大的庫,支持多種視頻編碼格式(如H.264、H.265、VP9、AV1等)。FFmpeg的庫可以被C/C++程序調(diào)用,同時(shí)也有很多第三方庫(如Python的ffmpeg-python、Java的Xuggler等)將其功能封裝成其他語言的API。

x264

x264 是一個(gè)開源的H.264視頻編碼器,它是純C語言編寫的,可以直接集成到C/C++項(xiàng)目中,也可以通過綁定庫的方式支持其他語言。

libvpx

libvpx 是Google開發(fā)的VP8和VP9視頻編碼器庫,同樣用C語言編寫,支持多種操作系統(tǒng),可通過API對(duì)接其他編程語言。

openh264

openh264 是思科系統(tǒng)公司提供的開源H.264編碼器,同樣支持C/C++編程,并有對(duì)應(yīng)的SDK供其他語言調(diào)用。

Intel? Media SDK

Intel的Media SDK為開發(fā)者提供了一套高性能的API,用于在Intel處理器上加速媒體處理,包括視頻編碼,支持C++,并且可以通過JNI等方式與Java等其他語言交互。

GStreamer

GStreamer是一個(gè)開源的多媒體框架,適用于Linux環(huán)境,支持多種視頻編碼格式和編碼器插件,可以用C、Python等多種語言進(jìn)行編程。

Microsoft Media Foundation

對(duì)于Windows平臺(tái),微軟的Media Foundation框架提供了豐富的多媒體處理功能,包括視頻編碼,支持C++編程。

Android MediaCodec API

Android平臺(tái)上的MediaCodec API支持硬編碼和軟編碼,可以讓開發(fā)者使用Java或Kotlin進(jìn)行視頻編碼操作。

iOS VideoToolbox

iOS系統(tǒng)提供了VideoToolbox框架,開發(fā)者可以使用Objective-C或Swift編寫代碼,利用硬件加速進(jìn)行視頻編碼。

主要的視頻編碼標(biāo)準(zhǔn)以及相關(guān)的資料網(wǎng)站

H.264 (MPEG-4 Part 10 / AVC):

資料網(wǎng)站:國際電信聯(lián)盟(ITU-T)官方網(wǎng)站 -?https://www.itu.int/rec/T-REC-H.264

MPEG官方網(wǎng)站 -?https://mpeg.chiariglione.org/standards/mpeg-4/advanced-video-coding-avc

H.265 (HEVC, High Efficiency Video Coding):

ITU-T官方網(wǎng)站 -?https://www.itu.int/rec/T-REC-H.265

MPEG官方網(wǎng)站 -?https://mpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding-hevc

VP9:

Google WebM Project -?https://www.webmproject.org/vp9/

Chromium項(xiàng)目文檔 -?https://www.chromium.org/audio-video/vp9

AV1 (AOMedia Video 1):

Alliance for Open Media(AOMedia) -?https://aomedia.org/av1/

AV1 Codec Github倉庫 -?https://github.com/AOMediaCodec/av1-encoder

H.266 (VVC, Versatile Video Coding):

ITU-T官方網(wǎng)站 -?https://www.itu.int/rec/T-REC-H.266(請(qǐng)注意,這可能是未來發(fā)布的鏈接,因?yàn)闃?biāo)準(zhǔn)發(fā)布時(shí)會(huì)有相應(yīng)更新)

Joint Video Experts Team(JVET)官方網(wǎng)站 -?https:// JVET.chair.fr/?(JVET是由ITU-T和ISO/IEC MPEG聯(lián)合組建的工作組,負(fù)責(zé)下一代視頻編碼標(biāo)準(zhǔn)的研發(fā))

AVS (Audio and Video Coding Standard):

中國音視頻編解碼技術(shù)標(biāo)準(zhǔn)工作組(AVS Working Group) -?http://avs.org.cn/?(請(qǐng)注意,AVS標(biāo)準(zhǔn)分為多個(gè)版本,如AVS1、AVS2、AVS3等)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容