为什么视频压缩如此重要
點(diǎn)擊上方“LiveVideoStack”關(guān)注我們
翻譯 | Alex
技術(shù)審校 | 李忠
本文來自O(shè)TTVerse,作者為Krishna Rao Vijayanagar。
視頻壓縮
Easy Tech
#004#
視頻壓縮是視頻生產(chǎn)中最重要的組成部分之一。對高質(zhì)量聲影效果(以吸引更多觀看者)的需求常常被有限的帶寬所阻礙,這是YouTube、Facebook和Vimeo等流媒體服務(wù)常常面臨的問題。本篇文章將通過一個實(shí)際練習(xí)來解釋視頻壓縮的重要性。
? ?為什么要視頻壓縮?
過去幾十年里,視頻壓縮理所當(dāng)然成為一個廣泛研究的主題。
每一年在視頻采集、渲染和顯示方面都會有技術(shù)上的創(chuàng)新。隨之而來的是,各大公司要面臨用戶希望以相同或者更低成本獲得更高質(zhì)量視頻的需求。
換句話說,內(nèi)容提供商如Netflix、HBO等需要提供更高質(zhì)量的視頻,但同時不能將成本轉(zhuǎn)嫁給用戶!遺憾的是,說起來容易做起來難。
每天,全世界有數(shù)百萬人都在觀看視頻(以電影、綜藝、新聞、體育直播,TikTok短視頻等形式)。
但幾乎每個人在按下“播放”鍵時,都忽視了一件事:生產(chǎn)、存儲和傳輸視頻的復(fù)雜性。人們會站在埃菲爾鐵塔前,感嘆精巧工藝背后的辛苦工作,但幾乎不會有人在按下播放鍵時,對奇跡般順利出現(xiàn)在屏幕上的《指環(huán)王》最后一部感到驚訝!
事實(shí)上,建立視頻傳輸管道,以確保你的觀眾可以在任意時間、任意地點(diǎn)點(diǎn)播貓咪視頻這件事,沒有聽上去那么簡單,而且還不便宜!
視頻壓縮部分(正式名稱為編碼器/轉(zhuǎn)碼器)是視頻采集和傳輸管道中的關(guān)鍵組成。各大公司花費(fèi)了大量時間和精力來選擇和微調(diào)它們的編碼器。
但你有沒有想過,為什么我們需要在視頻傳輸前先壓縮它?需要權(quán)衡什么?通過視頻壓縮我們獲得了什么?它的作用可以忽略不計(jì)或者可以不壓縮嗎?
上面的問題問得很好,因?yàn)橐坏├斫饬恕盀槭裁础?#xff0c;那么一切就都水到渠成了!
在本篇文章中,我們將論證視頻壓縮的存在,讓我們開始吧!
?一個像素的成本是多少?
為了存儲視頻(以及傳輸視頻),你需要為存儲設(shè)備做預(yù)算。現(xiàn)在,先讓我們忽略傳輸層面的事, 只關(guān)注存儲問題。
存儲視頻的設(shè)備(SSD或者HDD)代表了你的成本。我們的目標(biāo)是估算存儲一個視頻(1080p、24fps、色彩-RGB、90分鐘長)的花費(fèi)是多少。
然而,為了了解成本,我們需要先將視頻分解成不同組成部分。
視頻是由什么組成的呢?答案相當(dāng)簡單。你以為的動態(tài)電影,其實(shí)是以設(shè)定速度向你展示的一組圖像!
每張圖像被稱為“一幀”,電影基本上就是按特定順序排列的一系列幀。
再深入分析的話,幀由像素構(gòu)成。
幾個按照特定順序排列的像素構(gòu)成了一幀。比如,1080p有1920 x 1080個像素,分別排列為1080行和1920列。
再進(jìn)一步理解,幀可不是簡單的2D數(shù)組。為了產(chǎn)生色彩效果,(在我們的例子中)我們假設(shè)一幀視頻有3層,顏色分別是紅色、綠色和藍(lán)色。三原色,即紅、綠和藍(lán)(RGB)可以組合成任意你想要的顏色。
具有 1920 列和 1080 行像素的單個幀的 RGB?
比如,當(dāng)紅、綠和藍(lán)按照相同比例混合,可以產(chǎn)生不同色度的灰色——從黑色到純白!這個特性非常有用,它可以使三種顏色在數(shù)字顯示器(電視或者手機(jī))中產(chǎn)生不同的顏色。?
酷!現(xiàn)在我們知道一幀就是一個3D像素?cái)?shù)組,這些像素實(shí)際上就是代表了色彩強(qiáng)度的數(shù)字(我們例子中的RGB)。
假設(shè)你使用8位內(nèi)存代表一層顏色中的一個像素,那么,為了表示RGB三種顏色的強(qiáng)度,你就需要24位內(nèi)存。
換言之,我們需要24位大小的空間來存儲一個像素。
注意:了解視頻技術(shù)的讀者應(yīng)該發(fā)現(xiàn)了,視頻并不是以RGB格式存儲的,它們是以YUV格式(420、422或者444)存儲的。除此之外,你也知道位深是變化的(每像素8、10或者12位)。然而,在本篇文章中,讓我們假設(shè)視頻是按照RGB格式(8位)存儲的。我們將在視頻壓縮系列的后續(xù)文章中介紹不同的顏色、子采樣和位深格式。感謝大家“忍受”這個簡單的例子!
?一個90分鐘、1080p的電影需要消耗多少存儲空間?
現(xiàn)在我們知道,存儲視頻的一個像素(RGB)需要消耗24位,讓我們來計(jì)算一個視頻一整幀的消耗。
如果你在觀看高清或者1080p的視頻,那我們這里討論的就是每幀1920x1080像素。
所以,一幀的消耗是
1920 * 1080 像素* 24位/像素) = 49766400 位但我們要看的不是圖像,我們想看的是電影!
為了保持動態(tài)感(或“欺騙”你的眼睛,讓你認(rèn)為是動態(tài)的),你的電視需要每秒顯示24幀(fps),否則你的大腦將很快意識到正在看的不是視頻。這種現(xiàn)象被稱為“視覺暫留”或者“視覺錯覺”。
我們知道,24 fps 被認(rèn)為是最低限度的幀速率(幀速率是視頻每秒的幀數(shù))。業(yè)界普遍認(rèn)為 60 fps 是一個很好的標(biāo)準(zhǔn)幀率,我同意。
?回歸數(shù)學(xué)
所以,假設(shè)我們制作電影時,讓電影的每一秒包含24幀,那么一秒的視頻需要多少存儲空間?
49766400位/幀?x?24fps?=?1194393600位/秒這只是一部電影中的一秒,我們現(xiàn)在討論的是一段90分鐘的視頻。那么存儲90分鐘視頻需要多少空間呢?
1194393600 x 60(1分鐘60秒)x 90(共90分鐘)=6449725440000位哇,讓我們整理一下這個數(shù)字。
要用750GB存儲一部電影?瘋了吧!
?理解750GB
如果你想在一個非常棒的SSD上存儲750GB的電影,(假設(shè))那得買一個三星Evo SSD硬盤才行,一個要花費(fèi)250美元。
會有人愿意花250美元存儲一部電影嗎?太荒謬了,不是嗎?你可能會說,那我們可以使用更便宜的存儲技術(shù),但這不是我們今天要討論的重點(diǎn)。
現(xiàn)實(shí)中,視頻存儲很昂貴,這也是為什么音視頻行業(yè)不斷創(chuàng)新(在不影響視頻質(zhì)量的前提下,持續(xù)開發(fā)新算法和新技術(shù)將電影壓縮到更易于管理的尺寸)的原因。
看看你手機(jī)上的Netflix應(yīng)用。Netflix 提供了將電影下載到手機(jī)上的選項(xiàng),這樣你在離線時也可以觀看。你可以下載一部完整電影(事實(shí)上很多電影),而且仍然不會“摧毀”你的手機(jī)內(nèi)存。
你肯定不會去下載幾GB或者幾TB的數(shù)據(jù),是吧?你最多只下載1或者2GB的數(shù)據(jù)。
這種文件尺寸的大幅減少主要?dú)w功于視頻壓縮的藝術(shù)和科學(xué)。
?視頻編碼究竟是藝術(shù)還是科學(xué)?
說視頻編碼是科學(xué),是因?yàn)樗枰_的公式和算法,而這些公式和算法都是在世界各地的實(shí)驗(yàn)室中被發(fā)明出來的,并需要接受不斷的測試和改進(jìn)。
另一方面,說視頻編碼是藝術(shù),是因?yàn)閷σ曨l編碼質(zhì)量的感知是主觀的,不同的人對視頻質(zhì)量好壞的判斷不同。
在《視頻編碼完全指南》
致謝
本文已獲得作者Krishna Rao Vijayanagar授權(quán)翻譯和發(fā)布,特此感謝。
原文鏈接:https://ottverse.com/need-for-video-compression/
掃描圖中二維碼或點(diǎn)擊閱讀原文
了解大會更多信息
喜歡我們的內(nèi)容就點(diǎn)個“在看”吧!
總結(jié)
以上是生活随笔為你收集整理的为什么视频压缩如此重要的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话ion系列(三)
- 下一篇: LiveVideoStackCon202